* [patch 2.4.28-rc3] 3c59x: reload EEPROM values at rmmod for needy cards
@ 2004-11-17 21:02 John W. Linville
0 siblings, 0 replies; only message in thread
From: John W. Linville @ 2004-11-17 21:02 UTC (permalink / raw)
To: linux-kernel; +Cc: netdev, jgarzik, akpm
Enable reload of EEPROM values in reset at rmmod for cards that need
it, similar to old EEPROM_NORESET flag but in reverse.
Signed-off-by: John W. Linville <linville@tuxdriver.com>
---
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(-)
--- 3c59x-reset-2.4/drivers/net/3c59x.c.orig
+++ 3c59x-reset-2.4/drivers/net/3c59x.c
@@ -413,7 +413,7 @@ enum { IS_VORTEX=1, IS_BOOMERANG=2, IS_C
HAS_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,
@@ -502,9 +502,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, },
@@ -3094,7 +3094,8 @@ static void __devexit vortex_remove_one
pci_restore_state(VORTEX_PCI(vp), vp->power_state);
}
/* 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
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2004-11-17 21:11 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-11-17 21:02 [patch 2.4.28-rc3] 3c59x: reload EEPROM values at rmmod for needy cards John W. Linville
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.