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 7B994CCF2C3 for ; Fri, 16 Oct 2026 18:55:43 +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=Bl6ZSME6u1F5tPBLiYWmkUpZkEwvWDE0Ne2dveOjxA4=; b=2ys0DFP9P6oHRR fwokOc7K8NyZzpvFAPAUDSAxM+TPIfauCJ0MaqoZHyKfsOrQ+KHDseS3sWRLqCMW3x4tMBVpEE9G2 GfTrlYMxq/2U15yBcsmKUIVfohvjrJ54O/LSxj4ZY9VuxDeFS2klNmweb2/RZBSnZs3GvTBSMEiNK WyU+Het7uMcTjg/quZBrl9K5CNtADkXYsSbCOXZeEX6kEGyxSZhIxv+Wrm3NtxOJh2xRh9Qu1nZz3 x0yzZsfqiz3rv+V41+dp0g6wLQaiMrIaz77bUAkvhJua+H8hGvf0cixI1StksgLWICO3be1Bn5+6k j0OD3tiBESLyaHTsK+0Q==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1xHn5g-00000003jkg-3uM3; Fri, 16 Oct 2026 18:55:42 +0000 Received: from sea.source.kernel.org ([2600:3c0a:e001:78e:0:1991:8:25]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1xHn5g-00000003jkE-0Q0q for linux-phy@lists.infradead.org; Fri, 16 Oct 2026 18:55:40 +0000 Received: from smtp.kernel.org (quasi.space.kernel.org [100.103.45.18]) by sea.source.kernel.org (Postfix) with ESMTP id C09DA40609; Fri, 16 Oct 2026 18:55:39 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 6E6A81F000C4; Fri, 16 Oct 2026 18:55:39 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1792176939; bh=XhlYRW+5RNZtQJHM0I3sP4EqcjDdEqo6QFMfEAwIJoM=; h=From:Subject:Reply-To:To:Cc:In-Reply-To:References:Date; b=WjaBR6IaDuWIq+19r3RLkjNRgs7kMk43XDnUl7GRlLtTiUhbOkHkWhzL2C18YRsrH 64PT+mi91jLUlfTEEomddVmRBr8Fk1hUHjfFGPD6CqT+teO66s54HqgtJ1P8bgtqAr 1/a9vSAPDidL57cokmCLJKSNWSDAWXNEhMhuacfAYiijABilmW5//mn4RsoiTvtKcJ ml47PolMvpLhoyjj5DVwgaVhOGeiALictU1AwB0BXoJlWBYxJEmQoLJWLqlVnSYD2N ezBEEQ+xdDBynHy7wuWBRhYij/4GsN75zsswrKcncDVF9ZVIzMTJ+QCL3Y/dasgTPQ 4ui0lvvc/wjRQ== Message-ID: From: sashiko-bot@kernel.org Subject: Re: [PATCH v17 5/7] usb: dwc3: rockchip: add USBDP PHY reset quirk 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-5-876f96893e2f@collabora.com> References: <20261016-b4-rockchip-dwc3-rockchip-glue-v17-0-876f96893e2f@collabora.com> <20261016-b4-rockchip-dwc3-rockchip-glue-v17-5-876f96893e2f@collabora.com> Date: Fri, 16 Oct 2026 18:55:39 +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 NCBwb3RlbnRpYWwgaXNzdWUocykgdG8gY29uc2lkZXI6Ci0gW0hpZ2hdIHVzYjogZHdjMzogTlVM TCBwb2ludGVyIGRlcmVmZXJlbmNlIG9uIG1pc3NpbmcgZ2VuZXJpYyBQSFkKLSBbSGlnaF0gdXNi OiBkd2MzOiByb2NrY2hpcDogUnVudGltZSBQTSB1c2FnZSBjb3VudCB1bmRlcmZsb3cgb24gUEhZ IHJlc2V0Ci0gW0hpZ2hdIGJ1aWxkOiBtaXNzaW5nIHN0dWJzIGZvciBya191ZHBoeV8qX3Jlc2V0 X2hhbmRsZXIgY2F1c2VzIGxpbmtlciBlcnJvcgotIFtMb3ddIHVzYjogZHdjMzogdW51c2VkIHN0 cnVjdCBkd2MzX3JrX3BoeV9uYgotLQoKY29tbWl0IDkxNTE0YWE2ODAzZjUxNGMzMGEyODA5NTAw NzBhYzlmYWVjNzIwOTIKQXV0aG9yOiBTZWJhc3RpYW4gUmVpY2hlbCA8c2ViYXN0aWFuLnJlaWNo ZWxAY29sbGFib3JhLmNvbT4KCnVzYjogZHdjMzogcm9ja2NoaXA6IGFkZCBVU0JEUCBQSFkgcmVz ZXQgcXVpcmsKClRoaXMgcGF0Y2ggaW50cm9kdWNlcyBhIFJvY2tjaGlwIFVTQkRQLXNwZWNpZmlj IHF1aXJrIHRvIGFzc2VydCBQSFlTT0ZUUlNUCmJlZm9yZSBkaXNhYmxpbmcgdGhlIGV4dGVybmFs IFBIWSBhbmQgZGVhc3NlcnQgaXQgb25jZSB0aGUgUEhZIHJldHVybnMuIFRoaXMKcHJldmVudHMg dGhlIERXQzMgSVAgZnJvbSBjb3JydXB0aW5nIHRoZSBQSFkncyBpbnRlcm5hbCBzdGF0ZSB3aGVu IHRoZSBtb2RlCmNoYW5nZXMgb24gUkszNTg4IGFuZCBSSzM1NzYgcGxhdGZvcm1zLgoKPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy91c2IvZHdjMy9LY29uZmlnIGIvZHJpdmVycy91c2IvZHdjMy9LY29u ZmlnCj4gaW5kZXggM2MxMjBlYTk3NDZkOS4uYzg2YzFhYzI5M2JmYSAxMDA2NDQKPiAtLS0gYS9k cml2ZXJzL3VzYi9kd2MzL0tjb25maWcKPiArKysgYi9kcml2ZXJzL3VzYi9kd2MzL0tjb25maWcK PiBAQCAtMTkzLDYgKzE5Myw3IEBAIGNvbmZpZyBVU0JfRFdDM19PQ1RFT04KPiAgY29uZmlnIFVT Ql9EV0MzX1JPQ0tDSElQCj4gIAl0cmlzdGF0ZSAiUm9ja2NoaXAgRFdDMyBQbGF0Zm9ybSBEcml2 ZXIiCj4gIAlkZXBlbmRzIG9uIEFSQ0hfUk9DS0NISVAgfHwgQ09NUElMRV9URVNUCj4gKwlkZXBl bmRzIG9uIFBIWV9ST0NLQ0hJUF9VU0JEUCB8fCAhUEhZX1JPQ0tDSElQX1VTQkRQCgpbU2V2ZXJp dHk6IEhpZ2hdCklmIENPTkZJR19QSFlfUk9DS0NISVBfVVNCRFAgaXMgZGlzYWJsZWQsIGAhUEhZ X1JPQ0tDSElQX1VTQkRQYCBldmFsdWF0ZXMgdG8geSwKd2hpY2ggcGVybWl0cyBVU0JfRFdDM19S T0NLQ0hJUCB0byBiZSBidWlsdC4gU2luY2UKaW5jbHVkZS9saW51eC9waHkvcm9ja2NoaXAtdXNi ZHAuaCBkb2VzIG5vdCBwcm92aWRlIHN0YXRpYyBpbmxpbmUgZHVtbXkgc3R1YnMKZm9yIHRoZSBy a191ZHBoeSByZXNldCBoYW5kbGVycywgd2lsbCB0aGlzIGNhdXNlIGEgbGlua2VyIGVycm9yIGR1 ZSB0byBtaXNzaW5nCnN5bWJvbHM/Cgo+ICAJZGVwZW5kcyBvbiBPRgo+ICAJZGVmYXVsdCBVU0Jf RFdDMwo+ICAJaGVscAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9kd2MzL2R3YzMtcm9ja2No aXAuYyBiL2RyaXZlcnMvdXNiL2R3YzMvZHdjMy1yb2NrY2hpcC5jCj4gaW5kZXggNDEyOWFlZmQ2 YThiMC4uMWYzMjE1MGNhYTA5MCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL3VzYi9kd2MzL2R3YzMt cm9ja2NoaXAuYwo+ICsrKyBiL2RyaXZlcnMvdXNiL2R3YzMvZHdjMy1yb2NrY2hpcC5jCj4gQEAg LTIsMTEgKzIsMTQ0IEBACj4gIC8qIENvcHlyaWdodCAoYykgMjAyNiwgQ29sbGFib3JhIEx0ZC4g Ki8KPiAgI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgo+ICAjaW5jbHVkZSA8bGludXgvcGxhdGZv cm1fZGV2aWNlLmg+Cj4gKyNpbmNsdWRlIDxsaW51eC9waHkvcGh5Lmg+Cj4gKyNpbmNsdWRlIDxs aW51eC9waHkvcm9ja2NoaXAtdXNiZHAuaD4KPiAgI2luY2x1ZGUgPGxpbnV4L3BtX3J1bnRpbWUu aD4KPiAgI2luY2x1ZGUgImdsdWUuaCIKPiArI2luY2x1ZGUgImlvLmgiCj4gKwo+ICtzdHJ1Y3Qg ZHdjM19yb2NrY2hpcDsKPiArCj4gKy8qKgo+ICsgKiBzdHJ1Y3QgZHdjM19ya19waHlfbmIgLSB3 cmFwcGVyIGZvciBQSFkgbm90aWZpZXIgYmxvY2sKPiArICogQG5iOiBub3RpZmllciBibG9jawo+ ICsgKiBAZHdjOiBiYWNrLXBvaW50ZXIgdG8gdGhlIERXQzMgY29udHJvbGxlcgo+ICsgKiBAcG9y dF9pbmRleDogVVNCMyBwb3J0IGluZGV4IHRoaXMgbm90aWZpZXIgaXMgcmVnaXN0ZXJlZCBmb3IK PiArICovCj4gK3N0cnVjdCBkd2MzX3JrX3BoeV9uYiB7Cj4gKwlzdHJ1Y3Qgbm90aWZpZXJfYmxv Y2sJbmI7Cj4gKwlzdHJ1Y3QgZHdjM19yb2NrY2hpcAkqZHdjX3JrOwo+ICsJdTgJCQlwb3J0X2lu ZGV4Owo+ICt9OwoKW1NldmVyaXR5OiBMb3ddCklzIHRoaXMgc3RydWN0IGR3YzNfcmtfcGh5X25i IGRlY2xhcmF0aW9uIHN0aWxsIG5lZWRlZD8gSXQgYXBwZWFycyB0byBiZQp1bnVzZWQgYW55d2hl cmUgaW4gdGhlIGRyaXZlciwgcG9zc2libHkgbGVmdCBvdmVyIGZyb20gYW4gZWFybGllciB2ZXJz aW9uCnRoYXQgdXNlZCBub3RpZmllciBibG9ja3MuCgo+ICsKPiAgc3RydWN0IGR3YzNfcm9ja2No aXAgewo+ICAJc3RydWN0IGR3YzMJCWR3YzsKPiArCXU4CQkJcGh5X3Jlc2V0X2FjdGl2ZTsKPiAr fTsKPiArCj4gK3N0YXRpYyBpbnQgZHdjM19yb2NrY2hpcF9waHlfcHJlX3Jlc2V0KHN0cnVjdCBk d2MzX3JvY2tjaGlwICpkd2NfcmssIGludCBwb3J0KQo+ICt7Cj4gKwlzdHJ1Y3QgZHdjMyAqZHdj ID0gJmR3Y19yay0+ZHdjOwo+ICsJdW5zaWduZWQgbG9uZyBmbGFnczsKPiArCXUzMiByZWc7Cj4g KwlpbnQgcmV0Owo+ICsKPiArCS8qCj4gKwkgKiBJZiBhbHJlYWR5IHN1c3BlbmRlZCwgdGhlIHJl c3VtZSBwYXRoIHdpbGwgcmVpbml0IEdVU0IzUElQRUNUTAo+ICsJICogdmlhIGR3YzNfY29yZV9p bml0KCkuIEEgZm9yY2VkIHJlc3VtZSBpcyBub3QgcG9zc2libGUgYXMgdGhhdAo+ICsJICogd291 bGQgY2FsbCBwaHlfaW5pdCgpIHJlc3VsdGluZyBpbiBhIGRlYWRsb2NrLiBEdWUgdG8gdGhlCj4g KwkgKiBwaHlfaW5pdCgpIGluIHRoZSByZXN1bWUgcGF0aCB0aGVyZSBpcyBhbHNvIG5vIG5lZWQg dG8gYmxvY2sKPiArCSAqIGFzeW5jIFJQTSByZXN1bWUgb24gb3VyIHNpZGUsIHNpbmNlIHRoZSBQ SFkgc3luY2hyb25pemVzIGl0Cj4gKwkgKiBmb3IgdXMuCj4gKwkgKgo+ICsJICogcG1fcnVudGlt ZV9nZXRfaWZfYWN0aXZlKCkgcmV0dXJucyAwIHdoZW4gc3VzcGVuZGVkIChza2lwKSwKPiArCSAq IDEgd2hlbiBhY3RpdmUgKHJlZiBoZWxkKSwgb3IgLUVJTlZBTCB3aGVuIFBNIGlzIGRpc2FibGVk Cj4gKwkgKiAoZGV2aWNlIGFsd2F5cyBhY3RpdmUpLiBJbiB0aGUgLUVJTlZBTCBjYXNlIFBNIHJl ZiBjb3VudGluZwo+ICsJICogaXMgYSBuby1vcCwgc28gdGhlIHVuY29uZGl0aW9uYWwgcHV0IGlu IFBPU1RfUkVTRVQgaXMgc2FmZS4KPiArCSAqLwo+ICsJcmV0ID0gcG1fcnVudGltZV9nZXRfaWZf YWN0aXZlKGR3Yy0+ZGV2KTsKPiArCWlmICghcmV0KQo+ICsJCXJldHVybiByZXQ7CgpbU2V2ZXJp dHk6IEhpZ2hdCklmIHJ1bnRpbWUgUE0gaXMgZGlzYWJsZWQgZm9yIHRoZSBkZXZpY2UgKGUuZy4s IGR1cmluZyBzdXNwZW5kIG9yIHJlbW92YWwpLApwbV9ydW50aW1lX2dldF9pZl9hY3RpdmUoKSBy ZXR1cm5zIC1FSU5WQUwgYW5kIGRvZXMgbm90IGluY3JlbWVudCB0aGUgdXNhZ2UKY291bnQuCgpC ZWNhdXNlIGBpZiAoIXJldClgIGV2YWx1YXRlcyB0byBmYWxzZSBmb3IgLUVJTlZBTCwgdGhlIGRy aXZlciBwcm9jZWVkcyB3aXRoCnRoZSByZXNldC4gSG93ZXZlciwgdGhlIHBvc3QtcmVzZXQgYW5k IHVucmVnaXN0ZXIgcGF0aHMgdW5jb25kaXRpb25hbGx5IGRyb3AKdGhlIHVzYWdlIGNvdW50IHZp YSBwbV9ydW50aW1lX3B1dF9hdXRvc3VzcGVuZCgpLCB3aGljaCBjb3VsZCBsZWFkIHRvIGEKbWlz bWF0Y2hlZCBkZWNyZW1lbnQgYW5kIHRyaWdnZXIgYSAiUnVudGltZSBQTSB1c2FnZSBjb3VudCB1 bmRlcmZsb3chIiB3YXJuaW5nLgoKWyAuLi4gXQo+ICtzdGF0aWMgaW50IGR3YzNfcm9ja2NoaXBf cGh5X3Bvc3RfcmVzZXQoc3RydWN0IGR3YzNfcm9ja2NoaXAgKmR3Y19yaywgaW50IHBvcnQpCj4g K3sKPiArCXN0cnVjdCBkd2MzICpkd2MgPSAmZHdjX3JrLT5kd2M7Cj4gKwl1bnNpZ25lZCBsb25n IGZsYWdzOwo+ICsJdTMyIHJlZzsKPiArCj4gKwlzcGluX2xvY2tfaXJxc2F2ZSgmZHdjLT5sb2Nr LCBmbGFncyk7Cj4gKwlpZiAoIShkd2NfcmstPnBoeV9yZXNldF9hY3RpdmUgJiBCSVQocG9ydCkp KSB7Cj4gKwkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZHdjLT5sb2NrLCBmbGFncyk7Cj4gKwkJ cmV0dXJuIDA7Cj4gKwl9Cj4gKwo+ICsJZHdjX3JrLT5waHlfcmVzZXRfYWN0aXZlICY9IH5CSVQo cG9ydCk7Cj4gKwo+ICsJLyogUmVzdG9yZSBub3JtYWwgb3BlcmF0aW9uICovCj4gKwlyZWcgPSBk d2MzX3JlYWRsKGR3YywgRFdDM19HVVNCM1BJUEVDVEwocG9ydCkpOwo+ICsJcmVnICY9IH5EV0Mz X0dVU0IzUElQRUNUTF9QSFlTT0ZUUlNUOwo+ICsJZHdjM193cml0ZWwoZHdjLCBEV0MzX0dVU0Iz UElQRUNUTChwb3J0KSwgcmVnKTsKPiArCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmR3Yy0+bG9j aywgZmxhZ3MpOwo+ICsKPiArCXBtX3J1bnRpbWVfcHV0X2F1dG9zdXNwZW5kKGR3Yy0+ZGV2KTsK CltTZXZlcml0eTogSGlnaF0KRG9lcyB0aGlzIHVuY29uZGl0aW9uYWxseSBkcm9wIHRoZSBQTSB1 c2FnZSBjb3VudCBldmVuIGlmIHRoZSBpbml0aWFsCnBtX3J1bnRpbWVfZ2V0X2lmX2FjdGl2ZSgp IGNhbGwgcmV0dXJuZWQgLUVJTlZBTCB3aXRob3V0IGluY3JlbWVudGluZyBpdD8KClsgLi4uIF0K PiArc3RhdGljIHZvaWQgZHdjM19ya19waHlfdW5yZWdpc3Rlcl9ub3RpZmllcnModm9pZCAqZGF0 YSkKPiArewo+ICsJc3RydWN0IGR3YzNfcm9ja2NoaXAgKmR3Y19yayA9IGRhdGE7Cj4gKwlzdHJ1 Y3QgZHdjMyAqZHdjID0gJmR3Y19yay0+ZHdjOwo+ICsJaW50IGk7Cj4gKwo+ICsJZm9yIChpID0g MDsgaSA8IGR3Yy0+bnVtX3VzYjNfcG9ydHM7IGkrKykgewo+ICsJCXN0cnVjdCBwaHkgKnBoeSA9 IGR3Yy0+dXNiM19nZW5lcmljX3BoeVtpXTsKPiArCj4gKwkJaWYgKCFzdHJjbXAoZGV2X2RyaXZl cl9zdHJpbmcocGh5LT5kZXYucGFyZW50KSwgInJvY2tjaGlwLXVzYmRwLXBoeSIpKQoKW1NldmVy aXR5OiBIaWdoXQpJcyBpdCBwb3NzaWJsZSBmb3IgYHBoeWAgdG8gYmUgTlVMTCBoZXJlPwoKSWYg YSBVU0IzIHBvcnQgaXMgbm90IGNvbmZpZ3VyZWQgd2l0aCBhIFBIWSBpbiB0aGUgZGV2aWNlIHRy ZWUsIHRoZSBEV0MzCmNvcmUgZHJpdmVyIGxlYXZlcyBgZHdjLT51c2IzX2dlbmVyaWNfcGh5W2ld YCBhcyBOVUxMLiBFdmFsdWF0aW5nCmBwaHktPmRldi5wYXJlbnRgIHdpdGhvdXQgYSB2YWxpZCBw b2ludGVyIGNoZWNrIHdvdWxkIGNhdXNlIGFuIHVuY29uZGl0aW9uYWwKTlVMTCBwb2ludGVyIGRl cmVmZXJlbmNlIGR1cmluZyB1bmJpbmQgb3IgdGVhcmRvd24uCgo+ICsJCQlya191ZHBoeV91bnJl Z2lzdGVyX3Jlc2V0X2hhbmRsZXIoZHdjLT51c2IzX2dlbmVyaWNfcGh5W2ldKTsKPiArCX0KPiAr Cj4gKwkvKiBSZWxlYXNlIGFueSBQTSByZWZlcmVuY2VzIGZyb20gaW4tZmxpZ2h0IHJlc2V0cyAq Lwo+ICsJZm9yIChpID0gMDsgaSA8IGR3Yy0+bnVtX3VzYjNfcG9ydHM7IGkrKykgewo+ICsJCWlm IChkd2NfcmstPnBoeV9yZXNldF9hY3RpdmUgJiBCSVQoaSkpCj4gKwkJCXBtX3J1bnRpbWVfcHV0 X2F1dG9zdXNwZW5kKGR3Yy0+ZGV2KTsKPiArCX0KPiArCWR3Y19yay0+cGh5X3Jlc2V0X2FjdGl2 ZSA9IDA7Cj4gK30KPiArCj4gK3N0YXRpYyBpbnQgZHdjM19ya19waHlfcmVnaXN0ZXJfcmVzZXRf aGFuZGxlcihzdHJ1Y3QgZHdjMyAqZHdjKQo+ICt7Cj4gKwlzdHJ1Y3QgZHdjM19yb2NrY2hpcCAq ZHdjX3JrID0gY29udGFpbmVyX29mKGR3Yywgc3RydWN0IGR3YzNfcm9ja2NoaXAsIGR3Yyk7Cj4g KwlpbnQgaTsKPiArCj4gKwlmb3IgKGkgPSAwOyBpIDwgZHdjLT5udW1fdXNiM19wb3J0czsgaSsr KSB7Cj4gKwkJc3RydWN0IHBoeSAqcGh5ID0gZHdjLT51c2IzX2dlbmVyaWNfcGh5W2ldOwo+ICsK PiArCQlpZiAoIXN0cmNtcChkZXZfZHJpdmVyX3N0cmluZyhwaHktPmRldi5wYXJlbnQpLCAicm9j a2NoaXAtdXNiZHAtcGh5IikpCgpbU2V2ZXJpdHk6IEhpZ2hdCkNvdWxkIHRoaXMgYWxzbyBkZXJl ZmVyZW5jZSBhIE5VTEwgcG9pbnRlciBkdXJpbmcgcHJvYmUgaWYgYSBVU0IzIHBvcnQgbGFja3MK YSBkZWZpbmVkIFBIWT8KCj4gKwkJCXJrX3VkcGh5X3JlZ2lzdGVyX3Jlc2V0X2hhbmRsZXIocGh5 LCBkd2MzX3JvY2tjaGlwX3BoeV9yZXNldCwgZHdjX3JrLCBpKTsKCltTZXZlcml0eTogSGlnaF0K RG9lcyB0aGlzIGRpcmVjdCBjYWxsIHRvIHRoZSBQSFkgZHJpdmVyIEFQSSByZXF1aXJlIGFuIElT X0VOQUJMRUQoKSBjaGVjaz8KClNpbmNlIHRoZSBLY29uZmlnIHBlcm1pdHMgVVNCX0RXQzNfUk9D S0NISVAgdG8gYmUgYnVpbHQgZXZlbiB3aGVuClBIWV9ST0NLQ0hJUF9VU0JEUCBpcyBkaXNhYmxl ZCwgdGhpcyBjb3VsZCBjYXVzZSBhIGJ1aWxkIGZhaWx1cmUgZHVyaW5nCmxpbmtpbmcgaWYgdGhl IFBIWSBkcml2ZXIgbGFja3MgZHVtbXkgc3R1YnMgZm9yIHRoZXNlIGZ1bmN0aW9ucy4KCj4gKwl9 Cj4gKwo+ICsJcmV0dXJuIGRldm1fYWRkX2FjdGlvbl9vcl9yZXNldChkd2MtPmRldiwgZHdjM19y a19waHlfdW5yZWdpc3Rlcl9ub3RpZmllcnMsIGR3Y19yayk7Cj4gK30KCi0tIApTYXNoaWtvIEFJ IHJldmlldyDCtyBodHRwczovL3Nhc2hpa28uZGV2LyMvcGF0Y2hzZXQvMjAyNjEwMTYtYjQtcm9j a2NoaXAtZHdjMy1yb2NrY2hpcC1nbHVlLXYxNy0wLTg3NmY5Njg5M2UyZkBjb2xsYWJvcmEuY29t P3BhcnQ9NQoKLS0gCmxpbnV4LXBoeSBtYWlsaW5nIGxpc3QKbGludXgtcGh5QGxpc3RzLmluZnJh ZGVhZC5vcmcKaHR0cHM6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGlu dXgtcGh5Cg== 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 BE28942AD97 for ; Fri, 16 Oct 2026 18:55:39 +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=1792176940; cv=none; b=Gk6ax8acrOLbintoGqlxLkzwJ6+prPp5FowrrxtNTeh9INX7Li90RwOMz0KE5WR8puW13sveChjY1dfPtfObItz5tjXANecuXI5gZB0GrEaFd2zn5MuylaUnMJPp2iCdLyEqg/dbQ+MfrdghN08vS4Yb3boZfnmcWpVrfWpEHNs= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1792176940; c=relaxed/simple; bh=0ZwRDOtkJb1vYEj91HdEYA1ZXXTDbkngv/mFNSAhMAA=; h=Message-ID:From:Subject:To:Cc:In-Reply-To:References:Content-Type: Date; b=nKmscZIgMXUYETSsKM1TwKJYk2Ym+afGIspJwo/eAPstTlLZf/Ewwx4SqCsolk+PjMFWWQ4WLwOndwhhMhSBhxlrK95VE+V0K1xQ31ZPXRLUF09ygdY6eFLb1ArwxwITqiYNd7qgOodp9h/H+0OkS3pB1E9u/Fab4kD+idl6+d8= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=WjaBR6Ia; 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="WjaBR6Ia" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 6E6A81F000C4; Fri, 16 Oct 2026 18:55:39 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1792176939; bh=XhlYRW+5RNZtQJHM0I3sP4EqcjDdEqo6QFMfEAwIJoM=; h=From:Subject:Reply-To:To:Cc:In-Reply-To:References:Date; b=WjaBR6IaDuWIq+19r3RLkjNRgs7kMk43XDnUl7GRlLtTiUhbOkHkWhzL2C18YRsrH 64PT+mi91jLUlfTEEomddVmRBr8Fk1hUHjfFGPD6CqT+teO66s54HqgtJ1P8bgtqAr 1/a9vSAPDidL57cokmCLJKSNWSDAWXNEhMhuacfAYiijABilmW5//mn4RsoiTvtKcJ ml47PolMvpLhoyjj5DVwgaVhOGeiALictU1AwB0BXoJlWBYxJEmQoLJWLqlVnSYD2N ezBEEQ+xdDBynHy7wuWBRhYij/4GsN75zsswrKcncDVF9ZVIzMTJ+QCL3Y/dasgTPQ 4ui0lvvc/wjRQ== Message-ID: From: sashiko-bot@kernel.org Subject: Re: [PATCH v17 5/7] usb: dwc3: rockchip: add USBDP PHY reset quirk 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-5-876f96893e2f@collabora.com> References: <20261016-b4-rockchip-dwc3-rockchip-glue-v17-0-876f96893e2f@collabora.com> <20261016-b4-rockchip-dwc3-rockchip-glue-v17-5-876f96893e2f@collabora.com> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Date: Fri, 16 Oct 2026 18:55:39 +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] usb: dwc3: NULL pointer dereference on missing generic PHY - [High] usb: dwc3: rockchip: Runtime PM usage count underflow on PHY reset - [High] build: missing stubs for rk_udphy_*_reset_handler causes linker er= ror - [Low] usb: dwc3: unused struct dwc3_rk_phy_nb -- commit 91514aa6803f514c30a280950070ac9faec72092 Author: Sebastian Reichel usb: dwc3: rockchip: add USBDP PHY reset quirk This patch introduces a Rockchip USBDP-specific quirk to assert PHYSOFTRST before disabling the external PHY and deassert it once the PHY returns. This prevents the DWC3 IP from corrupting the PHY's internal state when the mode changes on RK3588 and RK3576 platforms. > diff --git a/drivers/usb/dwc3/Kconfig b/drivers/usb/dwc3/Kconfig > index 3c120ea9746d9..c86c1ac293bfa 100644 > --- a/drivers/usb/dwc3/Kconfig > +++ b/drivers/usb/dwc3/Kconfig > @@ -193,6 +193,7 @@ config USB_DWC3_OCTEON > config USB_DWC3_ROCKCHIP > tristate "Rockchip DWC3 Platform Driver" > depends on ARCH_ROCKCHIP || COMPILE_TEST > + depends on PHY_ROCKCHIP_USBDP || !PHY_ROCKCHIP_USBDP [Severity: High] If CONFIG_PHY_ROCKCHIP_USBDP is disabled, `!PHY_ROCKCHIP_USBDP` evaluates t= o y, which permits USB_DWC3_ROCKCHIP to be built. Since include/linux/phy/rockchip-usbdp.h does not provide static inline dummy stu= bs for the rk_udphy reset handlers, will this cause a linker error due to miss= ing symbols? > depends on OF > default USB_DWC3 > help > diff --git a/drivers/usb/dwc3/dwc3-rockchip.c b/drivers/usb/dwc3/dwc3-roc= kchip.c > index 4129aefd6a8b0..1f32150caa090 100644 > --- a/drivers/usb/dwc3/dwc3-rockchip.c > +++ b/drivers/usb/dwc3/dwc3-rockchip.c > @@ -2,11 +2,144 @@ > /* Copyright (c) 2026, Collabora Ltd. */ > #include > #include > +#include > +#include > #include > #include "glue.h" > +#include "io.h" > + > +struct dwc3_rockchip; > + > +/** > + * struct dwc3_rk_phy_nb - wrapper for PHY notifier block > + * @nb: notifier block > + * @dwc: back-pointer to the DWC3 controller > + * @port_index: USB3 port index this notifier is registered for > + */ > +struct dwc3_rk_phy_nb { > + struct notifier_block nb; > + struct dwc3_rockchip *dwc_rk; > + u8 port_index; > +}; [Severity: Low] Is this struct dwc3_rk_phy_nb declaration still needed? It appears to be unused anywhere in the driver, possibly left over from an earlier version that used notifier blocks. > + > struct dwc3_rockchip { > struct dwc3 dwc; > + u8 phy_reset_active; > +}; > + > +static int dwc3_rockchip_phy_pre_reset(struct dwc3_rockchip *dwc_rk, int= port) > +{ > + struct dwc3 *dwc =3D &dwc_rk->dwc; > + unsigned long flags; > + u32 reg; > + int ret; > + > + /* > + * If already suspended, the resume path will reinit GUSB3PIPECTL > + * via dwc3_core_init(). A forced resume is not possible as that > + * would call phy_init() resulting in a deadlock. Due to the > + * phy_init() in the resume path there is also no need to block > + * async RPM resume on our side, since the PHY synchronizes it > + * for us. > + * > + * pm_runtime_get_if_active() returns 0 when suspended (skip), > + * 1 when active (ref held), or -EINVAL when PM is disabled > + * (device always active). In the -EINVAL case PM ref counting > + * is a no-op, so the unconditional put in POST_RESET is safe. > + */ > + ret =3D pm_runtime_get_if_active(dwc->dev); > + if (!ret) > + return ret; [Severity: High] If runtime PM is disabled for the device (e.g., during suspend or removal), pm_runtime_get_if_active() returns -EINVAL and does not increment the usage count. Because `if (!ret)` evaluates to false for -EINVAL, the driver proceeds with the reset. However, the post-reset and unregister paths unconditionally drop the usage count via pm_runtime_put_autosuspend(), which could lead to a mismatched decrement and trigger a "Runtime PM usage count underflow!" warn= ing. [ ... ] > +static int dwc3_rockchip_phy_post_reset(struct dwc3_rockchip *dwc_rk, in= t port) > +{ > + struct dwc3 *dwc =3D &dwc_rk->dwc; > + unsigned long flags; > + u32 reg; > + > + spin_lock_irqsave(&dwc->lock, flags); > + if (!(dwc_rk->phy_reset_active & BIT(port))) { > + spin_unlock_irqrestore(&dwc->lock, flags); > + return 0; > + } > + > + dwc_rk->phy_reset_active &=3D ~BIT(port); > + > + /* Restore normal operation */ > + reg =3D dwc3_readl(dwc, DWC3_GUSB3PIPECTL(port)); > + reg &=3D ~DWC3_GUSB3PIPECTL_PHYSOFTRST; > + dwc3_writel(dwc, DWC3_GUSB3PIPECTL(port), reg); > + spin_unlock_irqrestore(&dwc->lock, flags); > + > + pm_runtime_put_autosuspend(dwc->dev); [Severity: High] Does this unconditionally drop the PM usage count even if the initial pm_runtime_get_if_active() call returned -EINVAL without incrementing it? [ ... ] > +static void dwc3_rk_phy_unregister_notifiers(void *data) > +{ > + struct dwc3_rockchip *dwc_rk =3D data; > + struct dwc3 *dwc =3D &dwc_rk->dwc; > + int i; > + > + for (i =3D 0; i < dwc->num_usb3_ports; i++) { > + struct phy *phy =3D dwc->usb3_generic_phy[i]; > + > + if (!strcmp(dev_driver_string(phy->dev.parent), "rockchip-usbdp-phy")) [Severity: High] Is it possible for `phy` to be NULL here? If a USB3 port is not configured with a PHY in the device tree, the DWC3 core driver leaves `dwc->usb3_generic_phy[i]` as NULL. Evaluating `phy->dev.parent` without a valid pointer check would cause an unconditional NULL pointer dereference during unbind or teardown. > + rk_udphy_unregister_reset_handler(dwc->usb3_generic_phy[i]); > + } > + > + /* Release any PM references from in-flight resets */ > + for (i =3D 0; i < dwc->num_usb3_ports; i++) { > + if (dwc_rk->phy_reset_active & BIT(i)) > + pm_runtime_put_autosuspend(dwc->dev); > + } > + dwc_rk->phy_reset_active =3D 0; > +} > + > +static int dwc3_rk_phy_register_reset_handler(struct dwc3 *dwc) > +{ > + struct dwc3_rockchip *dwc_rk =3D container_of(dwc, struct dwc3_rockchip= , dwc); > + int i; > + > + for (i =3D 0; i < dwc->num_usb3_ports; i++) { > + struct phy *phy =3D dwc->usb3_generic_phy[i]; > + > + if (!strcmp(dev_driver_string(phy->dev.parent), "rockchip-usbdp-phy")) [Severity: High] Could this also dereference a NULL pointer during probe if a USB3 port lacks a defined PHY? > + rk_udphy_register_reset_handler(phy, dwc3_rockchip_phy_reset, dwc_rk,= i); [Severity: High] Does this direct call to the PHY driver API require an IS_ENABLED() check? Since the Kconfig permits USB_DWC3_ROCKCHIP to be built even when PHY_ROCKCHIP_USBDP is disabled, this could cause a build failure during linking if the PHY driver lacks dummy stubs for these functions. > + } > + > + return devm_add_action_or_reset(dwc->dev, dwc3_rk_phy_unregister_notifi= ers, dwc_rk); > +} --=20 Sashiko AI review =C2=B7 https://sashiko.dev/#/patchset/20261016-b4-rockchi= p-dwc3-rockchip-glue-v17-0-876f96893e2f@collabora.com?part=3D5