These IOCTLs handled in the core now.
Signed-off-by: Sergey Ryazanov <ryazanov.s.a@gmail.com>
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@42492
3c298f89-4303-0410-b956-
a3cf2f4a3e73
+obj-$(CONFIG_NET_AR231X) += ar231x.o
--- /dev/null
+++ b/drivers/net/ethernet/atheros/ar231x/ar231x.c
+obj-$(CONFIG_NET_AR231X) += ar231x.o
--- /dev/null
+++ b/drivers/net/ethernet/atheros/ar231x/ar231x.c
+/*
+ * ar231x.c: Linux driver for the Atheros AR231x Ethernet device.
+ *
+/*
+ * ar231x.c: Linux driver for the Atheros AR231x Ethernet device.
+ *
+static int ar231x_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
+{
+ struct ar231x_private *sp = netdev_priv(dev);
+static int ar231x_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
+{
+ struct ar231x_private *sp = netdev_priv(dev);
-+ case SIOCETHTOOL:
-+ spin_lock_irq(&sp->lock);
-+ ret = phy_ethtool_ioctl(sp->phy_dev, (void *)ifr->ifr_data);
-+ spin_unlock_irq(&sp->lock);
-+ return ret;
-+
-+ case SIOCSIFHWADDR:
-+ if (copy_from_user
-+ (dev->dev_addr, ifr->ifr_data, sizeof(dev->dev_addr)))
-+ return -EFAULT;
-+ return 0;
-+
-+ case SIOCGIFHWADDR:
-+ if (copy_to_user
-+ (ifr->ifr_data, dev->dev_addr, sizeof(dev->dev_addr)))
-+ return -EFAULT;
-+ return 0;
-+
+ case SIOCGMIIPHY:
+ case SIOCGMIIREG:
+ case SIOCSMIIREG:
+ case SIOCGMIIPHY:
+ case SIOCGMIIREG:
+ case SIOCSMIIREG:
-@@ -1104,6 +1151,9 @@ static int ar231x_ioctl(struct net_devic
+@@ -1103,6 +1150,9 @@ static int ar231x_ioctl(struct net_devic
+ {
struct ar231x_private *sp = netdev_priv(dev);
struct ar231x_private *sp = netdev_priv(dev);
+ if (!sp->phy_dev)
+ return -ENODEV;
+
switch (cmd) {
+ if (!sp->phy_dev)
+ return -ENODEV;
+
switch (cmd) {
- case SIOCETHTOOL:
- spin_lock_irq(&sp->lock);
+ case SIOCGMIIPHY:
+ case SIOCGMIIREG: