[openwrt/openwrt] kernel: b53: update the BCM5365 UID

LEDE Commits lede-commits at lists.infradead.org
Fri Mar 5 11:24:51 GMT 2021


noltari pushed a commit to openwrt/openwrt.git, branch openwrt-21.02:
https://git.openwrt.org/5601da24a89f396c173c31252d679a9eeb9913c3

commit 5601da24a89f396c173c31252d679a9eeb9913c3
Author: Daniel González Cabanelas <dgcbueu at gmail.com>
AuthorDate: Fri Feb 26 20:49:00 2021 +0100

    kernel: b53: update the BCM5365 UID
    
    BCM63XX internal PHYs and BCM5365 SoC internal switch are both using the
    same phy_driver->phy_id, causing conflicts and unnecessary probes. E.g
    the BCM63XX phy internal IRQ is lost on the first probe.
    
    The full BCM5365 UID is 0x00406370.
    
    Use an additional byte to mask the BCM5365 UID to avoid duplicate driver
    phy_id's. This will fix the IRQ issue in internal BCM63XX PHYs and avoid
    more conflicts in the future.
    
    Signed-off-by: Daniel González Cabanelas <dgcbueu at gmail.com>
    (merge both cherry-picked commits)
    Signed-off-by: Álvaro Fernández Rojas <noltari at gmail.com>
    (cherry-picked from commits cbcac4fde8 and cfa43f8119)
---
 target/linux/generic/files/drivers/net/phy/b53/b53_mdio.c      | 4 ++--
 target/linux/generic/files/drivers/net/phy/b53/b53_phy_fixup.c | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/target/linux/generic/files/drivers/net/phy/b53/b53_mdio.c b/target/linux/generic/files/drivers/net/phy/b53/b53_mdio.c
index afe2187cd6..98cdbffe73 100644
--- a/target/linux/generic/files/drivers/net/phy/b53/b53_mdio.c
+++ b/target/linux/generic/files/drivers/net/phy/b53/b53_mdio.c
@@ -417,9 +417,9 @@ static struct phy_driver b53_phy_driver_id2 = {
 
 /* BCM5365 */
 static struct phy_driver b53_phy_driver_id3 = {
-	.phy_id		= 0x00406000,
+	.phy_id		= 0x00406300,
 	.name		= "Broadcom B53 (3)",
-	.phy_id_mask	= 0x1ffffc00,
+	.phy_id_mask	= 0x1fffff00,
 	.features	= 0,
 	.probe		= b53_phy_probe,
 	.remove		= b53_phy_remove,
diff --git a/target/linux/generic/files/drivers/net/phy/b53/b53_phy_fixup.c b/target/linux/generic/files/drivers/net/phy/b53/b53_phy_fixup.c
index e2f8a39ab6..a19eccefd1 100644
--- a/target/linux/generic/files/drivers/net/phy/b53/b53_phy_fixup.c
+++ b/target/linux/generic/files/drivers/net/phy/b53/b53_phy_fixup.c
@@ -24,7 +24,7 @@
 
 #define B53_BRCM_OUI_1	0x0143bc00
 #define B53_BRCM_OUI_2	0x03625c00
-#define B53_BRCM_OUI_3	0x00406000
+#define B53_BRCM_OUI_3	0x00406300
 
 static int b53_phy_fixup(struct phy_device *dev)
 {
@@ -40,7 +40,7 @@ static int b53_phy_fixup(struct phy_device *dev)
 
 	if ((phy_id & 0xfffffc00) == B53_BRCM_OUI_1 ||
 	    (phy_id & 0xfffffc00) == B53_BRCM_OUI_2 ||
-	    (phy_id & 0xfffffc00) == B53_BRCM_OUI_3) {
+	    (phy_id & 0xffffff00) == B53_BRCM_OUI_3) {
 		dev->phy_id = phy_id;
 	}
 



More information about the lede-commits mailing list