Index: sys/dev/e1000/if_em.c =================================================================== --- sys/dev/e1000/if_em.c +++ sys/dev/e1000/if_em.c @@ -3796,16 +3796,19 @@ } if (!(adapter->wol & (E1000_WUFC_EX | E1000_WUFC_MAG | E1000_WUFC_MC))) { - if (adapter->hw.mac.type >= e1000_pch_lpt) { + if (adapter->hw.mac.type >= e1000_pch_lpt && + adapter->hw.mac.type < igb_mac_min) { e1000_enable_ulp_lpt_lp(&adapter->hw, TRUE); } goto pme; } /* Advertise the wakeup capability */ - ctrl = E1000_READ_REG(&adapter->hw, E1000_CTRL); - ctrl |= (E1000_CTRL_SWDPIN2 | E1000_CTRL_SWDPIN3); - E1000_WRITE_REG(&adapter->hw, E1000_CTRL, ctrl); + if (adapter->hw.mac.type < e1000_pch_lpt) { + ctrl = E1000_READ_REG(&adapter->hw, E1000_CTRL); + ctrl |= (E1000_CTRL_SWDPIN2 | E1000_CTRL_SWDPIN3); + E1000_WRITE_REG(&adapter->hw, E1000_CTRL, ctrl); + } /* Keep the laser running on Fiber adapters */ if (adapter->hw.phy.media_type == e1000_media_type_fiber || @@ -3821,7 +3824,8 @@ (adapter->hw.mac.type == e1000_ich10lan)) e1000_suspend_workarounds_ich8lan(&adapter->hw); - if ( adapter->hw.mac.type >= e1000_pchlan) { + if (adapter->hw.mac.type >= e1000_pchlan && + adapter->hw.mac.type < igb_mac_min) { error = em_enable_phy_wakeup(adapter); if (error) goto pme; @@ -3835,11 +3839,14 @@ e1000_igp3_phy_powerdown_workaround_ich8lan(&adapter->hw); pme: - status = pci_read_config(dev, pmc + PCIR_POWER_STATUS, 2); - status &= ~(PCIM_PSTAT_PME | PCIM_PSTAT_PMEENABLE); - if (!error && (if_getcapenable(ifp) & IFCAP_WOL)) - status |= PCIM_PSTAT_PME | PCIM_PSTAT_PMEENABLE; - pci_write_config(dev, pmc + PCIR_POWER_STATUS, status, 2); + if (adapter->hw.mac.type < e1000_pch_lpt || + adapter->hw.mac.type >= igb_mac_min) { + status = pci_read_config(dev, pmc + PCIR_POWER_STATUS, 2); + status &= ~(PCIM_PSTAT_PME | PCIM_PSTAT_PMEENABLE); + if (!error && (if_getcapenable(ifp) & IFCAP_WOL)) + status |= PCIM_PSTAT_PME | PCIM_PSTAT_PMEENABLE; + pci_write_config(dev, pmc + PCIR_POWER_STATUS, status, 2); + } return; }