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 6EECCCD98E4 for ; Wed, 17 Jun 2026 11:17:46 +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=fp8AHHIVsbWHnUNYQN82ShXVq/8ACWMidNY6or9bNgk=; b=YO2BfDnuFN9+Oz Kkz1fdoWrvkX8NecRcWtNPveqpkma4ZNhiaiKSTWzz9l34iJVjKXlI4/xEtmdQgoxaRifVU4dWfXy 30UV9T62KDHJYXSrqQBxdqCLPKfF7YPBQoS4h4ICnuSrOJmdm1GE1Z2PCej3juR7rUNUYAgJJy0ss qYDQAKxhawsoV+oqBNKoV7cHAEODXSDNBV8o10d6ph/PB9wNxPHxqcnV3aWcVHEDbjsKtR9+ZZ7kH 2GbMABDewg919fMDEF8CZ0LEBBOdzvoru2NsGzAK/14ZrTYUFm9h3swcmjRYsfwGF3g2UTCBY8R6i BOXfXnWf0musnQw08L8g==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1wZoHC-0000000HDTY-0ldj; Wed, 17 Jun 2026 11:17:46 +0000 Received: from sea.source.kernel.org ([172.234.252.31]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1wZoHB-0000000HDTS-04qO for linux-i3c@lists.infradead.org; Wed, 17 Jun 2026 11:17:45 +0000 Received: from smtp.kernel.org (quasi.space.kernel.org [100.103.45.18]) by sea.source.kernel.org (Postfix) with ESMTP id 84E9D43EBA; Wed, 17 Jun 2026 11:17:44 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1A0971F000E9; Wed, 17 Jun 2026 11:17:44 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1781695064; bh=rt5MZHZ9w6MWDmQ5xmHXLkHiw1XPTomDmnzykaiUDKQ=; h=From:Subject:Reply-To:To:Cc:In-Reply-To:References:Date; b=B/v1u8te6LCdj+zOO8xBnHtXbH8hXdX5kNopX9VVUxrm7c+ZXJ222qGYaVz2JR1mO /MBbY1vJ/RSkhbqPj162aSmxlAk33qBKuzxlZiNfkKTvtC2Ifn5YJnnnhFO5pQWQm+ I3P0lHI0qaJFvVt0nndC9TonqmN+6BDdkfDVLvKJ+ejvbwSWDNoh0eg2fTPeVszr8a Q0/7l24rzs0mIy3ZjlfA6DKM1cx2IXGd3lRT49ud5fonOLUZFq6q7r89P2i/T7xDEc UqK18SvgH5ylACEUlbmWCgDUn7+2uIN1XsCTof3FjNL+aZn0vUkZJzlGgEzRWeaMiD oavfVmF72b6hQ== From: sashiko-bot@kernel.org Subject: Re: [PATCH v12 4/7] regulator: p3h2x4x: Add driver for on-die regulators in NXP P3H2x4x i3c hub To: "Lakshay Piplani" Cc: linux-i3c@lists.infradead.org, robh@kernel.org, conor+dt@kernel.org, Frank.Li@kernel.org, devicetree@vger.kernel.org In-Reply-To: <20260617110355.1591844-5-lakshay.piplani@nxp.com> References: <20260617110355.1591844-1-lakshay.piplani@nxp.com> <20260617110355.1591844-5-lakshay.piplani@nxp.com> Date: Wed, 17 Jun 2026 11:17:43 +0000 Message-Id: <20260617111744.1A0971F000E9@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 NCBwb3RlbnRpYWwgaXNzdWUocykgdG8gY29uc2lkZXI6Ci0gW0hpZ2hdIENvbmN1cnJlbnQgcmVn dWxhdG9yIG9wZXJhdGlvbnMgcmFjZSBvbiB0aGUgc2hhcmVkIGRldmljZS1sZXZlbCBwcm90ZWN0 aW9uIHJlZ2lzdGVyLCBsZWFkaW5nIHRvIHNpbGVudCBoYXJkd2FyZSBjb25maWd1cmF0aW9uIGZh aWx1cmVzLgotIFtNZWRpdW1dIFRoZSBkcml2ZXIgbW9kdWxlIHdpbGwgbm90IGF1dG8tbG9hZCBi ZWNhdXNlIGl0IGxhY2tzIGEgTU9EVUxFX0FMSUFTIG9yIHBsYXRmb3JtX2RldmljZV9pZCB0YWJs ZS4KLSBbTWVkaXVtXSBJZiByZWdtYXBfcmVhZCBvciB0aGUgdW5sb2NrIHNlcXVlbmNlIGZhaWxz IGluIHRoZSBndWFyZCBjb25zdHJ1Y3RvciwgdGhlIGRyaXZlciBwcm9jZWVkcyB3aXRoIHRoZSBy ZWd1bGF0b3Igb3BlcmF0aW9uIG9uIGxvY2tlZCByZWdpc3RlcnMuCi0gW0xvd10gVHlwbyBpbiBy ZWd1bGF0b3IgY29uZmlnIGFzc2lnbm1lbnQgYXNzaWducyBkZXYtPm9mX25vZGUgdG8gaXRzZWxm IGluc3RlYWQgb2YgcmNmZy5vZl9ub2RlLgotLQoKY29tbWl0IGU2ODA4MWI1ODAwNWEyNDIyZDQ0 MWE1NjExZGFjMjlmOGNmZmUyZjQKQXV0aG9yOiBBbWFuIEt1bWFyIFBhbmRleSA8YW1hbi5rdW1h cnBhbmRleUBueHAuY29tPgoKcmVndWxhdG9yOiBwM2gyeDR4OiBBZGQgZHJpdmVyIGZvciBvbi1k aWUgcmVndWxhdG9ycyBpbiBOWFAgUDNIMng0eCBpM2MgaHViCgpUaGUgTlhQIFAzSDJ4NHggZmFt aWx5IGludGVncmF0ZXMgb24tZGllIHJlZ3VsYXRvcnMgYWxvbmdzaWRlIEkzQyBodWIKZnVuY3Rp b25hbGl0eS4gVGhpcyBkcml2ZXIgcmVnaXN0ZXJzIHRoZSByZWd1bGF0b3JzIHVzaW5nIHRoZSBN RkQKZnJhbWV3b3JrIGFuZCBleHBvc2VzIHRoZW0gdmlhIHRoZSByZWd1bGF0b3Igc3Vic3lzdGVt LgoKPiAtLS0gL2Rldi9udWxsCj4gKysrIGIvZHJpdmVycy9yZWd1bGF0b3IvcDNoMjg0MF9pM2Nf aHViX3JlZ3VsYXRvci5jCgpbIC4uLiBdCgo+ICtzdGF0aWMgdm9pZCBwM2gyeDR4X3JlZ19ndWFy ZF9lbnRlcihzdHJ1Y3QgcmVndWxhdG9yX2RldiAqcmRldiwKPiArCQkJCSAgICBzdHJ1Y3QgcDNo Mng0eF9yZWdfc3RhdGUgKnN0YXRlKQo+ICt7Cj4gKwlzdGF0ZS0+cmVzdG9yZSA9IGZhbHNlOwo+ ICsKPiArCWlmIChyZWdtYXBfcmVhZChyZGV2LT5yZWdtYXAsCj4gKwkJCVAzSDJYNFhfREVWX1JF R19QUk9URUNUSU9OX0NPREUsCj4gKwkJCSZzdGF0ZS0+b3JpZykpCj4gKwkJcmV0dXJuOwoKW1Nl dmVyaXR5OiBNZWRpdW1dCklmIHJlZ21hcF9yZWFkKCkgZmFpbHMgaGVyZSwgdGhlIGZ1bmN0aW9u IHJldHVybnMgZWFybHkgYW5kIHN3YWxsb3dzIHRoZQplcnJvciBzaW5jZSB0aGUgZ3VhcmQgY29u c3RydWN0b3IgcmV0dXJucyB2b2lkLiBXaWxsIHRoaXMgY2F1c2UgdGhlIGNhbGxlcgp0byBwcm9j ZWVkIHdpdGggcmVndWxhdG9yIG9wZXJhdGlvbnMgb24gbG9ja2VkIGhhcmR3YXJlLCBwb3RlbnRp YWxseQpyZXN1bHRpbmcgaW4gc2lsZW50IGhhcmR3YXJlIGNvbmZpZ3VyYXRpb24gZmFpbHVyZXM/ IAoKSWYgdGhlIGRldmljZSBBQ0tzIHRoZSB0cmFuc2FjdGlvbiBkZXNwaXRlIGlnbm9yaW5nIHRo ZSB3cml0ZSwgd291bGRuJ3QKdGhlIGRyaXZlciBpbmNvcnJlY3RseSByZXBvcnQgc3VjY2VzcyB0 byB0aGUgcmVndWxhdG9yIGNvcmU/Cgo+ICsKPiArCWlmIChzdGF0ZS0+b3JpZyAhPSBQM0gyWDRY X1JFR0lTVEVSU19VTkxPQ0tfQ09ERSkgewo+ICsJCXJlZ21hcF93cml0ZShyZGV2LT5yZWdtYXAs Cj4gKwkJCSAgICAgUDNIMlg0WF9ERVZfUkVHX1BST1RFQ1RJT05fQ09ERSwKPiArCQkJICAgICBQ M0gyWDRYX1JFR0lTVEVSU19VTkxPQ0tfQ09ERSk7Cj4gKwkJc3RhdGUtPnJlc3RvcmUgPSB0cnVl Owo+ICsJfQo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9pZCBwM2gyeDR4X3JlZ19ndWFyZF9leGl0KHN0 cnVjdCByZWd1bGF0b3JfZGV2ICpyZGV2LAo+ICsJCQkJICAgc3RydWN0IHAzaDJ4NHhfcmVnX3N0 YXRlICpzdGF0ZSkKPiArewo+ICsJaWYgKHN0YXRlLT5yZXN0b3JlKQo+ICsJCXJlZ21hcF93cml0 ZShyZGV2LT5yZWdtYXAsCj4gKwkJCSAgICAgUDNIMlg0WF9ERVZfUkVHX1BST1RFQ1RJT05fQ09E RSwKPiArCQkJICAgICBzdGF0ZS0+b3JpZyk7Cj4gK30KPiArCj4gK0RFRklORV9MT0NLX0dVQVJE XzEocDNoMng0eF9yZWcsIHN0cnVjdCByZWd1bGF0b3JfZGV2LAo+ICsJCSAgICBwM2gyeDR4X3Jl Z19ndWFyZF9lbnRlcihfVC0+bG9jaywgJl9ULT5zdGF0ZSksCj4gKwkJICAgIHAzaDJ4NHhfcmVn X2d1YXJkX2V4aXQoX1QtPmxvY2ssICZfVC0+c3RhdGUpLAo+ICsJCSAgICBzdHJ1Y3QgcDNoMng0 eF9yZWdfc3RhdGUgc3RhdGUpOwoKW1NldmVyaXR5OiBIaWdoXQpEb2VzIHRoaXMgZ3VhcmQgcHJv dmlkZSBtdXR1YWwgZXhjbHVzaW9uIGFjcm9zcyB0aGUgZm91ciBkaWZmZXJlbnQgcmVndWxhdG9y cwpvbiB0aGUgc2FtZSBkZXZpY2U/IAoKVGhlIHJlZ21hcCBsb2NrIHByb3RlY3RzIGluZGl2aWR1 YWwgSS9PIG9wZXJhdGlvbnMsIGJ1dCBzaW5jZSB0aGVyZSBpcyBubwpkZXZpY2UtbGV2ZWwgbG9j ayBoZWxkIGFjcm9zcyB0aGUgdW5sb2NrL21vZGlmeS9sb2NrIHNlcXVlbmNlLCBjYW4gY29uY3Vy cmVudApvcGVyYXRpb25zIG9uIGRpZmZlcmVudCByZWd1bGF0b3JzIGludGVybGVhdmU/CgpGb3Ig ZXhhbXBsZSwgY291bGQgb25lIHRocmVhZCByZS1sb2NrIHRoZSBkZXZpY2UgaW4gcDNoMng0eF9y ZWdfZ3VhcmRfZXhpdCgpCndoaWxlIGFub3RoZXIgdGhyZWFkIGlzIGp1c3QgYWJvdXQgdG8gd3Jp dGUgaXRzIGNvbmZpZ3VyYXRpb24sIGNhdXNpbmcgdGhlCmhhcmR3YXJlIHdyaXRlIHRvIGJlIHNp bGVudGx5IGlnbm9yZWQ/IElzIGEgc2hhcmVkIGRldmljZS1sZXZlbCBtdXRleCBuZWVkZWQKdG8g c2VyaWFsaXplIHRoZXNlIHNlcXVlbmNlcz8KClsgLi4uIF0KCj4gK3N0YXRpYyBpbnQgcDNoMng0 eF9yZWd1bGF0b3JfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKPiArewo+ICsJ c3RydWN0IHAzaDJ4NHhfZGV2ICpwM2gyeDR4ID0gZGV2X2dldF9kcnZkYXRhKHBkZXYtPmRldi5w YXJlbnQpOwo+ICsJc3RydWN0IHAzaDJ4NHhfcmVndWxhdG9yX2RldiAqcDNoMng0eF9yZWd1bGF0 b3I7Cj4gKwlzdHJ1Y3QgcmVndWxhdG9yX2NvbmZpZyByY2ZnID0geyB9Owo+ICsJc3RydWN0IGRl dmljZSAqZGV2ID0gJnBkZXYtPmRldjsKPiArCXN0cnVjdCByZWd1bGF0b3JfZGV2ICpyZGV2Owo+ ICsJaW50IGk7Cj4gKwo+ICsJcDNoMng0eF9yZWd1bGF0b3IgPSBkZXZtX2t6YWxsb2MoZGV2LCBz aXplb2YoKnAzaDJ4NHhfcmVndWxhdG9yKSwgR0ZQX0tFUk5FTCk7Cj4gKwlpZiAoIXAzaDJ4NHhf cmVndWxhdG9yKQo+ICsJCXJldHVybiAtRU5PTUVNOwo+ICsKPiArCXBsYXRmb3JtX3NldF9kcnZk YXRhKHBkZXYsIHAzaDJ4NHhfcmVndWxhdG9yKTsKPiArCj4gKwlwM2gyeDR4X3JlZ3VsYXRvci0+ cmVnbWFwID0gcDNoMng0eC0+cmVnbWFwOwo+ICsJZGV2aWNlX3NldF9vZl9ub2RlX2Zyb21fZGV2 KGRldiwgZGV2LT5wYXJlbnQpOwo+ICsKPiArCXJjZmcuZGV2ID0gZGV2Owo+ICsJcmNmZy5kZXYt Pm9mX25vZGUgPSBkZXYtPm9mX25vZGU7CgpbU2V2ZXJpdHk6IExvd10KU2hvdWxkIHRoaXMgYmUg cmNmZy5vZl9ub2RlID0gZGV2LT5vZl9ub2RlPyBTaW5jZSByY2ZnLmRldiBpcyBhc3NpZ25lZCB0 byBkZXYKb24gdGhlIHByZXZpb3VzIGxpbmUsIHRoaXMganVzdCBhc3NpZ25zIGRldi0+b2Zfbm9k ZSB0byBpdHNlbGYuCgo+ICsJcmNmZy5yZWdtYXAgPSBwM2gyeDR4X3JlZ3VsYXRvci0+cmVnbWFw Owo+ICsJcmNmZy5kcml2ZXJfZGF0YSA9IHAzaDJ4NHhfcmVndWxhdG9yOwoKWyAuLi4gXQoKPiAr c3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgcDNoMng0eF9yZWd1bGF0b3JfZHJpdmVyID0g ewo+ICsJLmRyaXZlciA9IHsKPiArCQkubmFtZSA9ICJwM2gyeDR4LXJlZ3VsYXRvciIsCj4gKwkJ LnByb2JlX3R5cGUgPSBQUk9CRV9QUkVGRVJfQVNZTkNIUk9OT1VTLAo+ICsJfSwKPiArCS5wcm9i ZSA9IHAzaDJ4NHhfcmVndWxhdG9yX3Byb2JlLAo+ICt9Owo+ICttb2R1bGVfcGxhdGZvcm1fZHJp dmVyKHAzaDJ4NHhfcmVndWxhdG9yX2RyaXZlcik7Cj4gKwo+ICtNT0RVTEVfQVVUSE9SKCJBbWFu IEt1bWFyIFBhbmRleSA8YW1hbi5rdW1hcnBhbmRleUBueHAuY29tPiIpOwo+ICtNT0RVTEVfQVVU SE9SKCJWaWthc2ggQmFuc2FsIDx2aWthc2guYmFuc2FsQG54cC5jb20+Iik7Cj4gK01PRFVMRV9B VVRIT1IoIkxha3NoYXkgUGlwbGFuaSA8bGFrc2hheS5waXBsYW5pQG54cC5jb20+Iik7Cj4gK01P RFVMRV9ERVNDUklQVElPTigiTlhQIFAzSDJYNFggSTNDIEhVQiBSZWd1bGF0b3IgZHJpdmVyIik7 Cj4gK01PRFVMRV9MSUNFTlNFKCJHUEwiKTsKCltTZXZlcml0eTogTWVkaXVtXQpTaW5jZSB0aGUg ZHJpdmVyIGlzIHJlZ2lzdGVyZWQgYXMgYSBwbGF0Zm9ybSBkcml2ZXIgd2l0aCB0aGUgbmFtZQoi cDNoMng0eC1yZWd1bGF0b3IiIGJ1dCB0aGUgbW9kdWxlIGlzIGNvbXBpbGVkIGFzCiJwM2gyODQw X2kzY19odWJfcmVndWxhdG9yLmtvIiwgd2lsbCB0aGlzIG1vZHVsZSBmYWlsIHRvIGF1dG8tbG9h ZD8gCgpXaXRob3V0IGEgTU9EVUxFX0FMSUFTKCJwbGF0Zm9ybTpwM2gyeDR4LXJlZ3VsYXRvciIp IG9yIGFuIGV4cG9ydGVkCnBsYXRmb3JtX2RldmljZV9pZCB0YWJsZSwgdWRldiBtYXkgbm90IGJl IGFibGUgdG8gbG9hZCB0aGUgbW9kdWxlIHdoZW4gdGhlCk1GRCBjb3JlIGNyZWF0ZXMgdGhlIGNo aWxkIHBsYXRmb3JtIGRldmljZS4KCi0tIApTYXNoaWtvIEFJIHJldmlldyDCtyBodHRwczovL3Nh c2hpa28uZGV2LyMvcGF0Y2hzZXQvMjAyNjA2MTcxMTAzNTUuMTU5MTg0NC0xLWxha3NoYXkucGlw bGFuaUBueHAuY29tP3BhcnQ9NAoKLS0gCmxpbnV4LWkzYyBtYWlsaW5nIGxpc3QKbGludXgtaTNj QGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9s aXN0aW5mby9saW51eC1pM2MK 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 3DE212BE7A7 for ; Wed, 17 Jun 2026 11:17:44 +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=1781695068; cv=none; b=D2dlyh3EZwxRBvBQSFG95vL4SN/nGOsz7sAc+l3dCXXKN/OtQ2zb90Ii10VZ2J9MURMiod9w6jK9fWVkrFvD4RcE2b6WJ0F1hCApcqpyZMMScSfGDwWtC1871yuwEncJ2P7WjrZB469wAmzuXWFfD2IyU0bRvGj5bGhwY/33VUg= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781695068; c=relaxed/simple; bh=Dn7givp6qpmywtrsbSaiJVt0X3+3bO+y71LrxiMJc28=; h=From:Subject:To:Cc:In-Reply-To:References:Content-Type:Date: Message-Id; b=g6ugIxw7AYezdOT6ecTrdbkwkNfhigB5qVm3M7YmRteB9CJry66/FVQnvw68nP3NHosbsp1slN6dwBqxzkREMDXdaEOXiZY6Y9QeCxGhUgE2eTMkXAxZSG8CQIyINb606YhtpoSTXxddu5UfNYlcMUNiIHWL/7XMG+WHz9MPkCo= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=B/v1u8te; 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="B/v1u8te" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1A0971F000E9; Wed, 17 Jun 2026 11:17:44 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1781695064; bh=rt5MZHZ9w6MWDmQ5xmHXLkHiw1XPTomDmnzykaiUDKQ=; h=From:Subject:Reply-To:To:Cc:In-Reply-To:References:Date; b=B/v1u8te6LCdj+zOO8xBnHtXbH8hXdX5kNopX9VVUxrm7c+ZXJ222qGYaVz2JR1mO /MBbY1vJ/RSkhbqPj162aSmxlAk33qBKuzxlZiNfkKTvtC2Ifn5YJnnnhFO5pQWQm+ I3P0lHI0qaJFvVt0nndC9TonqmN+6BDdkfDVLvKJ+ejvbwSWDNoh0eg2fTPeVszr8a Q0/7l24rzs0mIy3ZjlfA6DKM1cx2IXGd3lRT49ud5fonOLUZFq6q7r89P2i/T7xDEc UqK18SvgH5ylACEUlbmWCgDUn7+2uIN1XsCTof3FjNL+aZn0vUkZJzlGgEzRWeaMiD oavfVmF72b6hQ== From: sashiko-bot@kernel.org Subject: Re: [PATCH v12 4/7] regulator: p3h2x4x: Add driver for on-die regulators in NXP P3H2x4x i3c hub Reply-To: sashiko-reviews@lists.linux.dev To: "Lakshay Piplani" Cc: linux-i3c@lists.infradead.org, robh@kernel.org, conor+dt@kernel.org, Frank.Li@kernel.org, devicetree@vger.kernel.org In-Reply-To: <20260617110355.1591844-5-lakshay.piplani@nxp.com> References: <20260617110355.1591844-1-lakshay.piplani@nxp.com> <20260617110355.1591844-5-lakshay.piplani@nxp.com> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Date: Wed, 17 Jun 2026 11:17:43 +0000 Message-Id: <20260617111744.1A0971F000E9@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 4 potential issue(= s) to consider: - [High] Concurrent regulator operations race on the shared device-level pr= otection register, leading to silent hardware configuration failures. - [Medium] The driver module will not auto-load because it lacks a MODULE_A= LIAS or platform_device_id table. - [Medium] If regmap_read or the unlock sequence fails in the guard constru= ctor, the driver proceeds with the regulator operation on locked registers. - [Low] Typo in regulator config assignment assigns dev->of_node to itself = instead of rcfg.of_node. -- commit e68081b58005a2422d441a5611dac29f8cffe2f4 Author: Aman Kumar Pandey regulator: p3h2x4x: Add driver for on-die regulators in NXP P3H2x4x i3c hub The NXP P3H2x4x family integrates on-die regulators alongside I3C hub functionality. This driver registers the regulators using the MFD framework and exposes them via the regulator subsystem. > --- /dev/null > +++ b/drivers/regulator/p3h2840_i3c_hub_regulator.c [ ... ] > +static void p3h2x4x_reg_guard_enter(struct regulator_dev *rdev, > + struct p3h2x4x_reg_state *state) > +{ > + state->restore =3D false; > + > + if (regmap_read(rdev->regmap, > + P3H2X4X_DEV_REG_PROTECTION_CODE, > + &state->orig)) > + return; [Severity: Medium] If regmap_read() fails here, the function returns early and swallows the error since the guard constructor returns void. Will this cause the caller to proceed with regulator operations on locked hardware, potentially resulting in silent hardware configuration failures?=20 If the device ACKs the transaction despite ignoring the write, wouldn't the driver incorrectly report success to the regulator core? > + > + if (state->orig !=3D P3H2X4X_REGISTERS_UNLOCK_CODE) { > + regmap_write(rdev->regmap, > + P3H2X4X_DEV_REG_PROTECTION_CODE, > + P3H2X4X_REGISTERS_UNLOCK_CODE); > + state->restore =3D true; > + } > +} > + > +static void p3h2x4x_reg_guard_exit(struct regulator_dev *rdev, > + struct p3h2x4x_reg_state *state) > +{ > + if (state->restore) > + regmap_write(rdev->regmap, > + P3H2X4X_DEV_REG_PROTECTION_CODE, > + state->orig); > +} > + > +DEFINE_LOCK_GUARD_1(p3h2x4x_reg, struct regulator_dev, > + p3h2x4x_reg_guard_enter(_T->lock, &_T->state), > + p3h2x4x_reg_guard_exit(_T->lock, &_T->state), > + struct p3h2x4x_reg_state state); [Severity: High] Does this guard provide mutual exclusion across the four different regulato= rs on the same device?=20 The regmap lock protects individual I/O operations, but since there is no device-level lock held across the unlock/modify/lock sequence, can concurre= nt operations on different regulators interleave? For example, could one thread re-lock the device in p3h2x4x_reg_guard_exit() while another thread is just about to write its configuration, causing the hardware write to be silently ignored? Is a shared device-level mutex needed to serialize these sequences? [ ... ] > +static int p3h2x4x_regulator_probe(struct platform_device *pdev) > +{ > + struct p3h2x4x_dev *p3h2x4x =3D dev_get_drvdata(pdev->dev.parent); > + struct p3h2x4x_regulator_dev *p3h2x4x_regulator; > + struct regulator_config rcfg =3D { }; > + struct device *dev =3D &pdev->dev; > + struct regulator_dev *rdev; > + int i; > + > + p3h2x4x_regulator =3D devm_kzalloc(dev, sizeof(*p3h2x4x_regulator), GFP= _KERNEL); > + if (!p3h2x4x_regulator) > + return -ENOMEM; > + > + platform_set_drvdata(pdev, p3h2x4x_regulator); > + > + p3h2x4x_regulator->regmap =3D p3h2x4x->regmap; > + device_set_of_node_from_dev(dev, dev->parent); > + > + rcfg.dev =3D dev; > + rcfg.dev->of_node =3D dev->of_node; [Severity: Low] Should this be rcfg.of_node =3D dev->of_node? Since rcfg.dev is assigned to= dev on the previous line, this just assigns dev->of_node to itself. > + rcfg.regmap =3D p3h2x4x_regulator->regmap; > + rcfg.driver_data =3D p3h2x4x_regulator; [ ... ] > +static struct platform_driver p3h2x4x_regulator_driver =3D { > + .driver =3D { > + .name =3D "p3h2x4x-regulator", > + .probe_type =3D PROBE_PREFER_ASYNCHRONOUS, > + }, > + .probe =3D p3h2x4x_regulator_probe, > +}; > +module_platform_driver(p3h2x4x_regulator_driver); > + > +MODULE_AUTHOR("Aman Kumar Pandey "); > +MODULE_AUTHOR("Vikash Bansal "); > +MODULE_AUTHOR("Lakshay Piplani "); > +MODULE_DESCRIPTION("NXP P3H2X4X I3C HUB Regulator driver"); > +MODULE_LICENSE("GPL"); [Severity: Medium] Since the driver is registered as a platform driver with the name "p3h2x4x-regulator" but the module is compiled as "p3h2840_i3c_hub_regulator.ko", will this module fail to auto-load?=20 Without a MODULE_ALIAS("platform:p3h2x4x-regulator") or an exported platform_device_id table, udev may not be able to load the module when the MFD core creates the child platform device. --=20 Sashiko AI review =C2=B7 https://sashiko.dev/#/patchset/20260617110355.1591= 844-1-lakshay.piplani@nxp.com?part=3D4