From 784f2e73df750e79759a80b21e09094262359f80 Mon Sep 17 00:00:00 2001 From: Christian Lamparter Date: Sat, 9 Mar 2019 19:05:17 +0100 Subject: [PATCH] ipq40xx: fix phy interrupt setting This patch fixes a problem that was discovered during DSA development. On the MR33, the link change events from the external AR8035-PHY would never make it to the qca8k driver. The issue turned out to be a misplaced memcpy that was copying over the zero-initialized irq table, when it should have been set to PHY_POLL. Hence this patch moves the memcpy after the array has been initialized. Signed-off-by: Christian Lamparter --- .../patches-4.14/700-net-add-qualcomm-mdio-and-phy.patch | 2 +- .../patches-4.19/700-net-add-qualcomm-mdio-and-phy.patch | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/target/linux/ipq40xx/patches-4.14/700-net-add-qualcomm-mdio-and-phy.patch b/target/linux/ipq40xx/patches-4.14/700-net-add-qualcomm-mdio-and-phy.patch index c6e715510eaa..00cfa3ab9be9 100644 --- a/target/linux/ipq40xx/patches-4.14/700-net-add-qualcomm-mdio-and-phy.patch +++ b/target/linux/ipq40xx/patches-4.14/700-net-add-qualcomm-mdio-and-phy.patch @@ -2640,7 +2640,6 @@ Subject: [PATCH 30/38] NET: add qualcomm mdio and PHY + am->mii_bus->name = "ipq40xx_mdio"; + am->mii_bus->read = ipq40xx_mdio_read; + am->mii_bus->write = ipq40xx_mdio_write; -+ memcpy(am->mii_bus->irq, am->phy_irq, sizeof(am->phy_irq)); + am->mii_bus->priv = am; + am->mii_bus->parent = &pdev->dev; + snprintf(am->mii_bus->id, MII_BUS_ID_SIZE, "%s", dev_name(&pdev->dev)); @@ -2648,6 +2647,7 @@ Subject: [PATCH 30/38] NET: add qualcomm mdio and PHY + for (i = 0; i < PHY_MAX_ADDR; i++) + am->phy_irq[i] = PHY_POLL; + ++ memcpy(am->mii_bus->irq, am->phy_irq, sizeof(am->phy_irq)); + am->dev = &pdev->dev; + platform_set_drvdata(pdev, am); + diff --git a/target/linux/ipq40xx/patches-4.19/700-net-add-qualcomm-mdio-and-phy.patch b/target/linux/ipq40xx/patches-4.19/700-net-add-qualcomm-mdio-and-phy.patch index 58ae6b990675..bad8b797f886 100644 --- a/target/linux/ipq40xx/patches-4.19/700-net-add-qualcomm-mdio-and-phy.patch +++ b/target/linux/ipq40xx/patches-4.19/700-net-add-qualcomm-mdio-and-phy.patch @@ -2640,7 +2640,6 @@ Subject: [PATCH 30/38] NET: add qualcomm mdio and PHY + am->mii_bus->name = "ipq40xx_mdio"; + am->mii_bus->read = ipq40xx_mdio_read; + am->mii_bus->write = ipq40xx_mdio_write; -+ memcpy(am->mii_bus->irq, am->phy_irq, sizeof(am->phy_irq)); + am->mii_bus->priv = am; + am->mii_bus->parent = &pdev->dev; + snprintf(am->mii_bus->id, MII_BUS_ID_SIZE, "%s", dev_name(&pdev->dev)); @@ -2648,6 +2647,7 @@ Subject: [PATCH 30/38] NET: add qualcomm mdio and PHY + for (i = 0; i < PHY_MAX_ADDR; i++) + am->phy_irq[i] = PHY_POLL; + ++ memcpy(am->mii_bus->irq, am->phy_irq, sizeof(am->phy_irq)); + am->dev = &pdev->dev; + platform_set_drvdata(pdev, am); + -- 2.30.2