aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/generic/pending-4.9/180-net-phy-at803x-add-support-for-AT8032.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/generic/pending-4.9/180-net-phy-at803x-add-support-for-AT8032.patch')
-rw-r--r--target/linux/generic/pending-4.9/180-net-phy-at803x-add-support-for-AT8032.patch70
1 files changed, 0 insertions, 70 deletions
diff --git a/target/linux/generic/pending-4.9/180-net-phy-at803x-add-support-for-AT8032.patch b/target/linux/generic/pending-4.9/180-net-phy-at803x-add-support-for-AT8032.patch
deleted file mode 100644
index f2d5df503f..0000000000
--- a/target/linux/generic/pending-4.9/180-net-phy-at803x-add-support-for-AT8032.patch
+++ /dev/null
@@ -1,70 +0,0 @@
-From: Felix Fietkau <nbd@nbd.name>
-Subject: net: phy: at803x: add support for AT8032
-
-Like AT8030, this PHY needs the GPIO reset workaround
-
-Signed-off-by: Felix Fietkau <nbd@nbd.name>
----
-
---- a/drivers/net/phy/at803x.c
-+++ b/drivers/net/phy/at803x.c
-@@ -62,6 +62,7 @@
-
- #define ATH8030_PHY_ID 0x004dd076
- #define ATH8031_PHY_ID 0x004dd074
-+#define ATH8032_PHY_ID 0x004dd023
- #define ATH8035_PHY_ID 0x004dd072
-
- MODULE_DESCRIPTION("Atheros 803x PHY driver");
-@@ -259,7 +260,8 @@ static int at803x_probe(struct phy_devic
- if (!priv)
- return -ENOMEM;
-
-- if (phydev->drv->phy_id != ATH8030_PHY_ID)
-+ if (phydev->drv->phy_id != ATH8030_PHY_ID &&
-+ phydev->drv->phy_id != ATH8032_PHY_ID)
- goto does_not_require_reset_workaround;
-
- gpiod_reset = devm_gpiod_get_optional(dev, "reset", GPIOD_OUT_LOW);
-@@ -335,7 +337,7 @@ static void at803x_link_change_notify(st
- struct at803x_priv *priv = phydev->priv;
-
- /*
-- * Conduct a hardware reset for AT8030 every time a link loss is
-+ * Conduct a hardware reset for AT8030/2 every time a link loss is
- * signalled. This is necessary to circumvent a hardware bug that
- * occurs when the cable is unplugged while TX packets are pending
- * in the FIFO. In such cases, the FIFO enters an error mode it
-@@ -447,6 +449,24 @@ static struct phy_driver at803x_driver[]
- .aneg_done = at803x_aneg_done,
- .ack_interrupt = &at803x_ack_interrupt,
- .config_intr = &at803x_config_intr,
-+}, {
-+ /* ATHEROS 8032 */
-+ .phy_id = ATH8032_PHY_ID,
-+ .name = "Atheros 8032 ethernet",
-+ .phy_id_mask = 0xffffffef,
-+ .probe = at803x_probe,
-+ .config_init = at803x_config_init,
-+ .link_change_notify = at803x_link_change_notify,
-+ .set_wol = at803x_set_wol,
-+ .get_wol = at803x_get_wol,
-+ .suspend = at803x_suspend,
-+ .resume = at803x_resume,
-+ .features = PHY_BASIC_FEATURES,
-+ .flags = PHY_HAS_INTERRUPT,
-+ .config_aneg = genphy_config_aneg,
-+ .read_status = genphy_read_status,
-+ .ack_interrupt = at803x_ack_interrupt,
-+ .config_intr = at803x_config_intr,
- } };
-
- module_phy_driver(at803x_driver);
-@@ -454,6 +474,7 @@ module_phy_driver(at803x_driver);
- static struct mdio_device_id __maybe_unused atheros_tbl[] = {
- { ATH8030_PHY_ID, 0xffffffef },
- { ATH8031_PHY_ID, 0xffffffef },
-+ { ATH8032_PHY_ID, 0xffffffef },
- { ATH8035_PHY_ID, 0xffffffef },
- { }
- };