fixed au1000 eth0 ioctl patch
SVN-Revision: 8147
This commit is contained in:
parent
a306797ed9
commit
848075e475
1 changed files with 9 additions and 20 deletions
|
@ -1,26 +1,15 @@
|
||||||
diff --git a/drivers/net/au1000_eth.c b/drivers/net/au1000_eth.c
|
--- linux-2.6.22.1.orig/drivers/net/au1000_eth.c 2007-07-24 18:43:25.527583520 +0200
|
||||||
index c27cfce..99a1c61 100644
|
+++ linux-2.6.22.1/drivers/net/au1000_eth.c 2007-07-24 23:07:00.388821102 +0200
|
||||||
--- a/drivers/net/au1000_eth.c
|
@@ -1320,9 +1320,12 @@
|
||||||
+++ b/drivers/net/au1000_eth.c
|
}
|
||||||
@@ -1316,12 +1316,20 @@ static void set_rx_mode(struct net_device *dev)
|
}
|
||||||
|
|
||||||
|
+#define AU1000_KNOWN_PHY_IOCTLS (SIOCGMIIPHY & 0xfff0)
|
||||||
static int au1000_ioctl(struct net_device *dev, struct ifreq *rq, int cmd)
|
static int au1000_ioctl(struct net_device *dev, struct ifreq *rq, int cmd)
|
||||||
{
|
{
|
||||||
struct au1000_private *aup = (struct au1000_private *)dev->priv;
|
struct au1000_private *aup = (struct au1000_private *)dev->priv;
|
||||||
+ struct mii_ioctl_data *data = if_mii(rq);
|
+ if((cmd & AU1000_KNOWN_PHY_IOCTLS) != AU1000_KNOWN_PHY_IOCTLS)
|
||||||
+ int rc = -EOPNOTSUPP;
|
+ return -EINVAL;
|
||||||
|
|
||||||
if (!netif_running(dev)) return -EINVAL;
|
if (!netif_running(dev)) return -EINVAL;
|
||||||
|
|
||||||
if (!aup->phy_dev) return -EINVAL; // PHY not controllable
|
|
||||||
|
|
||||||
- return phy_mii_ioctl(aup->phy_dev, if_mii(rq), cmd);
|
|
||||||
+ switch (cmd) {
|
|
||||||
+ default:
|
|
||||||
+ rc = phy_mii_ioctl(aup->phy_dev, data, cmd);
|
|
||||||
+ break;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ return rc;
|
|
||||||
}
|
|
||||||
|
|
||||||
static struct net_device_stats *au1000_get_stats(struct net_device *dev)
|
|
||||||
|
|
Loading…
Reference in a new issue