[PATCH] e1000: Fix WOL settings in 82544 based
Linux Kernel Mailing List <[email protected]> Thu, 24 Feb 2005 05:40:51 +0000
| Newsgroups | gmane.linux.kernel.commits.2-4 |
|---|---|
| Message-ID | <[email protected]> |
ChangeSet 1.1548.1.5, 2005/02/24 00:40:51-05:00, [email protected] [PATCH] e1000: Fix WOL settings in 82544 based 5 Fix WOL settings in 82544 based adapters Signed-off-by: Mallikarjuna R Chilakala <[email protected]> Signed-off-by: Ganesh Venkatesan <[email protected]> Signed-off-by: John Ronciak <[email protected]> Signed-off-by: Jeff Garzik <[email protected]> e1000.h | 1 + e1000_main.c | 8 +++++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff -Nru a/drivers/net/e1000/e1000.h b/drivers/net/e1000/e1000.h --- a/drivers/net/e1000/e1000.h 2005-03-04 12:02:54 -08:00 +++ b/drivers/net/e1000/e1000.h 2005-03-04 12:02:54 -08:00 @@ -140,6 +140,7 @@ #define E1000_RX_BUFFER_WRITE 16 /* Must be power of 2 */ #define AUTO_ALL_MODES 0 +#define E1000_EEPROM_82544_APM 0x0004 #define E1000_EEPROM_APME 0x0400 #ifndef E1000_MASTER_SLAVE diff -Nru a/drivers/net/e1000/e1000_main.c b/drivers/net/e1000/e1000_main.c --- a/drivers/net/e1000/e1000_main.c 2005-03-04 12:02:54 -08:00 +++ b/drivers/net/e1000/e1000_main.c 2005-03-04 12:02:54 -08:00 @@ -416,6 +416,7 @@ int i; int err; uint16_t eeprom_data; + uint16_t eeprom_apme_mask = E1000_EEPROM_APME; if((err = pci_enable_device(pdev))) return err; @@ -583,6 +584,11 @@ case e1000_82542_rev2_1: case e1000_82543: break; + case e1000_82544: + e1000_read_eeprom(&adapter->hw, + EEPROM_INIT_CONTROL2_REG, 1, &eeprom_data); + eeprom_apme_mask = E1000_EEPROM_82544_APM; + break; case e1000_82546: case e1000_82546_rev_3: if((E1000_READ_REG(&adapter->hw, STATUS) & E1000_STATUS_FUNC_1) @@ -597,7 +603,7 @@ EEPROM_INIT_CONTROL3_PORT_A, 1, &eeprom_data); break; } - if(eeprom_data & E1000_EEPROM_APME) + if(eeprom_data & eeprom_apme_mask) adapter->wol |= E1000_WUFC_MAG; /* reset the hardware with the new settings */