Message ID | 1392301574-24233-1-git-send-email-stefan.sorensen@spectralink.com |
---|---|
State | Changes Requested, archived |
Delegated to: | David Miller |
Headers | show |
On Thu, 2014-02-13 at 15:26 +0100, Stefan Sørensen wrote: > This patch allows the use of a generic timestamping phy connected > to the cpsw if CPTS support is not enabled. This also adds support > of the SIOCGMIIREG and SIOCSMIIREG, and moves handling of SIOCGMIIPHY > to the generic driver. > > Signed-off-by: Stefan Sørensen <stefan.sorensen@spectralink.com> > --- > Changes since v1: > - Remove SIOCGMIIPHY from cpsw > - Mention that SIOCGMIIREG and SIOCSMIIREG support is gained > > drivers/net/ethernet/ti/cpsw.c | 10 +++------- > 1 file changed, 3 insertions(+), 7 deletions(-) > > diff --git a/drivers/net/ethernet/ti/cpsw.c b/drivers/net/ethernet/ti/cpsw.c > index 1d860ce..6ecea1d 100644 > --- a/drivers/net/ethernet/ti/cpsw.c > +++ b/drivers/net/ethernet/ti/cpsw.c > @@ -1471,7 +1471,6 @@ static int cpsw_hwtstamp_get(struct net_device *dev, struct ifreq *ifr) > static int cpsw_ndo_ioctl(struct net_device *dev, struct ifreq *req, int cmd) > { > struct cpsw_priv *priv = netdev_priv(dev); > - struct mii_ioctl_data *data = if_mii(req); > int slave_no = cpsw_slave_index(priv); > > if (!netif_running(dev)) > @@ -1484,14 +1483,11 @@ static int cpsw_ndo_ioctl(struct net_device *dev, struct ifreq *req, int cmd) > case SIOCGHWTSTAMP: > return cpsw_hwtstamp_get(dev, req); > #endif > - case SIOCGMIIPHY: > - data->phy_id = priv->slaves[slave_no].phy->addr; > - break; > - default: > - return -ENOTSUPP; > } > > - return 0; > + if (!priv->slaves[slave_no].phy) > + return -EINVAL; Sorry I didn't spot this before - the error code here should be -EOPNOTSUPP. (Note this is different from -ENOTSUPP as was used before. That's an NFS error code that shouldn't be seen by userland.) Ben. > + return phy_mii_ioctl(priv->slaves[slave_no].phy, req, cmd); > } > > static void cpsw_ndo_tx_timeout(struct net_device *ndev)
diff --git a/drivers/net/ethernet/ti/cpsw.c b/drivers/net/ethernet/ti/cpsw.c index 1d860ce..6ecea1d 100644 --- a/drivers/net/ethernet/ti/cpsw.c +++ b/drivers/net/ethernet/ti/cpsw.c @@ -1471,7 +1471,6 @@ static int cpsw_hwtstamp_get(struct net_device *dev, struct ifreq *ifr) static int cpsw_ndo_ioctl(struct net_device *dev, struct ifreq *req, int cmd) { struct cpsw_priv *priv = netdev_priv(dev); - struct mii_ioctl_data *data = if_mii(req); int slave_no = cpsw_slave_index(priv); if (!netif_running(dev)) @@ -1484,14 +1483,11 @@ static int cpsw_ndo_ioctl(struct net_device *dev, struct ifreq *req, int cmd) case SIOCGHWTSTAMP: return cpsw_hwtstamp_get(dev, req); #endif - case SIOCGMIIPHY: - data->phy_id = priv->slaves[slave_no].phy->addr; - break; - default: - return -ENOTSUPP; } - return 0; + if (!priv->slaves[slave_no].phy) + return -EINVAL; + return phy_mii_ioctl(priv->slaves[slave_no].phy, req, cmd); } static void cpsw_ndo_tx_timeout(struct net_device *ndev)
This patch allows the use of a generic timestamping phy connected to the cpsw if CPTS support is not enabled. This also adds support of the SIOCGMIIREG and SIOCSMIIREG, and moves handling of SIOCGMIIPHY to the generic driver. Signed-off-by: Stefan Sørensen <stefan.sorensen@spectralink.com> --- Changes since v1: - Remove SIOCGMIIPHY from cpsw - Mention that SIOCGMIIREG and SIOCSMIIREG support is gained drivers/net/ethernet/ti/cpsw.c | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-)