diff options
Diffstat (limited to 'target/linux/generic/pending-4.4/738-net-phy-at803x-only-the-AT8030-needs-a-hardware-rese.patch')
-rw-r--r-- | target/linux/generic/pending-4.4/738-net-phy-at803x-only-the-AT8030-needs-a-hardware-rese.patch | 81 |
1 files changed, 0 insertions, 81 deletions
diff --git a/target/linux/generic/pending-4.4/738-net-phy-at803x-only-the-AT8030-needs-a-hardware-rese.patch b/target/linux/generic/pending-4.4/738-net-phy-at803x-only-the-AT8030-needs-a-hardware-rese.patch deleted file mode 100644 index 4e6baac0c3..0000000000 --- a/target/linux/generic/pending-4.4/738-net-phy-at803x-only-the-AT8030-needs-a-hardware-rese.patch +++ /dev/null @@ -1,81 +0,0 @@ -From: Timur Tabi <timur@codeaurora.org> -Date: Tue, 26 Apr 2016 12:44:18 -0500 -Subject: [PATCH] net: phy: at803x: only the AT8030 needs a hardware reset on - link change - -Commit 13a56b44 ("at803x: Add support for hardware reset") added a -work-around for a hardware bug on the AT8030. However, the work-around -was being called for all 803x PHYs, even those that don't need it. -Function at803x_link_change_notify() checks to make sure that it only -resets the PHY on the 8030, but it makes more sense to not call that -function at all if it isn't needed. - -Signed-off-by: Timur Tabi <timur@codeaurora.org> -Reviewed-by: Florian Fainelli <f.fainelli@gmail.com> -Signed-off-by: David S. Miller <davem@davemloft.net> ---- - ---- a/drivers/net/phy/at803x.c -+++ b/drivers/net/phy/at803x.c -@@ -374,27 +374,25 @@ static void at803x_link_change_notify(st - * in the FIFO. In such cases, the FIFO enters an error mode it - * cannot recover from by software. - */ -- if (phydev->drv->phy_id == ATH8030_PHY_ID) { -- if (phydev->state == PHY_NOLINK) { -- if (priv->gpiod_reset && !priv->phy_reset) { -- struct at803x_context context; -- -- at803x_context_save(phydev, &context); -- -- gpiod_set_value(priv->gpiod_reset, 1); -- msleep(1); -- gpiod_set_value(priv->gpiod_reset, 0); -- msleep(1); -- -- at803x_context_restore(phydev, &context); -- -- dev_dbg(&phydev->dev, "%s(): phy was reset\n", -- __func__); -- priv->phy_reset = true; -- } -- } else { -- priv->phy_reset = false; -+ if (phydev->state == PHY_NOLINK) { -+ if (priv->gpiod_reset && !priv->phy_reset) { -+ struct at803x_context context; -+ -+ at803x_context_save(phydev, &context); -+ -+ gpiod_set_value(priv->gpiod_reset, 1); -+ msleep(1); -+ gpiod_set_value(priv->gpiod_reset, 0); -+ msleep(1); -+ -+ at803x_context_restore(phydev, &context); -+ -+ dev_dbg(&phydev->dev, "%s(): phy was reset\n", -+ __func__); -+ priv->phy_reset = true; - } -+ } else { -+ priv->phy_reset = false; - } - if (pdata && pdata->fixup_rgmii_tx_delay && - phydev->speed != priv->prev_speed) { -@@ -426,7 +424,6 @@ static struct phy_driver at803x_driver[] - .phy_id_mask = AT803X_PHY_ID_MASK, - .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, -@@ -468,7 +465,6 @@ static struct phy_driver at803x_driver[] - .phy_id_mask = AT803X_PHY_ID_MASK, - .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, |