|
Lines 3279-3290
em_reset(if_ctx_t ctx)
Link Here
|
| 3279 |
|
3279 |
|
| 3280 |
/* Issue a global reset */ |
3280 |
/* Issue a global reset */ |
| 3281 |
e1000_reset_hw(hw); |
3281 |
e1000_reset_hw(hw); |
| 3282 |
if (hw->mac.type >= igb_mac_min) { |
|
|
| 3283 |
E1000_WRITE_REG(hw, E1000_WUC, 0); |
| 3284 |
} else { |
| 3285 |
E1000_WRITE_REG(hw, E1000_WUFC, 0); |
| 3286 |
em_disable_aspm(sc); |
3282 |
em_disable_aspm(sc); |
| 3287 |
} |
3283 |
|
| 3288 |
if (sc->flags & IGB_MEDIA_RESET) { |
3284 |
if (sc->flags & IGB_MEDIA_RESET) { |
| 3289 |
e1000_setup_init_funcs(hw, true); |
3285 |
e1000_setup_init_funcs(hw, true); |
| 3290 |
e1000_get_bus_info(hw); |
3286 |
e1000_get_bus_info(hw); |
|
Lines 4425-4430
em_get_wakeup(if_ctx_t ctx)
Link Here
|
| 4425 |
case e1000_pch2lan: |
4421 |
case e1000_pch2lan: |
| 4426 |
case e1000_pch_lpt: |
4422 |
case e1000_pch_lpt: |
| 4427 |
case e1000_pch_spt: |
4423 |
case e1000_pch_spt: |
|
|
4424 |
case e1000_pch_cnp: |
| 4425 |
case e1000_pch_tgp: |
| 4426 |
case e1000_pch_adp: |
| 4427 |
case e1000_pch_mtp: |
| 4428 |
case e1000_82575: /* listing all igb devices */ |
4428 |
case e1000_82575: /* listing all igb devices */ |
| 4429 |
case e1000_82576: |
4429 |
case e1000_82576: |
| 4430 |
case e1000_82580: |
4430 |
case e1000_82580: |
|
Lines 4514-4526
em_enable_wakeup(if_ctx_t ctx)
Link Here
|
| 4514 |
*/ |
4514 |
*/ |
| 4515 |
if ((if_getcapenable(ifp) & IFCAP_WOL_MAGIC) == 0) |
4515 |
if ((if_getcapenable(ifp) & IFCAP_WOL_MAGIC) == 0) |
| 4516 |
sc->wol &= ~E1000_WUFC_MAG; |
4516 |
sc->wol &= ~E1000_WUFC_MAG; |
|
|
4517 |
else |
| 4518 |
sc->wol |= E1000_WUFC_MAG; |
| 4517 |
|
4519 |
|
| 4518 |
if ((if_getcapenable(ifp) & IFCAP_WOL_UCAST) == 0) |
4520 |
if ((if_getcapenable(ifp) & IFCAP_WOL_UCAST) == 0) |
| 4519 |
sc->wol &= ~E1000_WUFC_EX; |
4521 |
sc->wol &= ~E1000_WUFC_EX; |
|
|
4522 |
else |
| 4523 |
sc->wol |= E1000_WUFC_EX; |
| 4520 |
|
4524 |
|
| 4521 |
if ((if_getcapenable(ifp) & IFCAP_WOL_MCAST) == 0) |
4525 |
if ((if_getcapenable(ifp) & IFCAP_WOL_MCAST) == 0) |
| 4522 |
sc->wol &= ~E1000_WUFC_MC; |
4526 |
sc->wol &= ~E1000_WUFC_MC; |
| 4523 |
else { |
4527 |
else { |
|
|
4528 |
sc->wol |= E1000_WUFC_MC; |
| 4524 |
rctl = E1000_READ_REG(&sc->hw, E1000_RCTL); |
4529 |
rctl = E1000_READ_REG(&sc->hw, E1000_RCTL); |
| 4525 |
rctl |= E1000_RCTL_MPE; |
4530 |
rctl |= E1000_RCTL_MPE; |
| 4526 |
E1000_WRITE_REG(&sc->hw, E1000_RCTL, rctl); |
4531 |
E1000_WRITE_REG(&sc->hw, E1000_RCTL, rctl); |
|
Lines 4664-4671
em_disable_aspm(struct e1000_softc *sc)
Link Here
|
| 4664 |
{ |
4669 |
{ |
| 4665 |
int base, reg; |
4670 |
int base, reg; |
| 4666 |
u16 link_cap,link_ctrl; |
4671 |
u16 link_cap,link_ctrl; |
|
|
4672 |
u32 wuc; |
| 4667 |
device_t dev = sc->dev; |
4673 |
device_t dev = sc->dev; |
|
|
4674 |
struct e1000_hw *hw = &sc->hw; |
| 4668 |
|
4675 |
|
|
|
4676 |
/* |
| 4677 |
* untouch PME_EN and APME bits |
| 4678 |
* wake on lan isn't fully disabled but any events isn't connectted |
| 4679 |
*/ |
| 4680 |
wuc = E1000_READ_REG(hw, E1000_WUC); |
| 4681 |
wuc &= (E1000_WUC_PME_EN | E1000_WUC_APME); |
| 4682 |
E1000_WRITE_REG(hw, E1000_WUC, wuc); |
| 4683 |
|
| 4684 |
/* disconnet all events from wakeup */ |
| 4685 |
E1000_WRITE_REG(hw, E1000_WUFC, 0); |
| 4686 |
|
| 4669 |
switch (sc->hw.mac.type) { |
4687 |
switch (sc->hw.mac.type) { |
| 4670 |
case e1000_82573: |
4688 |
case e1000_82573: |
| 4671 |
case e1000_82574: |
4689 |
case e1000_82574: |