diff options
author | Ben Hutchings <bhutchings@solarflare.com> | 2009-04-29 04:06:34 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2009-04-29 20:32:31 -0400 |
commit | 23c3320cb039debfb94b27e8e9bfe26dd47692c3 (patch) | |
tree | bfb9253e7a6bc4472050db8e9241ad85a99283ab /drivers/net/chelsio/cxgb2.c | |
parent | 68e7f45e118f98b77cfa007aa2d97b5dac69fe6b (diff) |
chelsio: Use generic MDIO definitions and mdio_mii_ioctl()
Compile-tested only.
Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/chelsio/cxgb2.c')
-rw-r--r-- | drivers/net/chelsio/cxgb2.c | 36 |
1 files changed, 3 insertions, 33 deletions
diff --git a/drivers/net/chelsio/cxgb2.c b/drivers/net/chelsio/cxgb2.c index fa06994f9737..082cdb28b510 100644 --- a/drivers/net/chelsio/cxgb2.c +++ b/drivers/net/chelsio/cxgb2.c | |||
@@ -589,7 +589,7 @@ static int get_settings(struct net_device *dev, struct ethtool_cmd *cmd) | |||
589 | } | 589 | } |
590 | 590 | ||
591 | cmd->port = (cmd->supported & SUPPORTED_TP) ? PORT_TP : PORT_FIBRE; | 591 | cmd->port = (cmd->supported & SUPPORTED_TP) ? PORT_TP : PORT_FIBRE; |
592 | cmd->phy_address = p->phy->addr; | 592 | cmd->phy_address = p->phy->mdio.prtad; |
593 | cmd->transceiver = XCVR_EXTERNAL; | 593 | cmd->transceiver = XCVR_EXTERNAL; |
594 | cmd->autoneg = p->link_config.autoneg; | 594 | cmd->autoneg = p->link_config.autoneg; |
595 | cmd->maxtxpkt = 0; | 595 | cmd->maxtxpkt = 0; |
@@ -849,39 +849,9 @@ static const struct ethtool_ops t1_ethtool_ops = { | |||
849 | static int t1_ioctl(struct net_device *dev, struct ifreq *req, int cmd) | 849 | static int t1_ioctl(struct net_device *dev, struct ifreq *req, int cmd) |
850 | { | 850 | { |
851 | struct adapter *adapter = dev->ml_priv; | 851 | struct adapter *adapter = dev->ml_priv; |
852 | struct mii_ioctl_data *data = if_mii(req); | 852 | struct mdio_if_info *mdio = &adapter->port[dev->if_port].phy->mdio; |
853 | |||
854 | switch (cmd) { | ||
855 | case SIOCGMIIPHY: | ||
856 | data->phy_id = adapter->port[dev->if_port].phy->addr; | ||
857 | /* FALLTHRU */ | ||
858 | case SIOCGMIIREG: { | ||
859 | struct cphy *phy = adapter->port[dev->if_port].phy; | ||
860 | u32 val; | ||
861 | |||
862 | if (!phy->mdio_read) | ||
863 | return -EOPNOTSUPP; | ||
864 | phy->mdio_read(adapter, data->phy_id, 0, data->reg_num & 0x1f, | ||
865 | &val); | ||
866 | data->val_out = val; | ||
867 | break; | ||
868 | } | ||
869 | case SIOCSMIIREG: { | ||
870 | struct cphy *phy = adapter->port[dev->if_port].phy; | ||
871 | |||
872 | if (!capable(CAP_NET_ADMIN)) | ||
873 | return -EPERM; | ||
874 | if (!phy->mdio_write) | ||
875 | return -EOPNOTSUPP; | ||
876 | phy->mdio_write(adapter, data->phy_id, 0, data->reg_num & 0x1f, | ||
877 | data->val_in); | ||
878 | break; | ||
879 | } | ||
880 | 853 | ||
881 | default: | 854 | return mdio_mii_ioctl(mdio, if_mii(req), cmd); |
882 | return -EOPNOTSUPP; | ||
883 | } | ||
884 | return 0; | ||
885 | } | 855 | } |
886 | 856 | ||
887 | static int t1_change_mtu(struct net_device *dev, int new_mtu) | 857 | static int t1_change_mtu(struct net_device *dev, int new_mtu) |