]> 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 06a1a6f2d17b1dc2fc682500badd7bedcd0c7093..16ecba15830dc9a1fc94a3651b1a45218f65b176 100644 (file)
@@ -44,7 +44,8 @@
                printk( "Assertion failed! %s,%s,%s,line=%d\n", \
                #expr,__FILE__,__FUNCTION__,__LINE__);          \
        }
-#define dprintk(fmt, args...)  do { printk(PFX fmt, ## args); } while (0)
+#define dprintk(fmt, args...) \
+       do { printk(KERN_DEBUG PFX fmt, ## args); } while (0)
 #else
 #define assert(expr) do {} while (0)
 #define dprintk(fmt, args...)  do {} while (0)
@@ -380,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 */
@@ -420,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>");
@@ -626,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);
 
@@ -977,24 +985,29 @@ static const char rtl8169_gstrings[][ETH_GSTRING_LEN] = {
 };
 
 struct rtl8169_counters {
-       u64     tx_packets;
-       u64     rx_packets;
-       u64     tx_errors;
-       u32     rx_errors;
-       u16     rx_missed;
-       u16     align_errors;
-       u32     tx_one_collision;
-       u32     tx_multi_collision;
-       u64     rx_unicast;
-       u64     rx_broadcast;
-       u32     rx_multicast;
-       u16     tx_aborted;
-       u16     tx_underun;
+       __le64  tx_packets;
+       __le64  rx_packets;
+       __le64  tx_errors;
+       __le32  rx_errors;
+       __le16  rx_missed;
+       __le16  align_errors;
+       __le32  tx_one_collision;
+       __le32  tx_multi_collision;
+       __le64  rx_unicast;
+       __le64  rx_broadcast;
+       __le32  rx_multicast;
+       __le16  tx_aborted;
+       __le16  tx_underun;
 };
 
-static int rtl8169_get_stats_count(struct net_device *dev)
+static int rtl8169_get_sset_count(struct net_device *dev, int sset)
 {
-       return ARRAY_SIZE(rtl8169_gstrings);
+       switch (sset) {
+       case ETH_SS_STATS:
+               return ARRAY_SIZE(rtl8169_gstrings);
+       default:
+               return -EOPNOTSUPP;
+       }
 }
 
 static void rtl8169_get_ethtool_stats(struct net_device *dev,
@@ -1068,7 +1081,7 @@ static const struct ethtool_ops rtl8169_ethtool_ops = {
        .get_wol                = rtl8169_get_wol,
        .set_wol                = rtl8169_set_wol,
        .get_strings            = rtl8169_get_strings,
-       .get_stats_count        = rtl8169_get_stats_count,
+       .get_sset_count         = rtl8169_get_sset_count,
        .get_ethtool_stats      = rtl8169_get_ethtool_stats,
 };
 
@@ -1928,7 +1941,7 @@ static void rtl_hw_start_8169(struct net_device *dev)
 
        if ((tp->mac_version == RTL_GIGA_MAC_VER_02) ||
            (tp->mac_version == RTL_GIGA_MAC_VER_03)) {
-               dprintk(KERN_INFO PFX "Set MAC Reg C+CR Offset 0xE0. "
+               dprintk("Set MAC Reg C+CR Offset 0xE0. "
                        "Bit-3 and bit-14 MUST be 1\n");
                tp->cp_cmd |= (1 << 14);
        }
@@ -2305,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);
@@ -2337,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);
@@ -3039,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;