|
@@ -32,7 +32,7 @@
|
|
|
+obj-$(CONFIG_NET_VENDOR_AR231X) += ar231x.o
|
|
+obj-$(CONFIG_NET_VENDOR_AR231X) += ar231x.o
|
|
|
--- /dev/null
|
|
--- /dev/null
|
|
|
+++ b/drivers/net/ethernet/ar231x/ar231x.c
|
|
+++ b/drivers/net/ethernet/ar231x/ar231x.c
|
|
|
-@@ -0,0 +1,1255 @@
|
|
|
|
|
|
|
+@@ -0,0 +1,1257 @@
|
|
|
+/*
|
|
+/*
|
|
|
+ * ar231x.c: Linux driver for the Atheros AR231x Ethernet device.
|
|
+ * ar231x.c: Linux driver for the Atheros AR231x Ethernet device.
|
|
|
+ *
|
|
+ *
|
|
@@ -1208,7 +1208,8 @@
|
|
|
+ volatile ETHERNET_STRUCT *ethernet = sp->phy_regs;
|
|
+ volatile ETHERNET_STRUCT *ethernet = sp->phy_regs;
|
|
|
+
|
|
+
|
|
|
+ ethernet->mii_addr = MII_ADDR(phy_addr, regnum);
|
|
+ ethernet->mii_addr = MII_ADDR(phy_addr, regnum);
|
|
|
-+ while (ethernet->mii_addr & MII_ADDR_BUSY);
|
|
|
|
|
|
|
++ while (ethernet->mii_addr & MII_ADDR_BUSY)
|
|
|
|
|
++ ;
|
|
|
+ return ethernet->mii_data >> MII_DATA_SHIFT;
|
|
+ return ethernet->mii_data >> MII_DATA_SHIFT;
|
|
|
+}
|
|
+}
|
|
|
+
|
|
+
|
|
@@ -1219,7 +1220,8 @@
|
|
|
+ struct ar231x_private *sp = netdev_priv(dev);
|
|
+ struct ar231x_private *sp = netdev_priv(dev);
|
|
|
+ volatile ETHERNET_STRUCT *ethernet = sp->phy_regs;
|
|
+ volatile ETHERNET_STRUCT *ethernet = sp->phy_regs;
|
|
|
+
|
|
+
|
|
|
-+ while (ethernet->mii_addr & MII_ADDR_BUSY);
|
|
|
|
|
|
|
++ while (ethernet->mii_addr & MII_ADDR_BUSY)
|
|
|
|
|
++ ;
|
|
|
+ ethernet->mii_data = value << MII_DATA_SHIFT;
|
|
+ ethernet->mii_data = value << MII_DATA_SHIFT;
|
|
|
+ ethernet->mii_addr = MII_ADDR(phy_addr, regnum) | MII_ADDR_WRITE;
|
|
+ ethernet->mii_addr = MII_ADDR(phy_addr, regnum) | MII_ADDR_WRITE;
|
|
|
+
|
|
+
|