From 732ecfeb92a1dff4ee3a3022638b1f7248f2c2bf Mon Sep 17 00:00:00 2001 From: Eilon Greenstein Date: Wed, 13 Aug 2008 15:52:46 -0700 Subject: [PATCH] --- yaml --- r: 108399 b: refs/heads/master c: 72ce58c328d7131d96280135f8be858603522911 h: refs/heads/master i: 108397: f85b4c2b5b72e39f3987deb41b247e8d82122c9a 108395: fe82b06923463df2ec5c894b14b11b8b55000c8d 108391: 316367c558d7983914780872141556aadeb2016b 108383: e96442e0e3e3d8c93cd3ce1dfecd1a2ce8a94476 v: v3 --- [refs] | 2 +- trunk/drivers/net/bnx2x_main.c | 13 +++++++++++-- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index baca2f2fd7af..1b248b253171 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 3101c2bc9043c1499158837648a29dd79ee2f5e7 +refs/heads/master: 72ce58c328d7131d96280135f8be858603522911 diff --git a/trunk/drivers/net/bnx2x_main.c b/trunk/drivers/net/bnx2x_main.c index db6a3b9a367c..03218705f513 100644 --- a/trunk/drivers/net/bnx2x_main.c +++ b/trunk/drivers/net/bnx2x_main.c @@ -6897,6 +6897,7 @@ static void __devinit bnx2x_undi_unload(struct bnx2x *bp) static void __devinit bnx2x_get_common_hwinfo(struct bnx2x *bp) { u32 val, val2, val3, val4, id; + u16 pmc; /* Get the chip revision id and number. */ /* chip num:16-31, rev:12-15, metal:4-11, bond_id:0-3 */ @@ -6954,8 +6955,16 @@ static void __devinit bnx2x_get_common_hwinfo(struct bnx2x *bp) BNX2X_ERR("This driver needs bc_ver %X but found %X," " please upgrade BC\n", BNX2X_BC_VER, val); } - BNX2X_DEV_INFO("%sWoL Capable\n", - (bp->flags & NO_WOL_FLAG)? "Not " : ""); + + if (BP_E1HVN(bp) == 0) { + pci_read_config_word(bp->pdev, bp->pm_cap + PCI_PM_PMC, &pmc); + bp->flags |= (pmc & PCI_PM_CAP_PME_D3cold) ? 0 : NO_WOL_FLAG; + } else { + /* no WOL capability for E1HVN != 0 */ + bp->flags |= NO_WOL_FLAG; + } + BNX2X_DEV_INFO("%sWoL capable\n", + (bp->flags & NO_WOL_FLAG) ? "Not " : ""); val = SHMEM_RD(bp, dev_info.shared_hw_config.part_num); val2 = SHMEM_RD(bp, dev_info.shared_hw_config.part_num[4]);