aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/brcm47xx
diff options
context:
space:
mode:
authorMirko Parthey <mirko.parthey@web.de>2017-06-26 18:25:46 +0200
committerHauke Mehrtens <hauke@hauke-m.de>2017-07-02 22:44:06 +0200
commit1dace8cbe0ba32a4876cede2c9ee226462955dcd (patch)
tree01532da4b9d7ce6e8eb277a7ffc17cf33f58cf84 /target/linux/brcm47xx
parent896246b8c5835240de5dc72e6253b51528e69930 (diff)
downloadupstream-1dace8cbe0ba32a4876cede2c9ee226462955dcd.tar.gz
upstream-1dace8cbe0ba32a4876cede2c9ee226462955dcd.tar.bz2
upstream-1dace8cbe0ba32a4876cede2c9ee226462955dcd.zip
brcm47xx: resolve GPIO conflict for WRT54GSv1
On the Linksys WRT54GSv1, the adm6996 switch driver and the gpio_button_hotplug module both claim GPIO 6, which is connected to the Reset button. When the switch driver's request wins, the Reset button cannot work. This makes it impossible to enter failsafe mode without a serial console. Stop requesting the "adm_rc" GPIO in the switch driver, since it is not used anywhere. Fixes FS#792. Signed-off-by: Mirko Parthey <mirko.parthey@web.de>
Diffstat (limited to 'target/linux/brcm47xx')
-rw-r--r--target/linux/brcm47xx/patches-4.4/209-b44-register-adm-switch.patch15
1 files changed, 7 insertions, 8 deletions
diff --git a/target/linux/brcm47xx/patches-4.4/209-b44-register-adm-switch.patch b/target/linux/brcm47xx/patches-4.4/209-b44-register-adm-switch.patch
index 115b6aea79..7e3d1d6173 100644
--- a/target/linux/brcm47xx/patches-4.4/209-b44-register-adm-switch.patch
+++ b/target/linux/brcm47xx/patches-4.4/209-b44-register-adm-switch.patch
@@ -19,7 +19,7 @@ Subject: [PATCH 210/210] b44: register adm switch
#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
}
}
@@ -50,11 +50,10 @@ Subject: [PATCH 210/210] b44: register adm switch
+ 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";
@@ -90,7 +89,7 @@ Subject: [PATCH 210/210] b44: register adm switch
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))) {
@@ -100,7 +99,7 @@ Subject: [PATCH 210/210] b44: register adm switch
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);