aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHauke Mehrtens <hauke@hauke-m.de>2014-07-06 13:45:43 +0000
committerHauke Mehrtens <hauke@hauke-m.de>2014-07-06 13:45:43 +0000
commitdf8741f92b5e5520d3335eb7e2fea4942a924e81 (patch)
tree37825c04642a0fb7f510d2f052b4f3ca34ad3824
parented0dc1c97eab36e3e26202c9704198ccaaf66836 (diff)
downloadupstream-df8741f92b5e5520d3335eb7e2fea4942a924e81.tar.gz
upstream-df8741f92b5e5520d3335eb7e2fea4942a924e81.tar.bz2
upstream-df8741f92b5e5520d3335eb7e2fea4942a924e81.zip
brcm47xx: fix bcm4705 rebooting when initializing the switch.
When the Ethernet controller is powered down and someone wants to access the mdio bus like the witch driver (b53) the system crashed if PCI_D3hot was set before. This patch deactivates this power sawing mode when a switch driver is in use. Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de> SVN-Revision: 41527
-rw-r--r--target/linux/brcm47xx/patches-3.10/791-tg3-no-pci-sleep.patch17
-rw-r--r--target/linux/brcm47xx/patches-3.14/791-tg3-no-pci-sleep.patch17
2 files changed, 34 insertions, 0 deletions
diff --git a/target/linux/brcm47xx/patches-3.10/791-tg3-no-pci-sleep.patch b/target/linux/brcm47xx/patches-3.10/791-tg3-no-pci-sleep.patch
new file mode 100644
index 0000000000..f8b2c7c15f
--- /dev/null
+++ b/target/linux/brcm47xx/patches-3.10/791-tg3-no-pci-sleep.patch
@@ -0,0 +1,17 @@
+When the Ethernet controller is powered down and someone wants to
+access the mdio bus like the witch driver (b53) the system crashed if
+PCI_D3hot was set before. This patch deactivates this power sawing mode
+when a switch driver is in use.
+
+--- a/drivers/net/ethernet/broadcom/tg3.c
++++ b/drivers/net/ethernet/broadcom/tg3.c
+@@ -4221,7 +4221,8 @@ static void tg3_power_down(struct tg3 *t
+ tg3_power_down_prepare(tp);
+
+ pci_wake_from_d3(tp->pdev, tg3_flag(tp, WOL_ENABLE));
+- pci_set_power_state(tp->pdev, PCI_D3hot);
++ if (!tg3_flag(tp, ROBOSWITCH))
++ pci_set_power_state(tp->pdev, PCI_D3hot);
+ }
+
+ static void tg3_aux_stat_to_speed_duplex(struct tg3 *tp, u32 val, u16 *speed, u8 *duplex)
diff --git a/target/linux/brcm47xx/patches-3.14/791-tg3-no-pci-sleep.patch b/target/linux/brcm47xx/patches-3.14/791-tg3-no-pci-sleep.patch
new file mode 100644
index 0000000000..cb46f46ca3
--- /dev/null
+++ b/target/linux/brcm47xx/patches-3.14/791-tg3-no-pci-sleep.patch
@@ -0,0 +1,17 @@
+When the Ethernet controller is powered down and someone wants to
+access the mdio bus like the witch driver (b53) the system crashed if
+PCI_D3hot was set before. This patch deactivates this power sawing mode
+when a switch driver is in use.
+
+--- a/drivers/net/ethernet/broadcom/tg3.c
++++ b/drivers/net/ethernet/broadcom/tg3.c
+@@ -4269,7 +4269,8 @@ static int tg3_power_down_prepare(struct
+ static void tg3_power_down(struct tg3 *tp)
+ {
+ pci_wake_from_d3(tp->pdev, tg3_flag(tp, WOL_ENABLE));
+- pci_set_power_state(tp->pdev, PCI_D3hot);
++ if (!tg3_flag(tp, ROBOSWITCH))
++ pci_set_power_state(tp->pdev, PCI_D3hot);
+ }
+
+ static void tg3_aux_stat_to_speed_duplex(struct tg3 *tp, u32 val, u16 *speed, u8 *duplex)