* [PATCH 1/4] skge: turn carrier off when down
2007-04-07 23:42 [PATCH 0/4] skge and sky2 patches Stephen Hemminger
@ 2007-04-07 23:42 ` Stephen Hemminger
2007-04-07 23:42 ` [PATCH 2/4] sky2: " Stephen Hemminger
` (2 subsequent siblings)
3 siblings, 0 replies; 7+ messages in thread
From: Stephen Hemminger @ 2007-04-07 23:42 UTC (permalink / raw)
Cc: stable, netdev
[-- Attachment #1: skge-carrier.patch --]
[-- Type: text/plain, Size: 650 bytes --]
Driver needs to turn off carrier when down, otherwise it can
confuse bonding and bridging and looks like carrier is on immediately
when it is brought back up.
Signed-off-by: Stephen Hemminger <shemminger@linux-foundation.org>
--- linux-2.6.20.y.orig/drivers/net/skge.c 2007-04-07 15:36:05.000000000 -0700
+++ linux-2.6.20.y/drivers/net/skge.c 2007-04-07 15:54:36.000000000 -0700
@@ -2462,6 +2462,7 @@
printk(KERN_INFO PFX "%s: disabling interface\n", dev->name);
netif_stop_queue(dev);
+ netif_carrier_off(dev);
if (hw->chip_id == CHIP_ID_GENESIS && hw->phy_type == SK_PHY_XMAC)
cancel_rearming_delayed_work(&skge->link_thread);
--
^ permalink raw reply [flat|nested] 7+ messages in thread* [PATCH 2/4] sky2: turn carrier off when down
2007-04-07 23:42 [PATCH 0/4] skge and sky2 patches Stephen Hemminger
2007-04-07 23:42 ` [PATCH 1/4] skge: turn carrier off when down Stephen Hemminger
@ 2007-04-07 23:42 ` Stephen Hemminger
2007-04-07 23:42 ` [PATCH 3/4] sky2: turn on clocks when doing resume Stephen Hemminger
2007-04-07 23:42 ` [PATCH 4/4] sky2: phy workarounds for Yukon EC-U A1 Stephen Hemminger
3 siblings, 0 replies; 7+ messages in thread
From: Stephen Hemminger @ 2007-04-07 23:42 UTC (permalink / raw)
Cc: stable, netdev
[-- Attachment #1: sky2-carrier.patch --]
[-- Type: text/plain, Size: 453 bytes --]
Driver needs to turn off carrier when down.
Signed-off-by: Stephen Hemminger <shemminger@linux-foundation.org>
--- linux-2.6.20.y.orig/drivers/net/sky2.c 2007-04-07 15:36:05.000000000 -0700
+++ linux-2.6.20.y/drivers/net/sky2.c 2007-04-07 15:54:42.000000000 -0700
@@ -1506,6 +1506,7 @@
/* Stop more packets from being queued */
netif_stop_queue(dev);
+ netif_carrier_off(dev);
/* Disable port IRQ */
imask = sky2_read32(hw, B0_IMSK);
--
^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH 3/4] sky2: turn on clocks when doing resume
2007-04-07 23:42 [PATCH 0/4] skge and sky2 patches Stephen Hemminger
2007-04-07 23:42 ` [PATCH 1/4] skge: turn carrier off when down Stephen Hemminger
2007-04-07 23:42 ` [PATCH 2/4] sky2: " Stephen Hemminger
@ 2007-04-07 23:42 ` Stephen Hemminger
2007-04-07 23:42 ` [PATCH 4/4] sky2: phy workarounds for Yukon EC-U A1 Stephen Hemminger
3 siblings, 0 replies; 7+ messages in thread
From: Stephen Hemminger @ 2007-04-07 23:42 UTC (permalink / raw)
Cc: stable, netdev
[-- Attachment #1: sky2-ec-clocks-resume.patch --]
[-- Type: text/plain, Size: 906 bytes --]
Some of these chips are disabled until clock is enabled.
This fixes:
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=404107
Signed-off-by: Stephen Hemminger <shemminger@linux-foundation.org>
--- linux-2.6.20.y.orig/drivers/net/sky2.c 2007-04-07 15:54:42.000000000 -0700
+++ linux-2.6.20.y/drivers/net/sky2.c 2007-04-07 15:56:37.000000000 -0700
@@ -2437,6 +2437,10 @@
return -EOPNOTSUPP;
}
+ /* Make sure and enable all clocks */
+ if (hw->chip_id == CHIP_ID_YUKON_EC_U)
+ sky2_pci_write32(hw, PCI_DEV_REG3, 0);
+
hw->chip_rev = (sky2_read8(hw, B2_MAC_CFG) & CFG_CHIP_R_MSK) >> 4;
/* This rev is really old, and requires untested workarounds */
@@ -3610,6 +3614,9 @@
pci_restore_state(pdev);
pci_enable_wake(pdev, PCI_D0, 0);
+
+ if (hw->chip_id == CHIP_ID_YUKON_EC_U)
+ sky2_pci_write32(hw, PCI_DEV_REG3, 0);
sky2_set_power_state(hw, PCI_D0);
err = sky2_reset(hw);
--
^ permalink raw reply [flat|nested] 7+ messages in thread* [PATCH 4/4] sky2: phy workarounds for Yukon EC-U A1
2007-04-07 23:42 [PATCH 0/4] skge and sky2 patches Stephen Hemminger
` (2 preceding siblings ...)
2007-04-07 23:42 ` [PATCH 3/4] sky2: turn on clocks when doing resume Stephen Hemminger
@ 2007-04-07 23:42 ` Stephen Hemminger
3 siblings, 0 replies; 7+ messages in thread
From: Stephen Hemminger @ 2007-04-07 23:42 UTC (permalink / raw)
Cc: stable, netdev
[-- Attachment #1: sky2-ec-u-a1.patch --]
[-- Type: text/plain, Size: 1050 bytes --]
The workaround Yukon EC-U wasn't comparing with correct
version and wasn't doing correct setup. Without it, 88e8056
throws all sorts of errors.
Signed-off-by: Stephen Hemminger <shemminger@linux-foundation.org>
--- linux-2.6.20.y.orig/drivers/net/sky2.c 2007-04-07 15:56:37.000000000 -0700
+++ linux-2.6.20.y/drivers/net/sky2.c 2007-04-07 15:58:12.000000000 -0700
@@ -524,9 +524,9 @@
ledover &= ~PHY_M_LED_MO_RX;
}
- if (hw->chip_id == CHIP_ID_YUKON_EC_U && hw->chip_rev == CHIP_REV_YU_EC_A1) {
+ if (hw->chip_id == CHIP_ID_YUKON_EC_U &&
+ hw->chip_rev == CHIP_REV_YU_EC_U_A1) {
/* apply fixes in PHY AFE */
- pg = gm_phy_read(hw, port, PHY_MARV_EXT_ADR);
gm_phy_write(hw, port, PHY_MARV_EXT_ADR, 255);
/* increase differential signal amplitude in 10BASE-T */
@@ -538,7 +538,7 @@
gm_phy_write(hw, port, 0x17, 0x2002);
/* set page register to 0 */
- gm_phy_write(hw, port, PHY_MARV_EXT_ADR, pg);
+ gm_phy_write(hw, port, PHY_MARV_EXT_ADR, 0);
} else {
gm_phy_write(hw, port, PHY_MARV_LED_CTRL, ledctrl);
--
^ permalink raw reply [flat|nested] 7+ messages in thread