bnx2x: fix WOL by enablement PME in config space
Signed-off-by: Dmitry Kravkov <dmitry@broadcom.com> Signed-off-by: Eilon Greenstein <eilong@broadcom.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
f2eaeb58bf
commit
f997790357
@@ -7627,8 +7627,11 @@ u32 bnx2x_send_unload_req(struct bnx2x *bp, int unload_mode)
|
|||||||
u32 emac_base = port ? GRCBASE_EMAC1 : GRCBASE_EMAC0;
|
u32 emac_base = port ? GRCBASE_EMAC1 : GRCBASE_EMAC0;
|
||||||
u8 *mac_addr = bp->dev->dev_addr;
|
u8 *mac_addr = bp->dev->dev_addr;
|
||||||
u32 val;
|
u32 val;
|
||||||
|
u16 pmc;
|
||||||
|
|
||||||
/* The mac address is written to entries 1-4 to
|
/* The mac address is written to entries 1-4 to
|
||||||
preserve entry 0 which is used by the PMF */
|
* preserve entry 0 which is used by the PMF
|
||||||
|
*/
|
||||||
u8 entry = (BP_VN(bp) + 1)*8;
|
u8 entry = (BP_VN(bp) + 1)*8;
|
||||||
|
|
||||||
val = (mac_addr[0] << 8) | mac_addr[1];
|
val = (mac_addr[0] << 8) | mac_addr[1];
|
||||||
@@ -7638,6 +7641,11 @@ u32 bnx2x_send_unload_req(struct bnx2x *bp, int unload_mode)
|
|||||||
(mac_addr[4] << 8) | mac_addr[5];
|
(mac_addr[4] << 8) | mac_addr[5];
|
||||||
EMAC_WR(bp, EMAC_REG_EMAC_MAC_MATCH + entry + 4, val);
|
EMAC_WR(bp, EMAC_REG_EMAC_MAC_MATCH + entry + 4, val);
|
||||||
|
|
||||||
|
/* Enable the PME and clear the status */
|
||||||
|
pci_read_config_word(bp->pdev, bp->pm_cap + PCI_PM_CTRL, &pmc);
|
||||||
|
pmc |= PCI_PM_CTRL_PME_ENABLE | PCI_PM_CTRL_PME_STATUS;
|
||||||
|
pci_write_config_word(bp->pdev, bp->pm_cap + PCI_PM_CTRL, pmc);
|
||||||
|
|
||||||
reset_code = DRV_MSG_CODE_UNLOAD_REQ_WOL_EN;
|
reset_code = DRV_MSG_CODE_UNLOAD_REQ_WOL_EN;
|
||||||
|
|
||||||
} else
|
} else
|
||||||
|
Reference in New Issue
Block a user