aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/brcm47xx/patches-4.0/791-tg3-no-pci-sleep.patch
blob: 35a816d8c2b1ac70a3a136842f336731a9c9554e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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
@@ -4263,7 +4263,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)