]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/commitdiff
Merge branch 'r8169-for-jeff-20070806' of git://electric-eye.fr.zoreil.com/home/romie...
authorJeff Garzik <jeff@garzik.org>
Tue, 7 Aug 2007 21:28:23 +0000 (17:28 -0400)
committerJeff Garzik <jeff@garzik.org>
Tue, 7 Aug 2007 21:28:23 +0000 (17:28 -0400)
1  2 
drivers/net/r8169.c

diff --combined drivers/net/r8169.c
index c9333b9dd51aac98c7f17c8406da30c9366bc7a7,631e55dbbdd06aa67c8c982fe68eb8296e66452e..b85ab4a8f2a3377354bf357940334be642f4a6ef
@@@ -725,6 -725,12 +725,12 @@@ static int rtl8169_set_speed_xmii(struc
  
        auto_nego |= ADVERTISE_PAUSE_CAP | ADVERTISE_PAUSE_ASYM;
  
+       if (tp->mac_version == RTL_GIGA_MAC_VER_12) {
+               /* Vendor specific (0x1f) and reserved (0x0e) MII registers. */
+               mdio_write(ioaddr, 0x1f, 0x0000);
+               mdio_write(ioaddr, 0x0e, 0x0000);
+       }
        tp->phy_auto_nego_reg = auto_nego;
        tp->phy_1000_ctrl_reg = giga_ctrl;
  
@@@ -1066,6 -1072,7 +1072,6 @@@ static const struct ethtool_ops rtl8169
        .get_strings            = rtl8169_get_strings,
        .get_stats_count        = rtl8169_get_stats_count,
        .get_ethtool_stats      = rtl8169_get_ethtool_stats,
 -      .get_perm_addr          = ethtool_op_get_perm_addr,
  };
  
  static void rtl8169_write_gmii_reg_bit(void __iomem *ioaddr, int reg,
@@@ -2760,14 -2767,16 +2766,16 @@@ static irqreturn_t rtl8169_interrupt(in
                        rtl8169_check_link_status(dev, tp, ioaddr);
  
  #ifdef CONFIG_R8169_NAPI
-               RTL_W16(IntrMask, tp->intr_event & ~tp->napi_event);
-               tp->intr_mask = ~tp->napi_event;
-               if (likely(netif_rx_schedule_prep(dev)))
-                       __netif_rx_schedule(dev);
-               else if (netif_msg_intr(tp)) {
-                       printk(KERN_INFO "%s: interrupt %04x taken in poll\n",
-                              dev->name, status);
+               if (status & tp->napi_event) {
+                       RTL_W16(IntrMask, tp->intr_event & ~tp->napi_event);
+                       tp->intr_mask = ~tp->napi_event;
+                       if (likely(netif_rx_schedule_prep(dev)))
+                               __netif_rx_schedule(dev);
+                       else if (netif_msg_intr(tp)) {
+                               printk(KERN_INFO "%s: interrupt %04x in poll\n",
+                                      dev->name, status);
+                       }
                }
                break;
  #else