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 238C6C43458 for ; Mon, 6 Jul 2026 22:55:55 +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=H9RJQqcTOL/SNN3qDYRMxRncKR+MBaAxYT1lTnfdsJU=; b=xBWE7FvkEUjDRR IJlxii0Kh7/WmCJDS+eIW4NAatqomaNNNe3/duPDeltXrYUW6zu1ouG/lYAUPwfXMjVPyNn3x1MZ0 NutgWs6UXqB7++Hc5J6lqdKgXww7xEZTokf3HWA3HScKsfipesjU54PwtYcXYr0hSJHPnJ4mNqKo8 mRoiQL0wTdXG6kcSvRBh5HrBsKo74tm6W9xlpkXM2jAC4QhqXBcHgzVHz+5nr51Th3eR+96cVBO8y OGKrkOot9MGO+Wt3tPgxelR5fRFSE6iFC3fsQfaTfMKrONbbZYspLzMgRq+wHg4CwNlLGY9QqfYrp afTQGzBKbLb4YmDiLuyw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1wgsEE-0000000Dknj-2wSC; Mon, 06 Jul 2026 22:55:54 +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 1wgsED-0000000DknF-3mTh for linux-phy@lists.infradead.org; Mon, 06 Jul 2026 22:55:54 +0000 Received: from smtp.kernel.org (quasi.space.kernel.org [100.103.45.18]) by tor.source.kernel.org (Postfix) with ESMTP id E6F5E61834; Mon, 6 Jul 2026 22:55:52 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 381F61F000E9; Mon, 6 Jul 2026 22:55:52 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1783378552; bh=AvEMgDrFkapxQmPYCMvW3Y96aORv04XL37BPEM0JT2g=; h=From:Subject:Reply-To:To:Cc:In-Reply-To:References:Date; b=ZMWlAZKRBhqllqhtnC3TxDwPMedtEenDerOjGj4USbe0kySsabMmFe6XU57d9WfaN NKnyx1m8CpSpONt4DHt055qJhXBCRukc55p0KYjWxVH9JHX47uWN9qKiJBKbWz8x6/ MulOhuiVHpatJEoXPH1jimHARKWvpPJqtaFY1qKxW0eDO+OsTgBUMnNnBBtSLqQdXv 5BbXXvYWKS8zQbe794s2F5SmSx64lLSG1j4tvCBXFOJOOsNwDdQvdkbRpn7brvs9/Q R2Rjx+8aH3K+nNJ7R/cj05RbUA2EyCcHYhgIb/BKb9shk3/PetAOC/WUE4cU9EpbSG YJLQxQicfjK8w== From: sashiko-bot@kernel.org Subject: Re: [RFC PATCH v1 1/2] phy: rockchip: inno-usb2: keep peripheral-only OTG port active To: "Andreas Zdziarstek" Cc: olteanv@gmail.com, vkoul@kernel.org, linux-phy@lists.infradead.org, conor+dt@kernel.org, devicetree@vger.kernel.org, robh@kernel.org, neil.armstrong@linaro.org In-Reply-To: <20260706223627.113814-2-andreas.zdziarstek@gmail.com> References: <20260706223627.113814-1-andreas.zdziarstek@gmail.com> <20260706223627.113814-2-andreas.zdziarstek@gmail.com> Date: Mon, 06 Jul 2026 22:55:51 +0000 Message-Id: <20260706225552.381F61F000E9@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 NiBwb3RlbnRpYWwgaXNzdWUocykgdG8gY29uc2lkZXI6CgpOZXcgaXNzdWVzOgotIFtNZWRpdW1d IFRoZSBwYXRjaCBpbnRyb2R1Y2VzIGEgcGVybWFuZW50IHBvd2VyIHN0YXRlIGxlYWsgZm9yIHBl cmlwaGVyYWwtb25seSBwb3J0cyBieSBza2lwcGluZyBhdXRvbm9tb3VzIFBIWSBwb3dlci1vZmZz IGJ1dCBmYWlsaW5nIHRvIHNraXAgYXV0b25vbW91cyBwb3dlci1vbnMuCgpQcmUtZXhpc3Rpbmcg aXNzdWVzOgotIFtDcml0aWNhbF0gVGhlIGNoYXJnZXIgZGV0ZWN0aW9uIGxvZ2ljIGFjY2Vzc2Vz IHVuaW5pdGlhbGl6ZWQgYGNoZ19kZXRgIHJlZ2lzdGVycyBvbiBTb0NzIGxpa2UgUkszMDM2LCBp bmFkdmVydGVudGx5IGNvcnJ1cHRpbmcgR1JGIHJlZ2lzdGVyIG9mZnNldCAweDAuCi0gW0hpZ2hd IERlbGF5ZWQgd29ya3MgKGBvdGdfc21fd29ya2AsIGBjaGdfd29ya2AsIGBzbV93b3JrYCkgYXJl IG5vdCBwcm9wZXJseSBjYW5jZWxlZCBvbiBkcml2ZXIgdW5iaW5kLCBhbmQgbXV0dWFsIHJlLWFy bWluZyBwcmV2ZW50cyBjbGVhbiB0ZWFyZG93biwgbGVhZGluZyB0byB1c2UtYWZ0ZXItZnJlZS4K LSBbSGlnaF0gVGhlIGBjYWJsZWAgdmFyaWFibGUgaW4gYHJvY2tjaGlwX3VzYjJwaHlfb3RnX3Nt X3dvcmtgIGlzIGRlY2xhcmVkIGFzIGBzdGF0aWNgLCB3aGljaCBjYXVzZXMgc3RhdGUgY29ycnVw dGlvbiBpZiBtdWx0aXBsZSBPVEcgcG9ydHMgZXhpc3QuCi0gW0hpZ2hdIFVucHJvdGVjdGVkIGNv bmN1cnJlbnQgbW9kaWZpY2F0aW9ucyB0byBPVEcgYW5kIGNoYXJnZXIgc3RhdGUgdmFyaWFibGVz IChgcnBvcnQtPnN0YXRlYCwgYHJwaHktPmNoZ19zdGF0ZWAsIGBycGh5LT5jaGdfdHlwZWApLgot IFtNZWRpdW1dIENvbmN1cnJlbnQgbG9ja2xlc3MgYWNjZXNzIHRvIGBycG9ydC0+c3VzcGVuZGVk YCBhbmQgaGFyZHdhcmUgY2xvY2svcmVnaXN0ZXIgc3RhdGUgYmV0d2VlbiB3b3JrcXVldWVzIGFu ZCB0aGUgUEhZIGNvcmUgbGVhZHMgdG8gYSBkYXRhIHJhY2UgYW5kIGNsb2NrIGxlYWtzLgotLQoK LS0tIFBhdGNoIFsxXTogW1JGQyBQQVRDSCB2MSAxLzJdIHBoeTogcm9ja2NoaXA6IGlubm8tdXNi Mjoga2VlcCBwZXJpcGhlcmFsLW9ubHkgT1RHIHBvcnQgYWN0aXZlIC0tLQpjb21taXQgZGM2YWI4 NTI1NjI2NjJlZmU3ZGIxNGVkNjk5ZTRmOGM4MmI5ZjA1MwpBdXRob3I6IEFuZHJlYXMgWmR6aWFy c3RlayA8YW5kcmVhcy56ZHppYXJzdGVrQGdtYWlsLmNvbT4KCnBoeTogcm9ja2NoaXA6IGlubm8t dXNiMjoga2VlcCBwZXJpcGhlcmFsLW9ubHkgT1RHIHBvcnQgYWN0aXZlCgpUaGlzIGNvbW1pdCB1 cGRhdGVzIHRoZSBPVEcgc3RhdGUgbWFjaGluZSB0byBza2lwIGF1dG9ub21vdXMgcG93ZXItb2Zm cwp3aGVuIHRoZSBwb3J0IGlzIHBlcmlwaGVyYWwtb25seS4gVGhpcyBwcmV2ZW50cyB0aGUgc3Rh dGUgbWFjaGluZSBmcm9tCnN1c3BlbmRpbmcgdGhlIHBvcnQgYW5kIGtpbGxpbmcgdGhlIFVTQiBn YWRnZXQgd2hlbiBib290aW5nIHdpdGhvdXQgYW4KYXR0YWNoZWQgY2FibGUuCgo+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL3BoeS9yb2NrY2hpcC9waHktcm9ja2NoaXAtaW5uby11c2IyLmMgYi9kcml2 ZXJzL3BoeS9yb2NrY2hpcC9waHktcm9ja2NoaXAtaW5uby11c2IyLmMKPiBpbmRleCA3ZDhhNTMz ZjI0YWVhLi45YjEzOGI3YWFlYjg5IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvcGh5L3JvY2tjaGlw L3BoeS1yb2NrY2hpcC1pbm5vLXVzYjIuYwo+ICsrKyBiL2RyaXZlcnMvcGh5L3JvY2tjaGlwL3Bo eS1yb2NrY2hpcC1pbm5vLXVzYjIuYwo+IEBAIC02NzAsNiArNjcwLDIzIEBAIHN0YXRpYyBjb25z dCBzdHJ1Y3QgcGh5X29wcyByb2NrY2hpcF91c2IycGh5X29wcyA9IHsKWyAuLi4gXQo+ICtzdGF0 aWMgdm9pZCByb2NrY2hpcF91c2IycGh5X3NtX3Bvd2VyX29mZihzdHJ1Y3Qgcm9ja2NoaXBfdXNi MnBoeV9wb3J0ICpycG9ydCkKPiArewo+ICsJaWYgKHJwb3J0LT5tb2RlID09IFVTQl9EUl9NT0RF X1BFUklQSEVSQUwpCj4gKwkJcmV0dXJuOwo+ICsKPiArCXJvY2tjaGlwX3VzYjJwaHlfcG93ZXJf b2ZmKHJwb3J0LT5waHkpOwo+ICt9CgpbU2V2ZXJpdHk6IE1lZGl1bV0KVGhlIHBhdGNoIHVwZGF0 ZXMgdGhpcyBmdW5jdGlvbiB0byBza2lwIHBvd2VyaW5nIG9mZiB0aGUgUEhZIHdoZW4gdGhlIG1v ZGUgaXMKVVNCX0RSX01PREVfUEVSSVBIRVJBTCBkdXJpbmcgYSBjYWJsZSBkZXRhY2guIEhvd2V2 ZXIsIGZ1cnRoZXIgZG93biBpbgpyb2NrY2hpcF91c2IycGh5X290Z19zbV93b3JrKCksIHRoZSBz dGF0ZSBtYWNoaW5lIHN0aWxsIGF1dG9ub21vdXNseSBwb3dlcnMKT04gdGhlIFBIWSB3aGVuIGEg Y2FibGUgaXMgYXR0YWNoZWQuCgpEb2VzIHRoaXMgYXN5bW1ldHJpY2FsIGJlaGF2aW9yIGxlYXZl IHRoZSBQSFkgcG93ZXJlZCBvbiBpbmRlZmluaXRlbHkgYWZ0ZXIKdGhlIGZpcnN0IGNhYmxlIGlu c2VydGlvbiwgcHJldmVudGluZyBzeXN0ZW0gc3VzcGVuZD8KCj4gKwo+ICBzdGF0aWMgdm9pZCBy b2NrY2hpcF91c2IycGh5X290Z19zbV93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKPiAg ewo+ICAJc3RydWN0IHJvY2tjaGlwX3VzYjJwaHlfcG9ydCAqcnBvcnQgPQo+IEBAIC02OTMsNyAr NzEwLDcgQEAgc3RhdGljIHZvaWQgcm9ja2NoaXBfdXNiMnBoeV9vdGdfc21fd29yayhzdHJ1Y3Qg d29ya19zdHJ1Y3QgKndvcmspCj4gIAljYXNlIE9UR19TVEFURV9VTkRFRklORUQ6Cj4gIAkJcnBv cnQtPnN0YXRlID0gT1RHX1NUQVRFX0JfSURMRTsKCltTZXZlcml0eTogSGlnaF0KVGhpcyBpcyBh IHByZS1leGlzdGluZyBpc3N1ZSwgYnV0IGlzIGl0IHNhZmUgdG8gbG9ja2xlc3NseSBtb2RpZnkg c2hhcmVkIHN0YXRlCnZhcmlhYmxlcyBsaWtlIHJwb3J0LT5zdGF0ZSBoZXJlPwoKVGhpcyBzdGF0 ZSBtYWNoaW5lIGNhbiBydW4gaW4gdGhlIGRlbGF5ZWQgd29ya3F1ZXVlLCBhbmQgaXMgY29uY3Vy cmVudGx5Cmludm9rZWQgc3luY2hyb25vdXNseSBieSB0aGUgdGhyZWFkZWQgSVJRIGhhbmRsZXIK cm9ja2NoaXBfdXNiMnBoeV9idmFsaWRfaXJxKCkgYXMgd2VsbCBhcyB0aGUgcm9ja2NoaXBfY2hn X2RldGVjdF93b3JrKCkKd29ya3F1ZXVlLgoKQ291bGQgdGhpcyBsYWNrIG9mIG11dHVhbCBleGNs dXNpb24gYWxsb3cgaW50ZXJsZWF2ZWQgc3RhdGUgdHJhbnNpdGlvbnMgb24KbXVsdGlwbGUgQ1BV cyBhbmQgY29ycnVwdCB0aGUgc3RhdGUgbWFjaGluZT8KCj4gIAkJaWYgKCF2YnVzX2F0dGFjaCkK PiAtCQkJcm9ja2NoaXBfdXNiMnBoeV9wb3dlcl9vZmYocnBvcnQtPnBoeSk7Cj4gKwkJCXJvY2tj aGlwX3VzYjJwaHlfc21fcG93ZXJfb2ZmKHJwb3J0KTsKPiAgCQlmYWxsdGhyb3VnaDsKPiAgCWNh c2UgT1RHX1NUQVRFX0JfSURMRToKPiAgCQlpZiAoZXh0Y29uX2dldF9zdGF0ZShycGh5LT5lZGV2 LCBFWFRDT05fVVNCX0hPU1QpID4gMCkgewo+IEBAIC03MTksNyArNzM2LDcgQEAgc3RhdGljIHZv aWQgcm9ja2NoaXBfdXNiMnBoeV9vdGdfc21fd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmsp Cj4gIAkJCQkJYnJlYWs7Cj4gIAkJCQljYXNlIFBPV0VSX1NVUFBMWV9UWVBFX1VTQl9EQ1A6Cj4g IAkJCQkJZGV2X2RiZygmcnBvcnQtPnBoeS0+ZGV2LCAiZGNwIGNhYmxlIGlzIGNvbm5lY3RlZFxu Iik7Cj4gLQkJCQkJcm9ja2NoaXBfdXNiMnBoeV9wb3dlcl9vZmYocnBvcnQtPnBoeSk7Cj4gKwkJ CQkJcm9ja2NoaXBfdXNiMnBoeV9zbV9wb3dlcl9vZmYocnBvcnQpOwo+ICAJCQkJCW5vdGlmeV9j aGFyZ2VyID0gdHJ1ZTsKPiAgCQkJCQlzY2hfd29yayA9IHRydWU7Cj4gIAkJCQkJY2FibGUgPSBF WFRDT05fQ0hHX1VTQl9EQ1A7CgpbU2V2ZXJpdHk6IEhpZ2hdClRoaXMgaXMgYSBwcmUtZXhpc3Rp bmcgaXNzdWUsIGJ1dCBkb2VzIHRoZSBzdGF0aWMgZGVjbGFyYXRpb24gb2YgdGhpcyBjYWJsZQp2 YXJpYWJsZSBjYXVzZSBzdGF0ZSBjb3JydXB0aW9uIGlmIG11bHRpcGxlIE9URyBwb3J0cyBleGlz dD8KClNvQ3MgbGlrZSBSSzMzOTkgZGVmaW5lIG11bHRpcGxlIFVTQjIgUEhZIGluc3RhbmNlcyB3 aXRoIE9URyBwb3J0cy4gSWYgVkJVUwpldmVudHMgb3ZlcmxhcCBvciBhbHRlcm5hdGUgYmV0d2Vl biBwb3J0cywgY291bGQgdGhlIHNoYXJlZCBjYWJsZSB2YXJpYWJsZSBiZQpvdmVyd3JpdHRlbiBi eSB0aGUgbGF0ZXN0IGV2ZW50LCBjYXVzaW5nIGRpc2Nvbm5lY3RlZCBwb3J0cyB0byByZXBvcnQg dGhlCmNoYXJnZXIgdHlwZSBvZiBhIGRpZmZlcmVudCBwb3J0IHRvIGV4dGNvbj8KCj4gQEAgLTc2 NSw3ICs3ODIsNyBAQCBzdGF0aWMgdm9pZCByb2NrY2hpcF91c2IycGh5X290Z19zbV93b3JrKHN0 cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKWyAuLi4gXQo+ICAJCWlmIChleHRjb25fZ2V0X3N0YXRl KHJwaHktPmVkZXYsIEVYVENPTl9VU0JfSE9TVCkgPT0gMCkgewo+ICAJCQlkZXZfZGJnKCZycG9y dC0+cGh5LT5kZXYsICJ1c2Igb3RnIGhvc3QgZGlzY29ubmVjdFxuIik7Cj4gIAkJCXJwb3J0LT5z dGF0ZSA9IE9UR19TVEFURV9CX0lETEU7Cj4gLQkJCXJvY2tjaGlwX3VzYjJwaHlfcG93ZXJfb2Zm KHJwb3J0LT5waHkpOwo+ICsJCQlyb2NrY2hpcF91c2IycGh5X3NtX3Bvd2VyX29mZihycG9ydCk7 Cj4gIAkJfQo+ICAJCWJyZWFrOwo+ICAJZGVmYXVsdDoKCltTZXZlcml0eTogTWVkaXVtXQpUaGlz IGlzbid0IGEgYnVnIGludHJvZHVjZWQgYnkgdGhpcyBwYXRjaCwgYnV0IGRvZXMgaW52b2tpbmcg dGhlIGludGVybmFsCnBvd2VyIG1hbmFnZW1lbnQgZnVuY3Rpb25zIGRpcmVjdGx5IGZyb20gdGhl IHdvcmtxdWV1ZSBieXBhc3MgdGhlIGdlbmVyaWMgUEhZCmZyYW1ld29yayBtdXRleD8KClRoZSBn ZW5lcmljIFBIWSBzdWJzeXN0ZW0gY2FsbHMgcGh5X3Bvd2VyX29uKCkgKHByb3RlY3RlZCBieSBw aHktPm11dGV4KSwKd2hpY2ggaW52b2tlcyByb2NrY2hpcF91c2IycGh5X3Bvd2VyX29uKCkuIENv bmN1cnJlbnRseSwgdGhlIGRyaXZlcidzCndvcmtxdWV1ZXMgaW52b2tlIHJvY2tjaGlwX3VzYjJw aHlfcG93ZXJfb24oKSBkaXJlY3RseSB3aXRob3V0IGFjcXVpcmluZwphbnkgbG9ja3MuCgpTaW5j ZSByb2NrY2hpcF91c2IycGh5X3Bvd2VyX29uKCkgcGVyZm9ybXMgYSBjaGVjay10aGVuLWFjdCBv bgpycG9ydC0+c3VzcGVuZGVkOgoKcm9ja2NoaXBfdXNiMnBoeV9wb3dlcl9vbigpIHsKICAgIGlm ICghcnBvcnQtPnN1c3BlbmRlZCkKICAgICAgICByZXR1cm4gMDsKICAgIHJldCA9IGNsa19wcmVw YXJlX2VuYWJsZShycGh5LT5jbGs0ODBtKTsKICAgIC4uLgp9CgpDb3VsZCBib3RoIHRocmVhZHMg ZXZhbHVhdGUgcnBvcnQtPnN1c3BlbmRlZCBhcyB0cnVlIHNpbXVsdGFuZW91c2x5LCBjYXVzaW5n CmRvdWJsZSBjbG9jayBlbmFibGVzIGJ1dCBvbmx5IGEgc2luZ2xlIGRpc2FibGUgbGF0ZXI/Cgpb U2V2ZXJpdHk6IEhpZ2hdClRoaXMgaXMgYSBwcmUtZXhpc3RpbmcgaXNzdWUsIGJ1dCBob3cgYXJl IHRoZXNlIGRlbGF5ZWQgd29ya3Mgc2FmZWx5IHRvcm4KZG93bj8KClRoZSB3b3JrcyBvdGdfc21f d29yayBhbmQgY2hnX3dvcmsgcmUtYXJtIGVhY2ggb3RoZXIuIEluCnJvY2tjaGlwX3VzYjJwaHlf ZXhpdCgpLCB0aGV5IGFyZSBjYW5jZWxsZWQgc2VxdWVudGlhbGx5OgoKcm9ja2NoaXBfdXNiMnBo eV9leGl0KCkgewogICAgY2FuY2VsX2RlbGF5ZWRfd29ya19zeW5jKCZycG9ydC0+b3RnX3NtX3dv cmspOwogICAgY2FuY2VsX2RlbGF5ZWRfd29ya19zeW5jKCZycG9ydC0+Y2hnX3dvcmspOwogICAg Li4uCn0KCklmIGNoZ193b3JrIGV4ZWN1dGVzIHdoaWxlIG90Z19zbV93b3JrIGlzIGJlaW5nIGNh bmNlbGxlZCwgY2FuIGl0IHJlLWFybQpvdGdfc21fd29yayBhZnRlciB0aGUgY2FuY2VsbGF0aW9u IGZpbmlzaGVzPwoKQWRkaXRpb25hbGx5LCBzaW5jZSB0aGVzZSB3b3JrcyBhcmUgaW5pdGlhbGl6 ZWQgb24gZGV2bS1tYW5hZ2VkIG1lbW9yeSBidXQKdGhlcmUgaXMgbm8gZHJpdmVyIC5yZW1vdmUg Y2FsbGJhY2sgdG8gY2FuY2VsIHRoZW0sIGNvdWxkIHBlbmRpbmcgd29ya3MKZXhlY3V0ZSBvbiBk ZXZtLWZyZWVkIG1lbW9yeSB1cG9uIGRyaXZlciB1bmJpbmQ/Cgo+IEBAIC04MzgsNyArODU1LDcg QEAgc3RhdGljIHZvaWQgcm9ja2NoaXBfY2hnX2RldGVjdF93b3JrKHN0cnVjdCB3b3JrX3N0cnVj dCAqd29yaykKPiAgCXN3aXRjaCAocnBoeS0+Y2hnX3N0YXRlKSB7Cj4gIAljYXNlIFVTQl9DSEdf U1RBVEVfVU5ERUZJTkVEOgo+ICAJCWlmICghcnBvcnQtPnN1c3BlbmRlZCAmJiAhdmJ1c19hdHRh Y2gpCj4gLQkJCXJvY2tjaGlwX3VzYjJwaHlfcG93ZXJfb2ZmKHJwb3J0LT5waHkpOwo+ICsJCQly b2NrY2hpcF91c2IycGh5X3NtX3Bvd2VyX29mZihycG9ydCk7Cj4gIAkJLyogcHV0IHRoZSBjb250 cm9sbGVyIGluIG5vbi1kcml2aW5nIG1vZGUgKi8KPiAgCQlpZiAoIXZidXNfYXR0YWNoKQo+ICAJ CQlwcm9wZXJ0eV9lbmFibGUocnBoeS0+Z3JmLCAmcnBoeS0+cGh5X2NmZy0+Y2hnX2RldC5vcG1v ZGUsIGZhbHNlKTsKCltTZXZlcml0eTogQ3JpdGljYWxdClRoaXMgaXMgYSBwcmUtZXhpc3Rpbmcg aXNzdWUsIGJ1dCBkb2VzIHRoaXMgbG9naWMgc2FmZWx5IGhhbmRsZSBTb0NzIHdoZXJlCmNoZ19k ZXQgaXMgbm90IGRlZmluZWQ/CgpGb3IgU29DcyBsaWtlIFJLMzAzNiwgdGhlIHJrMzAzNl9waHlf Y2ZncyBkb2VzIG5vdCBkZWZpbmUgY2hnX2RldC4gSG93ZXZlciwKcm9ja2NoaXBfdXNiMnBoeV9v dGdfcG9ydF9pbml0KCkgdW5jb25kaXRpb25hbGx5IGluaXRpYWxpemVzIGNoYXJnZXIgZGV0ZWN0 aW9uLgpXaGVuIGEgY2FibGUgaXMgYXR0YWNoZWQsIHJvY2tjaGlwX2NoZ19kZXRlY3Rfd29yaygp IGludm9rZXMKcHJvcGVydHlfZW5hYmxlKCkgb24gdGhlIHplcm9lZCBjaGdfZGV0IGZpZWxkczoK CnByb3BlcnR5X2VuYWJsZSgpIHsKICAgIC4uLgogICAgcmV0dXJuIHJlZ21hcF93cml0ZShiYXNl LCByZWctPm9mZnNldCwgdmFsKTsKfQoKQmVjYXVzZSBpdCBsYWNrcyB2YWxpZGF0aW9uLCB3b3Vs ZCB0aGlzIHNpbGVudGx5IHdyaXRlIHRvIHJlZy0+b2Zmc2V0IDB4MAp3aXRoIGEgd3JpdGUgbWFz aywgY29ycnVwdGluZyB0aGUgR2VuZXJhbCBSZWdpc3RlciBGaWxlcyAoR1JGKSBhdCBvZmZzZXQg MHgwPwoKLS0gClNhc2hpa28gQUkgcmV2aWV3IMK3IGh0dHBzOi8vc2FzaGlrby5kZXYvIy9wYXRj aHNldC8yMDI2MDcwNjIyMzYyNy4xMTM4MTQtMS1hbmRyZWFzLnpkemlhcnN0ZWtAZ21haWwuY29t P3BhcnQ9MQoKLS0gCmxpbnV4LXBoeSBtYWlsaW5nIGxpc3QKbGludXgtcGh5QGxpc3RzLmluZnJh 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 F091F3D3002 for ; Mon, 6 Jul 2026 22:55:52 +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=1783378554; cv=none; b=n6eEw4xtJbG1gVOBZqPfCtzbPxYs3AZYoKH8q1ov4u9uqKQ1A7Uyvik72tfnV29PhghvZrVCZSq4uTMsbyWv0N6wbXs9D8QS9SLkvd9D/SfaPNCB8Oxi8q7ZfL+sPnYg1OKYtS9RDAMDZCvahBhTN0DhDd0kVbMPPWSixBWwOJc= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783378554; c=relaxed/simple; bh=POH8BmqTh7lsC0/i6GgGlgT4WmjmTAzFYVJPABnQrvo=; h=From:Subject:To:Cc:In-Reply-To:References:Content-Type:Date: Message-Id; b=BsbSP1Vpxkru4PWw+/J3tADHUicjDt3B5L4M/TGOpytcCRulBzVrqzjlxw3SmpJMYSXLyZ9BPz4gyXddFhW0Dwunt2ykOqBGRtUdUM2rVR91JdRt8vYTY6i1SDMZaETXwz1UfFnAGx13QQ6kv6XdaWuOPuPq2h/JRUUgVgHytiU= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=ZMWlAZKR; 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="ZMWlAZKR" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 381F61F000E9; Mon, 6 Jul 2026 22:55:52 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1783378552; bh=AvEMgDrFkapxQmPYCMvW3Y96aORv04XL37BPEM0JT2g=; h=From:Subject:Reply-To:To:Cc:In-Reply-To:References:Date; b=ZMWlAZKRBhqllqhtnC3TxDwPMedtEenDerOjGj4USbe0kySsabMmFe6XU57d9WfaN NKnyx1m8CpSpONt4DHt055qJhXBCRukc55p0KYjWxVH9JHX47uWN9qKiJBKbWz8x6/ MulOhuiVHpatJEoXPH1jimHARKWvpPJqtaFY1qKxW0eDO+OsTgBUMnNnBBtSLqQdXv 5BbXXvYWKS8zQbe794s2F5SmSx64lLSG1j4tvCBXFOJOOsNwDdQvdkbRpn7brvs9/Q R2Rjx+8aH3K+nNJ7R/cj05RbUA2EyCcHYhgIb/BKb9shk3/PetAOC/WUE4cU9EpbSG YJLQxQicfjK8w== From: sashiko-bot@kernel.org Subject: Re: [RFC PATCH v1 1/2] phy: rockchip: inno-usb2: keep peripheral-only OTG port active Reply-To: sashiko-reviews@lists.linux.dev To: "Andreas Zdziarstek" Cc: olteanv@gmail.com, vkoul@kernel.org, linux-phy@lists.infradead.org, conor+dt@kernel.org, devicetree@vger.kernel.org, robh@kernel.org, neil.armstrong@linaro.org In-Reply-To: <20260706223627.113814-2-andreas.zdziarstek@gmail.com> References: <20260706223627.113814-1-andreas.zdziarstek@gmail.com> <20260706223627.113814-2-andreas.zdziarstek@gmail.com> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Date: Mon, 06 Jul 2026 22:55:51 +0000 Message-Id: <20260706225552.381F61F000E9@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 6 potential issue(= s) to consider: New issues: - [Medium] The patch introduces a permanent power state leak for peripheral= -only ports by skipping autonomous PHY power-offs but failing to skip auton= omous power-ons. Pre-existing issues: - [Critical] The charger detection logic accesses uninitialized `chg_det` r= egisters on SoCs like RK3036, inadvertently corrupting GRF register offset = 0x0. - [High] Delayed works (`otg_sm_work`, `chg_work`, `sm_work`) are not prope= rly canceled on driver unbind, and mutual re-arming prevents clean teardown= , leading to use-after-free. - [High] The `cable` variable in `rockchip_usb2phy_otg_sm_work` is declared= as `static`, which causes state corruption if multiple OTG ports exist. - [High] Unprotected concurrent modifications to OTG and charger state vari= ables (`rport->state`, `rphy->chg_state`, `rphy->chg_type`). - [Medium] Concurrent lockless access to `rport->suspended` and hardware cl= ock/register state between workqueues and the PHY core leads to a data race= and clock leaks. -- --- Patch [1]: [RFC PATCH v1 1/2] phy: rockchip: inno-usb2: keep peripheral= -only OTG port active --- commit dc6ab852562662efe7db14ed699e4f8c82b9f053 Author: Andreas Zdziarstek phy: rockchip: inno-usb2: keep peripheral-only OTG port active This commit updates the OTG state machine to skip autonomous power-offs when the port is peripheral-only. This prevents the state machine from suspending the port and killing the USB gadget when booting without an attached cable. > diff --git a/drivers/phy/rockchip/phy-rockchip-inno-usb2.c b/drivers/phy/= rockchip/phy-rockchip-inno-usb2.c > index 7d8a533f24aea..9b138b7aaeb89 100644 > --- a/drivers/phy/rockchip/phy-rockchip-inno-usb2.c > +++ b/drivers/phy/rockchip/phy-rockchip-inno-usb2.c > @@ -670,6 +670,23 @@ static const struct phy_ops rockchip_usb2phy_ops =3D= { [ ... ] > +static void rockchip_usb2phy_sm_power_off(struct rockchip_usb2phy_port *= rport) > +{ > + if (rport->mode =3D=3D USB_DR_MODE_PERIPHERAL) > + return; > + > + rockchip_usb2phy_power_off(rport->phy); > +} [Severity: Medium] The patch updates this function to skip powering off the PHY when the mode = is USB_DR_MODE_PERIPHERAL during a cable detach. However, further down in rockchip_usb2phy_otg_sm_work(), the state machine still autonomously powers ON the PHY when a cable is attached. Does this asymmetrical behavior leave the PHY powered on indefinitely after the first cable insertion, preventing system suspend? > + > static void rockchip_usb2phy_otg_sm_work(struct work_struct *work) > { > struct rockchip_usb2phy_port *rport =3D > @@ -693,7 +710,7 @@ static void rockchip_usb2phy_otg_sm_work(struct work_= struct *work) > case OTG_STATE_UNDEFINED: > rport->state =3D OTG_STATE_B_IDLE; [Severity: High] This is a pre-existing issue, but is it safe to locklessly modify shared st= ate variables like rport->state here? This state machine can run in the delayed workqueue, and is concurrently invoked synchronously by the threaded IRQ handler rockchip_usb2phy_bvalid_irq() as well as the rockchip_chg_detect_work() workqueue. Could this lack of mutual exclusion allow interleaved state transitions on multiple CPUs and corrupt the state machine? > if (!vbus_attach) > - rockchip_usb2phy_power_off(rport->phy); > + rockchip_usb2phy_sm_power_off(rport); > fallthrough; > case OTG_STATE_B_IDLE: > if (extcon_get_state(rphy->edev, EXTCON_USB_HOST) > 0) { > @@ -719,7 +736,7 @@ static void rockchip_usb2phy_otg_sm_work(struct work_= struct *work) > break; > case POWER_SUPPLY_TYPE_USB_DCP: > dev_dbg(&rport->phy->dev, "dcp cable is connected\n"); > - rockchip_usb2phy_power_off(rport->phy); > + rockchip_usb2phy_sm_power_off(rport); > notify_charger =3D true; > sch_work =3D true; > cable =3D EXTCON_CHG_USB_DCP; [Severity: High] This is a pre-existing issue, but does the static declaration of this cable variable cause state corruption if multiple OTG ports exist? SoCs like RK3399 define multiple USB2 PHY instances with OTG ports. If VBUS events overlap or alternate between ports, could the shared cable variable = be overwritten by the latest event, causing disconnected ports to report the charger type of a different port to extcon? > @@ -765,7 +782,7 @@ static void rockchip_usb2phy_otg_sm_work(struct work_= struct *work) [ ... ] > if (extcon_get_state(rphy->edev, EXTCON_USB_HOST) =3D=3D 0) { > dev_dbg(&rport->phy->dev, "usb otg host disconnect\n"); > rport->state =3D OTG_STATE_B_IDLE; > - rockchip_usb2phy_power_off(rport->phy); > + rockchip_usb2phy_sm_power_off(rport); > } > break; > default: [Severity: Medium] This isn't a bug introduced by this patch, but does invoking the internal power management functions directly from the workqueue bypass the generic P= HY framework mutex? The generic PHY subsystem calls phy_power_on() (protected by phy->mutex), which invokes rockchip_usb2phy_power_on(). Concurrently, the driver's workqueues invoke rockchip_usb2phy_power_on() directly without acquiring any locks. Since rockchip_usb2phy_power_on() performs a check-then-act on rport->suspended: rockchip_usb2phy_power_on() { if (!rport->suspended) return 0; ret =3D clk_prepare_enable(rphy->clk480m); ... } Could both threads evaluate rport->suspended as true simultaneously, causing double clock enables but only a single disable later? [Severity: High] This is a pre-existing issue, but how are these delayed works safely torn down? The works otg_sm_work and chg_work re-arm each other. In rockchip_usb2phy_exit(), they are cancelled sequentially: rockchip_usb2phy_exit() { cancel_delayed_work_sync(&rport->otg_sm_work); cancel_delayed_work_sync(&rport->chg_work); ... } If chg_work executes while otg_sm_work is being cancelled, can it re-arm otg_sm_work after the cancellation finishes? Additionally, since these works are initialized on devm-managed memory but there is no driver .remove callback to cancel them, could pending works execute on devm-freed memory upon driver unbind? > @@ -838,7 +855,7 @@ static void rockchip_chg_detect_work(struct work_stru= ct *work) > switch (rphy->chg_state) { > case USB_CHG_STATE_UNDEFINED: > if (!rport->suspended && !vbus_attach) > - rockchip_usb2phy_power_off(rport->phy); > + rockchip_usb2phy_sm_power_off(rport); > /* put the controller in non-driving mode */ > if (!vbus_attach) > property_enable(rphy->grf, &rphy->phy_cfg->chg_det.opmode, false); [Severity: Critical] This is a pre-existing issue, but does this logic safely handle SoCs where chg_det is not defined? For SoCs like RK3036, the rk3036_phy_cfgs does not define chg_det. However, rockchip_usb2phy_otg_port_init() unconditionally initializes charger detect= ion. When a cable is attached, rockchip_chg_detect_work() invokes property_enable() on the zeroed chg_det fields: property_enable() { ... return regmap_write(base, reg->offset, val); } Because it lacks validation, would this silently write to reg->offset 0x0 with a write mask, corrupting the General Register Files (GRF) at offset 0x= 0? --=20 Sashiko AI review =C2=B7 https://sashiko.dev/#/patchset/20260706223627.1138= 14-1-andreas.zdziarstek@gmail.com?part=3D1