aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristian Lamparter <chunkeey@gmail.com>2019-03-09 19:05:17 +0100
committerChristian Lamparter <chunkeey@gmail.com>2019-03-13 16:25:34 +0100
commit784f2e73df750e79759a80b21e09094262359f80 (patch)
treee3e86cb17d8645ac42c5d0af9abc8ccb42bfbbf0
parent39092ad9e93da633118cd5aaa2f1a636944339f1 (diff)
downloadupstream-784f2e73df750e79759a80b21e09094262359f80.tar.gz
upstream-784f2e73df750e79759a80b21e09094262359f80.tar.bz2
upstream-784f2e73df750e79759a80b21e09094262359f80.zip
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 <chunkeey@gmail.com>
-rw-r--r--target/linux/ipq40xx/patches-4.14/700-net-add-qualcomm-mdio-and-phy.patch2
-rw-r--r--target/linux/ipq40xx/patches-4.19/700-net-add-qualcomm-mdio-and-phy.patch2
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 c6e715510e..00cfa3ab9b 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 58ae6b9906..bad8b797f8 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);
+