#include <asm/uaccess.h>
#include <asm/io.h>
-@@ -2240,6 +2242,70 @@ static void b44_adjust_link(struct net_d
+@@ -2240,6 +2242,69 @@ static void b44_adjust_link(struct net_d
}
}
+ else
+ adm_data.eedi = 4;
+
-+ gpio = bcm47xx_nvram_gpio_pin("adm_rc");
-+ if (gpio >= 0)
-+ adm_data.eerc = gpio;
-+ else
-+ adm_data.eerc = 5;
++ /*
++ * We ignore the "adm_rc" GPIO here. The driver does not use it,
++ * and it conflicts with the Reset button GPIO on the Linksys WRT54GSv1.
++ */
+
+ info.parent = bp->sdev->dev;
+ info.name = "adm6996_gpio";
static int b44_register_phy_one(struct b44 *bp)
{
struct mii_bus *mii_bus;
-@@ -2283,6 +2349,9 @@ static int b44_register_phy_one(struct b
+@@ -2283,6 +2348,9 @@ static int b44_register_phy_one(struct b
if (!bp->mii_bus->phy_map[bp->phy_addr] &&
(sprom->boardflags_lo & (B44_BOARDFLAG_ROBO | B44_BOARDFLAG_ADM))) {
dev_info(sdev->dev,
"could not find PHY at %i, use fixed one\n",
bp->phy_addr);
-@@ -2479,6 +2548,7 @@ static void b44_remove_one(struct ssb_de
+@@ -2479,6 +2547,7 @@ static void b44_remove_one(struct ssb_de
unregister_netdev(dev);
if (bp->flags & B44_FLAG_EXTERNAL_PHY)
b44_unregister_phy_one(bp);
u8 eecs;
u8 eesk;
u8 eedi;
- u8 eerc;
enum adm6996_model model;
priv->eecs = pdata->eecs;
priv->eedi = pdata->eedi;
- priv->eerc = pdata->eerc;
priv->eesk = pdata->eesk;
priv->model = pdata->model;
if (ret)
return ret;
ret = devm_gpio_request(&pdev->dev, priv->eedi, "adm_eedi");
- if (ret)
- return ret;
- ret = devm_gpio_request(&pdev->dev, priv->eerc, "adm_eerc");
if (ret)
return ret;
ret = devm_gpio_request(&pdev->dev, priv->eesk, "adm_eesk");