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 140F5C43458 for ; Thu, 2 Jul 2026 00:08:21 +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=s7YodUqZ880YPgNbWNPAhrHKTNV9u3xCbRnsHqIVovw=; b=N0gbaUNLtPRlvw uCdRotc5lMRrJTsa/SVL0W1er+QL2+MGGtnZiVB6w1zV9RhvwByHbbCDztFmwfdH8tzgLuHu+fce4 LfMv7jjYQuis0H7NRw3SzfsqgJe3A35o/x3fR3H1cqUyvUl09jXSkIvFzcyTFhlEKx+VVdxiDpNs0 Wi9He06XSrXkDTV5gQwRvizeCU+luQUZ5FfLko0az3+PNKHuAPOybM592Lsvpww/CG6vSctshyZXR Q+sXAIgb+1dkk4mUe4urQ3v5pELqUgs/KGW6GzW2oe+P2SnCT/DWn0Tw3CbHh7x6VDoDi0jXjtQ1C SDS9TLVYD5KgVMUSGKDw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1wf4ya-00000003GlD-3Jol; Thu, 02 Jul 2026 00:08:20 +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 1wf4yY-00000003Gl4-3kDT for linux-phy@lists.infradead.org; Thu, 02 Jul 2026 00:08:18 +0000 Received: from smtp.kernel.org (quasi.space.kernel.org [100.103.45.18]) by sea.source.kernel.org (Postfix) with ESMTP id 8819C4013C; Thu, 2 Jul 2026 00:08:18 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id EB59D1F000E9; Thu, 2 Jul 2026 00:08:17 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1782950898; bh=M/5ysJp42pvE6B0FFEBLRvGvS9MPo32gqnlRpeduy24=; h=From:Subject:Reply-To:To:Cc:In-Reply-To:References:Date; b=Y0OQjxeldP6FuuAOGFDhMctqyhHVzbuCRedQ9cMyRD6FSRlIx6g2+q9QE5xAGoVVm z/O6VtqCKQSmfgxznHPXHkn6+KKuEMW2wu2JMn7vjQCeuAVqECQ/tSio4nqIzWqlM3 Iuybffum5cFpFvIN6gUWOC8BOOPruf7E1AhncrX2sD3sDNxvpzVfJGO8rcIcJyfdNL BbeDHBNHPT2/WFCyammun+PyV7hECYsejKUBS/Q9sg64nO8b4E0WpcmyMqpgf4MLS2 XkQgZA+b1AX/KKw7+5QMXRad5Urg9kXzX69nnrFwfH5MEeYnwLwqtJNKAv3Idt556R Mf9BhdnHg+PbA== From: sashiko-bot@kernel.org Subject: Re: [PATCH v9 32/38] usb: dwc3: core: support PHY reset notifications To: "Sebastian Reichel" Cc: neil.armstrong@linaro.org, linux-phy@lists.infradead.org, conor+dt@kernel.org, robh@kernel.org, devicetree@vger.kernel.org, olteanv@gmail.com, vkoul@kernel.org In-Reply-To: <20260702-rockchip-usbdp-cleanup-v9-32-e31efbb62d2e@collabora.com> References: <20260702-rockchip-usbdp-cleanup-v9-0-e31efbb62d2e@collabora.com> <20260702-rockchip-usbdp-cleanup-v9-32-e31efbb62d2e@collabora.com> Date: Thu, 02 Jul 2026 00:08:17 +0000 Message-Id: <20260702000817.EB59D1F000E9@smtp.kernel.org> 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 NCBwb3RlbnRpYWwgaXNzdWUocykgdG8gY29uc2lkZXI6Ci0gW0hpZ2hdIFRoZSBQSFkgcmVzZXQg bm90aWZpZXIgY2hlY2tzIGBwbV9ydW50aW1lX3N1c3BlbmRlZCgpYCB3aXRob3V0IHNlY3VyaW5n IGEgUE0gcmVmZXJlbmNlLCB3aGljaCBjYW4gY2F1c2UgYSBrZXJuZWwgY3Jhc2ggaWYgdGhlIERX QzMgY29udHJvbGxlciBzdXNwZW5kcyBjb25jdXJyZW50bHkuCi0gW0hpZ2hdIFVuc3luY2hyb25p emVkIG1vZGlmaWNhdGlvbiBvZiB0aGUgYHBoeV9yZXNldF9pbl9wcm9ncmVzc2AgYml0ZmllbGQg Y2F1c2VzIGEgZGF0YSByYWNlIHRoYXQgY2FuIGNvcnJ1cHQgYWRqYWNlbnQgYml0ZmllbGRzIGlu IGBzdHJ1Y3QgZHdjM2AsIGluY2x1ZGluZyBQTSBzdGF0ZSBmbGFncyBsaWtlIGBzdXNwZW5kZWRg LgotIFtIaWdoXSBUaGUgUEhZIHJlc2V0IG5vdGlmaWVyIGluY29ycmVjdGx5IHRyZWF0cyBhIHBl ci1wb3J0IFBIWSByZXNldCBhcyBhIGdsb2JhbCBldmVudCwgYXBwbHlpbmcgc29mdCByZXNldCB0 byBhbGwgVVNCMyBwb3J0cyBhbmQgdXNpbmcgYSBzaW5nbGUgZ2xvYmFsIHN0YXRlIGZsYWcsIGJy ZWFraW5nIG11bHRpLXBvcnQgY29udHJvbGxlcnMuCi0gW0hpZ2hdIFRoZSBub3RpZmllciBwZXJm b3JtcyByZWFkLW1vZGlmeS13cml0ZSBvcGVyYXRpb25zIG9uIGBEV0MzX0dVU0IzUElQRUNUTGAg d2l0aG91dCBhY3F1aXJpbmcgdGhlIERXQzMgc3BpbmxvY2ssIGxlYWRpbmcgdG8gcmVnaXN0ZXIg c3RhdGUgY29ycnVwdGlvbi4KLS0KCmNvbW1pdCBlN2RiMTBkNzRiMDM4OTY1NzM2OGM4ODdkNTky ZTliODMwZWMxZmFjCkF1dGhvcjogU2ViYXN0aWFuIFJlaWNoZWwgPHNlYmFzdGlhbi5yZWljaGVs QGNvbGxhYm9yYS5jb20+Cgp1c2I6IGR3YzM6IGNvcmU6IHN1cHBvcnQgUEhZIHJlc2V0IG5vdGlm aWNhdGlvbnMKClRoaXMgYWRkcyBoYW5kbGluZyBmb3IgdGhlIG5ldyBQSFkgZnJhbWV3b3JrIHJl c2V0IG5vdGlmaWNhdGlvbnMgdG8gYXNzZXJ0ClBIWVNPRlRSU1Qgd2l0aGluIHRoZSBEV0MzIGNv bnRyb2xsZXIgYmVmb3JlIHRoZSBleHRlcm5hbCBQSFkgcmVzZXRzLiBUaGlzCnByZXZlbnRzIHRo ZSBEV0MzIGZyb20gaW50ZXJmZXJpbmcgd2l0aCBQSFkgcmVpbml0aWFsaXphdGlvbiBhbmQgYXZv aWRzCkxDUExMIGxvY2sgZmFpbHVyZXMgb24gUm9ja2NoaXAgcGxhdGZvcm1zLgoKPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy91c2IvZHdjMy9jb3JlLmggYi9kcml2ZXJzL3VzYi9kd2MzL2NvcmUuaAo+ IC0tLSBhL2RyaXZlcnMvdXNiL2R3YzMvY29yZS5oCj4gKysrIGIvZHJpdmVycy91c2IvZHdjMy9j b3JlLmgKWyAuLi4gXQo+IEBAIC0xNDMwLDYgKzE0MzAsNyBAQCBzdHJ1Y3QgZHdjMyB7Cj4gIAl1 bnNpZ25lZAkJd2FrZXVwX2NvbmZpZ3VyZWQ6MTsKPiAgCXVuc2lnbmVkCQlzdXNwZW5kZWQ6MTsK PiAgCXVuc2lnbmVkCQlzdXNwaHlfc3RhdGU6MTsKPiArCXVuc2lnbmVkCQlwaHlfcmVzZXRfaW5f cHJvZ3Jlc3M6MTsKCltTZXZlcml0eTogSGlnaF0KQ2FuIG1vZGlmeWluZyB0aGlzIGxvY2tsZXNz bHkgY29ycnVwdCB0aGUgYWRqYWNlbnQgYml0ZmllbGQgZmxhZ3M/CgpTaW5jZSBwaHlfcmVzZXRf aW5fcHJvZ3Jlc3Mgc2hhcmVzIGEgbWVtb3J5IHdvcmQgd2l0aCBzdXNwZW5kZWQgYW5kCnN1c3Bo eV9zdGF0ZSwgYSBjb25jdXJyZW50IG1vZGlmaWNhdGlvbiB0byB0aG9zZSBQTSBzdGF0ZSBmbGFn cyBjb3VsZCBiZQpvdmVyd3JpdHRlbiBkdXJpbmcgdGhlIG5vbi1hdG9taWMgcmVhZC1tb2RpZnkt d3JpdGUgb2YgdGhpcyBiaXRmaWVsZC4KCj4gIAo+ICAJdTE2CQkJaW1vZF9pbnRlcnZhbDsKCj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2R3YzMvY29yZS5jIGIvZHJpdmVycy91c2IvZHdjMy9j b3JlLmMKPiAtLS0gYS9kcml2ZXJzL3VzYi9kd2MzL2NvcmUuYwo+ICsrKyBiL2RyaXZlcnMvdXNi L2R3YzMvY29yZS5jClsgLi4uIF0KPiBAQCAtODg2LDEwICs4ODYsODYgQEAgc3RhdGljIGludCBk d2MzX3BoeV9pbml0KHN0cnVjdCBkd2MzICpkd2MpCj4gIAlyZXR1cm4gcmV0Owo+ICB9Cj4gIAo+ ICtzdGF0aWMgaW50IGR3YzNfdXNiM19waHlfbm90aWZ5KHN0cnVjdCBub3RpZmllcl9ibG9jayAq bmIsCj4gKwkJCQl1bnNpZ25lZCBsb25nIGFjdGlvbiwgdm9pZCAqZGF0YSkKPiArewo+ICsJc3Ry dWN0IGR3YzMgKmR3YyA9IGNvbnRhaW5lcl9vZihuYiwgc3RydWN0IGR3YzNfcGh5X25iLCBuYikt PmR3YzsKPiArCWludCBpOwo+ICsKPiArCXN3aXRjaCAoYWN0aW9uKSB7Cj4gKwljYXNlIFBIWV9O T1RJRllfUFJFX1JFU0VUOgo+ICsJCS8qCj4gKwkJICogSWYgdGhlIGNvbnRyb2xsZXIgaXMgYWxy ZWFkeSBzdXNwZW5kZWQgKGUuZy4gcnVudGltZSBQTSksCj4gKwkJICogdGhlcmUgaXMgbm8gaW50 ZXJuYWwgc3RhdGUgdG8gY2xlYW4gdXAuCj4gKwkJICovCj4gKwkJaWYgKHBtX3J1bnRpbWVfc3Vz cGVuZGVkKGR3Yy0+ZGV2KSkKPiArCQkJcmV0dXJuIE5PVElGWV9PSzsKCltTZXZlcml0eTogSGln aF0KRG9lcyB0aGlzIGNoZWNrIHByb3RlY3QgYWdhaW5zdCB0aGUgZGV2aWNlIHN1c3BlbmRpbmcg aW1tZWRpYXRlbHkgYWZ0ZXI/CgpJZiBwbV9ydW50aW1lX3N1c3BlbmRlZCgpIHJldHVybnMgZmFs c2UsIHRoZSBjb250cm9sbGVyIGNvdWxkIHN0aWxsCmFzeW5jaHJvbm91c2x5IHN1c3BlbmQgYmVm b3JlIFBIWV9OT1RJRllfUE9TVF9SRVNFVCBvY2N1cnMuCgpTaG91bGQgdGhpcyBhY3F1aXJlIGEg cmVmZXJlbmNlIHZpYSBwbV9ydW50aW1lX2dldF9pZl9hY3RpdmUoKSB0byBwcmV2ZW50CnRoZSBk ZXZpY2UgY2xvY2tzIGZyb20gYmVpbmcgZ2F0ZWQgd2hpbGUgdGhlIHJlc2V0IGlzIGluIHByb2dy ZXNzPwoKPiArCj4gKwkJZHdjLT5waHlfcmVzZXRfaW5fcHJvZ3Jlc3MgPSB0cnVlOwo+ICsKPiAr CQkvKgo+ICsJCSAqIEFzc2VydCBVU0IzIFBIWSBzb2Z0IHJlc2V0IHdpdGhpbiBEV0MzIGJlZm9y ZSB0aGUgZXh0ZXJuYWwKPiArCQkgKiBQSFkgcmVzZXRzLiBUaGlzIGRpc2Nvbm5lY3RzIHRoZSBQ SVBFIGludGVyZmFjZSwgcHJldmVudGluZwo+ICsJCSAqIHRoZSBEV0MzIGZyb20gaW50ZXJmZXJp bmcgd2l0aCBQSFkgcmVpbml0aWFsaXphdGlvbiBhbmQKPiArCQkgKiBhdm9pZGluZyBMQ1BMTCBs b2NrIGZhaWx1cmVzLgo+ICsJCSAqLwo+ICsJCWZvciAoaSA9IDA7IGkgPCBkd2MtPm51bV91c2Iz X3BvcnRzOyBpKyspIHsKCltTZXZlcml0eTogSGlnaF0KRG9lcyB0aGlzIHVuaW50ZW50aW9uYWxs eSBkaXNydXB0IGFsbCBwb3J0cyBvbiBhIG11bHRpLXBvcnQgY29udHJvbGxlcj8KClRoZSBub3Rp ZmllciBibG9jayBpZGVudGlmaWVzIHRoZSBzcGVjaWZpYyBkd2MzX3BoeV9uYiAoYW5kIGltcGxp Y2l0bHkgdGhlCnBvcnQpIHRoYXQgdHJpZ2dlcmVkIHRoZSBldmVudCwgYnV0IHRoaXMgbG9vcHMg b3ZlciBhbGwgbnVtX3VzYjNfcG9ydHMgYW5kCmFzc2VydHMgc29mdCByZXNldCBvbiBhbGwgb2Yg dGhlbS4KCk92ZXJsYXBwaW5nIHJlc2V0cyBvbiBkaWZmZXJlbnQgcG9ydHMgbWlnaHQgYWxzbyBj bG9iYmVyIHRoZSBzaGFyZWQKZHdjLT5waHlfcmVzZXRfaW5fcHJvZ3Jlc3MgZmxhZywgZHJvcHBp bmcgY29ubmVjdGlvbnMgb24gcG9ydHMgdGhhdCBkaWQKbm90IHRyaWdnZXIgdGhlIG5vdGlmaWNh dGlvbi4KCj4gKwkJCXUzMiByZWcgPSBkd2MzX3JlYWRsKGR3YywgRFdDM19HVVNCM1BJUEVDVEwo aSkpOwo+ICsKPiArCQkJcmVnIHw9IERXQzNfR1VTQjNQSVBFQ1RMX1BIWVNPRlRSU1Q7Cj4gKwkJ CWR3YzNfd3JpdGVsKGR3YywgRFdDM19HVVNCM1BJUEVDVEwoaSksIHJlZyk7CgpbU2V2ZXJpdHk6 IEhpZ2hdCkNhbiB0aGlzIGxvY2tsZXNzIHJlYWQtbW9kaWZ5LXdyaXRlIGNvcnJ1cHQgRFdDM19H VVNCM1BJUEVDVEw/CgpUaGlzIG1vZGlmaWVzIHRoZSByZWdpc3RlciB3aXRob3V0IGhvbGRpbmcg ZHdjLT5sb2NrLgoKSWYgdGhpcyByYWNlcyB3aXRoIFBNIHRyYW5zaXRpb25zIHJ1bm5pbmcgZHdj M19lbmFibGVfc3VzcGh5KCksIHdoaWNoIGFsc28KbW9kaWZpZXMgdGhpcyByZWdpc3RlciwgY291 bGQgb25lIG9mIHRoZSByZWdpc3RlciB1cGRhdGVzIGJlIGxvc3Q/Cgo+ICsJCX0KPiArCQlicmVh azsKPiArCj4gKwljYXNlIFBIWV9OT1RJRllfUE9TVF9SRVNFVDoKPiArCQlpZiAoIWR3Yy0+cGh5 X3Jlc2V0X2luX3Byb2dyZXNzKQo+ICsJCQlyZXR1cm4gTk9USUZZX09LOwo+ICsKPiArCQlkd2Mt PnBoeV9yZXNldF9pbl9wcm9ncmVzcyA9IGZhbHNlOwo+ICsKPiArCQkvKgo+ICsJCSAqIERlYXNz ZXJ0IFBIWSBzb2Z0IHJlc2V0IGFuZCByZWNvbmZpZ3VyZSB0aGUgUElQRSBpbnRlcmZhY2UKPiAr CQkgKiBzZXR0aW5ncyBhZnRlciBQSFkgcmVpbml0aWFsaXphdGlvbi4KPiArCQkgKi8KPiArCQlm b3IgKGkgPSAwOyBpIDwgZHdjLT5udW1fdXNiM19wb3J0czsgaSsrKSB7Cj4gKwkJCXUzMiByZWcg PSBkd2MzX3JlYWRsKGR3YywgRFdDM19HVVNCM1BJUEVDVEwoaSkpOwoKW1NldmVyaXR5OiBIaWdo XQpJZiB0aGUgZGV2aWNlIHN1c3BlbmRlZCBhc3luY2hyb25vdXNseSBiZXR3ZWVuIFBSRV9SRVNF VCBhbmQgUE9TVF9SRVNFVCwKY291bGQgYWNjZXNzaW5nIHRoaXMgaGFyZHdhcmUgcmVnaXN0ZXIg Y2F1c2UgYSBzeW5jaHJvbm91cyBleHRlcm5hbCBhYm9ydD8KClNpbmNlIHBoeV9yZXNldF9pbl9w cm9ncmVzcyBpcyB0cnVlLCB0aGlzIHBhdGggZXhlY3V0ZXMgdW5jb25kaXRpb25hbGx5CmV2ZW4g aWYgdGhlIGNvbnRyb2xsZXIncyBjbG9ja3MgYXJlIG5vdyBkaXNhYmxlZC4KCj4gKwo+ICsJCQly ZWcgJj0gfkRXQzNfR1VTQjNQSVBFQ1RMX1BIWVNPRlRSU1Q7Cj4gKwkJCWR3YzNfd3JpdGVsKGR3 YywgRFdDM19HVVNCM1BJUEVDVEwoaSksIHJlZyk7Cj4gKwkJfQo+ICsJCWJyZWFrOwo+ICsJfQo+ ICsKPiArCXJldHVybiBOT1RJRllfT0s7Cj4gK30KCi0tIApTYXNoaWtvIEFJIHJldmlldyDCtyBo dHRwczovL3Nhc2hpa28uZGV2LyMvcGF0Y2hzZXQvMjAyNjA3MDItcm9ja2NoaXAtdXNiZHAtY2xl YW51cC12OS0wLWUzMWVmYmI2MmQyZUBjb2xsYWJvcmEuY29tP3BhcnQ9MzIKCi0tIApsaW51eC1w aHkgbWFpbGluZyBsaXN0CmxpbnV4LXBoeUBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHBzOi8vbGlz dHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LXBoeQo= 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 D42BB171BB for ; Thu, 2 Jul 2026 00:08:18 +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=1782950900; cv=none; b=uuZ5qw7BeiNNP3ICFSwZvs2DqyxouENgF3q1TKN4riK9IAKro5UCA5aU4bqus5kWEd4XegpKux1CD8Ev8i+gABNcFPW9j8MJR+1UDPkA7eC/Swt/S1+cbuWXxkDhbx5rHDHQMy22eemnyfYasmRTEYKjtzId7w/NFhoK64HpKAU= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1782950900; c=relaxed/simple; bh=qb38VjVoODqvESl1s8BcKqEAJXvlZxRbDLMW5f+MUds=; h=From:Subject:To:Cc:In-Reply-To:References:Content-Type:Date: Message-Id; b=meF3Ak3YEVfJkY9OiriU/EMWI9aS67cwFMDs57yiL338dKQm/Z4lNCQCyRUXEeAKlQw/VSD0KS2FyZk2Dafmp8do23T7nXPBepBYp94/HSqCO6JiwN0Sizd8/vsQrDjNj5c0/yVgBDSCGs+EOx8JtPNg493xZLfiIHe58hnkfiQ= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Y0OQjxel; 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="Y0OQjxel" Received: by smtp.kernel.org (Postfix) with ESMTPSA id EB59D1F000E9; Thu, 2 Jul 2026 00:08:17 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1782950898; bh=M/5ysJp42pvE6B0FFEBLRvGvS9MPo32gqnlRpeduy24=; h=From:Subject:Reply-To:To:Cc:In-Reply-To:References:Date; b=Y0OQjxeldP6FuuAOGFDhMctqyhHVzbuCRedQ9cMyRD6FSRlIx6g2+q9QE5xAGoVVm z/O6VtqCKQSmfgxznHPXHkn6+KKuEMW2wu2JMn7vjQCeuAVqECQ/tSio4nqIzWqlM3 Iuybffum5cFpFvIN6gUWOC8BOOPruf7E1AhncrX2sD3sDNxvpzVfJGO8rcIcJyfdNL BbeDHBNHPT2/WFCyammun+PyV7hECYsejKUBS/Q9sg64nO8b4E0WpcmyMqpgf4MLS2 XkQgZA+b1AX/KKw7+5QMXRad5Urg9kXzX69nnrFwfH5MEeYnwLwqtJNKAv3Idt556R Mf9BhdnHg+PbA== From: sashiko-bot@kernel.org Subject: Re: [PATCH v9 32/38] usb: dwc3: core: support PHY reset notifications Reply-To: sashiko-reviews@lists.linux.dev To: "Sebastian Reichel" Cc: neil.armstrong@linaro.org, linux-phy@lists.infradead.org, conor+dt@kernel.org, robh@kernel.org, devicetree@vger.kernel.org, olteanv@gmail.com, vkoul@kernel.org In-Reply-To: <20260702-rockchip-usbdp-cleanup-v9-32-e31efbb62d2e@collabora.com> References: <20260702-rockchip-usbdp-cleanup-v9-0-e31efbb62d2e@collabora.com> <20260702-rockchip-usbdp-cleanup-v9-32-e31efbb62d2e@collabora.com> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Date: Thu, 02 Jul 2026 00:08:17 +0000 Message-Id: <20260702000817.EB59D1F000E9@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] The PHY reset notifier checks `pm_runtime_suspended()` without sec= uring a PM reference, which can cause a kernel crash if the DWC3 controller= suspends concurrently. - [High] Unsynchronized modification of the `phy_reset_in_progress` bitfiel= d causes a data race that can corrupt adjacent bitfields in `struct dwc3`, = including PM state flags like `suspended`. - [High] The PHY reset notifier incorrectly treats a per-port PHY reset as = a global event, applying soft reset to all USB3 ports and using a single gl= obal state flag, breaking multi-port controllers. - [High] The notifier performs read-modify-write operations on `DWC3_GUSB3P= IPECTL` without acquiring the DWC3 spinlock, leading to register state corr= uption. -- commit e7db10d74b0389657368c887d592e9b830ec1fac Author: Sebastian Reichel usb: dwc3: core: support PHY reset notifications This adds handling for the new PHY framework reset notifications to assert PHYSOFTRST within the DWC3 controller before the external PHY resets. This prevents the DWC3 from interfering with PHY reinitialization and avoids LCPLL lock failures on Rockchip platforms. > diff --git a/drivers/usb/dwc3/core.h b/drivers/usb/dwc3/core.h > --- a/drivers/usb/dwc3/core.h > +++ b/drivers/usb/dwc3/core.h [ ... ] > @@ -1430,6 +1430,7 @@ struct dwc3 { > unsigned wakeup_configured:1; > unsigned suspended:1; > unsigned susphy_state:1; > + unsigned phy_reset_in_progress:1; [Severity: High] Can modifying this locklessly corrupt the adjacent bitfield flags? Since phy_reset_in_progress shares a memory word with suspended and susphy_state, a concurrent modification to those PM state flags could be overwritten during the non-atomic read-modify-write of this bitfield. > =20 > u16 imod_interval; > diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c > --- a/drivers/usb/dwc3/core.c > +++ b/drivers/usb/dwc3/core.c [ ... ] > @@ -886,10 +886,86 @@ static int dwc3_phy_init(struct dwc3 *dwc) > return ret; > } > =20 > +static int dwc3_usb3_phy_notify(struct notifier_block *nb, > + unsigned long action, void *data) > +{ > + struct dwc3 *dwc =3D container_of(nb, struct dwc3_phy_nb, nb)->dwc; > + int i; > + > + switch (action) { > + case PHY_NOTIFY_PRE_RESET: > + /* > + * If the controller is already suspended (e.g. runtime PM), > + * there is no internal state to clean up. > + */ > + if (pm_runtime_suspended(dwc->dev)) > + return NOTIFY_OK; [Severity: High] Does this check protect against the device suspending immediately after? If pm_runtime_suspended() returns false, the controller could still asynchronously suspend before PHY_NOTIFY_POST_RESET occurs. Should this acquire a reference via pm_runtime_get_if_active() to prevent the device clocks from being gated while the reset is in progress? > + > + dwc->phy_reset_in_progress =3D true; > + > + /* > + * Assert USB3 PHY soft reset within DWC3 before the external > + * PHY resets. This disconnects the PIPE interface, preventing > + * the DWC3 from interfering with PHY reinitialization and > + * avoiding LCPLL lock failures. > + */ > + for (i =3D 0; i < dwc->num_usb3_ports; i++) { [Severity: High] Does this unintentionally disrupt all ports on a multi-port controller? The notifier block identifies the specific dwc3_phy_nb (and implicitly the port) that triggered the event, but this loops over all num_usb3_ports and asserts soft reset on all of them. Overlapping resets on different ports might also clobber the shared dwc->phy_reset_in_progress flag, dropping connections on ports that did not trigger the notification. > + u32 reg =3D dwc3_readl(dwc, DWC3_GUSB3PIPECTL(i)); > + > + reg |=3D DWC3_GUSB3PIPECTL_PHYSOFTRST; > + dwc3_writel(dwc, DWC3_GUSB3PIPECTL(i), reg); [Severity: High] Can this lockless read-modify-write corrupt DWC3_GUSB3PIPECTL? This modifies the register without holding dwc->lock. If this races with PM transitions running dwc3_enable_susphy(), which also modifies this register, could one of the register updates be lost? > + } > + break; > + > + case PHY_NOTIFY_POST_RESET: > + if (!dwc->phy_reset_in_progress) > + return NOTIFY_OK; > + > + dwc->phy_reset_in_progress =3D false; > + > + /* > + * Deassert PHY soft reset and reconfigure the PIPE interface > + * settings after PHY reinitialization. > + */ > + for (i =3D 0; i < dwc->num_usb3_ports; i++) { > + u32 reg =3D dwc3_readl(dwc, DWC3_GUSB3PIPECTL(i)); [Severity: High] If the device suspended asynchronously between PRE_RESET and POST_RESET, could accessing this hardware register cause a synchronous external abort? Since phy_reset_in_progress is true, this path executes unconditionally even if the controller's clocks are now disabled. > + > + reg &=3D ~DWC3_GUSB3PIPECTL_PHYSOFTRST; > + dwc3_writel(dwc, DWC3_GUSB3PIPECTL(i), reg); > + } > + break; > + } > + > + return NOTIFY_OK; > +} --=20 Sashiko AI review =C2=B7 https://sashiko.dev/#/patchset/20260702-rockchip-u= sbdp-cleanup-v9-0-e31efbb62d2e@collabora.com?part=3D32