From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 9FEC0CD98F0 for ; Wed, 17 Jun 2026 11:24:07 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:MIME-Version:Reply-To:List-Subscribe: List-Help:List-Post:List-Archive:List-Unsubscribe:List-Id:Message-Id:Date: References:In-Reply-To:Cc:To:Subject:From:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=+B3MlhE5lWQ58pNt7S/gM6qTxKiFLXyK6PX6mCAMTSY=; b=K+7Jeq3CgWj5PB /UD5HmczMd47UyOCS2eUkwyB5rDtDBTmpeg5BkhHunw3JFPiyHPKAn+1Q3zMeNi0UfOno5k0arzJj ZuGGg/X+RX9zoND8cs05PgU65dY50pr0+C2U+iuqPr4gygmnpSTPRDPCU7Er4msJUAbJYkkIuWe8l tagCGwZKOAphGpVS2DnwqbsnOSMfeBINunsPehcAsdPpgoBoRITRENh9aGJpyTsV8c3WUSgGnbzWu tcFloPeIJxKxf8S1lhuzIdtbHsVUkR2YRKkhfLKYuPKkdX1L4pmInndQmPjtQTlQKTzQm1s6AFGop wA1O7QgcQfFkFYNzUeDQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1wZoNL-0000000HE3h-1j53; Wed, 17 Jun 2026 11:24:07 +0000 Received: from tor.source.kernel.org ([172.105.4.254]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1wZoNK-0000000HE3b-1ADm for linux-i3c@lists.infradead.org; Wed, 17 Jun 2026 11:24:06 +0000 Received: from smtp.kernel.org (quasi.space.kernel.org [100.103.45.18]) by tor.source.kernel.org (Postfix) with ESMTP id 60854600AA; Wed, 17 Jun 2026 11:24:05 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8D2DB1F0156D; Wed, 17 Jun 2026 11:24:04 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1781695445; bh=1GqKDiifPoS5JBbx/0LyqR8zvsDknb4g0B97x2ss29M=; h=From:Subject:Reply-To:To:Cc:In-Reply-To:References:Date; b=NLDe4zRmcGEkicRquX2aePUurgczhyu2hAlt30OQYkwgLZKy6+mCXQ7XiiHGxgjHp nG5lLxq7/wtx9mCR+KTlqgS8kV7+gC2jB7JVYvstH3yPmamkLCXVlmZM67/3SWl5oB CdYYpHl9u1wqdONH+2BK5DW1XTMh8hXC2jiFAsNbWrs+Paa7c7aMo5YHKARgcJI756 o7lCFqmDJAP9rhlIncJTMvglEsYvUDoOaf+7QjLpb52PwFk8tYe4xRmDbcArfAjuzx ZuPXgECTkeLi9aSBGtMU06RsnE7Vj+Sxd/DjLZl7/5CpWAptw6ohcMmhpA8uMs3jQW bWc23Bu8V41NQ== From: sashiko-bot@kernel.org Subject: Re: [PATCH v12 7/7] i3c: hub: p3h2x4x: Add SMBus slave mode support To: "Lakshay Piplani" Cc: linux-i3c@lists.infradead.org, Frank.Li@kernel.org, robh@kernel.org, conor+dt@kernel.org, devicetree@vger.kernel.org In-Reply-To: <20260617110355.1591844-8-lakshay.piplani@nxp.com> References: <20260617110355.1591844-1-lakshay.piplani@nxp.com> <20260617110355.1591844-8-lakshay.piplani@nxp.com> Date: Wed, 17 Jun 2026 11:24:04 +0000 Message-Id: <20260617112404.8D2DB1F0156D@smtp.kernel.org> X-BeenThere: linux-i3c@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: sashiko-reviews@lists.linux.dev MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-i3c" Errors-To: linux-i3c-bounces+linux-i3c=archiver.kernel.org@lists.infradead.org VGhhbmsgeW91IGZvciB5b3VyIGNvbnRyaWJ1dGlvbiEgU2FzaGlrbyBBSSByZXZpZXcgZm91bmQg NiBwb3RlbnRpYWwgaXNzdWUocykgdG8gY29uc2lkZXI6Ci0gW0hpZ2hdIFVuY29uZGl0aW9uYWwg SUJJIHJlcXVlc3QgY2F1c2VzIHByb2JlIGZhaWx1cmUgaWYgdGhlIHVwc3RyZWFtIEkzQyBjb250 cm9sbGVyIGxhY2tzIElCSSBzdXBwb3J0LgotIFtIaWdoXSBPdmVyLWNsZWFyaW5nIGJ1ZmZlciBz dGF0dXMgZmxhZ3Mgb24gZXJyb3IgcGF0aHMgZGlzY2FyZHMgcGVuZGluZyBkYXRhIGluIHRoZSBy ZWNlaXZlIGJ1ZmZlcnMuCi0gW0hpZ2hdIERNQS1mcm9tLXN0YWNrIHZ1bG5lcmFiaWxpdGllcyBi eSBhbGxvY2F0aW5nIGJ1ZmZlcnMgb24gdGhlIHN0YWNrIGFuZCBwYXNzaW5nIHRoZW0gdG8gcmVn bWFwIGJ1bGsgb3BlcmF0aW9ucy4KLSBbTWVkaXVtXSBTTUJ1cyBzbGF2ZSByZWdpc3RyYXRpb24g Y29uZmlndXJlcyBJQkkgd2l0aG91dCB2ZXJpZnlpbmcgaWYgdGhlIHVwc3RyZWFtIGNvbm5lY3Rp b24gaXMgSTNDLgotIFtNZWRpdW1dIE1pc3NpbmcgU01CdXMgYWdlbnQgc3RhdHVzIGNsZWFyIGZv ciB1bnJlZ2lzdGVyZWQgcG9ydHMgbGVhZHMgdG8gSUJJIHN0b3Jtcy4KLSBbTWVkaXVtXSBMb2Nr bGVzcyByZWFkIG9mIGBpc19yZWdpc3RlcmVkYCBpbiB0aGUgSUJJIGhhbmRsZXIgcmFjZXMgd2l0 aCBsb2NrbGVzcyB3cml0ZSBkdXJpbmcgU01CdXMgYWRhcHRlciB0ZWFyZG93bi4KLS0KCmNvbW1p dCA0YmFkYjgzZDdmNGZlMDc0MzM0ODA4ZjNkNTU1ZWMyNmU3OTIzNjA0CkF1dGhvcjogTGFrc2hh eSBQaXBsYW5pIDxsYWtzaGF5LnBpcGxhbmlAbnhwLmNvbT4KCmkzYzogaHViOiBwM2gyeDR4OiBB ZGQgU01CdXMgc2xhdmUgbW9kZSBzdXBwb3J0CgpUaGlzIGNvbW1pdCBhZGRzIFNNQnVzIHNsYXZl IG1vZGUgc3VwcG9ydCBmb3IgdGhlIFAzSDJ4NHggaHViIHRhcmdldCBwb3J0cy4KVGhlIGh1YiBT TUJ1cyBzbGF2ZSBhZ2VudCBjYW4gcmVjZWl2ZSBkb3duc3RyZWFtIHBheWxvYWRzIGludG8gdGFy Z2V0IGJ1ZmZlcnMKYW5kIHJlcG9ydCByZWNlaXZlIGV2ZW50cyB0aHJvdWdoIElCSSwgd2hpY2gg YXJlIHRoZW4gZm9yd2FyZGVkIHRvIHRoZQpyZWdpc3RlcmVkIEkyQyBzbGF2ZSBjbGllbnQuCgo+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2kzYy9odWIvcDNoMjg0MF9pM2NfaHViX2kzYy5jIGIvZHJp dmVycy9pM2MvaHViL3AzaDI4NDBfaTNjX2h1Yl9pM2MuYwo+IC0tLSBhL2RyaXZlcnMvaTNjL2h1 Yi9wM2gyODQwX2kzY19odWJfaTNjLmMKPiArKysgYi9kcml2ZXJzL2kzYy9odWIvcDNoMjg0MF9p M2NfaHViX2kzYy5jCgpbIC4uLiBdCgo+IEBAIC0xMTcsNSArMTM1LDI1IEBAIGludCBwM2gyeDR4 X3RwX2kzY19hbGdvKHN0cnVjdCBwM2gyeDR4X2kzY19odWJfZGV2ICpwM2gyeDR4X2h1YikKPiAg CQlwM2gyeDR4X2h1Yi0+dHBfYnVzW3RwXS5pc19yZWdpc3RlcmVkID0gdHJ1ZTsKPiAgCQlwM2gy eDR4X2h1Yi0+aHViX2NvbmZpZy50cF9jb25maWdbdHBdLmFsd2F5c19lbmFibGUgPSB0cnVlOwo+ ICAJfQo+IC0JcmV0dXJuIHJlZ21hcF93cml0ZShwM2gyeDR4X2h1Yi0+cmVnbWFwLCBQM0gyWDRY X1RQX05FVF9DT05fQ09ORiwgbnR3a19tYXNrKTsKPiArI2lmIElTX0VOQUJMRUQoQ09ORklHX0ky Q19TTEFWRSkKPiArCXJldCA9IGkzY19kZXZpY2VfcmVxdWVzdF9pYmkocDNoMng0eF9odWItPmkz Y2RldiwgJnAzaDJ4NHhfaWJpcmVxKTsKPiArCWlmIChyZXQpCj4gKwkJcmV0dXJuIHJldDsKCltT ZXZlcml0eTogSGlnaF0KQ291bGQgdGhpcyB1bmNvbmRpdGlvbmFsIElCSSByZXF1ZXN0IGNhdXNl IHRoZSBwcm9iZSB0byBmYWlsIGVudGlyZWx5IGlmIHRoZQp1cHN0cmVhbSBJM0MgbWFzdGVyIGNv bnRyb2xsZXIgZG9lcyBub3Qgc3VwcG9ydCBJbi1CYW5kIEludGVycnVwdHM/CgpJZiBpM2NfZGV2 aWNlX3JlcXVlc3RfaWJpKCkgcmV0dXJucyBhbiBlcnJvciBsaWtlIC1FTk9UU1VQUCwgaXQgbG9v a3MgbGlrZQppdCBhYm9ydHMgdGhlIGVudGlyZSBpbml0aWFsaXphdGlvbiBzZXF1ZW5jZSBmb3Ig dGhlIGh1Yi4gCgpEb2VzIHRoaXMgbWVhbiB0aGUgY29yZSBJM0MvSTJDIHRhcmdldCBwb3J0IHJv dXRpbmcgZnVuY3Rpb25hbGl0eSB3b3VsZCBicmVhawpvbiBzeXN0ZW1zIHdpdGhvdXQgSUJJIHN1 cHBvcnQgbWVyZWx5IGJlY2F1c2UgYW4gb3B0aW9uYWwgU01CdXMgc2xhdmUgZmVhdHVyZQpjb3Vs ZCBub3QgYmUgZW5hYmxlZD8KClsgLi4uIF0KCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvaTNjL2h1 Yi9wM2gyODQwX2kzY19odWJfc21idXMuYyBiL2RyaXZlcnMvaTNjL2h1Yi9wM2gyODQwX2kzY19o dWJfc21idXMuYwo+IC0tLSBhL2RyaXZlcnMvaTNjL2h1Yi9wM2gyODQwX2kzY19odWJfc21idXMu Ywo+ICsrKyBiL2RyaXZlcnMvaTNjL2h1Yi9wM2gyODQwX2kzY19odWJfc21idXMuYwoKWyAuLi4g XQoKPiBAQCAtMTUsNiArMTUsMTQ2IEBAIGVudW0gcDNoMng0eF9zbWJ1c19kZXNjX2lkeCB7Cj4g IAlQM0gyWDRYX0RFU0NfUkVBRF9MRU4sCj4gIH07Cj4gIAo+ICsjaWYgSVNfRU5BQkxFRChDT05G SUdfSTJDX1NMQVZFKQo+ICtzdGF0aWMgdm9pZCBwM2gyeDR4X3JlYWRfc21idXNfYWdlbnRfcnhf YnVmKHN0cnVjdCBpM2NfZGV2aWNlICppM2NkZXYsIGVudW0gcDNoMng0eF9yY3ZfYnVmIHJmYnVm LAo+ICsJCQkJCSAgICBlbnVtIHAzaDJ4NHhfdHAgdHAsIGJvb2wgaXNfb2YpCj4gK3sKPiArCXN0 cnVjdCBwM2gyeDR4X2kzY19odWJfZGV2ICpwM2gyeDR4X2kzY19odWIgPSBpM2NkZXZfZ2V0X2Ry dmRhdGEoaTNjZGV2KTsKPiArCXU4IHNsYXZlX3J4X2J1ZmZlcltQM0gyWDRYX1NNQlVTX1RBUkdF VF9QQVlMT0FEX1NJWkVdID0geyAwIH07Cj4gKwl1OCB0YXJnZXRfYnVmZmVyX3BhZ2UsIGZsYWdf Y2xlYXIgPSAweDBmLCB0ZW1wID0gMCwgaSwgYWRkcjsKCltTZXZlcml0eTogSGlnaF0KVGhpcyBp c24ndCBhIGJ1ZyBzdHJpY3RseSBpbnRyb2R1Y2VkIGJ5IHRoaXMgcGF0Y2gsIGFzIGEgc2ltaWxh ciBwcmVleGlzdGluZwpmbGF3IGV4aXN0cyBpbiBwM2gyeDR4X3RwX2kyY194ZmVyX21zZygpIHdp dGggdGhlIGRlc2MgYXJyYXksIGJ1dCBhbGxvY2F0aW5nCnNsYXZlX3J4X2J1ZmZlciBvbiB0aGUg c3RhY2sgYW5kIHBhc3NpbmcgaXQgdG8gcmVnbWFwIGJ1bGsgb3BlcmF0aW9ucyBjYW4KY2F1c2Ug RE1BLWZyb20tc3RhY2sgdnVsbmVyYWJpbGl0aWVzLgoKQmVjYXVzZSB0aGUgdW5kZXJseWluZyBy ZWdtYXAgaXMgYmFja2VkIGJ5IGFuIEkzQyBjb250cm9sbGVyIHRoYXQgbWF5IHVzZSBETUEKZm9y IHRyYW5zZmVycywgcGFzc2luZyBzdGFjayBhZGRyZXNzZXMgaXMgdW5zYWZlLgoKSWYgQ09ORklH X1ZNQVBfU1RBQ0sgaXMgZW5hYmxlZCwgdGhlIHN0YWNrIG1lbW9yeSBpcyBub3QgZ3VhcmFudGVl ZCB0byBiZQpwaHlzaWNhbGx5IGNvbnRpZ3VvdXMsIHdoaWNoIGNvdWxkIGNhdXNlIGRtYV9tYXBf c2luZ2xlKCkgdG8gZmFpbCBvciBjb3JydXB0Cm1lbW9yeS4KClNob3VsZCB0aGVzZSBidWZmZXJz IGJlIGR5bmFtaWNhbGx5IGFsbG9jYXRlZCBvciBwcmUtYWxsb2NhdGVkIGluIHRoZSBkZXZpY2UK c3RydWN0dXJlIGluc3RlYWQ/Cgo+ICsJdTMyIHBhY2tldF9sZW4sIHNsYXZlX2FkZHJlc3MsIHJl dDsKClsgLi4uIF0KCj4gK2liaV9lcnI6Cj4gKwlyZWdtYXBfd3JpdGUocDNoMng0eF9pM2NfaHVi LT5yZWdtYXAsIFAzSDJYNFhfUEFHRV9QVFIsIDB4MDApOwo+ICsJcmVnbWFwX3dyaXRlKHAzaDJ4 NHhfaTNjX2h1Yi0+cmVnbWFwLCBQM0gyWDRYX1RQMF9TTUJVU19BR05UX1NUUyArIHRwLCBmbGFn X2NsZWFyKTsKPiArfQoKW1NldmVyaXR5OiBIaWdoXQpDb3VsZCB0aGlzIG92ZXItY2xlYXIgdGhl IGJ1ZmZlciBzdGF0dXMgZmxhZ3Mgb24gZXJyb3IgcGF0aHMgYW5kIGRpc2NhcmQKcGVuZGluZyBk YXRhPwoKVGhlIGxvY2FsIHZhcmlhYmxlIGZsYWdfY2xlYXIgaXMgaW5pdGlhbGl6ZWQgdG8gMHgw Ziwgd2hpY2ggbWF0Y2hlcwpCVUZfUkVDRUlWRURfRkxBR19URl9NQVNLLgoKSWYgYW4gZWFybHkg ZXJyb3Igb2NjdXJzIGJlZm9yZSBmbGFnX2NsZWFyIGlzIGNvbnN0cmFpbmVkIHRvIHRoZSBzcGVj aWZpYyBwb3J0CmJ1ZmZlciBmbGFnLCBpdCB3aWxsIHdyaXRlIDB4MGYgdG8gdGhlIHN0YXR1cyBy ZWdpc3Rlci4KCldpbGwgdGhpcyB1bmNvbmRpdGlvbmFsbHkgY2xlYXIgYWxsIHJlY2VpdmUgYnVm ZmVyIGZsYWdzLCBpbmNsdWRpbmcgYnVmZmVyIDAsCmJ1ZmZlciAxLCBhbmQgb3ZlcmZsb3cgZmxh Z3MsIGZvciB0aGF0IHBvcnQ/IElmIHRoZSBvdGhlciBidWZmZXIgY29udGFpbmVkIGEKdmFsaWQg cGVuZGluZyBtZXNzYWdlLCB3b3VsZCBpdCBiZSBzaWxlbnRseSBkcm9wcGVkPwoKPiArCj4gKy8q Kgo+ICsgKiBwM2gyeDR4X2liaV9oYW5kbGVyIC0gSUJJIGhhbmRsZXIuCj4gKyAqIEBpM2NkZXY6 IGkzYyBkZXZpY2UuCj4gKyAqIEBwYXlsb2FkOiB0d28gYnl0ZSBJQkkgcGF5bG9hZCBkYXRhLgo+ ICsgKgo+ICsgKi8KPiArdm9pZCBwM2gyeDR4X2liaV9oYW5kbGVyKHN0cnVjdCBpM2NfZGV2aWNl ICppM2NkZXYsCj4gKwkJCSBjb25zdCBzdHJ1Y3QgaTNjX2liaV9wYXlsb2FkICpwYXlsb2FkKQo+ ICt7CgpbIC4uLiBdCgo+ICsJZ3VhcmQobXV0ZXgpKCZwM2gyeDR4X2kzY19odWItPmV0eF9tdXRl eCk7Cj4gKwo+ICsJZm9yIChpID0gMDsgaSA8IFAzSDJYNFhfVFBfTUFYX0NPVU5UOyArK2kpIHsK PiArCQlpZiAocDNoMng0eF9pM2NfaHViLT50cF9idXNbaV0uaXNfcmVnaXN0ZXJlZCAmJiAocGF5 bG9hZF9ieXRlX3R3byA+PiBpKSAmIDB4MDEpIHsKCltTZXZlcml0eTogTWVkaXVtXQpXaGF0IGhh cHBlbnMgaWYgYW4gSUJJIGlzIHRyaWdnZXJlZCBieSBhIHBvcnQgdGhhdCBpcyBub3QgcmVnaXN0 ZXJlZD8KClNpbmNlIHRoZSBsb29wIHNraXBzIHVucmVnaXN0ZXJlZCBwb3J0cyBlbnRpcmVseSwg dGhlIGhhcmR3YXJlIGludGVycnVwdCBzb3VyY2UKYXQgUDNIMlg0WF9UUDBfU01CVVNfQUdOVF9T VFMgaXMgbmV2ZXIgcmVhZCBvciBjbGVhcmVkLgoKRG9lcyB0aGlzIG1lYW4gdGhlIHVuZGVybHlp bmcgaGFyZHdhcmUgY29uZGl0aW9uIHJlbWFpbnMgYWN0aXZlLCBjYXVzaW5nIHRoZQpodWIgdG8g aW1tZWRpYXRlbHkgcmUtYXNzZXJ0IHRoZSBJQkkgYWZ0ZXIgdGhlIGhhbmRsZXIgcmV0dXJucz8K CkNvdWxkIHRoaXMgcmVzdWx0IGluIGFuIGluZmluaXRlIGxvb3Agb2YgSUJJcyBsb2NraW5nIHVw IHRoZSBJM0MgYnVzLCBhbmQKc2hvdWxkIHRoZSBldmVudCBzdGF0dXMgYmUgY2xlYXJlZCBkZWZl bnNpdmVseSBldmVuIGZvciB1bnJlZ2lzdGVyZWQgcG9ydHM/CgpbU2V2ZXJpdHk6IE1lZGl1bV0K SXMgdGhlcmUgYSBkYXRhIHJhY2UgaGVyZSBpbnZvbHZpbmcgdGhlIHJlYWQgb2YgaXNfcmVnaXN0 ZXJlZD8KCkR1cmluZyBkcml2ZXIgdW5iaW5kIG9yIHByb2JlIGZhaWx1cmUsIHAzaDJ4NHhfdW5y ZWdpc3Rlcl9zbWJ1c19hZGFwdGVycygpCmV4ZWN1dGVzIGh1Yi0+dHBfYnVzW3RwXS5pc19yZWdp c3RlcmVkID0gZmFsc2U7IHdpdGhvdXQgaG9sZGluZyBldHhfbXV0ZXguCgpCZWNhdXNlIHRoZSBk ZXZtIGFjdGlvbiB0byBmcmVlIHRoZSBJQkkgZXhlY3V0ZXMgYWZ0ZXIgdGhlIFNNQnVzIHRlYXJk b3duCmFjdGlvbiwgdGhpcyBuZXcgaGFuZGxlciBjb3VsZCBiZSBydW5uaW5nIGNvbmN1cnJlbnRs eSBhbmQgcmVhZGluZwppc19yZWdpc3RlcmVkIHVuZGVyIGV0eF9tdXRleC4KClNpbmNlIHRoZSB3 cml0ZXIgZG9lcyBub3QgaG9sZCB0aGUgbXV0ZXgsIHNob3VsZCB0aGlzIHN0YXRlIG1vZGlmaWNh dGlvbiBiZQpwcm9wZXJseSBzeW5jaHJvbml6ZWQ/Cgo+ICsJCQlyZXQgPSByZWdtYXBfcmVhZChw M2gyeDR4X2kzY19odWItPnJlZ21hcCwgUDNIMlg0WF9UUDBfU01CVVNfQUdOVF9TVFMgKyBpLAoK WyAuLi4gXQoKPiBAQCAtMjA1LDExICszNDUsNjQgQEAgc3RhdGljIHUzMiBwM2gyeDR4X3RwX3Nt YnVzX2Z1bmNzKHN0cnVjdCBpMmNfYWRhcHRlciAqYWRhcHRlcikKPiAgCXJldHVybiBJMkNfRlVO Q19JMkMgfCBJMkNfRlVOQ19TTUJVU19CTE9DS19EQVRBOwo+ICB9Cj4gIAo+ICsjaWYgSVNfRU5B QkxFRChDT05GSUdfSTJDX1NMQVZFKQo+ICtzdGF0aWMgaW50IHAzaDJ4NHhfdHBfaTJjX3JlZ19z bGF2ZShzdHJ1Y3QgaTJjX2NsaWVudCAqc2xhdmUpCj4gK3sKPiArCXN0cnVjdCB0cF9idXMgKmJ1 cyA9IGkyY19nZXRfYWRhcGRhdGEoc2xhdmUtPmFkYXB0ZXIpOwo+ICsJc3RydWN0IHAzaDJ4NHhf aTNjX2h1Yl9kZXYgKmh1YiA9IGJ1cy0+cDNoMng0eF9pM2NfaHViOwo+ICsJaW50IHJldDsKPiAr Cj4gKwlndWFyZChtdXRleCkoJmh1Yi0+ZXR4X211dGV4KTsKPiArCj4gKwlpZiAoYnVzLT50cF9z bWJ1c19jbGllbnQpCj4gKwkJcmV0dXJuIC1FQlVTWTsKPiArCj4gKwlyZXQgPSByZWdtYXBfc2V0 X2JpdHMoaHViLT5yZWdtYXAsCj4gKwkJCSAgICAgIFAzSDJYNFhfVFBfU01CVVNfQUdOVF9JQklf Q09ORklHLAo+ICsJCQkgICAgICBidXMtPnRwX21hc2spOwoKW1NldmVyaXR5OiBNZWRpdW1dCkRv ZXMgdGhpcyBjb25maWd1cmUgSUJJIHdpdGhvdXQgdmVyaWZ5aW5nIGlmIHRoZSB1cHN0cmVhbSBj b25uZWN0aW9uIGlzIEkzQz8KClRoZSByZWdpc3RyYXRpb24gZW5hYmxlcyBQM0gyWDRYX1RQX1NN QlVTX0FHTlRfSUJJX0NPTkZJRyB0byByb3V0ZSByZWNlaXZlCmV2ZW50cyB2aWEgSUJJLiBIb3dl dmVyLCBpdCBkb2VzIG5vdCBjaGVjayBpZiB0aGUgaHViIGlzIGNvbm5lY3RlZCB2aWEgYW4gSTND CmJ1cyAoaS5lLiwgd2hldGhlciBodWItPmkzY2RldiBpcyB2YWxpZCBhbmQgYW4gSUJJIGhhbmRs ZXIgd2FzIHN1Y2Nlc3NmdWxseQpyZXF1ZXN0ZWQpLgoKSWYgdGhlIGh1YiBpcyBjb25uZWN0ZWQg dmlhIGFuIEkyQyB1cHN0cmVhbSBidXMsIGl0IGNhbm5vdCBnZW5lcmF0ZSBJQklzLgpFbmFibGlu ZyBJQkkgZ2VuZXJhdGlvbiBvbiBhbiBJMkMtY29ubmVjdGVkIGh1YiB3b3VsZCBjYXVzZSBzbGF2 ZSByZWNlaXZlCmV2ZW50cyB0byBiZSBzaWxlbnRseSBkcm9wcGVkIHNpbmNlIG5vIGhhbmRsZXIg aXMgcmVnaXN0ZXJlZC4KClNob3VsZCB0aGlzIGZ1bmN0aW9uIHJldHVybiAtRU9QTk9UU1VQUCBp ZiAhaHViLT5pM2NkZXY/Cgo+ICsJaWYgKHJldCkKPiArCQlyZXR1cm4gcmV0OwoKLS0gClNhc2hp a28gQUkgcmV2aWV3IMK3IGh0dHBzOi8vc2FzaGlrby5kZXYvIy9wYXRjaHNldC8yMDI2MDYxNzEx MDM1NS4xNTkxODQ0LTEtbGFrc2hheS5waXBsYW5pQG54cC5jb20/cGFydD03CgotLSAKbGludXgt aTNjIG1haWxpbmcgbGlzdApsaW51eC1pM2NAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlz dHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWkzYwo= From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-alma10-1.taild15c8.ts.net [100.103.45.18]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 73E883F4DCA for ; Wed, 17 Jun 2026 11:24:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=100.103.45.18 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781695452; cv=none; b=K0At0Iz3bJt1BAiH6O6pATwdpR3bWgrvEAH9h9aTql+C561VtiuHyv8eDFrlnVXqHEFwYZJgCSdZO7oip8GNBS7hrFG3PQsg0YoC69Bg3Qlbc2zcKYxBEvDFZwhPQMduDI9OulJ8dPyzTKGTCYjI6wFUBSUKz7fyDY8bbODR8uM= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781695452; c=relaxed/simple; bh=zYAtaTMA4z9/HpMPf9VKERGrjsAPBGPy/VySfhkFzyI=; h=From:Subject:To:Cc:In-Reply-To:References:Content-Type:Date: Message-Id; b=MGbtlZBav07MicdsfWIFOZ9/z18U19jA+29ezPQA0wLJfUXtmC19gii2z9GkcGucxLF8eZGAa82hml8ytYtNbANfHgSRpAG2cXVs9yNKxRwXL/Ok7Vas9S4dpfpwyyF8krnLeWlKnab5SkM/TvLxIM/YX7M2exKTceoAgT37kvc= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=NLDe4zRm; arc=none smtp.client-ip=100.103.45.18 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="NLDe4zRm" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8D2DB1F0156D; Wed, 17 Jun 2026 11:24:04 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1781695445; bh=1GqKDiifPoS5JBbx/0LyqR8zvsDknb4g0B97x2ss29M=; h=From:Subject:Reply-To:To:Cc:In-Reply-To:References:Date; b=NLDe4zRmcGEkicRquX2aePUurgczhyu2hAlt30OQYkwgLZKy6+mCXQ7XiiHGxgjHp nG5lLxq7/wtx9mCR+KTlqgS8kV7+gC2jB7JVYvstH3yPmamkLCXVlmZM67/3SWl5oB CdYYpHl9u1wqdONH+2BK5DW1XTMh8hXC2jiFAsNbWrs+Paa7c7aMo5YHKARgcJI756 o7lCFqmDJAP9rhlIncJTMvglEsYvUDoOaf+7QjLpb52PwFk8tYe4xRmDbcArfAjuzx ZuPXgECTkeLi9aSBGtMU06RsnE7Vj+Sxd/DjLZl7/5CpWAptw6ohcMmhpA8uMs3jQW bWc23Bu8V41NQ== From: sashiko-bot@kernel.org Subject: Re: [PATCH v12 7/7] i3c: hub: p3h2x4x: Add SMBus slave mode support Reply-To: sashiko-reviews@lists.linux.dev To: "Lakshay Piplani" Cc: linux-i3c@lists.infradead.org, Frank.Li@kernel.org, robh@kernel.org, conor+dt@kernel.org, devicetree@vger.kernel.org In-Reply-To: <20260617110355.1591844-8-lakshay.piplani@nxp.com> References: <20260617110355.1591844-1-lakshay.piplani@nxp.com> <20260617110355.1591844-8-lakshay.piplani@nxp.com> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Date: Wed, 17 Jun 2026 11:24:04 +0000 Message-Id: <20260617112404.8D2DB1F0156D@smtp.kernel.org> Precedence: bulk X-Mailing-List: devicetree@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Thank you for your contribution! Sashiko AI review found 6 potential issue(= s) to consider: - [High] Unconditional IBI request causes probe failure if the upstream I3C= controller lacks IBI support. - [High] Over-clearing buffer status flags on error paths discards pending = data in the receive buffers. - [High] DMA-from-stack vulnerabilities by allocating buffers on the stack = and passing them to regmap bulk operations. - [Medium] SMBus slave registration configures IBI without verifying if the= upstream connection is I3C. - [Medium] Missing SMBus agent status clear for unregistered ports leads to= IBI storms. - [Medium] Lockless read of `is_registered` in the IBI handler races with l= ockless write during SMBus adapter teardown. -- commit 4badb83d7f4fe074334808f3d555ec26e7923604 Author: Lakshay Piplani i3c: hub: p3h2x4x: Add SMBus slave mode support This commit adds SMBus slave mode support for the P3H2x4x hub target ports. The hub SMBus slave agent can receive downstream payloads into target buffe= rs and report receive events through IBI, which are then forwarded to the registered I2C slave client. > diff --git a/drivers/i3c/hub/p3h2840_i3c_hub_i3c.c b/drivers/i3c/hub/p3h2= 840_i3c_hub_i3c.c > --- a/drivers/i3c/hub/p3h2840_i3c_hub_i3c.c > +++ b/drivers/i3c/hub/p3h2840_i3c_hub_i3c.c [ ... ] > @@ -117,5 +135,25 @@ int p3h2x4x_tp_i3c_algo(struct p3h2x4x_i3c_hub_dev *= p3h2x4x_hub) > p3h2x4x_hub->tp_bus[tp].is_registered =3D true; > p3h2x4x_hub->hub_config.tp_config[tp].always_enable =3D true; > } > - return regmap_write(p3h2x4x_hub->regmap, P3H2X4X_TP_NET_CON_CONF, ntwk_= mask); > +#if IS_ENABLED(CONFIG_I2C_SLAVE) > + ret =3D i3c_device_request_ibi(p3h2x4x_hub->i3cdev, &p3h2x4x_ibireq); > + if (ret) > + return ret; [Severity: High] Could this unconditional IBI request cause the probe to fail entirely if the upstream I3C master controller does not support In-Band Interrupts? If i3c_device_request_ibi() returns an error like -ENOTSUPP, it looks like it aborts the entire initialization sequence for the hub.=20 Does this mean the core I3C/I2C target port routing functionality would bre= ak on systems without IBI support merely because an optional SMBus slave featu= re could not be enabled? [ ... ] > diff --git a/drivers/i3c/hub/p3h2840_i3c_hub_smbus.c b/drivers/i3c/hub/p3= h2840_i3c_hub_smbus.c > --- a/drivers/i3c/hub/p3h2840_i3c_hub_smbus.c > +++ b/drivers/i3c/hub/p3h2840_i3c_hub_smbus.c [ ... ] > @@ -15,6 +15,146 @@ enum p3h2x4x_smbus_desc_idx { > P3H2X4X_DESC_READ_LEN, > }; > =20 > +#if IS_ENABLED(CONFIG_I2C_SLAVE) > +static void p3h2x4x_read_smbus_agent_rx_buf(struct i3c_device *i3cdev, e= num p3h2x4x_rcv_buf rfbuf, > + enum p3h2x4x_tp tp, bool is_of) > +{ > + struct p3h2x4x_i3c_hub_dev *p3h2x4x_i3c_hub =3D i3cdev_get_drvdata(i3cd= ev); > + u8 slave_rx_buffer[P3H2X4X_SMBUS_TARGET_PAYLOAD_SIZE] =3D { 0 }; > + u8 target_buffer_page, flag_clear =3D 0x0f, temp =3D 0, i, addr; [Severity: High] This isn't a bug strictly introduced by this patch, as a similar preexisting flaw exists in p3h2x4x_tp_i2c_xfer_msg() with the desc array, but allocating slave_rx_buffer on the stack and passing it to regmap bulk operations can cause DMA-from-stack vulnerabilities. Because the underlying regmap is backed by an I3C controller that may use D= MA for transfers, passing stack addresses is unsafe. If CONFIG_VMAP_STACK is enabled, the stack memory is not guaranteed to be physically contiguous, which could cause dma_map_single() to fail or corrupt memory. Should these buffers be dynamically allocated or pre-allocated in the device structure instead? > + u32 packet_len, slave_address, ret; [ ... ] > +ibi_err: > + regmap_write(p3h2x4x_i3c_hub->regmap, P3H2X4X_PAGE_PTR, 0x00); > + regmap_write(p3h2x4x_i3c_hub->regmap, P3H2X4X_TP0_SMBUS_AGNT_STS + tp, = flag_clear); > +} [Severity: High] Could this over-clear the buffer status flags on error paths and discard pending data? The local variable flag_clear is initialized to 0x0f, which matches BUF_RECEIVED_FLAG_TF_MASK. If an early error occurs before flag_clear is constrained to the specific p= ort buffer flag, it will write 0x0f to the status register. Will this unconditionally clear all receive buffer flags, including buffer = 0, buffer 1, and overflow flags, for that port? If the other buffer contained a valid pending message, would it be silently dropped? > + > +/** > + * p3h2x4x_ibi_handler - IBI handler. > + * @i3cdev: i3c device. > + * @payload: two byte IBI payload data. > + * > + */ > +void p3h2x4x_ibi_handler(struct i3c_device *i3cdev, > + const struct i3c_ibi_payload *payload) > +{ [ ... ] > + guard(mutex)(&p3h2x4x_i3c_hub->etx_mutex); > + > + for (i =3D 0; i < P3H2X4X_TP_MAX_COUNT; ++i) { > + if (p3h2x4x_i3c_hub->tp_bus[i].is_registered && (payload_byte_two >> i= ) & 0x01) { [Severity: Medium] What happens if an IBI is triggered by a port that is not registered? Since the loop skips unregistered ports entirely, the hardware interrupt so= urce at P3H2X4X_TP0_SMBUS_AGNT_STS is never read or cleared. Does this mean the underlying hardware condition remains active, causing the hub to immediately re-assert the IBI after the handler returns? Could this result in an infinite loop of IBIs locking up the I3C bus, and should the event status be cleared defensively even for unregistered ports? [Severity: Medium] Is there a data race here involving the read of is_registered? During driver unbind or probe failure, p3h2x4x_unregister_smbus_adapters() executes hub->tp_bus[tp].is_registered =3D false; without holding etx_mutex. Because the devm action to free the IBI executes after the SMBus teardown action, this new handler could be running concurrently and reading is_registered under etx_mutex. Since the writer does not hold the mutex, should this state modification be properly synchronized? > + ret =3D regmap_read(p3h2x4x_i3c_hub->regmap, P3H2X4X_TP0_SMBUS_AGNT_S= TS + i, [ ... ] > @@ -205,11 +345,64 @@ static u32 p3h2x4x_tp_smbus_funcs(struct i2c_adapte= r *adapter) > return I2C_FUNC_I2C | I2C_FUNC_SMBUS_BLOCK_DATA; > } > =20 > +#if IS_ENABLED(CONFIG_I2C_SLAVE) > +static int p3h2x4x_tp_i2c_reg_slave(struct i2c_client *slave) > +{ > + struct tp_bus *bus =3D i2c_get_adapdata(slave->adapter); > + struct p3h2x4x_i3c_hub_dev *hub =3D bus->p3h2x4x_i3c_hub; > + int ret; > + > + guard(mutex)(&hub->etx_mutex); > + > + if (bus->tp_smbus_client) > + return -EBUSY; > + > + ret =3D regmap_set_bits(hub->regmap, > + P3H2X4X_TP_SMBUS_AGNT_IBI_CONFIG, > + bus->tp_mask); [Severity: Medium] Does this configure IBI without verifying if the upstream connection is I3C? The registration enables P3H2X4X_TP_SMBUS_AGNT_IBI_CONFIG to route receive events via IBI. However, it does not check if the hub is connected via an I= 3C bus (i.e., whether hub->i3cdev is valid and an IBI handler was successfully requested). If the hub is connected via an I2C upstream bus, it cannot generate IBIs. Enabling IBI generation on an I2C-connected hub would cause slave receive events to be silently dropped since no handler is registered. Should this function return -EOPNOTSUPP if !hub->i3cdev? > + if (ret) > + return ret; --=20 Sashiko AI review =C2=B7 https://sashiko.dev/#/patchset/20260617110355.1591= 844-1-lakshay.piplani@nxp.com?part=3D7