diff options
author | Francois Romieu <romieu@fr.zoreil.com> | 2007-10-05 00:36:14 +0400 |
---|---|---|
committer | Francois Romieu <romieu@fr.zoreil.com> | 2007-10-18 23:24:34 +0400 |
commit | f23e7fdad166a4968f1f7f56964b75acfdcf57a4 (patch) | |
tree | 5dc323c47d013cc474a9da994c5ac7ea6cfe4eab /drivers/net/r8169.c | |
parent | 53edbecd589520833a89b57af1ee636fdc7544a5 (diff) | |
download | linux-f23e7fdad166a4968f1f7f56964b75acfdcf57a4.tar.xz |
r8169: convert bitfield to plain enum mask
Signed-off-by: Francois Romieu <romieu@fr.zoreil.com>
Cc: Edward Hsu <edward_hsu@realtek.com.tw>
Diffstat (limited to 'drivers/net/r8169.c')
-rw-r--r-- | drivers/net/r8169.c | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/drivers/net/r8169.c b/drivers/net/r8169.c index 9c11087d3e87..16ecba15830d 100644 --- a/drivers/net/r8169.c +++ b/drivers/net/r8169.c @@ -381,6 +381,10 @@ struct ring_info { u8 __pad[sizeof(void *) - sizeof(u32)]; }; +enum features { + RTL_FEATURE_WOL = (1 << 0), +}; + struct rtl8169_private { void __iomem *mmio_addr; /* memory map physical address */ struct pci_dev *pci_dev; /* Index of PCI device */ @@ -421,7 +425,7 @@ struct rtl8169_private { unsigned int (*phy_reset_pending)(void __iomem *); unsigned int (*link_ok)(void __iomem *); struct delayed_work task; - unsigned wol_enabled : 1; + unsigned features; }; MODULE_AUTHOR("Realtek and the Linux r8169 crew <netdev@vger.kernel.org>"); @@ -627,7 +631,10 @@ static int rtl8169_set_wol(struct net_device *dev, struct ethtool_wolinfo *wol) RTL_W8(Cfg9346, Cfg9346_Lock); - tp->wol_enabled = (wol->wolopts) ? 1 : 0; + if (wol->wolopts) + tp->features |= RTL_FEATURE_WOL; + else + tp->features &= ~RTL_FEATURE_WOL; spin_unlock_irq(&tp->lock); @@ -3045,7 +3052,8 @@ static int rtl8169_suspend(struct pci_dev *pdev, pm_message_t state) out_pci_suspend: pci_save_state(pdev); - pci_enable_wake(pdev, pci_choose_state(pdev, state), tp->wol_enabled); + pci_enable_wake(pdev, pci_choose_state(pdev, state), + (tp->features & RTL_FEATURE_WOL) ? 1 : 0); pci_set_power_state(pdev, pci_choose_state(pdev, state)); return 0; |