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 165BECCF2C3 for ; Fri, 16 Oct 2026 18:54:51 +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:Date:References: In-Reply-To:Cc:To:Subject:From:Message-ID:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=mwdjPYqLafY/Dsc95ADxGcWvV9wQ2297hoQOneUx0vk=; b=tGdh/7SLsVQp+f wMMoMDSPSX5uDRjKjB8vbPU7iwa2Fb7IfN+fgYFXodB4iBC9V4RKW08nMlMhin//VVOqd1yTbx791 EaYDYuDB6g9ikMMjy4HC/M55V+aniC5p/4pMKIJ5IzgemAP1nqRwkQuEg0G1X2Y8NyrIX7sgBIDpe RSY1p7BGK81fbuz2IHppExIaElsZ4f5Z6rdoxDzxLAj29Gxgh+jz7PamFz+WV1YWnI5wVTH1Fjy8X Ky8dwF7M2faSnGQUFDGAYHKAcXNDq/Nu1POkde5wbuANJAFFWb/K9MdPj3hM8Cf39MXCgvIaU6cws X0pLlUhHox6ors1/5HXw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1xHn4s-00000003jen-2qJ9; Fri, 16 Oct 2026 18:54:50 +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 1xHn4r-00000003jeW-1617 for linux-phy@lists.infradead.org; Fri, 16 Oct 2026 18:54:49 +0000 Received: from smtp.kernel.org (quasi.space.kernel.org [100.103.45.18]) by tor.source.kernel.org (Postfix) with ESMTP id 8A11E60A8C; Fri, 16 Oct 2026 18:54:48 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id E883E1F000C4; Fri, 16 Oct 2026 18:54:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1792176888; bh=WV2zaR1ShyhyS9AqVrSSSVhqvG794ooayNEQ4/mSuNw=; h=From:Subject:Reply-To:To:Cc:In-Reply-To:References:Date; b=Wfn/phkKaSIQdrzr9uuCRdH/mcHJZlXwXfi2ZfSvC7bIQGUlDycdmVvWSFc7tS13P 9A6C7HFejQAIHKeridQQ/H1NxCkbwMxJaW1N7n3/SDpzt3BBWJdy01YbQ4POMkGjRs OD9+pnZKRJXKS5DfqJ8UUP6T1Y1Weu8/3310ive5UnDVN/gJYze4ZZ2gSPRZrtD7pL OejQq/plMLbaM/Tz7gaY6loY2OSZgWVhbxip+8g37nHbVRB3+Ceo2NFdQPOe23fFNC SiD/8mEZ9J+HR0cwzFobOeYserAsa9IQiibrNUnbe9m95uqIVIdTRU0QKspFJE+tyQ wVM5Qy+9yf5QQ== Message-ID: From: sashiko-bot@kernel.org Subject: Re: [PATCH v17 2/7] phy: rockchip: usbdp: Add reset hook support for dwc3 To: "Sebastian Reichel" Cc: linux-usb@vger.kernel.org, linux-phy@lists.infradead.org, vkoul@kernel.org, neil.armstrong@linaro.org, olteanv@gmail.com In-Reply-To: <20261016-b4-rockchip-dwc3-rockchip-glue-v17-2-876f96893e2f@collabora.com> References: <20261016-b4-rockchip-dwc3-rockchip-glue-v17-0-876f96893e2f@collabora.com> <20261016-b4-rockchip-dwc3-rockchip-glue-v17-2-876f96893e2f@collabora.com> Date: Fri, 16 Oct 2026 18:54:47 +0000 X-BeenThere: linux-phy@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Linux Phy Mailing list 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-phy" Errors-To: linux-phy-bounces+linux-phy=archiver.kernel.org@lists.infradead.org VGhhbmsgeW91IGZvciB5b3VyIGNvbnRyaWJ1dGlvbiEgU2FzaGlrbyBBSSByZXZpZXcgZm91bmQg NCBwb3RlbnRpYWwgaXNzdWUocykgdG8gY29uc2lkZXI6Ci0gW0hpZ2hdIHBoeTogcm9ja2NoaXA6 IG1pc3NpbmcgTlVMTCBjaGVjayBpbiByZXNldCBBUElzIGNhdXNlcyBwYW5pYwotIFtIaWdoXSBw aHk6IHJvY2tjaGlwOiB1c2JkcDogc3dfbW9kZSBsZWFrIGNhdXNlcyBTRXJyb3Igb24gRFdDMyBy ZW1vdmUKLSBbTWVkaXVtXSBwaHk6IHJvY2tjaGlwOiB1c2JkcDogSWdub3JlZCByZXR1cm4gdmFs dWUgb2YgZHdjMyBwcmUtcmVzZXQgaGFuZGxlciBhbGxvd3MgdW5zYWZlIFBIWSByZXNldAotIFtM b3ddIGJ1aWxkOiBtaXNzaW5nIGR1bW15IHN0dWJzIGZvciBya191ZHBoeV9yZWdpc3Rlcl9yZXNl dF9oYW5kbGVyCi0tCgpjb21taXQgYzAwMmIzMmRhZGVmNGRkZDU4MGI0NDNhN2FmYjJkZWJmMjMw NzNjYwpBdXRob3I6IFNlYmFzdGlhbiBSZWljaGVsIDxzZWJhc3RpYW4ucmVpY2hlbEBjb2xsYWJv cmEuY29tPgoKcGh5OiByb2NrY2hpcDogdXNiZHA6IEFkZCByZXNldCBob29rIHN1cHBvcnQgZm9y IGR3YzMKCldoZW4gVENQTSAoVHlwZS1DIFBvcnQgTWFuYWdlcikgdHJpZ2dlcnMgYSBvcmllbnRh dGlvbiBvciBtdXgKY2hhbmdlLCB0aGUgUEhZIG5lZWRzIHRvIHJlc2V0LiBUaGlzIHJlc3VsdHMg aW4gdGhlIFBIWSBubyBsb25nZXIKcHJvdmlkaW5nIGEgY2xvY2sgdG8gdGhlIFVTQiBjb250cm9s bGVyLiBJZiB0aGUgVVNCIGNvbnRyb2xsZXIKcmVnaXN0ZXJzIGFyZSBhY2Nlc3NlZCB3aXRob3V0 IHRoZSBjbG9jaywgU0Vycm9ycyBhcmUgZ2VuZXJhdGVkLgoKPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9waHkvcm9ja2NoaXAvcGh5LXJvY2tjaGlwLXVzYmRwLmMgYi9kcml2ZXJzL3BoeS9yb2NrY2hp cC9waHktcm9ja2NoaXAtdXNiZHAuYwo+IGluZGV4IGRiNjlkZDI0ZjczYjMuLmIzOTZmMjg2ZTc4 NTIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9waHkvcm9ja2NoaXAvcGh5LXJvY2tjaGlwLXVzYmRw LmMKPiArKysgYi9kcml2ZXJzL3BoeS9yb2NrY2hpcC9waHktcm9ja2NoaXAtdXNiZHAuYwoKWyAu Li4gXQoKPiBAQCAtOTk1LDYgKzk5OSw0MyBAQCBzdGF0aWMgaW50IHJrX3VkcGh5X3BhcnNlX2R0 KHN0cnVjdCBya191ZHBoeSAqdWRwaHkpCj4gIAlyZXR1cm4gcmtfdWRwaHlfcmVzZXRfaW5pdCh1 ZHBoeSwgZGV2KTsKPiAgfQo+ICAKPiArc3RhdGljIGludCBya191ZHBoeV9ydW5fcmVzZXRfaGFu ZGxlcihzdHJ1Y3QgcmtfdWRwaHkgKnVkcGh5LCBib29sIHByZSkKPiArewo+ICsJaWYgKCF1ZHBo eS0+ZHdjM19yZXNldF9oYW5kbGVyKQo+ICsJCXJldHVybiAwOwo+ICsKPiArCWlmICghKHVkcGh5 LT5zd19tb2RlICYgVURQSFlfTU9ERV9VU0IpKQo+ICsJCXJldHVybiAwOwo+ICsKPiArCXJldHVy biB1ZHBoeS0+ZHdjM19yZXNldF9oYW5kbGVyKHVkcGh5LT5kd2MzX3Jlc2V0X2RhdGEsIHVkcGh5 LT5kd2MzX3Jlc2V0X3BvcnQsIHByZSk7Cj4gK30KCltTZXZlcml0eTogSGlnaF0KQ2FuIHRoZSBV RFBIWV9NT0RFX1VTQiBmbGFnIGxlYWsgaW4gdWRwaHktPnN3X21vZGUgd2hlbiBya191ZHBoeV91 c2IzX3BoeV9leGl0KCkKcmV0dXJucyBlYXJseSAoZS5nLiBpbiBoaWdoLXNwZWVkIG9yIERQLW9u bHkgbW9kZSk/CgpJZiBya191ZHBoeV91c2IzX3BoeV9leGl0KCkgcmV0dXJucyBlYXJseToKCmRy aXZlcnMvcGh5L3JvY2tjaGlwL3BoeS1yb2NrY2hpcC11c2JkcC5jOnJrX3VkcGh5X3VzYjNfcGh5 X2V4aXQoKSB7CiAgICAvKiBEUCBvbmx5IG9yIGhpZ2gtc3BlZWQgKi8KICAgIGlmICghKHVkcGh5 LT5tb2RlICYgVURQSFlfTU9ERV9VU0IpIHx8IHVkcGh5LT5ocykKICAgICAgICByZXR1cm4gMDsK CiAgICB1ZHBoeS0+c3dfbW9kZSAmPSB+VURQSFlfTU9ERV9VU0I7CiAgICAuLi4KfQoKSXQgYnlw YXNzZXMgY2xlYXJpbmcgVURQSFlfTU9ERV9VU0IsIGxlYXZpbmcgaXQgcGVyc2lzdGVudGx5IHNl dCBldmVuIGFmdGVyIHRoZQpVU0IgUEhZIGlzIGxvZ2ljYWxseSBjbG9zZWQuIFRoZW4sIGR1cmlu ZyBEV0MzIGRyaXZlciByZW1vdmFsLCBpZiBhIGNvbmN1cnJlbnQKVHlwZS1DIG11eCBldmVudCB0 cmlnZ2VycyBhIERQIFBIWSByZWluaXRpYWxpemF0aW9uLCB0aGUgbGVha2VkIHN3X21vZGUgZmxh Zwp3b3VsZCBjYXVzZSBya191ZHBoeV9ydW5fcmVzZXRfaGFuZGxlcigpIHRvIGVycm9uZW91c2x5 IGV4ZWN1dGUgdGhlIHJlc2V0CmhhbmRsZXIuIEJlY2F1c2UgcG1fcnVudGltZV9kaXNhYmxlKCkg d2FzIGNhbGxlZCwgcG1fcnVudGltZV9nZXRfaWZfYWN0aXZlKCkKcmV0dXJucyAtRUlOVkFMLCBi eXBhc3NpbmcgdGhlIFBNIHN1c3BlbnNpb24gY2hlY2ssIGFsbG93aW5nIHRoZSBmdW5jdGlvbiB0 bwphY2Nlc3MgRFdDMyByZWdpc3RlcnMgd2l0aG91dCBhIGNsb2NrIGFuZCBnZW5lcmF0aW5nIGFu IFNFcnJvci4KCj4gKwo+ICt2b2lkIHJrX3VkcGh5X3VucmVnaXN0ZXJfcmVzZXRfaGFuZGxlcihz dHJ1Y3QgcGh5ICpwaHkpCj4gK3sKPiArCXN0cnVjdCBya191ZHBoeSAqdWRwaHkgPSBwaHlfZ2V0 X2RydmRhdGEocGh5KTsKPiArCgpbU2V2ZXJpdHk6IEhpZ2hdCkRvZXMgdGhpcyBleHBvcnRlZCBB UEkgbmVlZCB0byB2YWxpZGF0ZSB0aGF0IHRoZSBwaHkgcG9pbnRlciBpcyBub3QgTlVMTCBvcgpF UlJfUFRSIGJlZm9yZSBkZXJlZmVyZW5jaW5nIGl0PwoKSWYgYSBjb25zdW1lciBkcml2ZXIgcGFz c2VzIGEgTlVMTCBwaHkgKGZvciBleGFtcGxlLCBpZiB0aGUgVVNCMyBQSFkgaXMKb3B0aW9uYWwg b3IgYWJzZW50IGFuZCB0aGUgVVNCIGNvcmUgc2V0IGR3Yy0+dXNiM19nZW5lcmljX3BoeVtpXSB0 byBOVUxMKSwKcGh5X2dldF9kcnZkYXRhKHBoeSkgd2lsbCBjYXVzZSBhbiBpbW1lZGlhdGUga2Vy bmVsIHBhbmljLiBGb2xsb3ctdXAgcGF0Y2hlcwppbiBkd2MzLXJvY2tjaGlwIG1hbnVhbGx5IGNo ZWNrIGRldl9kcml2ZXJfc3RyaW5nKHBoeS0+ZGV2LnBhcmVudCksIHdoaWNoCmFsc28gY2F1c2Vz IGEgcGFuaWMgaWYgcGh5IGlzIE5VTEwuIEFkZGluZyBhIE5VTEwgY2hlY2sgaGVyZSBhbmQgaW4K cmtfdWRwaHlfcmVnaXN0ZXJfcmVzZXRfaGFuZGxlcigpIHdvdWxkIHByZXZlbnQgdGhlc2UgcGFu aWNzIGFuZCByZWxpZXZlCmNvbnN1bWVycyBmcm9tIHBlcmZvcm1pbmcgZnJhZ2lsZSB0eXBlIGNo ZWNraW5nLgoKPiArCWd1YXJkKG11dGV4KSgmdWRwaHktPm11dGV4KTsKPiArCj4gKwl1ZHBoeS0+ ZHdjM19yZXNldF9oYW5kbGVyID0gTlVMTDsKPiArCXVkcGh5LT5kd2MzX3Jlc2V0X2RhdGEgPSBO VUxMOwo+ICsJdWRwaHktPmR3YzNfcmVzZXRfcG9ydCA9IDA7Cj4gK30KPiArRVhQT1JUX1NZTUJP TChya191ZHBoeV91bnJlZ2lzdGVyX3Jlc2V0X2hhbmRsZXIpOwo+ICsKPiArdm9pZCBya191ZHBo eV9yZWdpc3Rlcl9yZXNldF9oYW5kbGVyKHN0cnVjdCBwaHkgKnBoeSwKPiArCQkJCSAgICAgaW50 ICgqcmVzZXRfaGFuZGxlcikodm9pZCAqZGF0YSwgaW50IHBvcnQsIGJvb2wgcHJlKSwKPiArCQkJ CSAgICAgdm9pZCAqZGF0YSwgaW50IHBvcnQpCj4gK3sKPiArCXN0cnVjdCBya191ZHBoeSAqdWRw aHkgPSBwaHlfZ2V0X2RydmRhdGEocGh5KTsKPiArCgpbU2V2ZXJpdHk6IEhpZ2hdClNpbWlsYXIg dG8gcmtfdWRwaHlfdW5yZWdpc3Rlcl9yZXNldF9oYW5kbGVyKCksIHNob3VsZCB3ZSBjaGVjayBp ZiBwaHkgaXMgTlVMTApvciBFUlJfUFRSIGJlZm9yZSBkZXJlZmVyZW5jaW5nIGl0IGhlcmU/Cgo+ ICsJZ3VhcmQobXV0ZXgpKCZ1ZHBoeS0+bXV0ZXgpOwo+ICsKPiArCXVkcGh5LT5kd2MzX3Jlc2V0 X2hhbmRsZXIgPSByZXNldF9oYW5kbGVyOwo+ICsJdWRwaHktPmR3YzNfcmVzZXRfZGF0YSA9IGRh dGE7Cj4gKwl1ZHBoeS0+ZHdjM19yZXNldF9wb3J0ID0gcG9ydDsKPiArfQo+ICtFWFBPUlRfU1lN Qk9MKHJrX3VkcGh5X3JlZ2lzdGVyX3Jlc2V0X2hhbmRsZXIpOwo+ICsKPiAgc3RhdGljIGludCBy a191ZHBoeV9wb3dlcl9vbihzdHJ1Y3QgcmtfdWRwaHkgKnVkcGh5LCB1OCBtb2RlKQo+ICB7Cj4g IAlpbnQgcmV0Owo+IEBAIC0xMDA1LDI0ICsxMDQ2LDM2IEBAIHN0YXRpYyBpbnQgcmtfdWRwaHlf cG93ZXJfb24oc3RydWN0IHJrX3VkcGh5ICp1ZHBoeSwgdTggbW9kZSkKPiAgCX0KPiAgCj4gIAlp ZiAodWRwaHktPnN0YXR1cyA9PSBVRFBIWV9NT0RFX05PTkUpIHsKPiArCQlya191ZHBoeV9ydW5f cmVzZXRfaGFuZGxlcih1ZHBoeSwgdHJ1ZSk7Cj4gKwoKW1NldmVyaXR5OiBNZWRpdW1dClNob3Vs ZCB3ZSBjaGVjayB0aGUgcmV0dXJuIHZhbHVlIG9mIHJrX3VkcGh5X3J1bl9yZXNldF9oYW5kbGVy KHVkcGh5LCB0cnVlKQpoZXJlIGFuZCBhYm9ydCB0aGUgcG93ZXItb24gc2VxdWVuY2Ugb24gZmFp bHVyZT8KCklmIHRoZSBEV0MzIGNvbnRyb2xsZXIgZmFpbHMgdG8gcXVpZXNjZSBkdWUgdG8gaGFy ZHdhcmUgc3RhdGUgb3IgdGltZW91dHMsCnRoZSBoYW5kbGVyIHdpbGwgcHJvcGFnYXRlIHRoZSBl cnJvciBjb2RlLiBJZ25vcmluZyB0aGlzIGVycm9yIGFuZApwcm9jZWVkaW5nIHVuY29uZGl0aW9u YWxseSB0byBya191ZHBoeV9zZXR1cCgpIGRyb3BzIHRoZSBQSFkgY2xvY2sgd2hpbGUKdGhlIERX QzMgUElQRSBpbnRlcmZhY2UgbWlnaHQgc3RpbGwgYmUgYWN0aXZlLCBkaXJlY3RseSB2aW9sYXRp bmcgdGhlIHNhZmV0eQppbnZhcmlhbnQgdGhpcyBwYXRjaCB3YXMgaW50cm9kdWNlZCB0byBlbmZv cmNlIGFuZCBsZWFkaW5nIHRvIFNFcnJvcnMuCgo+ICAJCXJldCA9IHJrX3VkcGh5X3NldHVwKHVk cGh5KTsKPiAtCQlpZiAocmV0KQo+ICsJCWlmIChyZXQpIHsKPiArCQkJcmtfdWRwaHlfcnVuX3Jl c2V0X2hhbmRsZXIodWRwaHksIGZhbHNlKTsKPiAgCQkJcmV0dXJuIHJldDsKPiArCQl9Cj4gIAo+ ICAJCWlmICghdWRwaHktPmhzICYmIHVkcGh5LT5tb2RlICYgVURQSFlfTU9ERV9VU0IpCj4gIAkJ CXJrX3VkcGh5X3UzX3BvcnRfZGlzYWJsZSh1ZHBoeSwgZmFsc2UpOwo+ICAJCXVkcGh5LT5waHlf bmVlZHNfcmVpbml0ID0gZmFsc2U7Cj4gKwo+ICsJCXJrX3VkcGh5X3J1bl9yZXNldF9oYW5kbGVy KHVkcGh5LCBmYWxzZSk7Cj4gIAl9IGVsc2UgaWYgKHVkcGh5LT5waHlfbmVlZHNfcmVpbml0KSB7 Cj4gKwkJcmtfdWRwaHlfcnVuX3Jlc2V0X2hhbmRsZXIodWRwaHksIHRydWUpOwo+ICsKCltTZXZl cml0eTogTWVkaXVtXQpTYW1lIHF1ZXN0aW9uIGhlcmUgZHVyaW5nIHRoZSByZWluaXRpYWxpemF0 aW9uIHNlcXVlbmNlLiBEb2VzIHRoaXMgbmVlZCB0bwpoYW5kbGUgdGhlIHJldHVybiB2YWx1ZSB0 byBwcmV2ZW50IHByb2NlZWRpbmcgd2l0aCBQSFkgcmVzZXQgd2hlbiB0aGUgRFdDMyBQSVBFCmlu dGVyZmFjZSBoYXMgbm90IHN1Y2Nlc3NmdWxseSBiZWVuIGRpc2FibGVkPwoKPiAgCQlya191ZHBo eV91M19wb3J0X2Rpc2FibGUodWRwaHksIHRydWUpOwo+ICAJCXVkZWxheSgxMCk7Cj4gIAo+ICAJ CXJldCA9IHJrX3VkcGh5X2luaXQodWRwaHkpOwo+IC0JCWlmIChyZXQpCj4gKwkJaWYgKHJldCkg ewo+ICsJCQlya191ZHBoeV9ydW5fcmVzZXRfaGFuZGxlcih1ZHBoeSwgZmFsc2UpOwo+ICAJCQly ZXR1cm4gcmV0Owo+ICsJCX0KPiAgCj4gIAkJaWYgKCF1ZHBoeS0+aHMgJiYgdWRwaHktPm1vZGUg JiBVRFBIWV9NT0RFX1VTQikKPiAgCQkJcmtfdWRwaHlfdTNfcG9ydF9kaXNhYmxlKHVkcGh5LCBm YWxzZSk7Cj4gIAkJdWRwaHktPnBoeV9uZWVkc19yZWluaXQgPSBmYWxzZTsKPiArCj4gKwkJcmtf dWRwaHlfcnVuX3Jlc2V0X2hhbmRsZXIodWRwaHksIGZhbHNlKTsKPiAgCX0KPiAgCj4gIAl1ZHBo eS0+c3RhdHVzIHw9IG1vZGU7Cj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvcGh5L3JvY2tj aGlwLXVzYmRwLmggYi9pbmNsdWRlL2xpbnV4L3BoeS9yb2NrY2hpcC11c2JkcC5oCj4gbmV3IGZp bGUgbW9kZSAxMDA2NDQKPiAtLS0gL2Rldi9udWxsCj4gKysrIGIvaW5jbHVkZS9saW51eC9waHkv cm9ja2NoaXAtdXNiZHAuaAo+IEBAIC0wLDAgKzEsMTYgQEAKPiArLyogU1BEWC1MaWNlbnNlLUlk ZW50aWZpZXI6IEdQTC0yLjAtb3ItbGF0ZXIgKi8KPiArLyoKPiArICogUm9ja2NoaXAgVVNCRFAg Q29tYm8gUEhZIHdpdGggU2Ftc3VuZyBJUCBibG9jayBkcml2ZXIKPiArICoKPiArICogQ29weXJp Z2h0IChDKSAyMDI2IENvbGxhYm9yYSBMdGQKPiArICovCj4gKwo+ICsjaWZuZGVmIF9fUk9DS0NI SVBfVVNCRFAKPiArI2RlZmluZSBfX1JPQ0tDSElQX1VTQkRQCj4gKwo+ICt2b2lkIHJrX3VkcGh5 X3VucmVnaXN0ZXJfcmVzZXRfaGFuZGxlcihzdHJ1Y3QgcGh5ICpwaHkpOwo+ICt2b2lkIHJrX3Vk cGh5X3JlZ2lzdGVyX3Jlc2V0X2hhbmRsZXIoc3RydWN0IHBoeSAqcGh5LAo+ICsJCQkJICAgICBp bnQgKCpyZXNldF9oYW5kbGVyKSh2b2lkICpkYXRhLCBpbnQgcG9ydCwgYm9vbCBwcmUpLAo+ICsJ CQkJICAgICB2b2lkICpkYXRhLCBpbnQgcG9ydCk7Cj4gKwoKW1NldmVyaXR5OiBMb3ddClNob3Vs ZCB0aGlzIGhlYWRlciBwcm92aWRlICNpZiBJU19FTkFCTEVEKENPTkZJR19QSFlfUk9DS0NISVBf VVNCRFApIGd1YXJkcwphbmQgc3RhdGljIGlubGluZSBkdW1teSBmYWxsYmFja3MgZm9yIHRoZXNl IGZ1bmN0aW9ucz8KCklmIENPTkZJR19VU0JfRFdDM19ST0NLQ0hJUCBpcyBlbmFibGVkIGJ1dCBD T05GSUdfUEhZX1JPQ0tDSElQX1VTQkRQIGlzIGRpc2FibGVkLAphbnkgY2FsbGVyIGludm9raW5n IHRoZXNlIEFQSXMgZGlyZWN0bHkgd2lsbCBjYXVzZSB0aGUga2VybmVsIGJ1aWxkIHRvIGZhaWwg YXQgdGhlCmxpbmtpbmcgc3RhZ2Ugd2l0aCB1bmRlZmluZWQgcmVmZXJlbmNlIGVycm9ycy4KCj4g KyNlbmRpZgoKLS0gClNhc2hpa28gQUkgcmV2aWV3IMK3IGh0dHBzOi8vc2FzaGlrby5kZXYvIy9w YXRjaHNldC8yMDI2MTAxNi1iNC1yb2NrY2hpcC1kd2MzLXJvY2tjaGlwLWdsdWUtdjE3LTAtODc2 Zjk2ODkzZTJmQGNvbGxhYm9yYS5jb20/cGFydD0yCgotLSAKbGludXgtcGh5IG1haWxpbmcgbGlz dApsaW51eC1waHlAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwczovL2xpc3RzLmluZnJhZGVhZC5v cmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1waHkK 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 9C2BE48DB37 for ; Fri, 16 Oct 2026 18:54:48 +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=1792176891; cv=none; b=W2azuE8dIghyaWFyPvGSg2BcdveX6qzH3vo8g/SbIHl7Dux9FZCEqE8Sb+s7pfYtbvMguwZB5Dw1fUYMPg726uvpvgQJLfFQjm1nRwUWZVZ4TPLxRDpeKmfmJeaf6t/9nyenmRFr60XsAppt9yjZwZC8rpt73c99lJCvS/a4Eo0= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1792176891; c=relaxed/simple; bh=VcX7NSd+MQs4rRvCyyxhije7suD1BJ5OhBkalpXlDo8=; h=Message-ID:From:Subject:To:Cc:In-Reply-To:References:Content-Type: Date; b=lyki0B+2eKe1flblvFNLqE9VNsbczCEDWhqdU9VLsJQPe2Kex+4uxF9Rcw2LW8WioTVBWC2IlmJEyOZST8skAhs8DbsZ9csE0Or3SZ4pRr3pfYXHE5hDGeJuDyBVpiFvq1GC55ubG5za6wH+safk267baebka1zxEob4DGpn9mg= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Wfn/phkK; 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="Wfn/phkK" Received: by smtp.kernel.org (Postfix) with ESMTPSA id E883E1F000C4; Fri, 16 Oct 2026 18:54:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1792176888; bh=WV2zaR1ShyhyS9AqVrSSSVhqvG794ooayNEQ4/mSuNw=; h=From:Subject:Reply-To:To:Cc:In-Reply-To:References:Date; b=Wfn/phkKaSIQdrzr9uuCRdH/mcHJZlXwXfi2ZfSvC7bIQGUlDycdmVvWSFc7tS13P 9A6C7HFejQAIHKeridQQ/H1NxCkbwMxJaW1N7n3/SDpzt3BBWJdy01YbQ4POMkGjRs OD9+pnZKRJXKS5DfqJ8UUP6T1Y1Weu8/3310ive5UnDVN/gJYze4ZZ2gSPRZrtD7pL OejQq/plMLbaM/Tz7gaY6loY2OSZgWVhbxip+8g37nHbVRB3+Ceo2NFdQPOe23fFNC SiD/8mEZ9J+HR0cwzFobOeYserAsa9IQiibrNUnbe9m95uqIVIdTRU0QKspFJE+tyQ wVM5Qy+9yf5QQ== Message-ID: From: sashiko-bot@kernel.org Subject: Re: [PATCH v17 2/7] phy: rockchip: usbdp: Add reset hook support for dwc3 Reply-To: sashiko-reviews@lists.linux.dev To: "Sebastian Reichel" Cc: linux-usb@vger.kernel.org, linux-phy@lists.infradead.org, vkoul@kernel.org, neil.armstrong@linaro.org, olteanv@gmail.com In-Reply-To: <20261016-b4-rockchip-dwc3-rockchip-glue-v17-2-876f96893e2f@collabora.com> References: <20261016-b4-rockchip-dwc3-rockchip-glue-v17-0-876f96893e2f@collabora.com> <20261016-b4-rockchip-dwc3-rockchip-glue-v17-2-876f96893e2f@collabora.com> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Date: Fri, 16 Oct 2026 18:54:47 +0000 Precedence: bulk X-Mailing-List: linux-usb@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] phy: rockchip: missing NULL check in reset APIs causes panic - [High] phy: rockchip: usbdp: sw_mode leak causes SError on DWC3 remove - [Medium] phy: rockchip: usbdp: Ignored return value of dwc3 pre-reset han= dler allows unsafe PHY reset - [Low] build: missing dummy stubs for rk_udphy_register_reset_handler -- commit c002b32dadef4ddd580b443a7afb2debf23073cc Author: Sebastian Reichel phy: rockchip: usbdp: Add reset hook support for dwc3 When TCPM (Type-C Port Manager) triggers a orientation or mux change, the PHY needs to reset. This results in the PHY no longer providing a clock to the USB controller. If the USB controller registers are accessed without the clock, SErrors are generated. > diff --git a/drivers/phy/rockchip/phy-rockchip-usbdp.c b/drivers/phy/rock= chip/phy-rockchip-usbdp.c > index db69dd24f73b3..b396f286e7852 100644 > --- a/drivers/phy/rockchip/phy-rockchip-usbdp.c > +++ b/drivers/phy/rockchip/phy-rockchip-usbdp.c [ ... ] > @@ -995,6 +999,43 @@ static int rk_udphy_parse_dt(struct rk_udphy *udphy) > return rk_udphy_reset_init(udphy, dev); > } > =20 > +static int rk_udphy_run_reset_handler(struct rk_udphy *udphy, bool pre) > +{ > + if (!udphy->dwc3_reset_handler) > + return 0; > + > + if (!(udphy->sw_mode & UDPHY_MODE_USB)) > + return 0; > + > + return udphy->dwc3_reset_handler(udphy->dwc3_reset_data, udphy->dwc3_re= set_port, pre); > +} [Severity: High] Can the UDPHY_MODE_USB flag leak in udphy->sw_mode when rk_udphy_usb3_phy_e= xit() returns early (e.g. in high-speed or DP-only mode)? If rk_udphy_usb3_phy_exit() returns early: drivers/phy/rockchip/phy-rockchip-usbdp.c:rk_udphy_usb3_phy_exit() { /* DP only or high-speed */ if (!(udphy->mode & UDPHY_MODE_USB) || udphy->hs) return 0; udphy->sw_mode &=3D ~UDPHY_MODE_USB; ... } It bypasses clearing UDPHY_MODE_USB, leaving it persistently set even after= the USB PHY is logically closed. Then, during DWC3 driver removal, if a concurr= ent Type-C mux event triggers a DP PHY reinitialization, the leaked sw_mode flag would cause rk_udphy_run_reset_handler() to erroneously execute the reset handler. Because pm_runtime_disable() was called, pm_runtime_get_if_active() returns -EINVAL, bypassing the PM suspension check, allowing the function to access DWC3 registers without a clock and generating an SError. > + > +void rk_udphy_unregister_reset_handler(struct phy *phy) > +{ > + struct rk_udphy *udphy =3D phy_get_drvdata(phy); > + [Severity: High] Does this exported API need to validate that the phy pointer is not NULL or ERR_PTR before dereferencing it? If a consumer driver passes a NULL phy (for example, if the USB3 PHY is optional or absent and the USB core set dwc->usb3_generic_phy[i] to NULL), phy_get_drvdata(phy) will cause an immediate kernel panic. Follow-up patches in dwc3-rockchip manually check dev_driver_string(phy->dev.parent), which also causes a panic if phy is NULL. Adding a NULL check here and in rk_udphy_register_reset_handler() would prevent these panics and relieve consumers from performing fragile type checking. > + guard(mutex)(&udphy->mutex); > + > + udphy->dwc3_reset_handler =3D NULL; > + udphy->dwc3_reset_data =3D NULL; > + udphy->dwc3_reset_port =3D 0; > +} > +EXPORT_SYMBOL(rk_udphy_unregister_reset_handler); > + > +void rk_udphy_register_reset_handler(struct phy *phy, > + int (*reset_handler)(void *data, int port, bool pre), > + void *data, int port) > +{ > + struct rk_udphy *udphy =3D phy_get_drvdata(phy); > + [Severity: High] Similar to rk_udphy_unregister_reset_handler(), should we check if phy is N= ULL or ERR_PTR before dereferencing it here? > + guard(mutex)(&udphy->mutex); > + > + udphy->dwc3_reset_handler =3D reset_handler; > + udphy->dwc3_reset_data =3D data; > + udphy->dwc3_reset_port =3D port; > +} > +EXPORT_SYMBOL(rk_udphy_register_reset_handler); > + > static int rk_udphy_power_on(struct rk_udphy *udphy, u8 mode) > { > int ret; > @@ -1005,24 +1046,36 @@ static int rk_udphy_power_on(struct rk_udphy *udp= hy, u8 mode) > } > =20 > if (udphy->status =3D=3D UDPHY_MODE_NONE) { > + rk_udphy_run_reset_handler(udphy, true); > + [Severity: Medium] Should we check the return value of rk_udphy_run_reset_handler(udphy, true) here and abort the power-on sequence on failure? If the DWC3 controller fails to quiesce due to hardware state or timeouts, the handler will propagate the error code. Ignoring this error and proceeding unconditionally to rk_udphy_setup() drops the PHY clock while the DWC3 PIPE interface might still be active, directly violating the safety invariant this patch was introduced to enforce and leading to SErrors. > ret =3D rk_udphy_setup(udphy); > - if (ret) > + if (ret) { > + rk_udphy_run_reset_handler(udphy, false); > return ret; > + } > =20 > if (!udphy->hs && udphy->mode & UDPHY_MODE_USB) > rk_udphy_u3_port_disable(udphy, false); > udphy->phy_needs_reinit =3D false; > + > + rk_udphy_run_reset_handler(udphy, false); > } else if (udphy->phy_needs_reinit) { > + rk_udphy_run_reset_handler(udphy, true); > + [Severity: Medium] Same question here during the reinitialization sequence. Does this need to handle the return value to prevent proceeding with PHY reset when the DWC3 = PIPE interface has not successfully been disabled? > rk_udphy_u3_port_disable(udphy, true); > udelay(10); > =20 > ret =3D rk_udphy_init(udphy); > - if (ret) > + if (ret) { > + rk_udphy_run_reset_handler(udphy, false); > return ret; > + } > =20 > if (!udphy->hs && udphy->mode & UDPHY_MODE_USB) > rk_udphy_u3_port_disable(udphy, false); > udphy->phy_needs_reinit =3D false; > + > + rk_udphy_run_reset_handler(udphy, false); > } > =20 > udphy->status |=3D mode; > diff --git a/include/linux/phy/rockchip-usbdp.h b/include/linux/phy/rockc= hip-usbdp.h > new file mode 100644 > --- /dev/null > +++ b/include/linux/phy/rockchip-usbdp.h > @@ -0,0 +1,16 @@ > +/* SPDX-License-Identifier: GPL-2.0-or-later */ > +/* > + * Rockchip USBDP Combo PHY with Samsung IP block driver > + * > + * Copyright (C) 2026 Collabora Ltd > + */ > + > +#ifndef __ROCKCHIP_USBDP > +#define __ROCKCHIP_USBDP > + > +void rk_udphy_unregister_reset_handler(struct phy *phy); > +void rk_udphy_register_reset_handler(struct phy *phy, > + int (*reset_handler)(void *data, int port, bool pre), > + void *data, int port); > + [Severity: Low] Should this header provide #if IS_ENABLED(CONFIG_PHY_ROCKCHIP_USBDP) guards and static inline dummy fallbacks for these functions? If CONFIG_USB_DWC3_ROCKCHIP is enabled but CONFIG_PHY_ROCKCHIP_USBDP is dis= abled, any caller invoking these APIs directly will cause the kernel build to fail= at the linking stage with undefined reference errors. > +#endif --=20 Sashiko AI review =C2=B7 https://sashiko.dev/#/patchset/20261016-b4-rockchi= p-dwc3-rockchip-glue-v17-0-876f96893e2f@collabora.com?part=3D2