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 20C4AC43458 for ; Fri, 3 Jul 2026 23:59:22 +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=/scN+zAARSjOcarKTj8jEJjpQPo/g8LJfuGpuuPTLl0=; b=K/ZX/eR+BC9mQb rii52mm1W/cN7oUB1PxxFJmKbYDgD8af7BLwuTWJxVpcUCLFkrrwFNLk2JuaMyJ3b2F3f1ecYymxH amT2uY7W4gK6Jf8CC/nvtze829dx+jkI7/OUq69KBpxDHGhsnYmu7UBUPKiTZeKUzfJrnQbcrihAy yhfHJF2/2EgBoU24r4bsERB3mtC1DEcm8+IAX+WnaIfVJ+2Sw2uhDOE2vJrrgARSk4iPT7CRa8NNH HuSzMZGRhqAvGbCnAfcZX8CnoIizyahj3YcML5TwyCavexYGoSGvSPzYG1Q5roGgKqSulkZLxjo6S fwgxe/QqUc3wU/ApqTWw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1wfnmz-0000000824i-3hmF; Fri, 03 Jul 2026 23:59:21 +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 1wfnmz-0000000824c-1Mcv for linux-phy@lists.infradead.org; Fri, 03 Jul 2026 23:59:21 +0000 Received: from smtp.kernel.org (quasi.space.kernel.org [100.103.45.18]) by sea.source.kernel.org (Postfix) with ESMTP id 1B79043D5C; Fri, 3 Jul 2026 23:59:21 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 9C7D71F000E9; Fri, 3 Jul 2026 23:59:20 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1783123161; bh=Qd8jX1NKu4QLPat0ZSTWr2nVGTz9hudvf3gu1AUwTXU=; h=From:Subject:Reply-To:To:Cc:In-Reply-To:References:Date; b=FN5TAskTk6izisCd0G1h5fdSbwNbYNcphXSdd2ZKg664JCg+hRpRKowHYE56iMFKY RBhNHzA9u3/Z9miRNIWd+69w9hH1f2umdy8dtt2PZwXdZR8PBpc5XKhr51HasuPnoj O8uura/b3wmUbuM/tgn5nR5BXLv73uAZzxriodZwNMbHho6sRFJfD3DI9aHWU2ZqhP f20mo93Vr8JjRsnoQy4yH3QLtadIQkQsknd7NbZ1icISmaNMsL2EThnZfPW7umi0ua m63C28eseTp537+8rha28rWyw5NVW5CgxohvJ8eaC1I8lAC90HiMRqatSs2JS8K0jC xEdEyoYtqdNeA== From: sashiko-bot@kernel.org Subject: Re: [PATCH v10 30/36] usb: dwc3: core: support PHY reset notifications To: "Sebastian Reichel" Cc: olteanv@gmail.com, conor+dt@kernel.org, robh@kernel.org, vkoul@kernel.org, neil.armstrong@linaro.org, linux-phy@lists.infradead.org, devicetree@vger.kernel.org In-Reply-To: <20260703-rockchip-usbdp-cleanup-v10-30-a392711ca8a9@collabora.com> References: <20260703-rockchip-usbdp-cleanup-v10-0-a392711ca8a9@collabora.com> <20260703-rockchip-usbdp-cleanup-v10-30-a392711ca8a9@collabora.com> Date: Fri, 03 Jul 2026 23:59:20 +0000 Message-Id: <20260703235920.9C7D71F000E9@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 NCBwb3RlbnRpYWwgaXNzdWUocykgdG8gY29uc2lkZXI6Ci0gW0hpZ2hdIE1pc3NpbmcgZXJyb3Ig aGFuZGxpbmcgZm9yIHBtX3J1bnRpbWVfZ2V0X3N5bmMoKSBpbiBkd2MzX3VzYjNfcGh5X25vdGlm eSgpIGNhbiBsZWFkIHRvIGhhcmR3YXJlIGFjY2VzcyBvbiBhIHN1c3BlbmRlZCBkZXZpY2UgYW5k IFBNIHVzYWdlIGNvdW50IGxlYWsuCi0gW0hpZ2hdIEFCLUJBIGRlYWRsb2NrIGJldHdlZW4gUEhZ IG5vdGlmaWVyIHJ3c2VtIGFuZCBSdW50aW1lIFBNIHN0YXRlIGxvY2sgZHVyaW5nIERXQzMgcnVu dGltZSBzdXNwZW5kLgotIFtIaWdoXSBDb25jdXJyZW50IHJlYWQtbW9kaWZ5LXdyaXRlIG9uIERX QzNfR1VTQjNQSVBFQ1RMIGNhbiBzaWxlbnRseSBjbGVhciB0aGUgbmV3bHkgYWRkZWQgUEhZU09G VFJTVCBiaXQuCi0gW01lZGl1bV0gVGhlIFBNIHJ1bnRpbWUgdXNhZ2UgY291bnRlciBpcyBwZXJt YW5lbnRseSBsZWFrZWQgaWYgdGhlIERXQzMgZHJpdmVyIHVuYmluZHMgbWlkLXJlc2V0LgotLQoK Y29tbWl0IDdhZGRkNmRhNTExYjRiNTljOWQwMzRmZTdmMDg3OGQ1MzA0ZGRhODcKQXV0aG9yOiBT ZWJhc3RpYW4gUmVpY2hlbCA8c2ViYXN0aWFuLnJlaWNoZWxAY29sbGFib3JhLmNvbT4KCnVzYjog ZHdjMzogY29yZTogc3VwcG9ydCBQSFkgcmVzZXQgbm90aWZpY2F0aW9ucwoKT24gcmVjZW50IFJv Y2tjaGlwIHBsYXRmb3JtcyAoYXQgbGVhc3QgUkszNTg4ICYgUkszNTc2KSwgRFdDMyBJUCBpcyB1 c2VkCndpdGggYSBVU0JEUCBQSFkgcHJvdmlkaW5nIFVTQjMgYW5kIERQLiBUaGlzIFBIWSBuZWVk cyB0byBiZSByZXNldCB3aGVuCnRoZSBtb2RlIGNoYW5nZXMsIHdoaWNoIG1heSBoYXBwZW4gd2hl biBwbHVnZ2luZyBpbiBkaWZmZXJlbnQgVVNCLUMKZGV2aWNlcy4KCj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvdXNiL2R3YzMvY29yZS5jIGIvZHJpdmVycy91c2IvZHdjMy9jb3JlLmMKPiBpbmRleCA1 MTdhYTdmMTQ4NmRhLi44OTlkZWNiZDBkYTA0IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvdXNiL2R3 YzMvY29yZS5jCj4gKysrIGIvZHJpdmVycy91c2IvZHdjMy9jb3JlLmMKWyAuLi4gXQo+IEBAIC04 ODAsMTAgKzg4Niw3OCBAQCBzdGF0aWMgaW50IGR3YzNfcGh5X2luaXQoc3RydWN0IGR3YzMgKmR3 YykKPiAgCXJldHVybiByZXQ7Cj4gIH0KPiAgCj4gK3N0YXRpYyBpbnQgZHdjM191c2IzX3BoeV9u b3RpZnkoc3RydWN0IG5vdGlmaWVyX2Jsb2NrICpuYiwKPiArCQkJCXVuc2lnbmVkIGxvbmcgYWN0 aW9uLCB2b2lkICpkYXRhKQo+ICt7Cj4gKwlzdHJ1Y3QgZHdjM19waHlfbmIgKnBuYiA9IGNvbnRh aW5lcl9vZihuYiwgc3RydWN0IGR3YzNfcGh5X25iLCBuYik7Cj4gKwlzdHJ1Y3QgZHdjMyAqZHdj ID0gcG5iLT5kd2M7Cj4gKwlpbnQgcG9ydCA9IHBuYi0+cG9ydF9pbmRleDsKPiArCXVuc2lnbmVk IGxvbmcgZmxhZ3M7Cj4gKwl1MzIgcmVnOwo+ICsKPiArCXN3aXRjaCAoYWN0aW9uKSB7Cj4gKwlj YXNlIFBIWV9OT1RJRllfUFJFX1JFU0VUOgo+ICsJCXBtX3J1bnRpbWVfZ2V0X3N5bmMoZHdjLT5k ZXYpOwoKW1NldmVyaXR5OiBIaWdoXQpEb2VzIHRoaXMgY29kZSBoYW5kbGUgdGhlIGNhc2Ugd2hl cmUgcG1fcnVudGltZV9nZXRfc3luYygpIGZhaWxzPwoKSWYgcG1fcnVudGltZV9nZXRfc3luYygp IHJldHVybnMgYSBuZWdhdGl2ZSBlcnJvciBjb2RlIChmYWlsaW5nIHRvIHJlc3VtZSB0aGUKZGV2 aWNlKSwgaXQgc3RpbGwgaW5jcmVtZW50cyB0aGUgUE0gdXNhZ2UgY291bnRlci4gU2luY2UgdGhl IHJldHVybiB2YWx1ZSBpcwppZ25vcmVkLCB0aGUgY29kZSB3aWxsIHByb2NlZWQgdG8gdW5jb25k aXRpb25hbGx5IGFjY2VzcyBEV0MzIGhhcmR3YXJlCnJlZ2lzdGVycyB2aWEgZHdjM19yZWFkbCgp IGFuZCBkd2MzX3dyaXRlbCgpLiBBY2Nlc3NpbmcgcmVnaXN0ZXJzIG9uIGEKc3VzcGVuZGVkLCBj bG9jay1nYXRlZCBkZXZpY2UgY2FuIHRyaWdnZXIgYSBzeW5jaHJvbm91cyBleHRlcm5hbCBhYm9y dAooU0Vycm9yKSBvciBidXMgZmF1bHQsIGNhdXNpbmcgYSBrZXJuZWwgcGFuaWMuIAoKU2hvdWxk IHRoaXMgZXJyb3IgcGF0aCBiYWxhbmNlIHRoZSB1c2FnZSBjb3VudGVyIHZpYSBwbV9ydW50aW1l X3B1dF9ub2lkbGUoKQphbmQgcmV0dXJuIGFuIGVycm9yIHRvIHByZXZlbnQgdGhlIGxlYWsgYW5k IGNyYXNoPwoKW1NldmVyaXR5OiBIaWdoXQpDYW4gdGhpcyBwbV9ydW50aW1lX2dldF9zeW5jKCkg Y2FsbCBjYXVzZSBhIGRlYWRsb2NrIGR1cmluZyBydW50aW1lIHN1c3BlbmQ/CgpXaGVuIGEgUEhZ IHJlc2V0IG5vdGlmaWNhdGlvbiBhcnJpdmVzLCB0aGUgYmxvY2tpbmdfbm90aWZpZXJfY2FsbF9j aGFpbigpCmhvbGRzIHBoeS0+bm90aWZpZXIucndzZW0gKHJlYWQgbG9jayksIGFuZCBkd2MzX3Vz YjNfcGh5X25vdGlmeSgpIGNhbGxzCnBtX3J1bnRpbWVfZ2V0X3N5bmMoKS4KCklmIERXQzMgaXMg Y29uY3VycmVudGx5IHJ1bnRpbWUtc3VzcGVuZGluZyAoaW4gREVWSUNFIG1vZGUsIHRoZSBzdGF0 ZSBpcwpSUE1fU1VTUEVORElORyksIHBtX3J1bnRpbWVfZ2V0X3N5bmMoKSBibG9ja3Mgd2FpdGlu ZyBmb3IgdGhlIHN1c3BlbmQgdG8KZmluaXNoLgoKVGhlIHN1c3BlbmQgdGhyZWFkIGNhbGxzIGR3 YzNfc3VzcGVuZF9jb21tb24oKSAtPiBkd2MzX2NvcmVfZXhpdCgpIC0+CmR3YzNfcGh5X3VucmVn aXN0ZXJfbm90aWZpZXJzKCksIHdoaWNoIGF0dGVtcHRzIHRvIGFjcXVpcmUKcGh5LT5ub3RpZmll ci5yd3NlbSAod3JpdGUgbG9jaykgdmlhIGJsb2NraW5nX25vdGlmaWVyX2NoYWluX3VucmVnaXN0 ZXIoKToKCmR3YzNfcGh5X3VucmVnaXN0ZXJfbm90aWZpZXJzKCkKICAgIHBoeV91bnJlZ2lzdGVy X25vdGlmaWVyKCkKICAgICAgICBibG9ja2luZ19ub3RpZmllcl9jaGFpbl91bnJlZ2lzdGVyKCkg LT4gYmxvY2tzIG9uIHdyaXRlIGxvY2sKClRoZSB0d28gdGhyZWFkcyB3b3VsZCBtdXR1YWxseSBi bG9jaywgY2F1c2luZyBhIHN0cmljdCBBQi1CQSBzeXN0ZW0gZGVhZGxvY2suCgo+ICsKPiArCQkv Kgo+ICsJCSAqIEFzc2VydCBVU0IzIFBIWSBzb2Z0IHJlc2V0IHdpdGhpbiBEV0MzIGJlZm9yZSB0 aGUgZXh0ZXJuYWwKPiArCQkgKiBQSFkgcmVzZXRzLiBUaGlzIGRpc2Nvbm5lY3RzIHRoZSBQSVBF IGludGVyZmFjZSwgcHJldmVudGluZwo+ICsJCSAqIHRoZSBEV0MzIGZyb20gaW50ZXJmZXJpbmcg d2l0aCBQSFkgcmVpbml0aWFsaXphdGlvbiBhbmQKPiArCQkgKiBhdm9pZGluZyBMQ1BMTCBsb2Nr IGZhaWx1cmVzLgo+ICsJCSAqLwo+ICsJCXNwaW5fbG9ja19pcnFzYXZlKCZkd2MtPmxvY2ssIGZs YWdzKTsKPiArCQlyZWcgPSBkd2MzX3JlYWRsKGR3YywgRFdDM19HVVNCM1BJUEVDVEwocG9ydCkp Owo+ICsJCXJlZyB8PSBEV0MzX0dVU0IzUElQRUNUTF9QSFlTT0ZUUlNUOwo+ICsJCWR3YzNfd3Jp dGVsKGR3YywgRFdDM19HVVNCM1BJUEVDVEwocG9ydCksIHJlZyk7Cj4gKwkJc3Bpbl91bmxvY2tf aXJxcmVzdG9yZSgmZHdjLT5sb2NrLCBmbGFncyk7CgpbU2V2ZXJpdHk6IEhpZ2hdCkNhbiB0aGUg UEhZU09GVFJTVCBiaXQgYmUgc2lsZW50bHkgY2xlYXJlZCBieSBjb25jdXJyZW50IHJlZ2lzdGVy IGFjY2Vzc2VzPwoKV2hpbGUgZHdjM191c2IzX3BoeV9ub3RpZnkoKSBtb2RpZmllcyBEV0MzX0dV U0IzUElQRUNUTCBob2xkaW5nIGR3Yy0+bG9jaywKdGhlIGV4aXN0aW5nIGR3YzNfZW5hYmxlX3N1 c3BoeSgpIGZ1bmN0aW9uIGFsc28gbW9kaWZpZXMgdGhpcyByZWdpc3RlciB1c2luZyBhCnJlYWQt bW9kaWZ5LXdyaXRlIHNlcXVlbmNlLCBidXQgd2l0aG91dCBob2xkaW5nIGR3Yy0+bG9jazoKCmR3 YzNfZW5hYmxlX3N1c3BoeSgpIHsKICAgIC4uLgogICAgcmVnID0gZHdjM19yZWFkbChkd2MsIERX QzNfR1VTQjNQSVBFQ1RMKGkpKTsKICAgIGlmIChlbmFibGUgJiYgIWR3Yy0+ZGlzX3UzX3N1c3Bo eV9xdWlyaykKICAgICAgICByZWcgfD0gRFdDM19HVVNCM1BJUEVDVExfU1VTUEhZOwogICAgZWxz ZQogICAgICAgIHJlZyAmPSB+RFdDM19HVVNCM1BJUEVDVExfU1VTUEhZOwogICAgZHdjM193cml0 ZWwoZHdjLCBEV0MzX0dVU0IzUElQRUNUTChpKSwgcmVnKTsKICAgIC4uLgp9CgpJZiBkd2MzX2Vu YWJsZV9zdXNwaHkoKSBleGVjdXRlcyBjb25jdXJyZW50bHkgKGUuZy4sIHRyaWdnZXJlZCB2aWEK X19kd2MzX3NldF9tb2RlKCkgZHVyaW5nIGEgcm9sZSBzd2l0Y2ggd2hlbiB0aGUgUEhZIHJlc2V0 IGlzIGFsc28gdHJpZ2dlcmVkKSwKaXQgY2FuIHJlYWQgdGhlIHJlZ2lzdGVyIGJlZm9yZSBQSFlT T0ZUUlNUIGlzIHNldCBhbmQgd3JpdGUgaXQgYmFjayBhZnRlciwKaW5hZHZlcnRlbnRseSBjbGVh cmluZyB0aGUgYml0LgoKPiArCQlicmVhazsKPiArCj4gKwljYXNlIFBIWV9OT1RJRllfUE9TVF9S RVNFVDoKWyAuLi4gXQo+ICsJCWJyZWFrOwo+ICsJfQo+ICsKPiArCXJldHVybiBOT1RJRllfT0s7 Cj4gK30KWyAuLi4gXQo+ICtzdGF0aWMgdm9pZCBkd2MzX3BoeV91bnJlZ2lzdGVyX25vdGlmaWVy cyhzdHJ1Y3QgZHdjMyAqZHdjKQo+ICt7Cj4gKwlpbnQgaTsKPiArCj4gKwlmb3IgKGkgPSAwOyBp IDwgZHdjLT5udW1fdXNiM19wb3J0czsgaSsrKQo+ICsJCXBoeV91bnJlZ2lzdGVyX25vdGlmaWVy KGR3Yy0+dXNiM19nZW5lcmljX3BoeVtpXSwKPiArCQkJCQkmZHdjLT51c2IzX3BoeV9uYltpXS5u Yik7Cj4gK30KCltTZXZlcml0eTogTWVkaXVtXQpDYW4gdGhpcyBjYXVzZSBhIFBNIHJ1bnRpbWUg dXNhZ2UgY291bnRlciBsZWFrIGlmIHRoZSBkcml2ZXIgdW5iaW5kcyBtaWQtcmVzZXQ/CgpQSFlf Tk9USUZZX1BSRV9SRVNFVCBpbmNyZW1lbnRzIHRoZSBQTSB1c2FnZSBjb3VudGVyIHZpYSBwbV9y dW50aW1lX2dldF9zeW5jKCkuCgpJZiB0aGUgZHJpdmVyIGlzIHVuYm91bmQgKGR3YzNfcmVtb3Zl KCkgLT4gZHdjM19jb3JlX3JlbW92ZSgpIC0+CmR3YzNfY29yZV9leGl0KCkpIGJlZm9yZSBQSFlf Tk9USUZZX1BPU1RfUkVTRVQgaXMgc2VudCwKZHdjM19waHlfdW5yZWdpc3Rlcl9ub3RpZmllcnMo KSBjbGVhbmx5IHVucmVnaXN0ZXJzIHRoZSBub3RpZmllci4KCkJlY2F1c2UgdGhlIG5vdGlmaWVy IGlzIHVucmVnaXN0ZXJlZCwgdGhlIERXQzMgZHJpdmVyIG5ldmVyIHJlY2VpdmVzIHRoZQpQT1NU X1JFU0VUIGV2ZW50LCBza2lwcGluZyB0aGUgY29ycmVzcG9uZGluZyBwbV9ydW50aW1lX3B1dF9h dXRvc3VzcGVuZCgpLiBUaGUKUE0gdXNhZ2UgY291bnRlciB3b3VsZCByZW1haW4gdW5iYWxhbmNl ZCwgcHJldmVudGluZyB0aGUgZGV2aWNlIGluc3RhbmNlIGZyb20KZXZlciBzdXNwZW5kaW5nIGlm IHJlYm91bmQuCgotLSAKU2FzaGlrbyBBSSByZXZpZXcgwrcgaHR0cHM6Ly9zYXNoaWtvLmRldi8j L3BhdGNoc2V0LzIwMjYwNzAzLXJvY2tjaGlwLXVzYmRwLWNsZWFudXAtdjEwLTAtYTM5MjcxMWNh OGE5QGNvbGxhYm9yYS5jb20/cGFydD0zMAoKLS0gCmxpbnV4LXBoeSBtYWlsaW5nIGxpc3QKbGlu dXgtcGh5QGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cHM6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21h aWxtYW4vbGlzdGluZm8vbGludXgtcGh5Cg== 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 4928831F9A0 for ; Fri, 3 Jul 2026 23:59:21 +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=1783123162; cv=none; b=RbM+DRDEPYAHypu2choMGNIoPE1nect0OGGprvBE2imrQtJFNapow9n9FdiPD6AvKkWqK+SzR8ausibvbWsHQ87sM/TfsuKxXP7BpY8negBr7ZKtKObxQU/1aktOMfwixEIifH73HJCcBpMaNxmqggKPlUpbzdXx6CTVTAyJNd8= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783123162; c=relaxed/simple; bh=66BBrb6jXDPG5qVEmS8m/pgUwIpL5PbaWFAGZPoqOLc=; h=From:Subject:To:Cc:In-Reply-To:References:Content-Type:Date: Message-Id; b=hn+mbv8/q1IbjSAR2+7pFcezOQjC9wHIklogpwjofvqPhlKP6KCo9EvqtR0JWfSmBbRw6LPL84MVuHUZPlHfS14vSnimqHBCX4UCA6UvFMbrcLjEy93g2Z75U+Q/gmgL3/oOd0pJAcZHwIsJs5USI/suTSvIhzXd/QhCJANMt50= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=FN5TAskT; 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="FN5TAskT" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 9C7D71F000E9; Fri, 3 Jul 2026 23:59:20 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1783123161; bh=Qd8jX1NKu4QLPat0ZSTWr2nVGTz9hudvf3gu1AUwTXU=; h=From:Subject:Reply-To:To:Cc:In-Reply-To:References:Date; b=FN5TAskTk6izisCd0G1h5fdSbwNbYNcphXSdd2ZKg664JCg+hRpRKowHYE56iMFKY RBhNHzA9u3/Z9miRNIWd+69w9hH1f2umdy8dtt2PZwXdZR8PBpc5XKhr51HasuPnoj O8uura/b3wmUbuM/tgn5nR5BXLv73uAZzxriodZwNMbHho6sRFJfD3DI9aHWU2ZqhP f20mo93Vr8JjRsnoQy4yH3QLtadIQkQsknd7NbZ1icISmaNMsL2EThnZfPW7umi0ua m63C28eseTp537+8rha28rWyw5NVW5CgxohvJ8eaC1I8lAC90HiMRqatSs2JS8K0jC xEdEyoYtqdNeA== From: sashiko-bot@kernel.org Subject: Re: [PATCH v10 30/36] usb: dwc3: core: support PHY reset notifications Reply-To: sashiko-reviews@lists.linux.dev To: "Sebastian Reichel" Cc: olteanv@gmail.com, conor+dt@kernel.org, robh@kernel.org, vkoul@kernel.org, neil.armstrong@linaro.org, linux-phy@lists.infradead.org, devicetree@vger.kernel.org In-Reply-To: <20260703-rockchip-usbdp-cleanup-v10-30-a392711ca8a9@collabora.com> References: <20260703-rockchip-usbdp-cleanup-v10-0-a392711ca8a9@collabora.com> <20260703-rockchip-usbdp-cleanup-v10-30-a392711ca8a9@collabora.com> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Date: Fri, 03 Jul 2026 23:59:20 +0000 Message-Id: <20260703235920.9C7D71F000E9@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] Missing error handling for pm_runtime_get_sync() in dwc3_usb3_phy_= notify() can lead to hardware access on a suspended device and PM usage cou= nt leak. - [High] AB-BA deadlock between PHY notifier rwsem and Runtime PM state loc= k during DWC3 runtime suspend. - [High] Concurrent read-modify-write on DWC3_GUSB3PIPECTL can silently cle= ar the newly added PHYSOFTRST bit. - [Medium] The PM runtime usage counter is permanently leaked if the DWC3 d= river unbinds mid-reset. -- commit 7addd6da511b4b59c9d034fe7f0878d5304dda87 Author: Sebastian Reichel usb: dwc3: core: support PHY reset notifications On recent Rockchip platforms (at least RK3588 & RK3576), DWC3 IP is used with a USBDP PHY providing USB3 and DP. This PHY needs to be reset when the mode changes, which may happen when plugging in different USB-C devices. > diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c > index 517aa7f1486da..899decbd0da04 100644 > --- a/drivers/usb/dwc3/core.c > +++ b/drivers/usb/dwc3/core.c [ ... ] > @@ -880,10 +886,78 @@ 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; > + > + switch (action) { > + case PHY_NOTIFY_PRE_RESET: > + pm_runtime_get_sync(dwc->dev); [Severity: High] Does this code handle the case where pm_runtime_get_sync() fails? If pm_runtime_get_sync() returns a negative error code (failing to resume t= he device), it still increments the PM usage counter. Since the return value is ignored, the code will proceed to unconditionally access DWC3 hardware registers via dwc3_readl() and dwc3_writel(). Accessing registers on a suspended, clock-gated device can trigger a synchronous external abort (SError) or bus fault, causing a kernel panic.=20 Should this error path balance the usage counter via pm_runtime_put_noidle() and return an error to prevent the leak and crash? [Severity: High] Can this pm_runtime_get_sync() call cause a deadlock during runtime suspend? When a PHY reset notification arrives, the blocking_notifier_call_chain() holds phy->notifier.rwsem (read lock), and dwc3_usb3_phy_notify() calls pm_runtime_get_sync(). If DWC3 is concurrently runtime-suspending (in DEVICE mode, the state is RPM_SUSPENDING), pm_runtime_get_sync() blocks waiting for the suspend to finish. The suspend thread calls dwc3_suspend_common() -> dwc3_core_exit() -> dwc3_phy_unregister_notifiers(), which attempts to acquire phy->notifier.rwsem (write lock) via blocking_notifier_chain_unregister(): dwc3_phy_unregister_notifiers() phy_unregister_notifier() blocking_notifier_chain_unregister() -> blocks on write lock The two threads would mutually block, causing a strict AB-BA system deadloc= k. > + > + /* > + * 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); > + 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); [Severity: High] Can the PHYSOFTRST bit be silently cleared by concurrent register accesses? While dwc3_usb3_phy_notify() modifies DWC3_GUSB3PIPECTL holding dwc->lock, the existing dwc3_enable_susphy() function also modifies this register usin= g a read-modify-write sequence, but without holding dwc->lock: dwc3_enable_susphy() { ... reg =3D dwc3_readl(dwc, DWC3_GUSB3PIPECTL(i)); if (enable && !dwc->dis_u3_susphy_quirk) reg |=3D DWC3_GUSB3PIPECTL_SUSPHY; else reg &=3D ~DWC3_GUSB3PIPECTL_SUSPHY; dwc3_writel(dwc, DWC3_GUSB3PIPECTL(i), reg); ... } If dwc3_enable_susphy() executes concurrently (e.g., triggered via __dwc3_set_mode() during a role switch when the PHY reset is also triggered= ), it can read the register before PHYSOFTRST is set and write it back after, inadvertently clearing the bit. > + break; > + > + case PHY_NOTIFY_POST_RESET: [ ... ] > + 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); > +} [Severity: Medium] Can this cause a PM runtime usage counter leak if the driver unbinds mid-re= set? PHY_NOTIFY_PRE_RESET increments the PM usage counter via pm_runtime_get_syn= c(). If the driver is unbound (dwc3_remove() -> dwc3_core_remove() -> dwc3_core_exit()) before PHY_NOTIFY_POST_RESET is sent, dwc3_phy_unregister_notifiers() cleanly unregisters the notifier. Because the notifier is unregistered, the DWC3 driver never receives the POST_RESET event, skipping the corresponding pm_runtime_put_autosuspend(). = The PM usage counter would remain unbalanced, preventing the device instance fr= om ever suspending if rebound. --=20 Sashiko AI review =C2=B7 https://sashiko.dev/#/patchset/20260703-rockchip-u= sbdp-cleanup-v10-0-a392711ca8a9@collabora.com?part=3D30