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 52B8AC43458 for ; Wed, 1 Jul 2026 07:22:34 +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=+dP+xFXrfNbbcZI+l+5W7OC8aVWvkJXrMkP+BkCc+XM=; b=XREpHtWYFZ/GQr yFkDZy+ADGSPOSe0J3tJ38/IT4bGKZyweg7eeJwW23hdSTdDSweOvKGnw+512Yze9ow4zU07+HjBk tHYCozwjrF371OTB2LMWbQ31WtxUC9PGKjpXcFH+12CJYKzilvrcl2eP1esnWA4rZYAglPV/74Cj2 dAeUxzZ5iQ9L3kzh43/n6AHuWRsvp8zVPcGKWAyV13c7gMnFjKVutDZsfIp60InDhplDQTlFD7UAX d4SlL6VU3Mc65X/nuu3zxT/uOxPpvj6ManwWtt3rflFEFuhRvHGmWtoxVVLTrMQpXsa4CyB5BaPcW DT3kYOWn0smC5cdFw1UQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1wepHG-00000000tGm-0IPn; Wed, 01 Jul 2026 07:22:34 +0000 Received: from tor.source.kernel.org ([2600:3c04:e001:324:0:1991:8:25]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1wepHE-00000000tGe-1GPd for linux-i3c@lists.infradead.org; Wed, 01 Jul 2026 07:22:32 +0000 Received: from smtp.kernel.org (quasi.space.kernel.org [100.103.45.18]) by tor.source.kernel.org (Postfix) with ESMTP id A94276001D; Wed, 1 Jul 2026 07:22:31 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id F06F81F000E9; Wed, 1 Jul 2026 07:22:30 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1782890551; bh=0rPWLZ4hP6kj5Ck76jfvaSBbSH60lUpNKw6hJ2CR/Sk=; h=From:Subject:Reply-To:To:Cc:In-Reply-To:References:Date; b=l+AcYtxAT7WMpsmy7r8cDvMR1PW3y32uBekiYdlTL3/oP0uRPNHEOUoS6cBztx33y aRm4OWvIZt3SB24oBuaKk72uDrR2sIgKwXrwfS3l+CCNofB5gATErWcm1fF4yF3pNl tBSohVijP8XJXiZmC7jZUyFnCBhIZw9eNW4oTUnpSqOBqlV/LR+Kr+uGakzBuGfaFG L3S7MDQSHoubwKoJIayzeraBaxHWp365WAzKnHnG0i1rl/uANzfE++QEn/Q3e/Txf3 h3otE+2ZUt/D67ZcwXBQQYFznFCWQyyUKJY6g1gzITusqwhdBjy6Bh8EPQIBuvkzXX nDuVZPoJpe7HQ== From: sashiko-bot@kernel.org Subject: Re: [PATCH v13 1/7] i3c: master: Add APIs for I3C hub support To: "Lakshay Piplani" Cc: robh@kernel.org, Frank.Li@kernel.org, conor+dt@kernel.org, linux-i3c@lists.infradead.org, "Alexandre Belloni" , devicetree@vger.kernel.org In-Reply-To: <20260701065755.2067793-2-lakshay.piplani@nxp.com> References: <20260701065755.2067793-1-lakshay.piplani@nxp.com> <20260701065755.2067793-2-lakshay.piplani@nxp.com> Date: Wed, 01 Jul 2026 07:22:30 +0000 Message-Id: <20260701072230.F06F81F000E9@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 MiBwb3RlbnRpYWwgaXNzdWUocykgdG8gY29uc2lkZXI6Ci0gW0hpZ2hdIEV4cG9ydGVkIEFQSXMg aW50ZXJhY3Qgd2l0aCBjb250cm9sbGVyIGhhcmR3YXJlIHdpdGhvdXQgdGFraW5nIGEgUnVudGlt ZSBQTSByZWZlcmVuY2UuCi0gW01lZGl1bV0gYGkzY19tYXN0ZXJfc3VwcG9ydHNfY2NjX2NtZGAg aW5jb3JyZWN0bHkgcmV0dXJucyB0cnVlIGZvciBtYXN0ZXJzIHRoYXQgZG8gbm90IGltcGxlbWVu dCBDQ0MgY29tbWFuZCBzZW5kaW5nLgotLQoKY29tbWl0IGI1NTc5ZGM0OWJlZmZlMDRlMzQ5OGZj ZmIyOTAzNzJlNzRiZDg4ZjAKQXV0aG9yOiBBbWFuIEt1bWFyIFBhbmRleSA8YW1hbi5rdW1hcnBh bmRleUBueHAuY29tPgoKaTNjOiBtYXN0ZXI6IEFkZCBBUElzIGZvciBJM0MgaHViIHN1cHBvcnQK ClRoaXMgY29tbWl0IGFkZHMgaGVscGVyIGZ1bmN0aW9ucyBmb3IgYXR0YWNoaW5nIGFuZCBkZXRh Y2hpbmcgSTNDIGRldmljZXMsIApjaGVja2luZyBDQ0Mgc3VwcG9ydCwgc2VuZGluZyBDQ0MgY29t bWFuZHMsIGFuZCBtYW5hZ2luZyBhZGRyZXNzIHNsb3Qgc3RhdGVzLiAKVGhlc2UgYWRkaXRpb25z IHByZXBhcmUgdGhlIHN1YnN5c3RlbSBmb3IgSTNDIGh1YiBzdXBwb3J0LgoKPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9pM2MvbWFzdGVyLmMgYi9kcml2ZXJzL2kzYy9tYXN0ZXIuYwo+IGluZGV4IGYx YmUzOGE2NDBjYTEuLjNlN2I3ZjdmOTdjZmIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9pM2MvbWFz dGVyLmMKPiArKysgYi9kcml2ZXJzL2kzYy9tYXN0ZXIuYwpbIC4uLiBdCj4gQEAgLTE3NzUsNiAr MTc5MCw4MyBAQCBzdGF0aWMgaW50IGkzY19tYXN0ZXJfYXR0YWNoX2kzY19kZXYoc3RydWN0IGkz Y19tYXN0ZXJfY29udHJvbGxlciAqbWFzdGVyLAo+ICAJcmV0dXJuIDA7Cj4gIH0KPiAgCj4gKy8q Kgo+ICsgKiBpM2NfbWFzdGVyX2RpcmVjdF9hdHRhY2hfaTNjX2Rldl9sb2NrZWQoKSAtIEF0dGFj aCBhbiBJM0MgZGV2aWNlIHRvIGEgbWFzdGVyClsgLi4uIF0KPiAraW50IGkzY19tYXN0ZXJfZGly ZWN0X2F0dGFjaF9pM2NfZGV2X2xvY2tlZChzdHJ1Y3QgaTNjX21hc3Rlcl9jb250cm9sbGVyICpt YXN0ZXIsCj4gKwkJCQkJICAgIHN0cnVjdCBpM2NfZGV2X2Rlc2MgKmRldikKPiArewo+ICsJaW50 IHJldDsKPiArCj4gKwlpZiAoV0FSTl9PTihpM2NfZGV2X2dldF9tYXN0ZXIoZGV2KSAhPSBtYXN0 ZXIpKQo+ICsJCXJldHVybiAtRUlOVkFMOwo+ICsKPiArCXJldCA9IGkzY19tYXN0ZXJfZ2V0X2kz Y19hZGRycyhkZXYpOwo+ICsJaWYgKHJldCkKPiArCQlyZXR1cm4gcmV0Owo+ICsKPiArCS8qIERv IG5vdCBhdHRhY2ggdGhlIG1hc3RlciBkZXZpY2UgaXRzZWxmLiAqLwo+ICsJaWYgKG1hc3Rlci0+ dGhpcyAhPSBkZXYgJiYgbWFzdGVyLT5vcHMtPmF0dGFjaF9pM2NfZGV2KSB7Cj4gKwkJcmV0ID0g bWFzdGVyLT5vcHMtPmF0dGFjaF9pM2NfZGV2KGRldik7CgpbU2V2ZXJpdHk6IEhpZ2hdClNob3Vs ZCB0aGlzIGZ1bmN0aW9uIGNhbGwgaTNjX21hc3Rlcl9ycG1fZ2V0KCkgdG8gdGFrZSBhIHJ1bnRp bWUgUE0KcmVmZXJlbmNlIGJlZm9yZSBpbnZva2luZyB0aGUgY29udHJvbGxlcidzIGF0dGFjaF9p M2NfZGV2IGNhbGxiYWNrPwoKU2luY2UgdGhlIEkzQyBzdWJzeXN0ZW0gc2V0cyBwbV9zdXNwZW5k X2lnbm9yZV9jaGlsZHJlbigmbWFzdGVyLT5kZXYsIHRydWUpLAptYWludGFpbmluZyBhbiBhY3Rp dmUgcnVudGltZSBQTSByZWZlcmVuY2Ugb24gdGhlIGh1YiBkZXZpY2UgZG9lcyBub3QKYXV0b21h dGljYWxseSByZXN1bWUgdGhlIHBhcmVudCBjb250cm9sbGVyLiBJZiBhbiBJM0MgaHViIGNhbGxz IHRoaXMgb24gYQpwYXJlbnQgbWFzdGVyIHRoYXQgaXMgcnVudGltZSBzdXNwZW5kZWQsIGFjY2Vz c2luZyB0aGUgaGFyZHdhcmUgcmVnaXN0ZXJzCmNvdWxkIGxlYWQgdG8gYnVzIGZhdWx0cyBvciBo YW5ncy4KCj4gKwkJaWYgKHJldCkgewo+ICsJCQlpM2NfbWFzdGVyX3B1dF9pM2NfYWRkcnMoZGV2 KTsKPiArCQkJcmV0dXJuIHJldDsKPiArCQl9Cj4gKwl9Cj4gKwlyZXR1cm4gMDsKPiArfQo+ICtF WFBPUlRfU1lNQk9MX0dQTChpM2NfbWFzdGVyX2RpcmVjdF9hdHRhY2hfaTNjX2Rldl9sb2NrZWQp Owo+ICsKPiArLyoqCj4gKyAqIGkzY19tYXN0ZXJfZGlyZWN0X2RldGFjaF9pM2NfZGV2X2xvY2tl ZCgpIC0gRGV0YWNoIGFuIEkzQyBkZXZpY2UgZnJvbSBhIG1hc3RlcgpbIC4uLiBdCj4gK3ZvaWQg aTNjX21hc3Rlcl9kaXJlY3RfZGV0YWNoX2kzY19kZXZfbG9ja2VkKHN0cnVjdCBpM2NfZGV2X2Rl c2MgKmRldikKPiArewo+ICsJc3RydWN0IGkzY19tYXN0ZXJfY29udHJvbGxlciAqbWFzdGVyID0g aTNjX2Rldl9nZXRfbWFzdGVyKGRldik7Cj4gKwo+ICsJLyoKPiArCSAqIFdlIGRvbid0IGF0dGFj aCBkZXZpY2VzIHRvIHRoZSBjb250cm9sbGVyIHVudGlsIHRoZXkgYXJlCj4gKwkgKiBhZGRyZXNz YWJsZSBvbiB0aGUgYnVzLCBzbyBza2lwIGRldGFjaCBmb3IgdW5hZGRyZXNzZWQgZGV2aWNlcy4K PiArCSAqLwo+ICsJaWYgKCFkZXYtPmluZm8uc3RhdGljX2FkZHIgJiYgIWRldi0+aW5mby5keW5f YWRkcikKPiArCQlyZXR1cm47Cj4gKwo+ICsJLyogRG8gbm90IGRldGFjaCB0aGUgbWFzdGVyIGRl dmljZSBpdHNlbGYuICovCj4gKwlpZiAobWFzdGVyLT50aGlzICE9IGRldiAmJiBtYXN0ZXItPm9w cy0+ZGV0YWNoX2kzY19kZXYpCj4gKwkJbWFzdGVyLT5vcHMtPmRldGFjaF9pM2NfZGV2KGRldik7 CgpbU2V2ZXJpdHk6IEhpZ2hdClNpbWlsYXIgdG8gdGhlIGF0dGFjaCBwYXRoLCBkb2VzIHRoaXMg ZGV0YWNoIGNhbGxiYWNrIHJlcXVpcmUgdGhlIHBhcmVudAptYXN0ZXIgdG8gYmUgcmVzdW1lZD8K CklmIHRoZSBwYXJlbnQgY29udHJvbGxlciBpcyBydW50aW1lIHN1c3BlbmRlZCwgaW52b2tpbmcg ZGV0YWNoX2kzY19kZXYKd2l0aG91dCBmaXJzdCB0YWtpbmcgYSBydW50aW1lIFBNIHJlZmVyZW5j ZSBtaWdodCBhY2Nlc3Mgc3VzcGVuZGVkIGhhcmR3YXJlLgoKPiArCj4gKwlkZXYtPmNvbW1vbi5t YXN0ZXJfcHJpdiA9IE5VTEw7Cj4gKwlpM2NfbWFzdGVyX3B1dF9pM2NfYWRkcnMoZGV2KTsKPiAr fQo+ICtFWFBPUlRfU1lNQk9MX0dQTChpM2NfbWFzdGVyX2RpcmVjdF9kZXRhY2hfaTNjX2Rldl9s b2NrZWQpOwpbIC4uLiBdCj4gQEAgLTI1NDgsNiArMjY0MCw1MCBAQCBzdGF0aWMgdm9pZCBpM2Nf bWFzdGVyX3JlY29uY2lsZV9keW5fYWRkcnMoc3RydWN0IGkzY19tYXN0ZXJfY29udHJvbGxlciAq bWFzdGVyKQo+ICAJfQo+ICB9Cj4gIAo+ICsvKioKPiArICogaTNjX21hc3Rlcl9zdXBwb3J0c19j Y2NfY21kKCkgLSBjaGVjayBDQ0MgY29tbWFuZCBzdXBwb3J0ClsgLi4uIF0KPiArYm9vbCBpM2Nf bWFzdGVyX3N1cHBvcnRzX2NjY19jbWQoc3RydWN0IGkzY19tYXN0ZXJfY29udHJvbGxlciAqbWFz dGVyLAo+ICsJCQkJIGNvbnN0IHN0cnVjdCBpM2NfY2NjX2NtZCAqY21kKQo+ICt7Cj4gKwlpZiAo IW1hc3RlciB8fCAhY21kKQo+ICsJCXJldHVybiBmYWxzZTsKPiArCj4gKwlpZiAoIW1hc3Rlci0+ b3BzLT5zdXBwb3J0c19jY2NfY21kKQo+ICsJCXJldHVybiB0cnVlOwoKW1NldmVyaXR5OiBNZWRp dW1dCklzIGl0IHNhZmUgdG8gZGVmYXVsdCB0byB0cnVlIHdpdGhvdXQgdmVyaWZ5aW5nIHRoYXQg dGhlIGNvbnRyb2xsZXIKYWN0dWFsbHkgaW1wbGVtZW50cyBtYXN0ZXItPm9wcy0+c2VuZF9jY2Nf Y21kPwoKSWYgYSBjb250cm9sbGVyIGxhY2tzIHNlbmRfY2NjX2NtZCwgaXQgZG9lcyBub3Qgc3Vw cG9ydCBzZW5kaW5nIGFueSBDQ0MKY29tbWFuZHMuIFRoZSBjb3JlIHdpbGwgcmV0dXJuIC1FT1BO T1RTVVBQIGluIGkzY19tYXN0ZXJfc2VuZF9jY2NfY21kX2xvY2tlZCgpLApidXQgcmV0dXJuaW5n IHRydWUgaGVyZSBtaWdodCBjYXVzZSBhIGh1YiBjb250cm9sbGVyIHRvIGZhbHNlbHkgYWR2ZXJ0 aXNlCkNDQyBzdXBwb3J0IGZvciBpdHMgZG93bnN0cmVhbSBkZXZpY2VzLgoKPiArCj4gKwlyZXR1 cm4gbWFzdGVyLT5vcHMtPnN1cHBvcnRzX2NjY19jbWQobWFzdGVyLCBjbWQpOwo+ICt9Cj4gK0VY UE9SVF9TWU1CT0xfR1BMKGkzY19tYXN0ZXJfc3VwcG9ydHNfY2NjX2NtZCk7Cj4gKwo+ICsvKioK PiArICogaTNjX21hc3Rlcl9zZW5kX2NjY19jbWQoKSAtIHNlbmQgYSBDQ0MgY29tbWFuZApbIC4u LiBdCj4gK2ludCBpM2NfbWFzdGVyX3NlbmRfY2NjX2NtZChzdHJ1Y3QgaTNjX21hc3Rlcl9jb250 cm9sbGVyICptYXN0ZXIsCj4gKwkJCSAgICBzdHJ1Y3QgaTNjX2NjY19jbWQgKmNtZCkKPiArewo+ ICsJaW50IHJldDsKPiArCj4gKwlpM2NfYnVzX21haW50ZW5hbmNlX2xvY2soJm1hc3Rlci0+YnVz KTsKPiArCXJldCA9IGkzY19tYXN0ZXJfc2VuZF9jY2NfY21kX2xvY2tlZChtYXN0ZXIsIGNtZCk7 CgpbU2V2ZXJpdHk6IEhpZ2hdCkRvZXMgdGhpcyBmdW5jdGlvbiBuZWVkIHRvIHRha2UgYSBydW50 aW1lIFBNIHJlZmVyZW5jZSBiZWZvcmUgY2FsbGluZwppM2NfbWFzdGVyX3NlbmRfY2NjX2NtZF9s b2NrZWQoKT8KCkxpa2UgdGhlIGF0dGFjaC9kZXRhY2ggaGVscGVycywgaWYgYW4gSTNDIGh1YiBj YWxscyB0aGlzIG9uIGEgcGFyZW50IG1hc3Rlcgp0aGF0IGlzIHN1c3BlbmRlZCwgdGhpcyBjb3Vs ZCBsZWFkIHRvIGhhcmR3YXJlIGFjY2VzcyB3aGlsZSBzdXNwZW5kZWQuCgo+ICsJaTNjX2J1c19t YWludGVuYW5jZV91bmxvY2soJm1hc3Rlci0+YnVzKTsKPiArCj4gKwlyZXR1cm4gcmV0Owo+ICt9 Cj4gK0VYUE9SVF9TWU1CT0xfR1BMKGkzY19tYXN0ZXJfc2VuZF9jY2NfY21kKTsKCi0tIApTYXNo aWtvIEFJIHJldmlldyDCtyBodHRwczovL3Nhc2hpa28uZGV2LyMvcGF0Y2hzZXQvMjAyNjA3MDEw NjU3NTUuMjA2Nzc5My0xLWxha3NoYXkucGlwbGFuaUBueHAuY29tP3BhcnQ9MQoKLS0gCmxpbnV4 LWkzYyBtYWlsaW5nIGxpc3QKbGludXgtaTNjQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xp c3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1pM2MK 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 C526328C2BF for ; Wed, 1 Jul 2026 07:22:31 +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=1782890552; cv=none; b=p3lCJSMGuND19QaWMBWU/aiudQICYjR4e3tRXARNn5pnlYypNHrFoWP93yUUkXYNUAhLBFqU8/IBcmisbtshU/wFuRqzZNGYefEUmZ0dgzIbMaoaYwHGbjbm9/yVeRQxBApk9BPIrn56U1/i7j3suUZjjdY+36HV3drS77JiHiQ= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1782890552; c=relaxed/simple; bh=XKKchn2s4Da+uduqrJgT4WOKwuUkrCE3MIpQeQbnnQ0=; h=From:Subject:To:Cc:In-Reply-To:References:Content-Type:Date: Message-Id; b=NO5ZJHjVnUItJEdXOaKIy4WjDhW4m8qmni0EXazMdvsvCGo3a8b9YkB73Ds1sUBVXE24HoGMZW4/xfNGcELthRur7k1Fbq9RWWJ09ODVG+SbxVel6wRmSKqBwjFc+KVb2xqVhGopVweiDRi7OsvM54YONbV+jz8ckzkmWDYISwo= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=l+AcYtxA; 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="l+AcYtxA" Received: by smtp.kernel.org (Postfix) with ESMTPSA id F06F81F000E9; Wed, 1 Jul 2026 07:22:30 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1782890551; bh=0rPWLZ4hP6kj5Ck76jfvaSBbSH60lUpNKw6hJ2CR/Sk=; h=From:Subject:Reply-To:To:Cc:In-Reply-To:References:Date; b=l+AcYtxAT7WMpsmy7r8cDvMR1PW3y32uBekiYdlTL3/oP0uRPNHEOUoS6cBztx33y aRm4OWvIZt3SB24oBuaKk72uDrR2sIgKwXrwfS3l+CCNofB5gATErWcm1fF4yF3pNl tBSohVijP8XJXiZmC7jZUyFnCBhIZw9eNW4oTUnpSqOBqlV/LR+Kr+uGakzBuGfaFG L3S7MDQSHoubwKoJIayzeraBaxHWp365WAzKnHnG0i1rl/uANzfE++QEn/Q3e/Txf3 h3otE+2ZUt/D67ZcwXBQQYFznFCWQyyUKJY6g1gzITusqwhdBjy6Bh8EPQIBuvkzXX nDuVZPoJpe7HQ== From: sashiko-bot@kernel.org Subject: Re: [PATCH v13 1/7] i3c: master: Add APIs for I3C hub support Reply-To: sashiko-reviews@lists.linux.dev To: "Lakshay Piplani" Cc: robh@kernel.org, Frank.Li@kernel.org, conor+dt@kernel.org, linux-i3c@lists.infradead.org, "Alexandre Belloni" , devicetree@vger.kernel.org In-Reply-To: <20260701065755.2067793-2-lakshay.piplani@nxp.com> References: <20260701065755.2067793-1-lakshay.piplani@nxp.com> <20260701065755.2067793-2-lakshay.piplani@nxp.com> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Date: Wed, 01 Jul 2026 07:22:30 +0000 Message-Id: <20260701072230.F06F81F000E9@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 2 potential issue(= s) to consider: - [High] Exported APIs interact with controller hardware without taking a R= untime PM reference. - [Medium] `i3c_master_supports_ccc_cmd` incorrectly returns true for maste= rs that do not implement CCC command sending. -- commit b5579dc49beffe04e3498fcfb290372e74bd88f0 Author: Aman Kumar Pandey i3c: master: Add APIs for I3C hub support This commit adds helper functions for attaching and detaching I3C devices,= =20 checking CCC support, sending CCC commands, and managing address slot state= s.=20 These additions prepare the subsystem for I3C hub support. > diff --git a/drivers/i3c/master.c b/drivers/i3c/master.c > index f1be38a640ca1..3e7b7f7f97cfb 100644 > --- a/drivers/i3c/master.c > +++ b/drivers/i3c/master.c [ ... ] > @@ -1775,6 +1790,83 @@ static int i3c_master_attach_i3c_dev(struct i3c_ma= ster_controller *master, > return 0; > } > =20 > +/** > + * i3c_master_direct_attach_i3c_dev_locked() - Attach an I3C device to a= master [ ... ] > +int i3c_master_direct_attach_i3c_dev_locked(struct i3c_master_controller= *master, > + struct i3c_dev_desc *dev) > +{ > + int ret; > + > + if (WARN_ON(i3c_dev_get_master(dev) !=3D master)) > + return -EINVAL; > + > + ret =3D i3c_master_get_i3c_addrs(dev); > + if (ret) > + return ret; > + > + /* Do not attach the master device itself. */ > + if (master->this !=3D dev && master->ops->attach_i3c_dev) { > + ret =3D master->ops->attach_i3c_dev(dev); [Severity: High] Should this function call i3c_master_rpm_get() to take a runtime PM reference before invoking the controller's attach_i3c_dev callback? Since the I3C subsystem sets pm_suspend_ignore_children(&master->dev, true), maintaining an active runtime PM reference on the hub device does not automatically resume the parent controller. If an I3C hub calls this on a parent master that is runtime suspended, accessing the hardware registers could lead to bus faults or hangs. > + if (ret) { > + i3c_master_put_i3c_addrs(dev); > + return ret; > + } > + } > + return 0; > +} > +EXPORT_SYMBOL_GPL(i3c_master_direct_attach_i3c_dev_locked); > + > +/** > + * i3c_master_direct_detach_i3c_dev_locked() - Detach an I3C device from= a master [ ... ] > +void i3c_master_direct_detach_i3c_dev_locked(struct i3c_dev_desc *dev) > +{ > + struct i3c_master_controller *master =3D i3c_dev_get_master(dev); > + > + /* > + * We don't attach devices to the controller until they are > + * addressable on the bus, so skip detach for unaddressed devices. > + */ > + if (!dev->info.static_addr && !dev->info.dyn_addr) > + return; > + > + /* Do not detach the master device itself. */ > + if (master->this !=3D dev && master->ops->detach_i3c_dev) > + master->ops->detach_i3c_dev(dev); [Severity: High] Similar to the attach path, does this detach callback require the parent master to be resumed? If the parent controller is runtime suspended, invoking detach_i3c_dev without first taking a runtime PM reference might access suspended hardware. > + > + dev->common.master_priv =3D NULL; > + i3c_master_put_i3c_addrs(dev); > +} > +EXPORT_SYMBOL_GPL(i3c_master_direct_detach_i3c_dev_locked); [ ... ] > @@ -2548,6 +2640,50 @@ static void i3c_master_reconcile_dyn_addrs(struct = i3c_master_controller *master) > } > } > =20 > +/** > + * i3c_master_supports_ccc_cmd() - check CCC command support [ ... ] > +bool i3c_master_supports_ccc_cmd(struct i3c_master_controller *master, > + const struct i3c_ccc_cmd *cmd) > +{ > + if (!master || !cmd) > + return false; > + > + if (!master->ops->supports_ccc_cmd) > + return true; [Severity: Medium] Is it safe to default to true without verifying that the controller actually implements master->ops->send_ccc_cmd? If a controller lacks send_ccc_cmd, it does not support sending any CCC commands. The core will return -EOPNOTSUPP in i3c_master_send_ccc_cmd_locke= d(), but returning true here might cause a hub controller to falsely advertise CCC support for its downstream devices. > + > + return master->ops->supports_ccc_cmd(master, cmd); > +} > +EXPORT_SYMBOL_GPL(i3c_master_supports_ccc_cmd); > + > +/** > + * i3c_master_send_ccc_cmd() - send a CCC command [ ... ] > +int i3c_master_send_ccc_cmd(struct i3c_master_controller *master, > + struct i3c_ccc_cmd *cmd) > +{ > + int ret; > + > + i3c_bus_maintenance_lock(&master->bus); > + ret =3D i3c_master_send_ccc_cmd_locked(master, cmd); [Severity: High] Does this function need to take a runtime PM reference before calling i3c_master_send_ccc_cmd_locked()? Like the attach/detach helpers, if an I3C hub calls this on a parent master that is suspended, this could lead to hardware access while suspended. > + i3c_bus_maintenance_unlock(&master->bus); > + > + return ret; > +} > +EXPORT_SYMBOL_GPL(i3c_master_send_ccc_cmd); --=20 Sashiko AI review =C2=B7 https://sashiko.dev/#/patchset/20260701065755.2067= 793-1-lakshay.piplani@nxp.com?part=3D1