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 D6DDAC43458 for ; Tue, 14 Jul 2026 20:15:38 +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=msjVvmIOJ7X4v0RRxlje2Vtzt8KSfRIbF/akXKMJC1U=; b=Rqg9430NUgJJCg hDzyjuoCM6LDaM+13UJr6uRFBwUvqh1nYOzRIcX8/OpnID4YKJEXjLlilwsg4evSnmXLQ0JoXIdsP kCbTxcVn4H/CTOfcEzJOKLIdfj5j2oLEy9p4JrTjFUsdrRMsx9GVWBoAOCtRlZO8mdVaF12IQsuqW gdR+T1VxuJbJVcQQZIuxK0alCcFTdoEl2xDsOt/VG2RVujEh8d8m2HXd58o/4UpKP3J10cs9nQdZk nrKRkmeLoxMeHC8PY+JHVTb8LvZzQWnbDAOxHmypIQFn0X/f7SIJQ8zySaPWuxvyjnZBUO7+3jz78 N2kNOm/fYmNHOIKFJ9YA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1wjjXV-0000000DCyX-2ArA; Tue, 14 Jul 2026 20:15:37 +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 1wjjXU-0000000DCyN-35m2 for linux-phy@lists.infradead.org; Tue, 14 Jul 2026 20:15:36 +0000 Received: from smtp.kernel.org (quasi.space.kernel.org [100.103.45.18]) by tor.source.kernel.org (Postfix) with ESMTP id D076760103; Tue, 14 Jul 2026 20:15:35 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 14F3C1F000E9; Tue, 14 Jul 2026 20:15:35 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1784060135; bh=LiSZe3OhxklEFbbPus5fchxNB3n/wmy8hSpsKl4TQpg=; h=From:Subject:Reply-To:To:Cc:In-Reply-To:References:Date; b=DIM5RkyFVdOVdnv538LRXo0NbzPcPYytg/tPg/vfCYp0L3TTLpBn/Uih2S0Bvpn/W 5nuZ3W+JU9pY9QDRfgS8+RcIdhNZlcO+k8lGZtcfUW0Yyc8xUGcu+CdjZ6Ac0Nq6Ou qPbOOD3rDycx/eeYQQCwDk/H12KVE44aTxk9nTHtcWr5MEbYC+vnzJ+kkrt4QY9r0h GgbG7D9wavWoc1H997wrOMWATkOpcQrJ4/ewTxJSqlgQGZ1nYdQGdgYWiCZh2O8Apl q3OL4ub/ibCja+9CzK1ESYZsk5t3thdg9jDEfl4qBVvmCsU1H7qFPoPYduZrRUbECy pO6YrkU82Y2JA== From: sashiko-bot@kernel.org Subject: Re: [PATCH v13 29/35] usb: dwc3: core: support PHY reset notifications To: "Sebastian Reichel" Cc: linux-phy@lists.infradead.org, robh@kernel.org, devicetree@vger.kernel.org, conor+dt@kernel.org, neil.armstrong@linaro.org, vkoul@kernel.org, olteanv@gmail.com In-Reply-To: <20260714-rockchip-usbdp-cleanup-v13-29-6cb3e769d4c5@collabora.com> References: <20260714-rockchip-usbdp-cleanup-v13-0-6cb3e769d4c5@collabora.com> <20260714-rockchip-usbdp-cleanup-v13-29-6cb3e769d4c5@collabora.com> Date: Tue, 14 Jul 2026 20:15:34 +0000 Message-Id: <20260714201535.14F3C1F000E9@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 MiBwb3RlbnRpYWwgaXNzdWUocykgdG8gY29uc2lkZXI6Ci0gW0hpZ2hdIFVuaGFuZGxlZCBgLUVJ TlZBTGAgZnJvbSBgcG1fcnVudGltZV9nZXRfaWZfYWN0aXZlKClgIGxlYWRzIHRvIHVuc2FmZSB1 bmNsb2NrZWQgaGFyZHdhcmUgYWNjZXNzIGFuZCBndWFyYW50ZWVkIFBNIHVzYWdlIGNvdW50IHVu ZGVyZmxvdy4KLSBbTWVkaXVtXSBgUEhZX05PVElGWV9QUkVfUkVTRVRgIHNraXBzIGFzc2VydGlu ZyBgUEhZU09GVFJTVGAgd2hpbGUgRFdDMyBpcyBydW50aW1lIHN1c3BlbmRpbmcsIHVuZGVybWlu aW5nIHRoZSBwYXRjaCdzIHB1cnBvc2UuCi0tCgotLS0gUGF0Y2ggWzI5XTogW1BBVENIIHYxMyAy OS8zNV0gdXNiOiBkd2MzOiBjb3JlOiBzdXBwb3J0IFBIWSByZXNldCBub3RpZmljYXRpb25zIC0t LQpjb21taXQgNmU4ZGJjZjg4MzlkNzU4ZTU0ZjE3NzY0ODZkMmU1OWY2YWNlYzljYQpBdXRob3I6 IFNlYmFzdGlhbiBSZWljaGVsIDxzZWJhc3RpYW4ucmVpY2hlbEBjb2xsYWJvcmEuY29tPgoKdXNi OiBkd2MzOiBjb3JlOiBzdXBwb3J0IFBIWSByZXNldCBub3RpZmljYXRpb25zCgpUaGlzIGNvbW1p dCBhZGRzIGhhbmRsaW5nIGZvciBQSFkgZnJhbWV3b3JrIHJlc2V0IG5vdGlmaWNhdGlvbnMgdG8g dGhlIERXQzMKY29yZS4gSXQgYXNzZXJ0cyB0aGUgUEhZU09GVFJTVCBiaXQgYmVmb3JlIHRoZSBl eHRlcm5hbCBQSFkgcmVzZXRzIGFuZApkZWFzc2VydHMgaXQgYWZ0ZXJ3YXJkLiBUaGlzIHByZXZl bnRzIHRoZSBleHRlcm5hbCBVU0JEUCBQSFkgZnJvbSBlbnRlcmluZwphIGNvcnJ1cHRlZCBzdGF0 ZSByZXN1bHRpbmcgaW4gTENQTEwgbG9jayBmYWlsdXJlcy4KCj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvdXNiL2R3YzMvY29yZS5jIGIvZHJpdmVycy91c2IvZHdjMy9jb3JlLmMKPiBpbmRleCA1MTdh YTdmMTQ4NmRhLi4xMDY3OGRkNjM0MTlhIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvdXNiL2R3YzMv Y29yZS5jCj4gKysrIGIvZHJpdmVycy91c2IvZHdjMy9jb3JlLmMKWyAuLi4gXQo+IEBAIC04ODAs NiArODgxLDEwMyBAQCBzdGF0aWMgaW50IGR3YzNfcGh5X2luaXQoc3RydWN0IGR3YzMgKmR3YykK PiAgCXJldHVybiByZXQ7Cj4gIH0KPiAgCj4gK3N0YXRpYyBpbnQgZHdjM191c2IzX3BoeV9ub3Rp Znkoc3RydWN0IG5vdGlmaWVyX2Jsb2NrICpuYiwKPiArCQkJCXVuc2lnbmVkIGxvbmcgYWN0aW9u LCB2b2lkICpkYXRhKQo+ICt7Cj4gKwlzdHJ1Y3QgZHdjM19waHlfbmIgKnBuYiA9IGNvbnRhaW5l cl9vZihuYiwgc3RydWN0IGR3YzNfcGh5X25iLCBuYik7Cj4gKwlzdHJ1Y3QgZHdjMyAqZHdjID0g cG5iLT5kd2M7Cj4gKwlpbnQgcG9ydCA9IHBuYi0+cG9ydF9pbmRleDsKPiArCXVuc2lnbmVkIGxv bmcgZmxhZ3M7Cj4gKwl1MzIgcmVnOwo+ICsJaW50IHJldDsKPiArCj4gKwlzd2l0Y2ggKGFjdGlv bikgewo+ICsJY2FzZSBQSFlfTk9USUZZX1BSRV9SRVNFVDoKPiArCQkvKgo+ICsJCSAqIElmIGFs cmVhZHkgc3VzcGVuZGVkLCB0aGUgcmVzdW1lIHBhdGggd2lsbCByZWluaXQgR1VTQjNQSVBFQ1RM Cj4gKwkJICogdmlhIGR3YzNfY29yZV9pbml0KCkuIEEgZm9yY2VkIHJlc3VtZSBpcyBub3QgcG9z c2libGUgYXMgdGhhdAo+ICsJCSAqIHdvdWxkIGNhbGwgcGh5X2luaXQoKSByZXN1bHRpbmcgaW4g YSBkZWFkbG9jay4gRHVlIHRvIHRoZQo+ICsJCSAqIHBoeV9pbml0KCkgaW4gdGhlIHJlc3VtZSBw YXRoIHRoZXJlIGlzIGFsc28gbm8gbmVlZCB0byBibG9jawo+ICsJCSAqIGFzeW5jIFJQTSByZXN1 bWUgb24gb3VyIHNpZGUsIHNpbmNlIHRoZSBQSFkgc3luY2hyb25pemVzIGl0Cj4gKwkJICogZm9y IHVzLgo+ICsJCSAqCj4gKwkJICogcG1fcnVudGltZV9nZXRfaWZfYWN0aXZlKCkgcmV0dXJucyAw IHdoZW4gc3VzcGVuZGVkIChza2lwKSwKPiArCQkgKiAxIHdoZW4gYWN0aXZlIChyZWYgaGVsZCks IG9yIC1FSU5WQUwgd2hlbiBQTSBpcyBkaXNhYmxlZAo+ICsJCSAqIChkZXZpY2UgYWx3YXlzIGFj dGl2ZSkuIEluIHRoZSAtRUlOVkFMIGNhc2UgUE0gcmVmIGNvdW50aW5nCj4gKwkJICogaXMgYSBu by1vcCwgc28gdGhlIHVuY29uZGl0aW9uYWwgcHV0IGluIFBPU1RfUkVTRVQgaXMgc2FmZS4KPiAr CQkgKi8KPiArCQlyZXQgPSBwbV9ydW50aW1lX2dldF9pZl9hY3RpdmUoZHdjLT5kZXYpOwo+ICsJ CWlmICghcmV0KQo+ICsJCQlyZXR1cm4gTk9USUZZX09LOwoKW1NldmVyaXR5OiBIaWdoXQpJZiBw bV9ydW50aW1lX2dldF9pZl9hY3RpdmUoKSByZXR1cm5zIC1FSU5WQUwgKGUuZy4gd2hlbiBQTSBp cyBkaXNhYmxlZCksCnRoaXMgY2hlY2sgb25seSBsb29rcyBmb3IgMCBhbmQgYWxsb3dzIGV4ZWN1 dGlvbiB0byBwcm9jZWVkIHdpdGhvdXQgaGF2aW5nCmluY3JlbWVudGVkIHRoZSB1c2FnZSBjb3Vu dC4KClNpbmNlIHRoZSBkZXZpY2UgbWlnaHQgbm90IGFjdHVhbGx5IGJlIGFjdGl2ZSBvciBjbG9j a2VkIHdoZW4gUE0gaXMgZGlzYWJsZWQsCmNvdWxkIHRoaXMgbGVhZCB0byB1bmNsb2NrZWQgaGFy ZHdhcmUgYWNjZXNzIG9uIERXQzNfR1VTQjNQSVBFQ1RMIGFuZCBhIGtlcm5lbApwYW5pYz8KCkFs c28sIHRoZSBjb21tZW50IG1lbnRpb25zIHRoYXQgUE0gcmVmIGNvdW50aW5nIGlzIGEgbm8tb3Ag Zm9yIC1FSU5WQUwsCm1ha2luZyB0aGUgdW5jb25kaXRpb25hbCBwdXQgaW4gUE9TVF9SRVNFVCBz YWZlLiBIb3dldmVyLApwbV9ydW50aW1lX3B1dF9hdXRvc3VzcGVuZCgpIHVuY29uZGl0aW9uYWxs eSBkZWNyZW1lbnRzIHRoZSBhdG9taWMgdXNhZ2UKY291bnRlciB2aWEgcnBtX2Ryb3BfdXNhZ2Vf Y291bnQoKS4gV29uJ3QgdGhpcyBjYXVzZSBhIHVzYWdlIGNvdW50IHVuZGVyZmxvdz8KCltTZXZl cml0eTogTWVkaXVtXQpJZiB0aGUgZGV2aWNlIHN0YXRlIGlzIFJQTV9TVVNQRU5ESU5HLCBwbV9y dW50aW1lX2dldF9pZl9hY3RpdmUoKSByZXR1cm5zIDAuCkNvdWxkIGFuIGV4dGVybmFsIFBIWSBy ZXNldCBvY2N1ciBjb25jdXJyZW50bHkgd2hpbGUgZHdjM19zdXNwZW5kX2NvbW1vbigpIGlzCmV4 ZWN1dGluZyBidXQgYmVmb3JlIGl0IGRpc2FibGVzIGNsb2Nrcz8KCklmIHNvLCB0aGlzIHJldHVy bnMgTk9USUZZX09LIGFuZCBieXBhc3NlcyBQSFlTT0ZUUlNUIGFzc2VydGlvbiB3aGlsZSB0aGUK RFdDMyBJUCBpcyBzdGlsbCBhY3RpdmVseSBkcml2aW5nIHRoZSBQSVBFIGludGVyZmFjZSwgcG90 ZW50aWFsbHkgY2F1c2luZyB0aGUKZXhhY3QgTENQTEwgbG9jayBmYWlsdXJlIHRoaXMgcGF0Y2gg aXMgbWVhbnQgdG8gZml4LgoKPiArCj4gKwkJLyoKPiArCQkgKiBBc3NlcnQgVVNCMyBQSFkgc29m dCByZXNldCB3aXRoaW4gRFdDMyBiZWZvcmUgdGhlIGV4dGVybmFsCj4gKwkJICogUEhZIHJlc2V0 cy4gVGhpcyBkaXNjb25uZWN0cyB0aGUgUElQRSBpbnRlcmZhY2UsIHByZXZlbnRpbmcKPiArCQkg KiB0aGUgRFdDMyBmcm9tIGludGVyZmVyaW5nIHdpdGggUEhZIHJlaW5pdGlhbGl6YXRpb24gYW5k Cj4gKwkJICogYXZvaWRpbmcgTENQTEwgbG9jayBmYWlsdXJlcy4KPiArCQkgKi8KPiArCQlzcGlu X2xvY2tfaXJxc2F2ZSgmZHdjLT5sb2NrLCBmbGFncyk7Cj4gKwkJZHdjLT5waHlfcmVzZXRfYWN0 aXZlIHw9IEJJVChwb3J0KTsKPiArCQlyZWcgPSBkd2MzX3JlYWRsKGR3YywgRFdDM19HVVNCM1BJ UEVDVEwocG9ydCkpOwo+ICsJCXJlZyB8PSBEV0MzX0dVU0IzUElQRUNUTF9QSFlTT0ZUUlNUOwo+ ICsJCWR3YzNfd3JpdGVsKGR3YywgRFdDM19HVVNCM1BJUEVDVEwocG9ydCksIHJlZyk7Cj4gKwkJ c3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZHdjLT5sb2NrLCBmbGFncyk7Cj4gKwkJYnJlYWs7Cj4g Kwo+ICsJY2FzZSBQSFlfTk9USUZZX1BPU1RfUkVTRVQ6Cj4gKwkJc3Bpbl9sb2NrX2lycXNhdmUo JmR3Yy0+bG9jaywgZmxhZ3MpOwo+ICsJCWlmICghKGR3Yy0+cGh5X3Jlc2V0X2FjdGl2ZSAmIEJJ VChwb3J0KSkpIHsKPiArCQkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZHdjLT5sb2NrLCBmbGFn cyk7Cj4gKwkJCXJldHVybiBOT1RJRllfT0s7Cj4gKwkJfQo+ICsKPiArCQlkd2MtPnBoeV9yZXNl dF9hY3RpdmUgJj0gfkJJVChwb3J0KTsKPiArCj4gKwkJLyoKPiArCQkgKiBEZWFzc2VydCBQSFkg c29mdCByZXNldCB0byByZWNvbm5lY3QgdGhlIFBJUEUgaW50ZXJmYWNlCj4gKwkJICogYWZ0ZXIg UEhZIHJlaW5pdGlhbGl6YXRpb24uCj4gKwkJICovCj4gKwkJcmVnID0gZHdjM19yZWFkbChkd2Ms IERXQzNfR1VTQjNQSVBFQ1RMKHBvcnQpKTsKPiArCQlyZWcgJj0gfkRXQzNfR1VTQjNQSVBFQ1RM X1BIWVNPRlRSU1Q7Cj4gKwkJZHdjM193cml0ZWwoZHdjLCBEV0MzX0dVU0IzUElQRUNUTChwb3J0 KSwgcmVnKTsKPiArCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZkd2MtPmxvY2ssIGZsYWdzKTsK PiArCj4gKwkJcG1fcnVudGltZV9wdXRfYXV0b3N1c3BlbmQoZHdjLT5kZXYpOwoKW1NldmVyaXR5 OiBIaWdoXQpJZiBwbV9ydW50aW1lX2dldF9pZl9hY3RpdmUoKSByZXR1cm5lZCAtRUlOVkFMIGVh cmxpZXIsIHdvbid0IHRoaXMKdW5jb25kaXRpb25hbCBwdXQgZHJvcCB0aGUgUE0gcmVmZXJlbmNl IGFuZCBsZWFkIHRvIGEgdXNhZ2UgY291bnQgdW5kZXJmbG93PwoKPiArCQlicmVhazsKPiArCX0K PiArCj4gKwlyZXR1cm4gTk9USUZZX09LOwo+ICt9ClsgLi4uIF0KPiArc3RhdGljIHZvaWQgZHdj M19waHlfdW5yZWdpc3Rlcl9ub3RpZmllcnMoc3RydWN0IGR3YzMgKmR3YykKPiArewo+ICsJaW50 IGk7Cj4gKwo+ICsJZm9yIChpID0gMDsgaSA8IGR3Yy0+bnVtX3VzYjNfcG9ydHM7IGkrKykKPiAr CQlwaHlfdW5yZWdpc3Rlcl9ub3RpZmllcihkd2MtPnVzYjNfZ2VuZXJpY19waHlbaV0sCj4gKwkJ CQkJJmR3Yy0+dXNiM19waHlfbmJbaV0ubmIpOwo+ICsKPiArCS8qIFJlbGVhc2UgYW55IFBNIHJl ZmVyZW5jZXMgZnJvbSBpbi1mbGlnaHQgcmVzZXRzICovCj4gKwlmb3IgKGkgPSAwOyBpIDwgZHdj LT5udW1fdXNiM19wb3J0czsgaSsrKSB7Cj4gKwkJaWYgKGR3Yy0+cGh5X3Jlc2V0X2FjdGl2ZSAm IEJJVChpKSkKPiArCQkJcG1fcnVudGltZV9wdXRfYXV0b3N1c3BlbmQoZHdjLT5kZXYpOwoKW1Nl dmVyaXR5OiBIaWdoXQpTaW1pbGFybHksIGlmIGEgcmVzZXQgaXMgaW4tZmxpZ2h0IHdoZW4gUE0g aXMgZGlzYWJsZWQgKG1lYW5pbmcgbm8gcmVmZXJlbmNlCndhcyBhY3F1aXJlZCksIHdvbid0IHRo aXMgYWxzbyBjYXVzZSBhIHVzYWdlIGNvdW50IHVuZGVyZmxvdz8KCj4gKwl9Cj4gKwlkd2MtPnBo eV9yZXNldF9hY3RpdmUgPSAwOwo+ICt9CgotLSAKU2FzaGlrbyBBSSByZXZpZXcgwrcgaHR0cHM6 Ly9zYXNoaWtvLmRldi8jL3BhdGNoc2V0LzIwMjYwNzE0LXJvY2tjaGlwLXVzYmRwLWNsZWFudXAt djEzLTAtNmNiM2U3NjlkNGM1QGNvbGxhYm9yYS5jb20/cGFydD0yOQoKLS0gCmxpbnV4LXBoeSBt YWlsaW5nIGxpc3QKbGludXgtcGh5QGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cHM6Ly9saXN0cy5p bmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtcGh5Cg== 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 AA837427FAC for ; Tue, 14 Jul 2026 20:15:35 +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=1784060136; cv=none; b=ggZrZtjyh9hLLr/QTlLge3swAD2WF8nms4SoewdVlGNI6EIvFxHzNkai9Oa7bGKF7FFhHKdpU635qo8Z2OYIC6FyQfLPZ6e+2G1D/fAXzF5CTJR0d3NPnK5AoeAcaGuEheZ1W9Rj/PF8cW0E+AVVV3H+b5U49V80GUYz2w16JY8= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784060136; c=relaxed/simple; bh=zjsfppYN9pgoZ6rzJfaaRoiBt8eCTsNIN5I+Q+UoluY=; h=From:Subject:To:Cc:In-Reply-To:References:Content-Type:Date: Message-Id; b=K8/qCx66twrGHqxjJhI5QjUwP+czyDmcaBgellg7OTOB8Madf0zDaroUz3ZcTDBRUeJyusD4Yus54s+9R2IICjoGxjByQNZfLoC7y3EHF42XngEiNzWt9dfn6+2Sn0UnFsT2Vq3N0Q0F9XXbqwEFrtoVqdXQWbTxOuVes21UYC0= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=DIM5RkyF; 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="DIM5RkyF" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 14F3C1F000E9; Tue, 14 Jul 2026 20:15:35 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1784060135; bh=LiSZe3OhxklEFbbPus5fchxNB3n/wmy8hSpsKl4TQpg=; h=From:Subject:Reply-To:To:Cc:In-Reply-To:References:Date; b=DIM5RkyFVdOVdnv538LRXo0NbzPcPYytg/tPg/vfCYp0L3TTLpBn/Uih2S0Bvpn/W 5nuZ3W+JU9pY9QDRfgS8+RcIdhNZlcO+k8lGZtcfUW0Yyc8xUGcu+CdjZ6Ac0Nq6Ou qPbOOD3rDycx/eeYQQCwDk/H12KVE44aTxk9nTHtcWr5MEbYC+vnzJ+kkrt4QY9r0h GgbG7D9wavWoc1H997wrOMWATkOpcQrJ4/ewTxJSqlgQGZ1nYdQGdgYWiCZh2O8Apl q3OL4ub/ibCja+9CzK1ESYZsk5t3thdg9jDEfl4qBVvmCsU1H7qFPoPYduZrRUbECy pO6YrkU82Y2JA== From: sashiko-bot@kernel.org Subject: Re: [PATCH v13 29/35] usb: dwc3: core: support PHY reset notifications Reply-To: sashiko-reviews@lists.linux.dev To: "Sebastian Reichel" Cc: linux-phy@lists.infradead.org, robh@kernel.org, devicetree@vger.kernel.org, conor+dt@kernel.org, neil.armstrong@linaro.org, vkoul@kernel.org, olteanv@gmail.com In-Reply-To: <20260714-rockchip-usbdp-cleanup-v13-29-6cb3e769d4c5@collabora.com> References: <20260714-rockchip-usbdp-cleanup-v13-0-6cb3e769d4c5@collabora.com> <20260714-rockchip-usbdp-cleanup-v13-29-6cb3e769d4c5@collabora.com> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Date: Tue, 14 Jul 2026 20:15:34 +0000 Message-Id: <20260714201535.14F3C1F000E9@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] Unhandled `-EINVAL` from `pm_runtime_get_if_active()` leads to uns= afe unclocked hardware access and guaranteed PM usage count underflow. - [Medium] `PHY_NOTIFY_PRE_RESET` skips asserting `PHYSOFTRST` while DWC3 i= s runtime suspending, undermining the patch's purpose. -- --- Patch [29]: [PATCH v13 29/35] usb: dwc3: core: support PHY reset notifi= cations --- commit 6e8dbcf8839d758e54f1776486d2e59f6acec9ca Author: Sebastian Reichel usb: dwc3: core: support PHY reset notifications This commit adds handling for PHY framework reset notifications to the DWC3 core. It asserts the PHYSOFTRST bit before the external PHY resets and deasserts it afterward. This prevents the external USBDP PHY from entering a corrupted state resulting in LCPLL lock failures. > diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c > index 517aa7f1486da..10678dd63419a 100644 > --- a/drivers/usb/dwc3/core.c > +++ b/drivers/usb/dwc3/core.c [ ... ] > @@ -880,6 +881,103 @@ 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_phy_nb *pnb =3D container_of(nb, struct dwc3_phy_nb, nb); > + struct dwc3 *dwc =3D pnb->dwc; > + int port =3D pnb->port_index; > + unsigned long flags; > + u32 reg; > + int ret; > + > + switch (action) { > + case PHY_NOTIFY_PRE_RESET: > + /* > + * 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 NOTIFY_OK; [Severity: High] If pm_runtime_get_if_active() returns -EINVAL (e.g. when PM is disabled), this check only looks for 0 and allows execution to proceed without having incremented the usage count. Since the device might not actually be active or clocked when PM is disable= d, could this lead to unclocked hardware access on DWC3_GUSB3PIPECTL and a ker= nel panic? Also, the comment mentions that PM ref counting is a no-op for -EINVAL, making the unconditional put in POST_RESET safe. However, pm_runtime_put_autosuspend() unconditionally decrements the atomic usage counter via rpm_drop_usage_count(). Won't this cause a usage count underflo= w? [Severity: Medium] If the device state is RPM_SUSPENDING, pm_runtime_get_if_active() returns 0. Could an external PHY reset occur concurrently while dwc3_suspend_common() = is executing but before it disables clocks? If so, this returns NOTIFY_OK and bypasses PHYSOFTRST assertion while the DWC3 IP is still actively driving the PIPE interface, potentially causing t= he exact LCPLL lock failure this patch is meant to fix. > + > + /* > + * 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. > + */ > + spin_lock_irqsave(&dwc->lock, flags); > + dwc->phy_reset_active |=3D BIT(port); > + 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); > + break; > + > + case PHY_NOTIFY_POST_RESET: > + spin_lock_irqsave(&dwc->lock, flags); > + if (!(dwc->phy_reset_active & BIT(port))) { > + spin_unlock_irqrestore(&dwc->lock, flags); > + return NOTIFY_OK; > + } > + > + dwc->phy_reset_active &=3D ~BIT(port); > + > + /* > + * Deassert PHY soft reset to reconnect the PIPE interface > + * after PHY reinitialization. > + */ > + 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] If pm_runtime_get_if_active() returned -EINVAL earlier, won't this unconditional put drop the PM reference and lead to a usage count underflow? > + break; > + } > + > + return NOTIFY_OK; > +} [ ... ] > +static void dwc3_phy_unregister_notifiers(struct dwc3 *dwc) > +{ > + int i; > + > + for (i =3D 0; i < dwc->num_usb3_ports; i++) > + phy_unregister_notifier(dwc->usb3_generic_phy[i], > + &dwc->usb3_phy_nb[i].nb); > + > + /* Release any PM references from in-flight resets */ > + for (i =3D 0; i < dwc->num_usb3_ports; i++) { > + if (dwc->phy_reset_active & BIT(i)) > + pm_runtime_put_autosuspend(dwc->dev); [Severity: High] Similarly, if a reset is in-flight when PM is disabled (meaning no reference was acquired), won't this also cause a usage count underflow? > + } > + dwc->phy_reset_active =3D 0; > +} --=20 Sashiko AI review =C2=B7 https://sashiko.dev/#/patchset/20260714-rockchip-u= sbdp-cleanup-v13-0-6cb3e769d4c5@collabora.com?part=3D29