From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (prime256v1) server-digest SHA256) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 412E5606A32E for ; Wed, 11 Nov 2026 03:23:53 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.a=rsa-sha256 header.s=bombadil.20210309 header.b=nHBQBaIW; dkim=fail reason="signature verification failed" (2048-bit key) header.d=kernel.org header.i=@kernel.org header.a=rsa-sha256 header.s=k20260515 header.b=OsuUMHG0 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-Unsubscribe-Post:List-Owner; bh=m3m1rxNZeBxY0C7jt7b7wGSphrCO+lv4kOxhX3GFozU=; b=nHBQBaIW+noFkjllq2FyXPnzoS SFWv9qtAjKOEM4WyBxd4KHhBV4mDOo+2jxF8mJkW1r7wDfyDJbXTrbdrY2tCduTnZMtYWHQJzZ7LL gKB9FW31BxDlvLvITpET/og2jPd23WiczRagAiBu9FCHbo3dYhVhTV3c32qJhdvsvkKrdkfV9ctO6 8MSPbDDmOa5F65HFUvyIa9yIjXA7iT8tRfYj4FnRU+FQDYhzadGhmRRFR9/v9XRiDln0bcfjIobpP SxhnyWtZMQUTPOiScU75bIRmFkoqJgMkbyD0EFAb9j1cKXXyL4JOHzjKdh1L+eCpm5iV+oBN55fBo 09Sjz5zg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.100.1 #2 (Red Hat Linux)) id 1xQywD-00000005XZb-01LD; Wed, 11 Nov 2026 03:23:53 +0000 Received: from tor.source.kernel.org ([2600:3c04:e001:324:0:1991:8:25]) by bombadil.infradead.org with esmtps (Exim 4.100.1 #2 (Red Hat Linux)) id 1xQywB-00000005XYr-3VPx for linux-phy@lists.infradead.org; Wed, 11 Nov 2026 03:23:51 +0000 Received: from smtp.kernel.org (quasi.space.kernel.org [100.103.45.18]) by tor.source.kernel.org (Postfix) with ESMTP id D97EC63839; Wed, 11 Nov 2026 03:23:50 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 92E5F1F0089F; Wed, 11 Nov 2026 03:23:49 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1794367430; bh=xumurdd4HtUcLCD6tq9tHmWt2J8OTnMTrO2HIFiLp+A=; h=From:Subject:Reply-To:To:Cc:In-Reply-To:References:Date; b=OsuUMHG0cFVUEE54ccOGHd9e0bNID+XM+tYoxMwwRwhd8OZYGRgF+4xUZFpmGki6g tnCYsAvqQdo2G3pZfsG0TaoihUfjRRi+TH9YsARnSHc0McUqlR0oc+lLlvYcbwXMxI mhMSDFz4h2r0nZsrnX19EGpyCmHwOpkpgIH3f4B8A951RGDPQszA+lm839QJtip9n9 EcI2nYuVX079GfLv4RWejzwVyNxwxsGhHkbYvdOsBsmZNSt4b71/WXtn+8r2/yVVQy BctMbAoQjJszKy4eONxg7VwLUfFc8GqCZUfxBlfvfNM5fwfj6BvNznwrGNbxmRKZPW XzfB36YHGGRYw== Message-ID: From: sashiko-bot@kernel.org Subject: Re: [PATCH v7 2/2] phy: cix: Add CIX Sky1 USB3 PHY driver To: "Hongliang Yang" Cc: linux-phy@lists.infradead.org, devicetree@vger.kernel.org, robh@kernel.org, conor+dt@kernel.org, vkoul@kernel.org, neil.armstrong@linaro.org, olteanv@gmail.com In-Reply-To: <20261111030937.2954646-3-hongliang.yang@cixtech.com> References: <20261111030937.2954646-1-hongliang.yang@cixtech.com> <20261111030937.2954646-3-hongliang.yang@cixtech.com> Date: Wed, 11 Nov 2026 03:23:48 +0000 X-BeenThere: linux-phy@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Linux Phy Mailing list List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: sashiko-reviews@lists.linux.dev X-Archived-By: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-phy" X-Spam-Status: No, score=-8.9 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_EF,HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=4.0.1 X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on aws-us-west-2-korg-listserv-alma10-1 VGhhbmsgeW91IGZvciB5b3VyIGNvbnRyaWJ1dGlvbiEgU2FzaGlrbyBBSSByZXZpZXcgZm91bmQg MiBwb3RlbnRpYWwKaXNzdWVzIHRvIGNvbnNpZGVyOgotIFtMb3ddIHBoeTogY2l4OiByZWR1bmRh bnQgbG9ja2luZywgcmVmY291bnRpbmcsIGFuZCB3cmFwcGVycyBpbgogIHBoeS1jaXgtdXNiMy5j Ci0gW0xvd10gcGh5OiBjaXg6IHVudXNlZCA0LWxhbmUgYW5kIG5vbi0wODAzIHJlZ2lzdGVyIG1h Y3JvcyBpbgogIHBoeS1jaXgtdXNiMy5oCi0tCgpjb21taXQgM2I0YTE2OWI3MzM4ZjdkZGU0ZTY2 MTA5YTcyYzc5NDZiZWY4ZWExNApBdXRob3I6IEhvbmdsaWFuZyBZYW5nIDxob25nbGlhbmcueWFu Z0BjaXh0ZWNoLmNvbT4KCnBoeTogY2l4OiBBZGQgQ0lYIFNreTEgVVNCMyBQSFkgZHJpdmVyCgpU aGlzIGNvbW1pdCBhZGRzIGEgZHJpdmVyIGZvciB0aGUgQ2FkZW5jZSBTRDA4MDMgVVNCMyBQSFkg aW50ZWdyYXRlZCBpbgp0aGUgQ0lYIFNreTEgU29DLgoKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9w aHkvY2l4L3BoeS1jaXgtdXNiMy5jIGIvZHJpdmVycy9waHkvY2l4L3BoeS1jaXgtdXNiMy5jCj4g bmV3IGZpbGUgbW9kZSAxMDA2NDQKPiBpbmRleCAwMDAwMDAwMDAwMDAwLi5jNjM3NmY3ODdhZjAz Cj4gLS0tIC9kZXYvbnVsbAo+ICsrKyBiL2RyaXZlcnMvcGh5L2NpeC9waHktY2l4LXVzYjMuYwoK WyAuLi4gXQoKPiArc3RydWN0IGNpeF91M3BoeSB7Cj4gKwlzdHJ1Y3QgZGV2aWNlICpkZXY7Cj4g Kwl2b2lkIF9faW9tZW0gKmJhc2U7Cj4gKwlzdHJ1Y3QgcmVnbWFwICpwaHlfcmVnbWFwOwo+ICsJ c3RydWN0IHJlc2V0X2NvbnRyb2wgKnByZXNldDsKPiArCXN0cnVjdCByZXNldF9jb250cm9sICpy ZXNldDsKPiArCXN0cnVjdCBjbGsgKmFwYl9jbGs7Cj4gKwlzdHJ1Y3QgY2xrICpyZWZfY2xrOwo+ ICsJc3RydWN0IG11dGV4IG11dGV4OyAvKiBtdXRleCB0byBwcm90ZWN0IGFjY2VzcyB0byBpbmRp dmlkdWFsIFBIWXMgKi8KPiArCWJvb2wgaW5pdDsKPiArCWludCBpbml0X2NvdW50Owo+ICsJY29u c3Qgc3RydWN0IGNpeF91M3BoeV9jZmcgKmNmZzsKPiArfTsKPiArCj4gK3N0YXRpYyBpbnQgc2t5 MV91M3BoeV9leGl0KHN0cnVjdCBjaXhfdTNwaHkgKnUzcGh5KQo+ICt7Cj4gKwlpZiAoV0FSTl9P TighdTNwaHktPmluaXRfY291bnQpKQo+ICsJCXJldHVybiAtRUlOVkFMOwo+ICsKPiArCXUzcGh5 LT5pbml0X2NvdW50LS07Cj4gKwlpZiAodTNwaHktPmluaXQgJiYgdTNwaHktPmluaXRfY291bnQg PT0gMCkgewo+ICsJCXJlc2V0X2NvbnRyb2xfYXNzZXJ0KHUzcGh5LT5yZXNldCk7Cj4gKwkJcmVz ZXRfY29udHJvbF9hc3NlcnQodTNwaHktPnByZXNldCk7Cj4gKwkJY2xrX2Rpc2FibGVfdW5wcmVw YXJlKHUzcGh5LT5yZWZfY2xrKTsKPiArCQljbGtfZGlzYWJsZV91bnByZXBhcmUodTNwaHktPmFw Yl9jbGspOwo+ICsJCXUzcGh5LT5pbml0ID0gZmFsc2U7Cj4gKwl9Cj4gKwlyZXR1cm4gMDsKPiAr fQo+ICsKPiArc3RhdGljIGludCBza3kxX3UzcGh5X2luaXQoc3RydWN0IGNpeF91M3BoeSAqdTNw aHkpCj4gK3sKPiArCWludCByZXQ7Cj4gKwo+ICsJaWYgKCF1M3BoeS0+aW5pdCkgewo+ICsJCS8q IHVzYiByY3N1IHJlc2V0IGlzIGRlZmF1bHQgZGVhc3NlcnQgKi8KPiArCQlyZXNldF9jb250cm9s X2Fzc2VydCh1M3BoeS0+cmVzZXQpOwo+ICsJCXJlc2V0X2NvbnRyb2xfYXNzZXJ0KHUzcGh5LT5w cmVzZXQpOwo+ICsJCXJldCA9IGNsa19wcmVwYXJlX2VuYWJsZSh1M3BoeS0+YXBiX2Nsayk7Cj4g KwkJaWYgKHJldCkgewo+ICsJCQlkZXZfZXJyKHUzcGh5LT5kZXYsICJGYWlsZWQgdG8gcHJlcGFy ZV9lbmFibGUgdTNwaHkgYXBiIGNsb2NrXG4iKTsKPiArCQkJcmV0dXJuIHJldDsKPiArCQl9Cj4g KwkJcmV0ID0gY2xrX3ByZXBhcmVfZW5hYmxlKHUzcGh5LT5yZWZfY2xrKTsKPiArCQlpZiAocmV0 KSB7Cj4gKwkJCWRldl9lcnIodTNwaHktPmRldiwgIkZhaWxlZCB0byBwcmVwYXJlX2VuYWJsZSB1 M3BoeSByZWYgY2xvY2tcbiIpOwo+ICsJCQlnb3RvIGRpc2FibGVfYXBiX2NsazsKPiArCQl9Cj4g KwkJcmVzZXRfY29udHJvbF9kZWFzc2VydCh1M3BoeS0+cHJlc2V0KTsKPiArCQlyZXQgPSByZWdt YXBfbXVsdGlfcmVnX3dyaXRlKHUzcGh5LT5waHlfcmVnbWFwLCBza3kxX3UzcGh5X2NvbmYsCj4g KwkJCQkJICAgICBBUlJBWV9TSVpFKHNreTFfdTNwaHlfY29uZikpOwo+ICsJCWlmIChyZXQpIHsK PiArCQkJZGV2X2Vycih1M3BoeS0+ZGV2LCAiRmFpbGVkIHRvIHdyaXRlIHRoZSByZWcgc2VxdWVu Y2VcbiIpOwo+ICsJCQlnb3RvIGFzc2VydF9yZXNldF9wcmVzZXQ7Cj4gKwkJfQo+ICsJCXUzcGh5 LT5pbml0ID0gdHJ1ZTsKPiArCQlyZXNldF9jb250cm9sX2RlYXNzZXJ0KHUzcGh5LT5yZXNldCk7 Cj4gKwl9Cj4gKwl1M3BoeS0+aW5pdF9jb3VudCsrOwo+ICsJcmV0dXJuIDA7Cj4gKwo+ICthc3Nl cnRfcmVzZXRfcHJlc2V0Ogo+ICsJcmVzZXRfY29udHJvbF9hc3NlcnQodTNwaHktPnByZXNldCk7 Cj4gKwlyZXNldF9jb250cm9sX2Fzc2VydCh1M3BoeS0+cmVzZXQpOwo+ICsJY2xrX2Rpc2FibGVf dW5wcmVwYXJlKHUzcGh5LT5yZWZfY2xrKTsKPiArZGlzYWJsZV9hcGJfY2xrOgo+ICsJY2xrX2Rp c2FibGVfdW5wcmVwYXJlKHUzcGh5LT5hcGJfY2xrKTsKPiArCXJldHVybiByZXQ7Cj4gK30KClsg Li4uIF0KCj4gK3N0YXRpYyBpbnQgY2l4X3VzYjNfcGh5X3Bvd2VyX29uKHN0cnVjdCBjaXhfdTNw aHkgKnUzcGh5KQo+ICt7Cj4gKwlpbnQgcmV0Owo+ICsJY29uc3Qgc3RydWN0IGNpeF91M3BoeV9j ZmcgKnBoeV9jZmdzID0gdTNwaHktPmNmZzsKPiArCj4gKwlpZiAocGh5X2NmZ3MtPnUzcGh5X2lu aXQpIHsKPiArCQlyZXQgPSBwaHlfY2Zncy0+dTNwaHlfaW5pdCh1M3BoeSk7Cj4gKwkJaWYgKHJl dCkgewo+ICsJCQlkZXZfZXJyKHUzcGh5LT5kZXYsICJmYWlsZWQgdG8gaW5pdCB1ZHBoeVxuIik7 Cj4gKwkJCXJldHVybiByZXQ7Cj4gKwkJfQo+ICsJfQo+ICsJcmV0dXJuIDA7Cj4gK30KPiArCj4g K3N0YXRpYyBpbnQgY2l4X3VzYjNfcGh5X3Bvd2VyX29mZihzdHJ1Y3QgY2l4X3UzcGh5ICp1M3Bo eSkKPiArewo+ICsJaW50IHJldDsKPiArCWNvbnN0IHN0cnVjdCBjaXhfdTNwaHlfY2ZnICpwaHlf Y2ZncyA9IHUzcGh5LT5jZmc7Cj4gKwo+ICsJaWYgKHBoeV9jZmdzLT51M3BoeV9leGl0KSB7Cj4g KwkJcmV0ID0gcGh5X2NmZ3MtPnUzcGh5X2V4aXQodTNwaHkpOwo+ICsJCWlmIChyZXQpIHsKPiAr CQkJZGV2X2Vycih1M3BoeS0+ZGV2LCAiZmFpbGVkIHRvIGV4aXQgdWRwaHlcbiIpOwo+ICsJCQly ZXR1cm4gcmV0Owo+ICsJCX0KPiArCX0KPiArCXJldHVybiAwOwo+ICt9Cj4gKwo+ICtzdGF0aWMg aW50IGNpeF91M3BoeV9pbml0KHN0cnVjdCBwaHkgKnBoeSkKPiArewo+ICsJc3RydWN0IGNpeF91 M3BoeSAqdTNwaHkgPSBwaHlfZ2V0X2RydmRhdGEocGh5KTsKPiArCWludCByZXQgPSAwOwo+ICsK PiArCW11dGV4X2xvY2soJnUzcGh5LT5tdXRleCk7Cj4gKwlyZXQgPSBjaXhfdXNiM19waHlfcG93 ZXJfb24odTNwaHkpOwo+ICsJbXV0ZXhfdW5sb2NrKCZ1M3BoeS0+bXV0ZXgpOwo+ICsJcmV0dXJu IHJldDsKPiArfQo+ICsKPiArc3RhdGljIGludCBjaXhfdTNwaHlfZXhpdChzdHJ1Y3QgcGh5ICpw aHkpCj4gK3sKPiArCXN0cnVjdCBjaXhfdTNwaHkgKnUzcGh5ID0gcGh5X2dldF9kcnZkYXRhKHBo eSk7Cj4gKwlpbnQgcmV0ID0gMDsKPiArCj4gKwltdXRleF9sb2NrKCZ1M3BoeS0+bXV0ZXgpOwo+ ICsJcmV0ID0gY2l4X3VzYjNfcGh5X3Bvd2VyX29mZih1M3BoeSk7Cj4gKwltdXRleF91bmxvY2so JnUzcGh5LT5tdXRleCk7Cj4gKwlyZXR1cm4gcmV0Owo+ICt9CgpbU2V2ZXJpdHk6IExvd10KVGhp cyBpc24ndCBhIGJ1ZywgYnV0IHNpbmNlIGNpeF91M3BoeV9wcm9iZSgpIHJlZ2lzdGVycyBhIHNp bmdsZSBzdHJ1Y3QKcGh5IHZpYSBvZl9waHlfc2ltcGxlX3hsYXRlKCksIHBoeV9pbml0KCkgYW5k IHBoeV9leGl0KCkgaW4gdGhlIFBIWSBjb3JlCmFscmVhZHkgc2VyaWFsaXplIGNhbGxzIHVuZGVy IHBoeS0+bXV0ZXggYW5kIHJlZmNvdW50IHBoeS0+aW5pdF9jb3VudCwKY2FsbGluZyBwaHktPm9w cy0+aW5pdCgpIG9ubHkgd2hlbiBwaHktPmluaXRfY291bnQgPT0gMCBhbmQKcGh5LT5vcHMtPmV4 aXQoKSBvbmx5IHdoZW4gcGh5LT5pbml0X2NvdW50ID09IDEuCgpUaGF0IG1ha2VzIHUzcGh5LT5t dXRleCwgdTNwaHktPmluaXQsIGFuZCB1M3BoeS0+aW5pdF9jb3VudCByZWR1bmRhbnQuCkRyb3Bw aW5nIHRoZW0gYW5kIHdpcmluZyBza3kxX3UzcGh5X2luaXQoKSBhbmQgc2t5MV91M3BoeV9leGl0 KCkgZGlyZWN0bHkKaW50byBjaXhfdTNwaHlfb3BzIHdvdWxkIGFsc28gcmVtb3ZlIHRoZSBjaXhf dXNiM19waHlfcG93ZXJfb24oKSwKY2l4X3VzYjNfcGh5X3Bvd2VyX29mZigpLCBhbmQgc3RydWN0 IGNpeF91M3BoeV9jZmcgd3JhcHBlcnMsIHdoaWNoIGxvZwpkdXBsaWNhdGUgZXJyb3IgbWVzc2Fn ZXMgdXNpbmcgdGhlIHN0YWxlICJ1ZHBoeSIgbmFtZS4KClsgLi4uIF0KCj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvcGh5L2NpeC9waHktY2l4LXVzYjMuaCBiL2RyaXZlcnMvcGh5L2NpeC9waHktY2l4 LXVzYjMuaAo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXggMDAwMDAwMDAwMDAwMC4uMjI2 NjZjZDNiMjUzNwo+IC0tLSAvZGV2L251bGwKPiArKysgYi9kcml2ZXJzL3BoeS9jaXgvcGh5LWNp eC11c2IzLmgKClsgLi4uIF0KCj4gKyNkZWZpbmUgUlhfU0RDQUwwX0lOSVRfVE1SX0xBTkUwICAg ICAweDgwNDQKPiArI2RlZmluZSBSWF9TRENBTDBfSU5JVF9UTVJfTEFORTEgICAgIDB4ODI0NAo+ ICsjZGVmaW5lIFJYX1NEQ0FMMF9JTklUX1RNUl9MQU5FMiAgICAgMHg4NDQ0Cj4gKyNkZWZpbmUg UlhfU0RDQUwwX0lOSVRfVE1SX0xBTkUzICAgICAweDg2NDQKClsgLi4uIF0KCj4gKyNkZWZpbmUg UEhZX1BJUEVfVVNCM19HRU4yX1BSRV9DRkcwICAweGMwMTgKPiArI2RlZmluZSBQSFlfUElQRV9V U0IzX0dFTjJfUE9TVF9DRkcwIDB4YzAxYQo+ICsjZGVmaW5lIFBIWV9QSVBFX1VTQjNfR0VOMl9Q T1NUX0NGRzEgMHhjMDFiCgpbIC4uLiBdCgo+ICsvKiBCaXRzICovCj4gKwo+ICsjZGVmaW5lIFBI WV9QTExfQ0ZHXzA4MDMgICAgICAgICAgICAgIDB4QzAwRQo+ICsvKiAwODAzIHBoeSByZWdpc3Rl ciAqLwo+ICsjZGVmaW5lIFBIWV9QSVBFX1VTQjNfR0VOMl9QUkVfQ0ZHMF8wODAzCTB4YzAxYwo+ ICsjZGVmaW5lIFBIWV9QSVBFX1VTQjNfR0VOMl9QT1NUX0NGRzBfMDgwMwkweGMwMWUKPiArI2Rl ZmluZSBQSFlfUElQRV9VU0IzX0dFTjJfUE9TVF9DRkcxXzA4MDMJMHhjMDFmCj4gKwo+ICsjZW5k aWYKCltTZXZlcml0eTogTG93XQpUaGlzIGlzbid0IGEgYnVnLCBidXQgb3ZlciA3MCBtYWNyb3Mg aW4gdGhpcyBwcml2YXRlIGhlYWRlciBhcmUgdW51c2VkLAppbmNsdWRpbmcgYWxsICpfTEFORTIg YW5kICpfTEFORTMgZGVmaW5pdGlvbnMgZm9yIHRoaXMgMi1sYW5lIFBIWSBhbmQgdGhlCm5vbi0w ODAzIFBIWV9QSVBFX1VTQjNfR0VOMl8qIG9mZnNldHMgc3VwZXJzZWRlZCBieSB0aGUgKl8wODAz IG1hY3JvcyBhdAp0aGUgYm90dG9tLiAgQ291bGQgdGhlIHVudXNlZCBtYWNyb3MgYmUgZHJvcHBl ZCBhbmQgdGhlIHJlbWFpbmluZwpkZWZpbml0aW9ucyBtb3ZlZCBpbnRvIHBoeS1jaXgtdXNiMy5j PwoKLS0gClNhc2hpa28gQUkgcmV2aWV3IMK3IGh0dHBzOi8vc2FzaGlrby5kZXYvIy9wYXRjaHNl dC8yMDI2MTExMTAzMDkzNy4yOTU0NjQ2LTEtaG9uZ2xpYW5nLnlhbmdAY2l4dGVjaC5jb20/cGFy dD0yCgotLSAKbGludXgtcGh5IG1haWxpbmcgbGlzdApsaW51eC1waHlAbGlzdHMuaW5mcmFkZWFk Lm9yZwpodHRwczovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1w aHkK From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.remote-ip=100.103.45.18 ARC-Seal: i=1; d=subspace.kernel.org; s=arc20261015; a=rsa-sha256; cv=none; t=1794367430; b=woqnWUfMxxF9Xg410ShRYHY3HJd4cqqdzMwA5NpRF3tMiicjYiCZv35vY2sSvCIuzLT0 8uw+BodkknYXdDUkwrvLd+3dMTl1eWKEOSJyLdYLWOjIQmE0osdg6VsukvZkniH4TSdgi c4mbGFeAgjL1rqec07JCnbSxipTPU6HffJ+Is4/6zY1YGBexe2fXUIKiJwROdAaENb2Vq XFAs5KY6mHG0jhi8Bt8zcTPfrPrmIMg1O9oq2/ti9c0IiNIT6gf9nnadjacYazQvPAIQ4 27tbGZcN4o7Z9zJT2LrpxeO42s5Gymt5Rkl2DxRIEXs3b9d8ZsXPs2I8r1gflNhVUXQ== ARC-Message-Signature: i=1; d=subspace.kernel.org; s=arc20261015; a=rsa-sha256; c=relaxed/relaxed; t=1794367430; h=Received:DKIM-Signature:Message-ID:From:Subject:Reply-To:To:Cc: In-Reply-To:References:Content-Type:Content-Transfer-Encoding:Date; bh=xumurdd4HtUcLCD6tq9tHmWt2J8OTnMTrO2HIFiLp+A=; b=JOJEUcj4DZHHp5ZkPhhgxURlsuJs++9NDbWyj0RACIuakWykucoTtAmYKUUmtJmH868v tIlRtm10HC1YWGXeGYwYfnwudHfSCVeMXrxZtnyd3d+w1crKzRF7N+FR3mfLi6zb3fA3I qC71n5v0sDNc1r41d4qUWIzdrWU9TgJbVvClsDdfyXqKAY/JrLZJF3/MP5nNW1S0LtOK0 4OqWBnfPmGuBELjlVb2iMdaLXpB9nnkXjocsf6wOG9dmlj4UiQNC0ErvUuymK7yarP8B1 FS5qRe/6Ac3k1WWGi2dHCikWHW37egWpBt2MVdgO4dfNcLchDrsSxey1YtntP2ooVGg== ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass header.d=kernel.org header.i=@kernel.org header.a=rsa-sha256 header.s=k20260515 header.b=OsuUMHG0; arc=none smtp.remote-ip=100.103.45.18 Received: from smtp.kernel.org (quasi.space.kernel.org [100.103.45.18]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (prime256v1)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id DEF44606A324 for ; Wed, 11 Nov 2026 03:23:50 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.a=rsa-sha256 header.s=k20260515 header.b=OsuUMHG0 Received: by smtp.kernel.org (Postfix) with ESMTPSA id 92E5F1F0089F; Wed, 11 Nov 2026 03:23:49 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1794367430; bh=xumurdd4HtUcLCD6tq9tHmWt2J8OTnMTrO2HIFiLp+A=; h=From:Subject:Reply-To:To:Cc:In-Reply-To:References:Date; b=OsuUMHG0cFVUEE54ccOGHd9e0bNID+XM+tYoxMwwRwhd8OZYGRgF+4xUZFpmGki6g tnCYsAvqQdo2G3pZfsG0TaoihUfjRRi+TH9YsARnSHc0McUqlR0oc+lLlvYcbwXMxI mhMSDFz4h2r0nZsrnX19EGpyCmHwOpkpgIH3f4B8A951RGDPQszA+lm839QJtip9n9 EcI2nYuVX079GfLv4RWejzwVyNxwxsGhHkbYvdOsBsmZNSt4b71/WXtn+8r2/yVVQy BctMbAoQjJszKy4eONxg7VwLUfFc8GqCZUfxBlfvfNM5fwfj6BvNznwrGNbxmRKZPW XzfB36YHGGRYw== Message-ID: From: sashiko-bot@kernel.org Subject: Re: [PATCH v7 2/2] phy: cix: Add CIX Sky1 USB3 PHY driver Reply-To: sashiko-reviews@lists.linux.dev To: "Hongliang Yang" Cc: linux-phy@lists.infradead.org, devicetree@vger.kernel.org, robh@kernel.org, conor+dt@kernel.org, vkoul@kernel.org, neil.armstrong@linaro.org, olteanv@gmail.com In-Reply-To: <20261111030937.2954646-3-hongliang.yang@cixtech.com> References: <20261111030937.2954646-1-hongliang.yang@cixtech.com> <20261111030937.2954646-3-hongliang.yang@cixtech.com> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Date: Wed, 11 Nov 2026 03:23:48 +0000 X-Mailing-List: devicetree@vger.kernel.org List-Id: List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list Thank you for your contribution! Sashiko AI review found 2 potential issues to consider: - [Low] phy: cix: redundant locking, refcounting, and wrappers in phy-cix-usb3.c - [Low] phy: cix: unused 4-lane and non-0803 register macros in phy-cix-usb3.h -- commit 3b4a169b7338f7dde4e66109a72c7946bef8ea14 Author: Hongliang Yang phy: cix: Add CIX Sky1 USB3 PHY driver This commit adds a driver for the Cadence SD0803 USB3 PHY integrated in the CIX Sky1 SoC. > diff --git a/drivers/phy/cix/phy-cix-usb3.c b/drivers/phy/cix/phy-cix-usb= 3.c > new file mode 100644 > index 0000000000000..c6376f787af03 > --- /dev/null > +++ b/drivers/phy/cix/phy-cix-usb3.c [ ... ] > +struct cix_u3phy { > + struct device *dev; > + void __iomem *base; > + struct regmap *phy_regmap; > + struct reset_control *preset; > + struct reset_control *reset; > + struct clk *apb_clk; > + struct clk *ref_clk; > + struct mutex mutex; /* mutex to protect access to individual PHYs */ > + bool init; > + int init_count; > + const struct cix_u3phy_cfg *cfg; > +}; > + > +static int sky1_u3phy_exit(struct cix_u3phy *u3phy) > +{ > + if (WARN_ON(!u3phy->init_count)) > + return -EINVAL; > + > + u3phy->init_count--; > + if (u3phy->init && u3phy->init_count =3D=3D 0) { > + reset_control_assert(u3phy->reset); > + reset_control_assert(u3phy->preset); > + clk_disable_unprepare(u3phy->ref_clk); > + clk_disable_unprepare(u3phy->apb_clk); > + u3phy->init =3D false; > + } > + return 0; > +} > + > +static int sky1_u3phy_init(struct cix_u3phy *u3phy) > +{ > + int ret; > + > + if (!u3phy->init) { > + /* usb rcsu reset is default deassert */ > + reset_control_assert(u3phy->reset); > + reset_control_assert(u3phy->preset); > + ret =3D clk_prepare_enable(u3phy->apb_clk); > + if (ret) { > + dev_err(u3phy->dev, "Failed to prepare_enable u3phy apb clock\n"); > + return ret; > + } > + ret =3D clk_prepare_enable(u3phy->ref_clk); > + if (ret) { > + dev_err(u3phy->dev, "Failed to prepare_enable u3phy ref clock\n"); > + goto disable_apb_clk; > + } > + reset_control_deassert(u3phy->preset); > + ret =3D regmap_multi_reg_write(u3phy->phy_regmap, sky1_u3phy_conf, > + ARRAY_SIZE(sky1_u3phy_conf)); > + if (ret) { > + dev_err(u3phy->dev, "Failed to write the reg sequence\n"); > + goto assert_reset_preset; > + } > + u3phy->init =3D true; > + reset_control_deassert(u3phy->reset); > + } > + u3phy->init_count++; > + return 0; > + > +assert_reset_preset: > + reset_control_assert(u3phy->preset); > + reset_control_assert(u3phy->reset); > + clk_disable_unprepare(u3phy->ref_clk); > +disable_apb_clk: > + clk_disable_unprepare(u3phy->apb_clk); > + return ret; > +} [ ... ] > +static int cix_usb3_phy_power_on(struct cix_u3phy *u3phy) > +{ > + int ret; > + const struct cix_u3phy_cfg *phy_cfgs =3D u3phy->cfg; > + > + if (phy_cfgs->u3phy_init) { > + ret =3D phy_cfgs->u3phy_init(u3phy); > + if (ret) { > + dev_err(u3phy->dev, "failed to init udphy\n"); > + return ret; > + } > + } > + return 0; > +} > + > +static int cix_usb3_phy_power_off(struct cix_u3phy *u3phy) > +{ > + int ret; > + const struct cix_u3phy_cfg *phy_cfgs =3D u3phy->cfg; > + > + if (phy_cfgs->u3phy_exit) { > + ret =3D phy_cfgs->u3phy_exit(u3phy); > + if (ret) { > + dev_err(u3phy->dev, "failed to exit udphy\n"); > + return ret; > + } > + } > + return 0; > +} > + > +static int cix_u3phy_init(struct phy *phy) > +{ > + struct cix_u3phy *u3phy =3D phy_get_drvdata(phy); > + int ret =3D 0; > + > + mutex_lock(&u3phy->mutex); > + ret =3D cix_usb3_phy_power_on(u3phy); > + mutex_unlock(&u3phy->mutex); > + return ret; > +} > + > +static int cix_u3phy_exit(struct phy *phy) > +{ > + struct cix_u3phy *u3phy =3D phy_get_drvdata(phy); > + int ret =3D 0; > + > + mutex_lock(&u3phy->mutex); > + ret =3D cix_usb3_phy_power_off(u3phy); > + mutex_unlock(&u3phy->mutex); > + return ret; > +} [Severity: Low] This isn't a bug, but since cix_u3phy_probe() registers a single struct phy via of_phy_simple_xlate(), phy_init() and phy_exit() in the PHY core already serialize calls under phy->mutex and refcount phy->init_count, calling phy->ops->init() only when phy->init_count =3D=3D 0 and phy->ops->exit() only when phy->init_count =3D=3D 1. That makes u3phy->mutex, u3phy->init, and u3phy->init_count redundant. Dropping them and wiring sky1_u3phy_init() and sky1_u3phy_exit() directly into cix_u3phy_ops would also remove the cix_usb3_phy_power_on(), cix_usb3_phy_power_off(), and struct cix_u3phy_cfg wrappers, which log duplicate error messages using the stale "udphy" name. [ ... ] > diff --git a/drivers/phy/cix/phy-cix-usb3.h b/drivers/phy/cix/phy-cix-usb= 3.h > new file mode 100644 > index 0000000000000..22666cd3b2537 > --- /dev/null > +++ b/drivers/phy/cix/phy-cix-usb3.h [ ... ] > +#define RX_SDCAL0_INIT_TMR_LANE0 0x8044 > +#define RX_SDCAL0_INIT_TMR_LANE1 0x8244 > +#define RX_SDCAL0_INIT_TMR_LANE2 0x8444 > +#define RX_SDCAL0_INIT_TMR_LANE3 0x8644 [ ... ] > +#define PHY_PIPE_USB3_GEN2_PRE_CFG0 0xc018 > +#define PHY_PIPE_USB3_GEN2_POST_CFG0 0xc01a > +#define PHY_PIPE_USB3_GEN2_POST_CFG1 0xc01b [ ... ] > +/* Bits */ > + > +#define PHY_PLL_CFG_0803 0xC00E > +/* 0803 phy register */ > +#define PHY_PIPE_USB3_GEN2_PRE_CFG0_0803 0xc01c > +#define PHY_PIPE_USB3_GEN2_POST_CFG0_0803 0xc01e > +#define PHY_PIPE_USB3_GEN2_POST_CFG1_0803 0xc01f > + > +#endif [Severity: Low] This isn't a bug, but over 70 macros in this private header are unused, including all *_LANE2 and *_LANE3 definitions for this 2-lane PHY and the non-0803 PHY_PIPE_USB3_GEN2_* offsets superseded by the *_0803 macros at the bottom. Could the unused macros be dropped and the remaining definitions moved into phy-cix-usb3.c? --=20 Sashiko AI review =C2=B7 https://sashiko.dev/#/patchset/20261111030937.2954= 646-1-hongliang.yang@cixtech.com?part=3D2