Commit ae5d1c7d authored by Mallikarjuna R Chilakala's avatar Mallikarjuna R Chilakala Committed by Jeff Garzik

[PATCH] e1000: Fix WOL settings in 82544 based

5 Fix WOL settings in 82544 based adapters
Signed-off-by: default avatarMallikarjuna R Chilakala <mallikarjuna.chilakala@intel.com>
Signed-off-by: default avatarGanesh Venkatesan <ganesh.venkatesan@intel.com>
Signed-off-by: default avatarJohn Ronciak <john.ronciak@intel.com>
Signed-off-by: default avatarJeff Garzik <jgarzik@pobox.com>
parent 1a1ba392
...@@ -138,6 +138,7 @@ struct e1000_adapter; ...@@ -138,6 +138,7 @@ struct e1000_adapter;
#define E1000_RX_BUFFER_WRITE 16 /* Must be power of 2 */ #define E1000_RX_BUFFER_WRITE 16 /* Must be power of 2 */
#define AUTO_ALL_MODES 0 #define AUTO_ALL_MODES 0
#define E1000_EEPROM_82544_APM 0x0004
#define E1000_EEPROM_APME 0x0400 #define E1000_EEPROM_APME 0x0400
#ifndef E1000_MASTER_SLAVE #ifndef E1000_MASTER_SLAVE
......
...@@ -421,6 +421,7 @@ e1000_probe(struct pci_dev *pdev, ...@@ -421,6 +421,7 @@ e1000_probe(struct pci_dev *pdev,
int i; int i;
int err; int err;
uint16_t eeprom_data; uint16_t eeprom_data;
uint16_t eeprom_apme_mask = E1000_EEPROM_APME;
if((err = pci_enable_device(pdev))) if((err = pci_enable_device(pdev)))
return err; return err;
...@@ -591,6 +592,11 @@ e1000_probe(struct pci_dev *pdev, ...@@ -591,6 +592,11 @@ e1000_probe(struct pci_dev *pdev,
case e1000_82542_rev2_1: case e1000_82542_rev2_1:
case e1000_82543: case e1000_82543:
break; 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:
case e1000_82546_rev_3: case e1000_82546_rev_3:
if((E1000_READ_REG(&adapter->hw, STATUS) & E1000_STATUS_FUNC_1) if((E1000_READ_REG(&adapter->hw, STATUS) & E1000_STATUS_FUNC_1)
...@@ -605,7 +611,7 @@ e1000_probe(struct pci_dev *pdev, ...@@ -605,7 +611,7 @@ e1000_probe(struct pci_dev *pdev,
EEPROM_INIT_CONTROL3_PORT_A, 1, &eeprom_data); EEPROM_INIT_CONTROL3_PORT_A, 1, &eeprom_data);
break; break;
} }
if(eeprom_data & E1000_EEPROM_APME) if(eeprom_data & eeprom_apme_mask)
adapter->wol |= E1000_WUFC_MAG; adapter->wol |= E1000_WUFC_MAG;
/* reset the hardware with the new settings */ /* reset the hardware with the new settings */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment