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 30E2DC4452B for ; Mon, 20 Jul 2026 14:13:04 +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=toTLinzWpjLoFD+lizVe5olfqx8dPC387EHa7iQvt40=; b=Gzu2l792y9/mdX OT/84udgUVf5LJwSY0/E5ANT43aHJHFEvOPDZwV57td8tIC87+V3Dkf8U8WNuqlR0h7z+Pp8/YLuO VXlvvDEqR3bXEkew0yTf32bGr0jFp5BvB+aMz7TJAVmwE0edzxK99zo5XA17vxIbfc1sjyidg82Ug J1lZMSQA1pT+hyYf2LBQONkiqoSKKLNZ+scYlKzfmvUU/x721BWufCucp5oipqJ05CxpYSQfHs6oM zdvPtSzMyiUOHN/1M3OU2hdm8nVUXw/yvA1SPGN6l2Y6Xpk5wHY/J77+qZc+6SpDS+Y4lgN6yZaYo x37JfsO54wjQb3IMxx2g==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1wlojv-00000006vip-3kdr; Mon, 20 Jul 2026 14:13:03 +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 1wloju-00000006vi7-15VY for linux-phy@lists.infradead.org; Mon, 20 Jul 2026 14:13:02 +0000 Received: from smtp.kernel.org (quasi.space.kernel.org [100.103.45.18]) by sea.source.kernel.org (Postfix) with ESMTP id E73A943750; Mon, 20 Jul 2026 14:13:01 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 482441F00A3A; Mon, 20 Jul 2026 14:13:01 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1784556781; bh=fZZJLl+VluyyR97qkjr+vlG2RbHowBFzdpRbCckzAhc=; h=From:Subject:Reply-To:To:Cc:In-Reply-To:References:Date; b=JdWTH8juCFZzpA8Sw4Hd7z23RyQdCXv5mdqVfkmqy+UenIMwuP6gZmRe0RS2dDW6U gx1EcbIq+5MsykMp+czhO60gU3D2lQR3541Q4UPQwjXG2OXfp+drNe93KElqbuPJtr rk/r/qkJCx9oPxb3zIL1U8rmTYUBDtukLdy/E4Rf3pGgr0BOiU2osoiWc1akYdSMDZ kGX0c6j9oO3pd+DP9eDrm6usrtAkNVmvTJMjIYHBQNsx1qJiCOdD8e+6ZIqSdcj4tH +hPZeybpb0mNwbB4ICUReI29GAOxXzMVMd1F1btPTfHTi/x/NBCvIVPi00n/77FeeQ UWSFN+9eV6gvQ== From: sashiko-bot@kernel.org Subject: Re: [PATCH v2 2/2] phy: mediatek: Add support for PCI-Express Gen4 S-PHY To: "AngeloGioacchino Del Regno" Cc: neil.armstrong@linaro.org, olteanv@gmail.com, devicetree@vger.kernel.org, vkoul@kernel.org, linux-phy@lists.infradead.org, conor+dt@kernel.org, robh@kernel.org In-Reply-To: <20260720135344.84183-3-angelogioacchino.delregno@collabora.com> References: <20260720135344.84183-1-angelogioacchino.delregno@collabora.com> <20260720135344.84183-3-angelogioacchino.delregno@collabora.com> Date: Mon, 20 Jul 2026 14:13:00 +0000 Message-Id: <20260720141301.482441F00A3A@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 NCBwb3RlbnRpYWwgaXNzdWUocykgdG8gY29uc2lkZXI6Ci0gW0hpZ2hdIEltcHJvcGVyIGhhbmRs aW5nIG9mIG1pc3Npbmcgb3IgdW5zdXBwb3J0ZWQgTlZNRU0gY2FsaWJyYXRpb24gZGF0YSBjYXVz ZXMgc3B1cmlvdXMgZXJyb3IgbG9ncyBhbmQgaGFyZCBwcm9iZSBmYWlsdXJlcy4KLSBbTWVkaXVt XSBBIHZhbGlkIGNhbGlicmF0aW9uIHZhbHVlIG9mIDAgaXMgaW5jb3JyZWN0bHkgdHJlYXRlZCBh cyBtaXNzaW5nIGRhdGEsIGRpc2NhcmRpbmcgYWxsIGNhbGlicmF0aW9ucy4KLSBbTG93XSBUaGUg VFhfSU1QU0VMIHJlZ2lzdGVycyBhcmUgdXBkYXRlZCB0d2ljZSB3aXRoIGlkZW50aWNhbCB2YWx1 ZXMgZHVyaW5nIGluaXRpYWxpemF0aW9uLgotIFtMb3ddIE1hY3JvcyBmb3IgQUVRX0VHRVFfUkFU SU8gYXJlIGRlZmluZWQgYnV0IHVudXNlZCBpbiBmYXZvciBvZiBsaXRlcmFsIG1hZ2ljIG51bWJl cnMuCi0tCgotLS0gUGF0Y2ggWzJdOiBbUEFUQ0ggdjIgMi8yXSBwaHk6IG1lZGlhdGVrOiBBZGQg c3VwcG9ydCBmb3IgUENJLUV4cHJlc3MgR2VuNCBTLVBIWSAtLS0KY29tbWl0IGQ5MWM2YzA3MTg0 NDBjNDRhZGM3ZTZhODNmNWFlY2E3MDZhNmMzZDUKQXV0aG9yOiBBbmdlbG9HaW9hY2NoaW5vIERl bCBSZWdubyA8YW5nZWxvZ2lvYWNjaGluby5kZWxyZWdub0Bjb2xsYWJvcmEuY29tPgpTdWJqZWN0 OiBwaHk6IG1lZGlhdGVrOiBBZGQgc3VwcG9ydCBmb3IgUENJLUV4cHJlc3MgR2VuNCBTLVBIWQoK VGhpcyBwYXRjaCBhZGRzIHN1cHBvcnQgZm9yIHRoZSBQQ0ktRXhwcmVzcyBHZW40IFMtUEhZIGZv dW5kIGluIHRoZSBsYXRlc3QKTWVkaWFUZWsgU29DcywgaW5jbHVkaW5nIE1UODE5NiBhbmQgTVQ4 ODk0LgoKPiAtLS0gYS9kcml2ZXJzL3BoeS9tZWRpYXRlay9waHktbXRrLXBjaWUtc3BoeS5jCj4g KysrIGIvZHJpdmVycy9waHkvbWVkaWF0ZWsvcGh5LW10ay1wY2llLXNwaHkuYwpbIC4uLiBdCj4g KyNkZWZpbmUgUEVYVFBfRElHX0xOX1JYMl9BRVFfRURHRV8wCQkJMHg2MDA0Cj4gKyMgIGRlZmlu ZSBSR19YVFBfTE5fUlhfQUVRX0VHRVFfUkFUSU9fR0VOMwkJR0VOTUFTSygyMSwgMTYpCj4gKyMg IGRlZmluZSBSR19YVFBfTE5fUlhfQUVRX0VHRVFfUkFUSU9fR0VONAkJR0VOTUFTSygyOSwgMjQp Cj4gKyMgIGRlZmluZSBBRVFfRUdFUV9SQVRJT19HRU4zX1RPXzIyCQkJMHgxNgo+ICsjICBkZWZp bmUgQUVRX0VHRVFfUkFUSU9fR0VONF9UT18yMgkJCTB4MTYKWyAuLi4gXQo+ICsJCW10a19waHlf dXBkYXRlX2ZpZWxkKHNpZl9sYW5lX2Jhc2UgKyBQRVhUUF9ESUdfTE5fUlgyX0FFUV9FREdFXzAs Cj4gKwkJCQkgICAgIFJHX1hUUF9MTl9SWF9BRVFfRUdFUV9SQVRJT19HRU4zLCAyMik7Cj4gKwo+ ICsJCW10a19waHlfdXBkYXRlX2ZpZWxkKHNpZl9sYW5lX2Jhc2UgKyBQRVhUUF9ESUdfTE5fUlgy X0FFUV9FREdFXzAsCj4gKwkJCQkgICAgIFJHX1hUUF9MTl9SWF9BRVFfRUdFUV9SQVRJT19HRU40 LCAyMik7CgpbU2V2ZXJpdHk6IExvd10KSXMgdGhlcmUgYSByZWFzb24gdGhlIGxpdGVyYWwgMjIg aXMgdXNlZCBoZXJlIGluc3RlYWQgb2YgdGhlCkFFUV9FR0VRX1JBVElPX0dFTjNfVE9fMjIgYW5k IEFFUV9FR0VRX1JBVElPX0dFTjRfVE9fMjIgbWFjcm9zIGRlZmluZWQKZWFybGllcj8KClsgLi4u IF0KPiArc3RhdGljIHZvaWQgbXRrX3BjaWVfc3BoeV9hcHBseV9jYWxpYnJhdGlvbihzdHJ1Y3Qg bXRrX3BjaWVfc3BoeSAqcGNpZV9zcGh5KQo+ICt7ClsgLi4uIF0KPiArCQltdGtfcGh5X3VwZGF0 ZV9maWVsZChzaWZfbGFuZV9iYXNlICsgUEVYVFBfQU5BX0xOX1RSWF9BMCwKPiArCQkJCSAgICAg UkdfWFRQX0xOX1RYX0lNUFNFTF9QTU9TLCBjYWwtPnR4X2ltcHNlbC5wbW9zKTsKPiArCj4gKwkJ bXRrX3BoeV91cGRhdGVfZmllbGQoc2lmX2xhbmVfYmFzZSArIFBFWFRQX0FOQV9MTl9UUlhfQTAs Cj4gKwkJCQkgICAgIFJHX1hUUF9MTl9UWF9JTVBTRUxfTk1PUywgY2FsLT50eF9pbXBzZWwubm1v cyk7Cj4gKwl9Cj4gK30KPiArClsgLi4uIF0KPiArc3RhdGljIGludCBtdGtfcGNpZV9zcGh5X2lu aXQoc3RydWN0IHBoeSAqcGh5KQo+ICt7ClsgLi4uIF0KPiArCWlmIChwY2llX3NwaHktPmNhbGli cmF0aW9uLnN1cHBvcnRlZCkgewo+ICsJCW10a19wY2llX3NwaHlfYXBwbHlfY2FsaWJyYXRpb24o cGNpZV9zcGh5KTsKPiArCj4gKwkJdHhfaW1wc2VsLnBtb3MgPSBwY2llX3NwaHktPmNhbGlicmF0 aW9uLnR4X2ltcHNlbC5wbW9zOwo+ICsJCXR4X2ltcHNlbC5ubW9zID0gcGNpZV9zcGh5LT5jYWxp YnJhdGlvbi50eF9pbXBzZWwubm1vczsKPiArCX0gZWxzZSB7Cj4gKwkJLyogU2V0IFA9MTAsIE49 OSB0byBwcmV2ZW50IEVNSSBpZiBubyBjYWxpYnJhdGlvbiBwcmVzZW50ICovCj4gKwkJdHhfaW1w c2VsLnBtb3MgPSAxMDsKPiArCQl0eF9pbXBzZWwubm1vcyA9IDk7Cj4gKwl9Cj4gKwo+ICsJLyog U2VsZWN0IFRYIEltcGVkYW5jZSBvbiBOIGFuZCBQIE1PU0ZFVHMgKi8KPiArCWZvciAoaSA9IDA7 IGkgPCBwY2llX3NwaHktPm51bV9sYW5lczsgaSsrKSB7Cj4gKwkJdm9pZCBfX2lvbWVtICpzaWZf bGFuZV9iYXNlID0gcGNpZV9zcGh5LT5zaWZfYmFzZSArIFBFWFRQX1JFR19MQU5FKGkpOwo+ICsK PiArCQltdGtfcGh5X3VwZGF0ZV9maWVsZChzaWZfbGFuZV9iYXNlICsgUEVYVFBfQU5BX0xOX1RS WF9BMCwKPiArCQkJCSAgICAgUkdfWFRQX0xOX1RYX0lNUFNFTF9QTU9TLCB0eF9pbXBzZWwucG1v cyk7Cj4gKwo+ICsJCW10a19waHlfdXBkYXRlX2ZpZWxkKHNpZl9sYW5lX2Jhc2UgKyBQRVhUUF9B TkFfTE5fVFJYX0EwLAo+ICsJCQkJICAgICBSR19YVFBfTE5fVFhfSU1QU0VMX05NT1MsIHR4X2lt cHNlbC5ubW9zKTsKPiArCX0KCltTZXZlcml0eTogTG93XQpBcmUgdGhlc2UgcmVnaXN0ZXIgdXBk YXRlcyByZWR1bmRhbnQ/CgpXaGVuIGNhbGlicmF0aW9uIGlzIHN1cHBvcnRlZCwgbXRrX3BjaWVf c3BoeV9hcHBseV9jYWxpYnJhdGlvbigpIGFscmVhZHkKd3JpdGVzIGNhbC0+dHhfaW1wc2VsLnBt b3MgYW5kIGNhbC0+dHhfaW1wc2VsLm5tb3MgdG8gUEVYVFBfQU5BX0xOX1RSWF9BMC4KClRoZW4g dGhpcyBsb29wIGltbWVkaWF0ZWx5IG92ZXJ3cml0ZXMgdGhlIHNhbWUgcmVnaXN0ZXJzIHdpdGgg dGhlIGV4YWN0IHNhbWUKdmFsdWVzLgoKWyAuLi4gXQo+ICtzdGF0aWMgaW50IG10a19wY2llX3Nw aHlfZ2V0X29uZV9jYWxfcGFyYShzdHJ1Y3QgZGV2aWNlICpkZXYsIGNvbnN0IGNoYXIgKm5hbWUs IHU4IG1heF92YWwpCj4gK3sKWyAuLi4gXQo+ICsJcmV0ID0gbnZtZW1fY2VsbF9yZWFkX3U4KGRl diwgbmFtZSwgJnRtcCk7Cj4gKwlpZiAocmV0ID09IDApCj4gKwkJYnVmID0gdG1wOwo+ICsJZWxz ZQo+ICsJCXJldCA9IG52bWVtX2NlbGxfcmVhZF91MTYoZGV2LCBuYW1lLCAmYnVmKTsKPiArCj4g KwlpZiAocmV0KQo+ICsJCXJldHVybiBkZXZfZXJyX3Byb2JlKGRldiwgcmV0LAo+ICsJCQkJICAg ICAiQ2Fubm90IGdldCBjYWxpYnJhdGlvbiBkYXRhIGZvciAlc1xuIiwgbmFtZSk7CgpbU2V2ZXJp dHk6IEhpZ2hdCldpbGwgdGhpcyBjYXVzZSBzcHVyaW91cyBlcnJvciBsb2dzIG9yIGZhaWwgdGhl IHByb2JlIHdoZW4gY2FsaWJyYXRpb24gZGF0YSBpcwptaXNzaW5nIG9yIHVuc3VwcG9ydGVkPwoK SWYgdGhlIHN5c3RlbSBkb2VzIG5vdCBoYXZlIENPTkZJR19OVk1FTSBlbmFibGVkLCBudm1lbV9j ZWxsX3JlYWRfdTgoKSByZXR1cm5zCi1FT1BOT1RTVVBQLCB3aGljaCBnZXRzIGxvZ2dlZCBhcyBh biBlcnJvciBoZXJlLgoKVGhpcyBlcnJvciBpcyB0aGVuIHBhc3NlZCBiYWNrIHVwIHRvIG10a19w Y2llX3NwaHlfZ2V0X2NhbGlicmF0aW9uX2RhdGEoKSwKd2hlcmUgaXQgaXMgbm90IGNhdWdodC4g VGhpcyB3aWxsIGNhdXNlIHRoZSBlbnRpcmUgZHJpdmVyIHByb2JlIHRvIGZhaWwuCgpTaW1pbGFy bHksIGlmIHRoZSBjZWxsIGlzIHNpbXBseSBtaXNzaW5nIGZyb20gdGhlIERldmljZSBUcmVlLCBp dCByZXR1cm5zCi1FTk9FTlQuIFRoaXMgYWxzbyB0cmlnZ2VycyBhbiBlcnJvciBsb2cgdmlhIGRl dl9lcnJfcHJvYmUoKSwgZXZlbiB0aG91Z2gKbWlzc2luZyBjYWxpYnJhdGlvbiBkYXRhIGlzIGV4 cGxpY2l0bHkgZG9jdW1lbnRlZCBhcyBub24tZmF0YWwgYW5kIG9wdGlvbmFsLgoKPiArCj4gKwlp ZiAoYnVmID09IDApIHsKPiArCQlkZXZfaW5mbyhkZXYsICJObyBjYWxpYnJhdGlvbiBmb3IgJXMu IFVzaW5nIGRlZmF1bHRzXG4iLCBuYW1lKTsKPiArCQlyZXR1cm4gLUVOT0VOVDsKPiArCX0KCltT ZXZlcml0eTogTWVkaXVtXQpJcyBhIHZhbHVlIG9mIDAgYWx3YXlzIGluZGljYXRpdmUgb2YgbWlz c2luZyBjYWxpYnJhdGlvbj8KCklmIGEgdmFsaWQgdHVuZWQgY2FsaWJyYXRpb24gdmFsdWUgaXMg MCwgdGhpcyBjaGVjayB3aWxsIHJldHVybiAtRU5PRU5UIGFuZApjYXVzZSBtdGtfcGNpZV9zcGh5 X2dldF9jYWxpYnJhdGlvbl9kYXRhKCkgdG8gZGlzY2FyZCBhbGwgY2FsaWJyYXRpb25zIGVudGly ZWx5LgoKVGhpcyBhbHNvIHNlZW1zIHRvIHByZXZlbnQgdGhlIHF1aXJrIGZvciBjYWwtdmVyc2lv biA9PSAwIGZyb20gZXZlciBiZWluZwphcHBsaWVkOgoKWyAuLi4gXQo+ICtzdGF0aWMgaW50IG10 a19wY2llX3NwaHlfZ2V0X2NhbGlicmF0aW9uX2RhdGEoc3RydWN0IG10a19wY2llX3NwaHkgKnBj aWVfc3BoeSkKPiArewpbIC4uLiBdCj4gKwlyZXQgPSBtdGtfcGNpZV9zcGh5X2dldF9vbmVfY2Fs X3BhcmEoZGV2LCAiY2FsLXZlcnNpb24iLCAxNSk7Cj4gKwlpZiAocmV0IDwgMCkKPiArCQlnb3Rv IGVuZDsKPiArCXZlcnNpb24gPSByZXQ7Cj4gKwo+ICsJLyogUXVpcmsgZm9yIGVGdXNlIGNhbGli cmF0aW9uIHRhYmxlIHZlcnNpb25zIDAgdG8gNCAqLwo+ICsJaWYgKCh2ZXJzaW9uIDw9IE1US19Q Q0lFX1NQSFlfQ0FMSUJSQVRJT05fTEFTVF9RVUlSS19WRVIpICYmCj4gKwkgICAgY2FsLT5yeF9s ZXFfcmxfY3RsZSA9PSAxMCkgewoKQmVjYXVzZSBtdGtfcGNpZV9zcGh5X2dldF9vbmVfY2FsX3Bh cmEoKSByZXR1cm5zIC1FTk9FTlQgd2hlbiBpdCByZWFkcyBhIDAsCnRoZSB2ZXJzaW9uID09IDAg Y29uZGl0aW9uIHdpbGwgbmV2ZXIgYmUgcmVhY2hlZC4KCi0tIApTYXNoaWtvIEFJIHJldmlldyDC tyBodHRwczovL3Nhc2hpa28uZGV2LyMvcGF0Y2hzZXQvMjAyNjA3MjAxMzUzNDQuODQxODMtMS1h bmdlbG9naW9hY2NoaW5vLmRlbHJlZ25vQGNvbGxhYm9yYS5jb20/cGFydD0yCgotLSAKbGludXgt cGh5IG1haWxpbmcgbGlzdApsaW51eC1waHlAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwczovL2xp c3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1waHkK 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 693113B14DE for ; Mon, 20 Jul 2026 14:13:01 +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=1784556783; cv=none; b=sQbIZDz/wGzRPIfWJQANkDx0aUMafh1xeYLJbMi6/L4q7YDI3DIwCzyvPINJf/1otokBl61lAgTrWoNnQGlXNJJwdAwE25uNukkxd8RMYCQBJuJCgmInbtPHDD9EXgqU66kVYrkZXMk1hiQ9peQz+8CQ1rWfLblQRoSkwp07zHI= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784556783; c=relaxed/simple; bh=KZLGDOKcALuhyoSDNsJSMuAt485Y0ZobOGZH4mkCNag=; h=From:Subject:To:Cc:In-Reply-To:References:Content-Type:Date: Message-Id; b=sDfn5xdOvhyrGElrVXMSGF9s8fvqnevrGzxVH5I2INiK2eathKFYFICuUSRpWfmG1VIp0htI8FnoQiMutbqnLL483GiNopxR1BV3HK2Ira/fUoE63AMALVK6efuYWkopv4d5Kn1oKudYkiORDMhnBtTlaXv6Mu5//+uYTzpPiMI= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=JdWTH8ju; 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="JdWTH8ju" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 482441F00A3A; Mon, 20 Jul 2026 14:13:01 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1784556781; bh=fZZJLl+VluyyR97qkjr+vlG2RbHowBFzdpRbCckzAhc=; h=From:Subject:Reply-To:To:Cc:In-Reply-To:References:Date; b=JdWTH8juCFZzpA8Sw4Hd7z23RyQdCXv5mdqVfkmqy+UenIMwuP6gZmRe0RS2dDW6U gx1EcbIq+5MsykMp+czhO60gU3D2lQR3541Q4UPQwjXG2OXfp+drNe93KElqbuPJtr rk/r/qkJCx9oPxb3zIL1U8rmTYUBDtukLdy/E4Rf3pGgr0BOiU2osoiWc1akYdSMDZ kGX0c6j9oO3pd+DP9eDrm6usrtAkNVmvTJMjIYHBQNsx1qJiCOdD8e+6ZIqSdcj4tH +hPZeybpb0mNwbB4ICUReI29GAOxXzMVMd1F1btPTfHTi/x/NBCvIVPi00n/77FeeQ UWSFN+9eV6gvQ== From: sashiko-bot@kernel.org Subject: Re: [PATCH v2 2/2] phy: mediatek: Add support for PCI-Express Gen4 S-PHY Reply-To: sashiko-reviews@lists.linux.dev To: "AngeloGioacchino Del Regno" Cc: neil.armstrong@linaro.org, olteanv@gmail.com, devicetree@vger.kernel.org, vkoul@kernel.org, linux-phy@lists.infradead.org, conor+dt@kernel.org, robh@kernel.org In-Reply-To: <20260720135344.84183-3-angelogioacchino.delregno@collabora.com> References: <20260720135344.84183-1-angelogioacchino.delregno@collabora.com> <20260720135344.84183-3-angelogioacchino.delregno@collabora.com> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Date: Mon, 20 Jul 2026 14:13:00 +0000 Message-Id: <20260720141301.482441F00A3A@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] Improper handling of missing or unsupported NVMEM calibration data= causes spurious error logs and hard probe failures. - [Medium] A valid calibration value of 0 is incorrectly treated as missing= data, discarding all calibrations. - [Low] The TX_IMPSEL registers are updated twice with identical values dur= ing initialization. - [Low] Macros for AEQ_EGEQ_RATIO are defined but unused in favor of litera= l magic numbers. -- --- Patch [2]: [PATCH v2 2/2] phy: mediatek: Add support for PCI-Express Ge= n4 S-PHY --- commit d91c6c0718440c44adc7e6a83f5aeca706a6c3d5 Author: AngeloGioacchino Del Regno Subject: phy: mediatek: Add support for PCI-Express Gen4 S-PHY This patch adds support for the PCI-Express Gen4 S-PHY found in the latest MediaTek SoCs, including MT8196 and MT8894. > --- a/drivers/phy/mediatek/phy-mtk-pcie-sphy.c > +++ b/drivers/phy/mediatek/phy-mtk-pcie-sphy.c [ ... ] > +#define PEXTP_DIG_LN_RX2_AEQ_EDGE_0 0x6004 > +# define RG_XTP_LN_RX_AEQ_EGEQ_RATIO_GEN3 GENMASK(21, 16) > +# define RG_XTP_LN_RX_AEQ_EGEQ_RATIO_GEN4 GENMASK(29, 24) > +# define AEQ_EGEQ_RATIO_GEN3_TO_22 0x16 > +# define AEQ_EGEQ_RATIO_GEN4_TO_22 0x16 [ ... ] > + mtk_phy_update_field(sif_lane_base + PEXTP_DIG_LN_RX2_AEQ_EDGE_0, > + RG_XTP_LN_RX_AEQ_EGEQ_RATIO_GEN3, 22); > + > + mtk_phy_update_field(sif_lane_base + PEXTP_DIG_LN_RX2_AEQ_EDGE_0, > + RG_XTP_LN_RX_AEQ_EGEQ_RATIO_GEN4, 22); [Severity: Low] Is there a reason the literal 22 is used here instead of the AEQ_EGEQ_RATIO_GEN3_TO_22 and AEQ_EGEQ_RATIO_GEN4_TO_22 macros defined earlier? [ ... ] > +static void mtk_pcie_sphy_apply_calibration(struct mtk_pcie_sphy *pcie_s= phy) > +{ [ ... ] > + mtk_phy_update_field(sif_lane_base + PEXTP_ANA_LN_TRX_A0, > + RG_XTP_LN_TX_IMPSEL_PMOS, cal->tx_impsel.pmos); > + > + mtk_phy_update_field(sif_lane_base + PEXTP_ANA_LN_TRX_A0, > + RG_XTP_LN_TX_IMPSEL_NMOS, cal->tx_impsel.nmos); > + } > +} > + [ ... ] > +static int mtk_pcie_sphy_init(struct phy *phy) > +{ [ ... ] > + if (pcie_sphy->calibration.supported) { > + mtk_pcie_sphy_apply_calibration(pcie_sphy); > + > + tx_impsel.pmos =3D pcie_sphy->calibration.tx_impsel.pmos; > + tx_impsel.nmos =3D pcie_sphy->calibration.tx_impsel.nmos; > + } else { > + /* Set P=3D10, N=3D9 to prevent EMI if no calibration present */ > + tx_impsel.pmos =3D 10; > + tx_impsel.nmos =3D 9; > + } > + > + /* Select TX Impedance on N and P MOSFETs */ > + for (i =3D 0; i < pcie_sphy->num_lanes; i++) { > + void __iomem *sif_lane_base =3D pcie_sphy->sif_base + PEXTP_REG_LANE(i= ); > + > + mtk_phy_update_field(sif_lane_base + PEXTP_ANA_LN_TRX_A0, > + RG_XTP_LN_TX_IMPSEL_PMOS, tx_impsel.pmos); > + > + mtk_phy_update_field(sif_lane_base + PEXTP_ANA_LN_TRX_A0, > + RG_XTP_LN_TX_IMPSEL_NMOS, tx_impsel.nmos); > + } [Severity: Low] Are these register updates redundant? When calibration is supported, mtk_pcie_sphy_apply_calibration() already writes cal->tx_impsel.pmos and cal->tx_impsel.nmos to PEXTP_ANA_LN_TRX_A0. Then this loop immediately overwrites the same registers with the exact same values. [ ... ] > +static int mtk_pcie_sphy_get_one_cal_para(struct device *dev, const char= *name, u8 max_val) > +{ [ ... ] > + ret =3D nvmem_cell_read_u8(dev, name, &tmp); > + if (ret =3D=3D 0) > + buf =3D tmp; > + else > + ret =3D nvmem_cell_read_u16(dev, name, &buf); > + > + if (ret) > + return dev_err_probe(dev, ret, > + "Cannot get calibration data for %s\n", name); [Severity: High] Will this cause spurious error logs or fail the probe when calibration data= is missing or unsupported? If the system does not have CONFIG_NVMEM enabled, nvmem_cell_read_u8() retu= rns -EOPNOTSUPP, which gets logged as an error here. This error is then passed back up to mtk_pcie_sphy_get_calibration_data(), where it is not caught. This will cause the entire driver probe to fail. Similarly, if the cell is simply missing from the Device Tree, it returns -ENOENT. This also triggers an error log via dev_err_probe(), even though missing calibration data is explicitly documented as non-fatal and optional. > + > + if (buf =3D=3D 0) { > + dev_info(dev, "No calibration for %s. Using defaults\n", name); > + return -ENOENT; > + } [Severity: Medium] Is a value of 0 always indicative of missing calibration? If a valid tuned calibration value is 0, this check will return -ENOENT and cause mtk_pcie_sphy_get_calibration_data() to discard all calibrations enti= rely. This also seems to prevent the quirk for cal-version =3D=3D 0 from ever bei= ng applied: [ ... ] > +static int mtk_pcie_sphy_get_calibration_data(struct mtk_pcie_sphy *pcie= _sphy) > +{ [ ... ] > + ret =3D mtk_pcie_sphy_get_one_cal_para(dev, "cal-version", 15); > + if (ret < 0) > + goto end; > + version =3D ret; > + > + /* Quirk for eFuse calibration table versions 0 to 4 */ > + if ((version <=3D MTK_PCIE_SPHY_CALIBRATION_LAST_QUIRK_VER) && > + cal->rx_leq_rl_ctle =3D=3D 10) { Because mtk_pcie_sphy_get_one_cal_para() returns -ENOENT when it reads a 0, the version =3D=3D 0 condition will never be reached. --=20 Sashiko AI review =C2=B7 https://sashiko.dev/#/patchset/20260720135344.8418= 3-1-angelogioacchino.delregno@collabora.com?part=3D2