hi
i fixed the ioctl support in the net driver to support link detection by
ifplugd ond maybe netplugd(not tested)
here my patch for
drivers/net/au1000.c
bjoern riemer
9,11c9
< * Bjoern Riemer 2004
< * riemer@fokus.fraunhofer.de or riemer@riemer-nt.de
< * // fixed the link beat detection with ioctls (SIOCGMIIPHY)
---
> *
120c118
< "au1000eth.c:1.5 ppopov@mvista.com\n";
---
> "au1000eth.c:1.4 ppopov@mvista.com\n";
1388,1391d1385
< /*riemer: fix for startup without cable */
< if (!link)
< dev->flags &= ~IFF_RUNNING;
<
1448d1441
<
1846,1856c1839
< /*
< // This structure is used in all SIOCxMIIxxx ioctl calls
< struct mii_ioctl_data {
< 0 u16 phy_id;
< 1 u16 reg_num;
< 2 u16 val_in;
< 3 u16 val_out;
< };*/
< u16 *data = (u16 *)&rq->ifr_data;
< struct au1000_private *aup = (struct au1000_private *) dev->priv;
< //struct mii_ioctl_data *data = (struct mii_ioctl_data *) &
rq->ifr_data;
---
> //u16 *data = (u16 *)&rq->ifr_data;
1859d1841
<
1862,1865c1844
< case SIOCGMIIPHY:
< if (!netif_running(dev))
< return -EINVAL;
< data[0] = aup->phy_addr;
---
> //data[0] = PHY_ADDRESS;
1867,1870c1846,1847
< case SIOCGMIIREG:
< data[3] = mdio_read(dev, data[0], data[1]);
< //data->val_out =
mdio_read(dev,data->phy_id,data->reg_num);
< return 0;
---
> //data[3] = mdio_read(ioaddr, data[0], data[1]);
> return 0;
1872,1876c1849,1850
< case SIOCSMIIREG:
< if (!capable(CAP_NET_ADMIN))
< return -EPERM;
< mdio_write(dev, data[0], data[1],data[2]);
< return 0;
---
> //mdio_write(ioaddr, data[0], data[1], data[2]);
> return 0;
1878c1852
< return -EOPNOTSUPP;
---
> return -EOPNOTSUPP;
|