3c59x: reload EEPROM values at rmmod for needy cards
Subsystems (2)
PATCH 1/1 3c59x: reload EEPROM values at rmmod for needy cards
Enable reload of EEPROM values in reset at rmmod for cards that need it, similar to old EEPROM_NORESET flag but in reverse.
---
3c905 cards need an additional bit unmasked in the reset at rmmod or else they don't get reinitialized properly when the driver is reloaded.
This is a repost -- the previous patch appears to have been lost in the shuffle. This is the combination of the two patches posted previously regarding EEPROM_NORESET.
drivers/net/3c59x.c | 9 +++++---- 1 files changed, 5 insertions(+), 4 deletions(-)
drivers/net/3c59x.c renamed from drivers/net/3c59x.c.orig +5 -4
@@ -417,7 +417,7 @@ enum { IS_VORTEX=1, IS_BOOMERANG=2, IS_CHAS_PWR_CTRL =0x20 ,HAS_MII =0x40 ,HAS_NWAY =0x80 ,HAS_CB_FNS =0x100 ,INVERT_MII_PWR =0x200 ,INVERT_LED_PWR =0x400 ,MAX_COLLISION_RESET =0x800 ,EEPROM_OFFSET =0x1000 ,HAS_HWCKSM =0x2000 ,WNO_XCVR_PWR =0x4000 , - EXTRA_PREAMBLE=0x8000, }; + EXTRA_PREAMBLE=0x8000, EEPROM_RESET=0x10000, };enum vortex_chips { CH_3C590 = 0,
@@ -505,9 +505,9 @@ static struct vortex_chip_info { {"3c900B-FL Cyclone 10base-FL" , PCI_USES_IO|PCI_USES_MASTER, IS_CYCLONE|HAS_HWCKSM, 128, }, {"3c905 Boomerang 100baseTx", - PCI_USES_IO|PCI_USES_MASTER, IS_BOOMERANG|HAS_MII, 64, }, + PCI_USES_IO|PCI_USES_MASTER, IS_BOOMERANG|HAS_MII|EEPROM_RESET, 64, }, {"3c905 Boomerang 100baseT4", - PCI_USES_IO|PCI_USES_MASTER, IS_BOOMERANG|HAS_MII, 64, }, + PCI_USES_IO|PCI_USES_MASTER, IS_BOOMERANG|HAS_MII|EEPROM_RESET, 64, }, {"3c905B Cyclone 100baseTx", PCI_USES_IO|PCI_USES_MASTER, IS_CYCLONE|HAS_NWAY|HAS_HWCKSM|EXTRA_PREAMBLE, 128, },
@@ -3169,7 +3169,8 @@ static void __devexit vortex_remove_onepci_restore_state (VORTEX_PCI (vp)); }/* Should really use issue_and_wait() here */ -outw (TotalReset|0x14 , dev->base_addr +EL3_CMD ); +outw (TotalReset | ((vp->drv_flags &EEPROM_RESET ) ?0x04 :0x14 ), + dev->base_addr +EL3_CMD );pci_free_consistent (pdev, sizeof(struct boom_rx_desc) * RX_RING_SIZE
Quoted 3 lines · John W. Linville
3c905 cards need an additional bit unmasked in the reset at rmmod or else they don't get reinitialized properly when the driver is reloaded.
This has been in -mm kernels since you first sent it out. I'm intending to hold off until post-2.6.10 so we get a full kernel cycle for any problems to get shaken out.
Quoted 8 lines · Andrew Morton
Quoted 3 lines · John W. Linville
3c905 cards need an additional bit unmasked in the reset at rmmod or else they don't get reinitialized properly when the driver is reloaded.
This has been in -mm kernels since you first sent it out. I'm intending to hold off until post-2.6.10 so we get a full kernel cycle for any problems to get shaken out.
Cool...someone was asking for it in netdev-2.[46], and Jeff didn't have it. That is what provoked the resend.
Thanks for the update!
John
Signature · 2 lines
John W. Linville [email protected]
Quoted 7 lines · John W. Linville
Quoted 3 lines · Andrew Morton
This has been in -mm kernels since you first sent it out. I'm intending to hold off until post-2.6.10 so we get a full kernel cycle for any problems to get shaken out.
Cool...someone was asking for it in netdev-2.[46], and Jeff didn't have it. That is what provoked the resend.
Merged into -ac since you essentially can't use 3c59x/3c90x with DHCP on some systems or get it back from suspend with several distributions. This IMHO should go into 2.6.10 because its a showstopper for many users.
Alan
Quoted 8 lines · Alan Cox
Quoted 6 lines · John W. Linville
Quoted 3 lines · Andrew Morton
This has been in -mm kernels since you first sent it out. I'm intending to hold off until post-2.6.10 so we get a full kernel cycle for any problems to get shaken out.
Quoted 8 lines
Quoted 2 lines
Cool...someone was asking for it in netdev-2.[46], and Jeff didn't have it. That is what provoked the resend.
Merged into -ac since you essentially can't use 3c59x/3c90x with DHCP on some systems or get it back from suspend with several distributions. This IMHO should go into 2.6.10 because its a showstopper for many users.
Poke Andrew to push it upstream, he's the 3c59x maintainer.
Jeff