r8169: move PHY regs tables to .rodata
[safe/jmp/linux-2.6] / drivers / net / pasemi_mac_ethtool.c
index 5e8df3a..fefa79e 100644 (file)
@@ -71,9 +71,25 @@ pasemi_mac_ethtool_get_settings(struct net_device *netdev,
        struct pasemi_mac *mac = netdev_priv(netdev);
        struct phy_device *phydev = mac->phydev;
 
+       if (!phydev)
+               return -EOPNOTSUPP;
+
        return phy_ethtool_gset(phydev, cmd);
 }
 
+static int
+pasemi_mac_ethtool_set_settings(struct net_device *netdev,
+                              struct ethtool_cmd *cmd)
+{
+       struct pasemi_mac *mac = netdev_priv(netdev);
+       struct phy_device *phydev = mac->phydev;
+
+       if (!phydev)
+               return -EOPNOTSUPP;
+
+       return phy_ethtool_sset(phydev, cmd);
+}
+
 static void
 pasemi_mac_ethtool_get_drvinfo(struct net_device *netdev,
                               struct ethtool_drvinfo *drvinfo)
@@ -109,7 +125,7 @@ static void
 pasemi_mac_ethtool_get_ringparam(struct net_device *netdev,
                                 struct ethtool_ringparam *ering)
 {
-       struct pasemi_mac *mac = netdev->priv;
+       struct pasemi_mac *mac = netdev_priv(netdev);
 
        ering->tx_max_pending = TX_RING_SIZE/2;
        ering->tx_pending = RING_USED(mac->tx)/2;
@@ -130,7 +146,7 @@ static int pasemi_mac_get_sset_count(struct net_device *netdev, int sset)
 static void pasemi_mac_get_ethtool_stats(struct net_device *netdev,
                struct ethtool_stats *stats, u64 *data)
 {
-       struct pasemi_mac *mac = netdev->priv;
+       struct pasemi_mac *mac = netdev_priv(netdev);
        int i;
 
        data[0] = pasemi_read_dma_reg(PAS_DMA_RXINT_RCMDSTA(mac->dma_if))
@@ -147,6 +163,7 @@ static void pasemi_mac_get_strings(struct net_device *netdev, u32 stringset,
 
 const struct ethtool_ops pasemi_mac_ethtool_ops = {
        .get_settings           = pasemi_mac_ethtool_get_settings,
+       .set_settings           = pasemi_mac_ethtool_set_settings,
        .get_drvinfo            = pasemi_mac_ethtool_get_drvinfo,
        .get_msglevel           = pasemi_mac_ethtool_get_msglevel,
        .set_msglevel           = pasemi_mac_ethtool_set_msglevel,