Merge branch 'for-linus' of git://oss.sgi.com/xfs/xfs
[pandora-kernel.git] / arch / mips / txx9 / generic / setup_tx4939.c
index 3dc19f4..e9f95dc 100644 (file)
@@ -318,19 +318,15 @@ void __init tx4939_sio_init(unsigned int sclk, unsigned int cts_mask)
 }
 
 #if defined(CONFIG_TC35815) || defined(CONFIG_TC35815_MODULE)
-static int tx4939_get_eth_speed(struct net_device *dev)
+static u32 tx4939_get_eth_speed(struct net_device *dev)
 {
-       struct ethtool_cmd cmd = { ETHTOOL_GSET };
-       int speed = 100;        /* default 100Mbps */
-       int err;
-       if (!dev->ethtool_ops || !dev->ethtool_ops->get_settings)
-               return speed;
-       err = dev->ethtool_ops->get_settings(dev, &cmd);
-       if (err < 0)
-               return speed;
-       speed = cmd.speed == SPEED_100 ? 100 : 10;
-       return speed;
+       struct ethtool_cmd cmd;
+       if (dev_ethtool_get_settings(dev, &cmd))
+               return 100;     /* default 100Mbps */
+
+       return ethtool_cmd_speed(&cmd);
 }
+
 static int tx4939_netdev_event(struct notifier_block *this,
                               unsigned long event,
                               void *ptr)
@@ -343,8 +339,7 @@ static int tx4939_netdev_event(struct notifier_block *this,
                else if (dev->irq == TXX9_IRQ_BASE + TX4939_IR_ETH(1))
                        bit = TX4939_PCFG_SPEED1;
                if (bit) {
-                       int speed = tx4939_get_eth_speed(dev);
-                       if (speed == 100)
+                       if (tx4939_get_eth_speed(dev) == 100)
                                txx9_set64(&tx4939_ccfgptr->pcfg, bit);
                        else
                                txx9_clear64(&tx4939_ccfgptr->pcfg, bit);