Signed-off-by: Francois Romieu <[EMAIL PROTECTED]>

diff -puN drivers/net/r8169.c~r8169-780 drivers/net/r8169.c
--- a/drivers/net/r8169.c~r8169-780     2005-08-24 23:11:15.947273681 +0200
+++ b/drivers/net/r8169.c       2005-08-24 23:11:15.991266546 +0200
@@ -857,6 +857,13 @@ static void rtl8169_get_regs(struct net_
         spin_unlock_irqrestore(&tp->lock, flags);
 }
 
+static int rtl8169_nway_reset(struct net_device *dev)
+{
+       struct rtl8169_private *tp = netdev_priv(dev);
+
+       return mii_nway_restart(&tp->mii_if);
+}
+
 static u32 rtl8169_get_msglevel(struct net_device *dev)
 {
        struct rtl8169_private *tp = netdev_priv(dev);
@@ -983,8 +990,17 @@ static struct ethtool_ops rtl8169_ethtoo
        .get_strings            = rtl8169_get_strings,
        .get_stats_count        = rtl8169_get_stats_count,
        .get_ethtool_stats      = rtl8169_get_ethtool_stats,
+       .nway_reset             = rtl8169_nway_reset,
 };
 
+static int rtl8169_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
+{
+       struct rtl8169_private *tp = netdev_priv(dev);
+
+       return !netif_running(dev) ? -EINVAL :
+               generic_mii_ioctl(&tp->mii_if, if_mii(ifr), cmd, NULL);
+}
+
 static void rtl8169_write_gmii_reg_bit(void __iomem *ioaddr, int reg, int 
bitnum,
                                       int bitval)
 {
@@ -1468,6 +1484,7 @@ rtl8169_init_one(struct pci_dev *pdev, c
        dev->get_stats = rtl8169_get_stats;
        SET_ETHTOOL_OPS(dev, &rtl8169_ethtool_ops);
        dev->stop = rtl8169_close;
+       dev->do_ioctl = rtl8169_ioctl;
        dev->tx_timeout = rtl8169_tx_timeout;
        dev->set_multicast_list = rtl8169_set_rx_mode;
        dev->watchdog_timeo = RTL8169_TX_TIMEOUT;

_
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to