]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - drivers/net/r8169.c
r8169: convert bitfield to plain enum mask
[linux-2.6-omap-h63xx.git] / drivers / net / r8169.c
index 94b79f55c71caf40c6a5e54d758bfa6078dadb1c..16ecba15830dc9a1fc94a3651b1a45218f65b176 100644 (file)
@@ -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);
 
@@ -2311,7 +2318,7 @@ static void rtl8169_reinit_task(struct work_struct *work)
        ret = rtl8169_open(dev);
        if (unlikely(ret < 0)) {
                if (net_ratelimit() && netif_msg_drv(tp)) {
-                       printk(PFX KERN_ERR "%s: reinit failure (status = %d)."
+                       printk(KERN_ERR PFX "%s: reinit failure (status = %d)."
                               " Rescheduling.\n", dev->name, ret);
                }
                rtl8169_schedule_work(dev, rtl8169_reinit_task);
@@ -2343,7 +2350,7 @@ static void rtl8169_reset_task(struct work_struct *work)
                netif_wake_queue(dev);
        } else {
                if (net_ratelimit() && netif_msg_intr(tp)) {
-                       printk(PFX KERN_EMERG "%s: Rx buffers shortage\n",
+                       printk(KERN_EMERG PFX "%s: Rx buffers shortage\n",
                               dev->name);
                }
                rtl8169_schedule_work(dev, rtl8169_reset_task);
@@ -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;