8139cp: SIOCGMIIPHY and SIOCGMIIREG
PATCH 1/1 8139cp: SIOCGMIIPHY and SIOCGMIIREG
Hi, This patch adds support to the GMIIPHY and GMIIREG ioctls to the 2.4
version of the 8139cp ethernet driver.
This is required so we don't break apps (eg mii-diag, mii-tools) who
rely on these ioctls to get the NIC's settings.
Patch against 2.4.20-pre7. Please consider pulling it from:
http://cscience.org/~felipewd/linux/patches-fwd/2.4/8139cp-gmii.patch
Felipe
8139cp.c renamed from 8139cp.c.orig +15 -0
@@ -1641,14 +1641,29 @@static int cp_ioctl (struct net_device *dev,struct ifreq *rq,int cmd) {struct cp_private *cp = dev->priv; +struct mii_ioctl_data *mii;int rc =0 ; + mii = (struct mii_ioctl_data *) &rq->ifr_data;if (!netif_running (dev))return -EINVAL ; +if (cmd !=SIOCETHTOOL ) + mii->reg_num &=0x1f ; +switch (cmd) {case SIOCETHTOOL :return cp_ethtool_ioctl (cp, (void *) rq->ifr_data); + +case SIOCGMIIPHY :/* Get the address of the PHY in use. */ +case SIOCDEVPRIVATE :/* binary compat, remove in 2.5 */ + mii->phy_id =CP_INTERNAL_PHY ; +/* Fall Through */ + +case SIOCGMIIREG :/* Read the specified MII register. */ +case SIOCDEVPRIVATE +1 :/* binary compat, remove in 2.5 */ + mii->val_out =mdio_read (dev,CP_INTERNAL_PHY , mii->reg_num); +break ;default : rc = -EOPNOTSUPP ;