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 44D7FE9A03B for ; Thu, 19 Feb 2026 02:05:29 +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:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-ID:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=nCfJbcRKdpSh46cHrhMmjV15PXC7zFqLsurcEL9UE7I=; b=Bq/7NJXtvh+cnx DQr3wnqfAXegaVdUsDntCfbLJe6hw7yhDbWQG16Z0izYcHXTQL6cPoMxivqYEF8HYqCcCl+K70p6l uru0OJYwZDymvXnd2AzfwV7B2MXU0ffmm4cn53IlOej0Jkx6R+WMJ6s4+Jmnq6uRLHEn61XtiMptY mcnrybSPDd09XBbWYvEXSMi93dfkxUJfhJVuD/HLWWZprUHFndJRPG50i3o8dhVDjVPFsyNVu8wp1 PJr0s9pmioOD9GlKc/j4LPDTDxmhiGWxTE7+cetCIRlbXaVIwXSFM28MlwAUj89gMk0pRuoPNL9v5 WnDNtoxx8ljB72RvyMiw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1vstQ0-0000000AjMy-3wdI; Thu, 19 Feb 2026 02:05:28 +0000 Received: from sea.source.kernel.org ([2600:3c0a:e001:78e:0:1991:8:25]) by bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1vstPj-0000000AjGu-2YGp for linux-phy@lists.infradead.org; Thu, 19 Feb 2026 02:05:25 +0000 Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by sea.source.kernel.org (Postfix) with ESMTP id 52DC844541; Thu, 19 Feb 2026 02:05:11 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 74221C116D0; Thu, 19 Feb 2026 02:05:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1771466711; bh=Z3fUAAbQXGFdlQbONURw12JtANNmbkXVjuTdQg/02uw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=OudGccxzoq3dLyhQEh3ItVzmP3YhMYEOoLmeFHFmYR7095oN8hnhUn3wGwsmIM6UN 7EEeoe0LW3hG2N0GkW4nqO50+FRvlyH/xUyko+eJei4SOs5qU/WPxVhR++XCxkJ0Fl o+IBPWqMbZIYXFRAoIK4KdZ9LKBII2+J0NcgQOCD+Py3ovENQO2dEdLF26TBUXTQVe mTU9ppciJrOOwVjF6wCSjuWF4FcdqKusZrkf8rOCB931H4Z2Nc81RvmJLv4frjQOTf Vx+auLD/LmTGRfJH3I6ZW+7fCPgqgwyV143lU08Nw1Hw33OJdNHCgk5HCqowXIOIuV yAeTo/tW+PXPQ== From: Sasha Levin To: patches@lists.linux.dev, stable@vger.kernel.org Cc: Aleksandar Gerasimovski , Vinod Koul , Sasha Levin , linux-phy@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH AUTOSEL 6.19-5.15] phy: mvebu-cp110-utmi: fix dr_mode property read from dts Date: Wed, 18 Feb 2026 21:04:13 -0500 Message-ID: <20260219020422.1539798-37-sashal@kernel.org> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260219020422.1539798-1-sashal@kernel.org> References: <20260219020422.1539798-1-sashal@kernel.org> MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore X-stable-base: Linux 6.19.2 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20260218_180522_148772_EEF55D03 X-CRM114-Status: GOOD ( 21.89 ) 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: , 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 RnJvbTogQWxla3NhbmRhciBHZXJhc2ltb3Zza2kgPGFsZWtzYW5kYXIuZ2VyYXNpbW92c2tpQGJl bGRlbi5jb20+CgpbIFVwc3RyZWFtIGNvbW1pdCBlMmNlOTEzNDUyYWI1NmIzMzMwNTM5Y2M0NDNi OTdiN2VhOGMzYTFhIF0KClRoZSBwcm9ibGVtIHdpdGggdGhlIGN1cnJlbnQgaW1wbGVtZW50YXRp b24gaXMgdGhhdCBpdCBkb2VzIG5vdCBjb25zaWRlcgp0aGF0IHRoZSBVU0IgY29udHJvbGxlciBj YW4gaGF2ZSBtdWx0aXBsZSBQSFkgaGFuZGxlcyB3aXRoIGRpZmZlcmVudAphcmd1bWVudHMgY291 bnQsIGFzIGZvciBleGFtcGxlIHdlIGhhdmUgaW4gb3VyIGNuOTEzMSBiYXNlZCBwbGF0Zm9ybToK InBoeXMgPSA8JmNwMF9jb21waHkxIDA+LCA8JmNwMF91dG1pMD47Ii4KCkluIHN1Y2ggY2FzZSBj YWxsaW5nICJvZl91c2JfZ2V0X2RyX21vZGVfYnlfcGh5IiB3aXRoIC0xIChubyBwaHktY2VsbHMp CmxlYWRzIHRvIG5vdCBwcm9wZXIgcGh5IGRldGVjdGlvbiwgdGFraW5nIHRoZSAibWFydmVsbCxj cDExMC11dG1pLXBoeSIKZHRzIGRlZmluaXRpb24gd2UgY2FuIGNhbGwgdGhlICJvZl91c2JfZ2V0 X2RyX21vZGVfYnlfcGh5IiB3aXRoIDAKKCNwaHktY2VsbHMgPSA8MD4pIGFuZCBzYWZlbHkgbG9v ayBmb3IgdGhhdCBwaHkuCgpTaWduZWQtb2ZmLWJ5OiBBbGVrc2FuZGFyIEdlcmFzaW1vdnNraSA8 YWxla3NhbmRhci5nZXJhc2ltb3Zza2lAYmVsZGVuLmNvbT4KTGluazogaHR0cHM6Ly9wYXRjaC5t c2dpZC5saW5rLzIwMjYwMTA2MTUwNjQzLjkyMjExMC0xLWFsZWtzYW5kYXIuZ2VyYXNpbW92c2tp QGJlbGRlbi5jb20KU2lnbmVkLW9mZi1ieTogVmlub2QgS291bCA8dmtvdWxAa2VybmVsLm9yZz4K U2lnbmVkLW9mZi1ieTogU2FzaGEgTGV2aW4gPHNhc2hhbEBrZXJuZWwub3JnPgotLS0KCkxMTSBH ZW5lcmF0ZWQgZXhwbGFuYXRpb25zLCBtYXkgYmUgY29tcGxldGVseSBib2d1czoKCk5vdyBJIGhh dmUgYSBjbGVhciB1bmRlcnN0YW5kaW5nIG9mIHRoZSBidWcuIExldCBtZSB2ZXJpZnkgdGhlIGJl aGF2aW9yCmRpZmZlcmVuY2UgbW9yZSBjYXJlZnVsbHk6CgojIyBVbmRlcnN0YW5kaW5nIHRoZSBC dWcKCldoZW4gYGFyZzAgPSAtMWA6Ci0gVGhlIGZ1bmN0aW9uIHVzZXMgYG9mX3BhcnNlX3BoYW5k bGUoKWAgKGxpbmUgMzAzLTMwNiksIHdoaWNoIHNpbXBseQogIHJldHVybnMgdGhlIG50aCBwaGFu ZGxlIG5vZGUgKip3aXRob3V0KiogcGFyc2luZyBgI3BoeS1jZWxsc2AuIEl0IHNldHMKICBgYXJn cy5hcmdzX2NvdW50ID0gMGAuCi0gVGhlIG1hdGNoaW5nIGF0IGxpbmUgMzE2LTMxNzogYGFyZ3Mu bnAgPT0gbnAgJiYgKGFyZ3MuYXJnc19jb3VudCA9PSAwCiAgfHwgYXJncy5hcmdzWzBdID09IGFy ZzApYCDigJQgc2luY2UgYGFyZ3NfY291bnQgPSAwYCwgaXQgbWF0Y2hlcyBvbiB0aGUKICBgbnBg IGNvbXBhcmlzb24gYWxvbmUuCgpUaGUgcHJvYmxlbTogV2hlbiB0aGUgY29udHJvbGxlciBoYXMg YHBoeXMgPSA8JmNwMF9jb21waHkxIDA+LAo8JmNwMF91dG1pMD47YCwgdGhlcmUgYXJlIHR3byBw aGFuZGxlIGVudHJpZXMuIFRoZSBmaXJzdCAoYGNwMF9jb21waHkxYCkKaGFzIGAjcGh5LWNlbGxz ID0gPDE+YCAoaXQgdGFrZXMgYXJndW1lbnQgYDBgKSwgYW5kIHRoZSBzZWNvbmQKKGBjcDBfdXRt aTBgKSBoYXMgYCNwaHktY2VsbHMgPSA8MD5gLgoKV2l0aCBgYXJnMCA9IC0xYCwgYG9mX3BhcnNl X3BoYW5kbGUoKWAgaXMgdXNlZCwgd2hpY2ggZG9lc24ndCB1bmRlcnN0YW5kCmAjcGh5LWNlbGxz YC4gSXQgc2ltcGx5IGl0ZXJhdGVzIHRocm91Z2ggcmF3IHBoYW5kbGUgZW50cmllcy4gU2luY2UK YGNwMF9jb21waHkxYCBoYXMgYW4gZXh0cmEgY2VsbCAoYDBgKSwgYG9mX3BhcnNlX3BoYW5kbGUo KWAgYXQgaW5kZXggMApyZXR1cm5zIGBjcDBfY29tcGh5MWAsIGF0IGluZGV4IDEgaXQgbWlnaHQg cmV0dXJuIHRoZSBgMGAgYXJndW1lbnQgY2VsbAoobm90IGEgdmFsaWQgcGhhbmRsZSkgcmF0aGVy IHRoYW4gYGNwMF91dG1pMGAuIFRoaXMgbGVhZHMgdG8gaW5jb3JyZWN0ClBIWSBtYXRjaGluZyDi gJQgdGhlIGZ1bmN0aW9uIGNhbid0IHByb3Blcmx5IGZpbmQgdGhlIFVUTUkgUEhZIHdoZW4gbWl4 ZWQKYCNwaHktY2VsbHNgIGNvdW50cyBhcmUgcHJlc2VudC4KCldpdGggYGFyZzAgPSAwYDoKLSBU aGUgZnVuY3Rpb24gdXNlcyBgb2ZfcGFyc2VfcGhhbmRsZV93aXRoX2FyZ3MoKWAgKGxpbmUgMzA3 LTMxMiksIHdoaWNoCiAgY29ycmVjdGx5IHBhcnNlcyBgI3BoeS1jZWxsc2AgZm9yIGVhY2ggcGhh bmRsZSBhbmQgcHJvcGVybHkgc2tpcHMgb3ZlcgogIGFyZ3VtZW50IGNlbGxzLiBUaGlzIG1lYW5z IGluZGV4IDAgY29ycmVjdGx5IHJlZmVycyB0byBgY3AwX2NvbXBoeTFgCiAgKHdpdGggaXRzIGFy Z3VtZW50IGAwYCkgYW5kIGluZGV4IDEgY29ycmVjdGx5IHJlZmVycyB0byBgY3AwX3V0bWkwYC4K LSBBdCBsaW5lIDMxNi0zMTc6IGZvciBgY3AwX3V0bWkwYCwgYGFyZ3MuYXJnc19jb3VudCA9IDBg IChzaW5jZSBgI3BoeS0KICBjZWxscyA9IDwwPmApLCBzbyB0aGUgbWF0Y2ggc3VjY2VlZHMgY29y cmVjdGx5LgoKVGhpcyBpcyBhIHJlYWwgZnVuY3Rpb25hbCBidWcgZml4IOKAlCBvbiBwbGF0Zm9y bXMgd2l0aCBtaXhlZCBQSFkgdHlwZXMsCnRoZSBVVE1JIFBIWSB3b24ndCBiZSBjb3JyZWN0bHkg aWRlbnRpZmllZCBmb3IgaXRzIGR1YWwtcm9sZSBtb2RlLApwb3RlbnRpYWxseSBjYXVzaW5nIHRo ZSBVU0IgcG9ydCB0byBiZSBjb25maWd1cmVkIGluY29ycmVjdGx5CihkZWZhdWx0aW5nIHRvIEhP U1QgbW9kZSB3aXRoIGEgd2FybmluZyBpbnN0ZWFkIG9mIGRldGVjdGluZyB0aGUgY29ycmVjdApt b2RlKS4KCiMjIFN0YWJsZSBLZXJuZWwgQ3JpdGVyaWEgQXNzZXNzbWVudAoKMS4gKipGaXhlcyBh IHJlYWwgYnVnKio6IFllcyDigJQgb24gY245MTMxLWJhc2VkIHBsYXRmb3JtcyAoYW5kIGxpa2Vs eQogICBvdGhlcnMpIHdpdGggbWl4ZWQgUEhZIHR5cGVzLCB0aGUgVVRNSSBQSFkgZHJfbW9kZSBk ZXRlY3Rpb24gZmFpbHMsCiAgIGxlYWRpbmcgdG8gaW5jb3JyZWN0IFVTQiBjb25maWd1cmF0aW9u LgoKMi4gKipPYnZpb3VzbHkgY29ycmVjdCBhbmQgdGVzdGVkKio6IFRoZSBmaXggaXMgYSBvbmUt bGluZSBjaGFuZ2UgZnJvbQogICBgLTFgIHRvIGAwYC4gVGhlIGNvbW1pdCBhdXRob3IgaXMgZnJv bSBCZWxkZW4gKGxpa2VseSBoYXMgdGhlCiAgIGhhcmR3YXJlKS4gVGhlIGNoYW5nZSBtYXRjaGVz IHRoZSBkb2N1bWVudGVkIGAjcGh5LWNlbGxzID0gPDA+YCBmb3IKICAgdGhpcyBQSFkgdHlwZS4g VXNpbmcgYG9mX3BhcnNlX3BoYW5kbGVfd2l0aF9hcmdzKClgICh0cmlnZ2VyZWQgYnkKICAgYXJn MCA+PSAwKSBpcyB0aGUgY29ycmVjdCBhcHByb2FjaCB3aGVuIGRpZmZlcmVudCBQSFlzIGhhdmUg ZGlmZmVyZW50CiAgIGAjcGh5LWNlbGxzYCBjb3VudHMuCgozLiAqKlNtYWxsIGFuZCBjb250YWlu ZWQqKjogU2luZ2xlIGNoYXJhY3RlciBjaGFuZ2UgaW4gb25lIGZpbGUuIE1pbmltYWwKICAgcmlz ay4KCjQuICoqTm8gbmV3IGZlYXR1cmVzKio6IFRoaXMgaXMgcHVyZWx5IGEgYnVnIGZpeC4KCjUu ICoqVXNlciBpbXBhY3QqKjogV2l0aG91dCB0aGlzIGZpeCwgVVNCIGR1YWwtcm9sZSBtb2RlIGRl dGVjdGlvbiBmYWlscwogICBvbiBhZmZlY3RlZCBwbGF0Zm9ybXMuIFRoZSBQSFkgZGVmYXVsdHMg dG8gSE9TVCBtb2RlIHdoZW4gaXQgbWlnaHQKICAgbmVlZCB0byBiZSBQRVJJUEhFUkFMIG1vZGUg KG9yIHZpY2UgdmVyc2EpLCB3aGljaCBtZWFucyBVU0IKICAgZnVuY3Rpb25hbGl0eSBpcyBicm9r ZW4gZm9yIHRob3NlIGNvbmZpZ3VyYXRpb25zLgoKIyMgUmlzayBBc3Nlc3NtZW50CgotICoqUmlz ayoqOiBFeHRyZW1lbHkgbG93LiBUaGUgY2hhbmdlIGZyb20gYC0xYCB0byBgMGAgZm9yIGEgUEhZ IHdpdGgKICBgI3BoeS1jZWxscyA9IDwwPmAgaXMgc2VtYW50aWNhbGx5IGVxdWl2YWxlbnQgZm9y IHNpbmdsZS1QSFkKICBjb25maWd1cmF0aW9ucy4gRm9yIG11bHRpLVBIWSBjb25maWd1cmF0aW9u cyB3aXRoIG1peGVkIGAjcGh5LWNlbGxzYCwKICBpdCdzIGEgY29ycmVjdG5lc3MgZml4LgotICoq UmVncmVzc2lvbiBwb3RlbnRpYWwqKjogVmVyeSBsb3cuIFRoZSBgb2ZfcGFyc2VfcGhhbmRsZV93 aXRoX2FyZ3MoKWAKICBwYXRoIGlzIHdlbGwtdGVzdGVkIGFjcm9zcyB0aGUga2VybmVsLiBUaGUg b25seSBiZWhhdmlvciBjaGFuZ2UgaXMKICB0aGF0IG1peGVkLVBIWSBjb25maWd1cmF0aW9ucyBu b3cgd29yayBjb3JyZWN0bHkuCi0gKipTY29wZSoqOiBTaW5nbGUgZHJpdmVyLCBzaW5nbGUgbGlu ZSwgTWFydmVsbCBBUk0gcGxhdGZvcm0gc3BlY2lmaWMuCgojIyBWZXJpZmljYXRpb24KCi0gKipG dW5jdGlvbiBgb2ZfdXNiX2dldF9kcl9tb2RlX2J5X3BoeWAgYW5hbHl6ZWQqKjogUmVhZCB0aGUK ICBpbXBsZW1lbnRhdGlvbiBhdCBgZHJpdmVycy91c2IvY29tbW9uL2NvbW1vbi5jOjI5MC0zMzFg LiBWZXJpZmllZCB0aGF0CiAgYGFyZzAgPSAtMWAgdXNlcyBgb2ZfcGFyc2VfcGhhbmRsZSgpYCAo bm8gYCNwaHktY2VsbHNgIGF3YXJlbmVzcykKICB3aGlsZSBgYXJnMCA+PSAwYCB1c2VzIGBvZl9w YXJzZV9waGFuZGxlX3dpdGhfYXJncygpYCAocHJvcGVyIGAjcGh5LQogIGNlbGxzYCBwYXJzaW5n KS4KLSAqKkRldmljZSB0cmVlIGJpbmRpbmcgY29uZmlybWVkKio6IFRoZSBFeHBsb3JlIGFnZW50 IHZlcmlmaWVkIHRoYXQKICBgRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3BoeS9t YXJ2ZWxsLGFybWFkYS1jcDExMC11dG1pLQogIHBoeS55YW1sYCBzcGVjaWZpZXMgYCNwaHktY2Vs bHM6IGNvbnN0OiAwYCwgbWVhbmluZyBhcmcwID0gMCBpcyB0aGUKICBjb3JyZWN0IHNlbWFudGlj IG1hdGNoLgotICoqRHJpdmVyIGhpc3RvcnkgdmVyaWZpZWQqKjogYGdpdCBsb2dgIHNob3dzIHRo ZSBkcml2ZXIgd2FzIGludHJvZHVjZWQKICBpbiBjb21taXQgYDJmYzk4OWY3NGI4ZGFgICgiZHJp dmVyczogcGh5OiBhZGQgc3VwcG9ydCBmb3IgQXJtYWRhIENQMTEwCiAgVVRNSSBQSFkiKSwgYW5k IHRoZSBgLTFgIGFyZ3VtZW50IGhhcyBiZWVuIHRoZXJlIHNpbmNlIGluY2VwdGlvbi4gVGhlCiAg ZmlsZSBoYXMgaGFkIG9ubHkgMyBzdWJzZXF1ZW50IGNvbW1pdHMgYmVmb3JlIHRoaXMgZml4LCBu b25lIHJlbGF0ZWQKICB0byBkcl9tb2RlLgotICoqTWF0Y2hpbmcgbG9naWMgdmVyaWZpZWQqKjog QXQgbGluZSAzMTYtMzE3LCB3aGVuIGBhcmdzLmFyZ3NfY291bnQgPT0KICAwYCAod2hpY2ggaXMg dGhlIGNhc2UgZm9yIGAjcGh5LWNlbGxzID0gPDA+YCksIHRoZSBtYXRjaCBzdWNjZWVkcyBvbgog IGBhcmdzLm5wID09IG5wYCBhbG9uZSwgc28gdGhlIHZhbHVlIGAwYCBkb2Vzbid0IGNhdXNlIGEg c3B1cmlvdXMKICBtaXNtYXRjaC4KLSAqKkJ1ZyBtZWNoYW5pc20gdmVyaWZpZWQqKjogV2l0aCBt aXhlZCBgI3BoeS1jZWxsc2AgKGUuZy4sIGBwaHlzID0KICA8JmNwMF9jb21waHkxIDA+LCA8JmNw MF91dG1pMD5gKSwgYG9mX3BhcnNlX3BoYW5kbGUoKWAgKHVzZWQgd2l0aAogIGFyZzA9LTEpIGRv ZXNuJ3QgYWNjb3VudCBmb3IgdGhlIGFyZ3VtZW50IGNlbGwgYDBgIGFmdGVyCiAgYGNwMF9jb21w aHkxYCwgbGVhZGluZyB0byBpbmNvcnJlY3QgcGhhbmRsZSBpbmRleGluZy4KCiMjIENvbmNsdXNp b24KClRoaXMgaXMgYSBjbGVhciwgbWluaW1hbCwgb25lLWxpbmUgYnVnIGZpeCBmb3IgaW5jb3Jy ZWN0IGRldmljZSB0cmVlIFBIWQptYXRjaGluZyBvbiBNYXJ2ZWxsIENQMTEwIFVUTUkgcGxhdGZv cm1zLiBJdCBmaXhlcyBhIHJlYWwgZnVuY3Rpb25hbAppc3N1ZSAoaW5jb3JyZWN0IFVTQiBkdWFs LXJvbGUgbW9kZSBkZXRlY3Rpb24pIHRoYXQgYWZmZWN0cyB1c2VycyB3aXRoCm1peGVkLVBIWSBj b25maWd1cmF0aW9ucy4gVGhlIGZpeCBpcyBvYnZpb3VzbHkgY29ycmVjdCwgaGFzIG5lYXItemVy bwpyZWdyZXNzaW9uIHJpc2ssIGFuZCBmb2xsb3dzIHRoZSBlc3RhYmxpc2hlZCBwYXR0ZXJuIHVz ZWQgYnkgb3RoZXIgUEhZCmRyaXZlcnMuCgoqKllFUyoqCgogZHJpdmVycy9waHkvbWFydmVsbC9w aHktbXZlYnUtY3AxMTAtdXRtaS5jIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9u KCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9waHkvbWFydmVsbC9waHkt bXZlYnUtY3AxMTAtdXRtaS5jIGIvZHJpdmVycy9waHkvbWFydmVsbC9waHktbXZlYnUtY3AxMTAt dXRtaS5jCmluZGV4IDU5OTAzZjg2YjEzZjUuLmRkM2U1MTVhOGU4NjUgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvcGh5L21hcnZlbGwvcGh5LW12ZWJ1LWNwMTEwLXV0bWkuYworKysgYi9kcml2ZXJzL3Bo eS9tYXJ2ZWxsL3BoeS1tdmVidS1jcDExMC11dG1pLmMKQEAgLTMzOCw3ICszMzgsNyBAQCBzdGF0 aWMgaW50IG12ZWJ1X2NwMTEwX3V0bWlfcGh5X3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2Ug KnBkZXYpCiAJCQlyZXR1cm4gLUVOT01FTTsKIAkJfQogCi0JCXBvcnQtPmRyX21vZGUgPSBvZl91 c2JfZ2V0X2RyX21vZGVfYnlfcGh5KGNoaWxkLCAtMSk7CisJCXBvcnQtPmRyX21vZGUgPSBvZl91 c2JfZ2V0X2RyX21vZGVfYnlfcGh5KGNoaWxkLCAwKTsKIAkJaWYgKChwb3J0LT5kcl9tb2RlICE9 IFVTQl9EUl9NT0RFX0hPU1QpICYmCiAJCSAgICAocG9ydC0+ZHJfbW9kZSAhPSBVU0JfRFJfTU9E RV9QRVJJUEhFUkFMKSkgewogCQkJZGV2X2VycigmcGRldi0+ZGV2LAotLSAKMi41MS4wCgoKLS0g CmxpbnV4LXBoeSBtYWlsaW5nIGxpc3QKbGludXgtcGh5QGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0 cHM6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtcGh5Cg== From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (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 4CDE1311C27; Thu, 19 Feb 2026 02:05:11 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771466711; cv=none; b=KaBh9GFGvvOnLADnOSuvzmW7OJ2UWEGZglMW+qW38gNdH5cp2XQrxbHTdFHFssoHVlNjSBeZBFcsa/6AOxmQxbYAYs8POElw02hUpRw6uo77zPea8wf0iT7+gUcSmdxlmRQa5oK2SKFnFy5I62qnBBkorkJSwLZRvndakR/XjlE= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771466711; c=relaxed/simple; bh=Z3fUAAbQXGFdlQbONURw12JtANNmbkXVjuTdQg/02uw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=tZzs3ob3Y+UgAUIvNBDzlWstH52zT6/eJyNymrUjqokdfaxYnvIbx3tfmrwcJlB6RWv49wg5sHe+Y4a0xjhcAs6/8Ix0DLO4B7iqHu4I9QRLGtEzzVbqveIiVATe88njpf6HKphybSHZmY9kuTy9bEnL9T9bmhVog7ekAnKxKs0= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=OudGccxz; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="OudGccxz" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 74221C116D0; Thu, 19 Feb 2026 02:05:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1771466711; bh=Z3fUAAbQXGFdlQbONURw12JtANNmbkXVjuTdQg/02uw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=OudGccxzoq3dLyhQEh3ItVzmP3YhMYEOoLmeFHFmYR7095oN8hnhUn3wGwsmIM6UN 7EEeoe0LW3hG2N0GkW4nqO50+FRvlyH/xUyko+eJei4SOs5qU/WPxVhR++XCxkJ0Fl o+IBPWqMbZIYXFRAoIK4KdZ9LKBII2+J0NcgQOCD+Py3ovENQO2dEdLF26TBUXTQVe mTU9ppciJrOOwVjF6wCSjuWF4FcdqKusZrkf8rOCB931H4Z2Nc81RvmJLv4frjQOTf Vx+auLD/LmTGRfJH3I6ZW+7fCPgqgwyV143lU08Nw1Hw33OJdNHCgk5HCqowXIOIuV yAeTo/tW+PXPQ== From: Sasha Levin To: patches@lists.linux.dev, stable@vger.kernel.org Cc: Aleksandar Gerasimovski , Vinod Koul , Sasha Levin , linux-phy@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH AUTOSEL 6.19-5.15] phy: mvebu-cp110-utmi: fix dr_mode property read from dts Date: Wed, 18 Feb 2026 21:04:13 -0500 Message-ID: <20260219020422.1539798-37-sashal@kernel.org> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260219020422.1539798-1-sashal@kernel.org> References: <20260219020422.1539798-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: patches@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore X-stable-base: Linux 6.19.2 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit From: Aleksandar Gerasimovski [ Upstream commit e2ce913452ab56b3330539cc443b97b7ea8c3a1a ] The problem with the current implementation is that it does not consider that the USB controller can have multiple PHY handles with different arguments count, as for example we have in our cn9131 based platform: "phys = <&cp0_comphy1 0>, <&cp0_utmi0>;". In such case calling "of_usb_get_dr_mode_by_phy" with -1 (no phy-cells) leads to not proper phy detection, taking the "marvell,cp110-utmi-phy" dts definition we can call the "of_usb_get_dr_mode_by_phy" with 0 (#phy-cells = <0>) and safely look for that phy. Signed-off-by: Aleksandar Gerasimovski Link: https://patch.msgid.link/20260106150643.922110-1-aleksandar.gerasimovski@belden.com Signed-off-by: Vinod Koul Signed-off-by: Sasha Levin --- LLM Generated explanations, may be completely bogus: Now I have a clear understanding of the bug. Let me verify the behavior difference more carefully: ## Understanding the Bug When `arg0 = -1`: - The function uses `of_parse_phandle()` (line 303-306), which simply returns the nth phandle node **without** parsing `#phy-cells`. It sets `args.args_count = 0`. - The matching at line 316-317: `args.np == np && (args.args_count == 0 || args.args[0] == arg0)` — since `args_count = 0`, it matches on the `np` comparison alone. The problem: When the controller has `phys = <&cp0_comphy1 0>, <&cp0_utmi0>;`, there are two phandle entries. The first (`cp0_comphy1`) has `#phy-cells = <1>` (it takes argument `0`), and the second (`cp0_utmi0`) has `#phy-cells = <0>`. With `arg0 = -1`, `of_parse_phandle()` is used, which doesn't understand `#phy-cells`. It simply iterates through raw phandle entries. Since `cp0_comphy1` has an extra cell (`0`), `of_parse_phandle()` at index 0 returns `cp0_comphy1`, at index 1 it might return the `0` argument cell (not a valid phandle) rather than `cp0_utmi0`. This leads to incorrect PHY matching — the function can't properly find the UTMI PHY when mixed `#phy-cells` counts are present. With `arg0 = 0`: - The function uses `of_parse_phandle_with_args()` (line 307-312), which correctly parses `#phy-cells` for each phandle and properly skips over argument cells. This means index 0 correctly refers to `cp0_comphy1` (with its argument `0`) and index 1 correctly refers to `cp0_utmi0`. - At line 316-317: for `cp0_utmi0`, `args.args_count = 0` (since `#phy- cells = <0>`), so the match succeeds correctly. This is a real functional bug fix — on platforms with mixed PHY types, the UTMI PHY won't be correctly identified for its dual-role mode, potentially causing the USB port to be configured incorrectly (defaulting to HOST mode with a warning instead of detecting the correct mode). ## Stable Kernel Criteria Assessment 1. **Fixes a real bug**: Yes — on cn9131-based platforms (and likely others) with mixed PHY types, the UTMI PHY dr_mode detection fails, leading to incorrect USB configuration. 2. **Obviously correct and tested**: The fix is a one-line change from `-1` to `0`. The commit author is from Belden (likely has the hardware). The change matches the documented `#phy-cells = <0>` for this PHY type. Using `of_parse_phandle_with_args()` (triggered by arg0 >= 0) is the correct approach when different PHYs have different `#phy-cells` counts. 3. **Small and contained**: Single character change in one file. Minimal risk. 4. **No new features**: This is purely a bug fix. 5. **User impact**: Without this fix, USB dual-role mode detection fails on affected platforms. The PHY defaults to HOST mode when it might need to be PERIPHERAL mode (or vice versa), which means USB functionality is broken for those configurations. ## Risk Assessment - **Risk**: Extremely low. The change from `-1` to `0` for a PHY with `#phy-cells = <0>` is semantically equivalent for single-PHY configurations. For multi-PHY configurations with mixed `#phy-cells`, it's a correctness fix. - **Regression potential**: Very low. The `of_parse_phandle_with_args()` path is well-tested across the kernel. The only behavior change is that mixed-PHY configurations now work correctly. - **Scope**: Single driver, single line, Marvell ARM platform specific. ## Verification - **Function `of_usb_get_dr_mode_by_phy` analyzed**: Read the implementation at `drivers/usb/common/common.c:290-331`. Verified that `arg0 = -1` uses `of_parse_phandle()` (no `#phy-cells` awareness) while `arg0 >= 0` uses `of_parse_phandle_with_args()` (proper `#phy- cells` parsing). - **Device tree binding confirmed**: The Explore agent verified that `Documentation/devicetree/bindings/phy/marvell,armada-cp110-utmi- phy.yaml` specifies `#phy-cells: const: 0`, meaning arg0 = 0 is the correct semantic match. - **Driver history verified**: `git log` shows the driver was introduced in commit `2fc989f74b8da` ("drivers: phy: add support for Armada CP110 UTMI PHY"), and the `-1` argument has been there since inception. The file has had only 3 subsequent commits before this fix, none related to dr_mode. - **Matching logic verified**: At line 316-317, when `args.args_count == 0` (which is the case for `#phy-cells = <0>`), the match succeeds on `args.np == np` alone, so the value `0` doesn't cause a spurious mismatch. - **Bug mechanism verified**: With mixed `#phy-cells` (e.g., `phys = <&cp0_comphy1 0>, <&cp0_utmi0>`), `of_parse_phandle()` (used with arg0=-1) doesn't account for the argument cell `0` after `cp0_comphy1`, leading to incorrect phandle indexing. ## Conclusion This is a clear, minimal, one-line bug fix for incorrect device tree PHY matching on Marvell CP110 UTMI platforms. It fixes a real functional issue (incorrect USB dual-role mode detection) that affects users with mixed-PHY configurations. The fix is obviously correct, has near-zero regression risk, and follows the established pattern used by other PHY drivers. **YES** drivers/phy/marvell/phy-mvebu-cp110-utmi.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/phy/marvell/phy-mvebu-cp110-utmi.c b/drivers/phy/marvell/phy-mvebu-cp110-utmi.c index 59903f86b13f5..dd3e515a8e865 100644 --- a/drivers/phy/marvell/phy-mvebu-cp110-utmi.c +++ b/drivers/phy/marvell/phy-mvebu-cp110-utmi.c @@ -338,7 +338,7 @@ static int mvebu_cp110_utmi_phy_probe(struct platform_device *pdev) return -ENOMEM; } - port->dr_mode = of_usb_get_dr_mode_by_phy(child, -1); + port->dr_mode = of_usb_get_dr_mode_by_phy(child, 0); if ((port->dr_mode != USB_DR_MODE_HOST) && (port->dr_mode != USB_DR_MODE_PERIPHERAL)) { dev_err(&pdev->dev, -- 2.51.0