projects
/
openwrt
/
openwrt.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
0fdac11
)
generic: ar8216: start aneg on each PHY of the AR8327
author
Gabor Juhos
<juhosg@openwrt.org>
Thu, 5 Jul 2012 08:26:39 +0000
(08:26 +0000)
committer
Gabor Juhos
<juhosg@openwrt.org>
Thu, 5 Jul 2012 08:26:39 +0000
(08:26 +0000)
SVN-Revision: 32604
target/linux/generic/files/drivers/net/phy/ar8216.c
patch
|
blob
|
history
diff --git
a/target/linux/generic/files/drivers/net/phy/ar8216.c
b/target/linux/generic/files/drivers/net/phy/ar8216.c
index 698d92dd7d334c77359f21d42bc85867edaf03c4..4df2dbbdb59f67f4904d186626205978d6ce58f5 100644
(file)
--- a/
target/linux/generic/files/drivers/net/phy/ar8216.c
+++ b/
target/linux/generic/files/drivers/net/phy/ar8216.c
@@
-734,6
+734,7
@@
ar8327_hw_init(struct ar8216_priv *priv)
{
struct ar8327_platform_data *pdata;
struct ar8327_led_cfg *led_cfg;
{
struct ar8327_platform_data *pdata;
struct ar8327_led_cfg *led_cfg;
+ struct mii_bus *bus;
u32 pos, new_pos;
u32 t;
int i;
u32 pos, new_pos;
u32 t;
int i;
@@
-770,9
+771,20
@@
ar8327_hw_init(struct ar8216_priv *priv)
priv->write(priv, AR8327_REG_POWER_ON_STRIP, new_pos);
}
priv->write(priv, AR8327_REG_POWER_ON_STRIP, new_pos);
}
- for (i = 0; i < AR8327_NUM_PHYS; i++)
+ bus = priv->phy->bus;
+ for (i = 0; i < AR8327_NUM_PHYS; i++) {
ar8327_phy_fixup(priv, i);
ar8327_phy_fixup(priv, i);
+ /* start aneg on the PHY */
+ mdiobus_write(bus, i, MII_ADVERTISE, ADVERTISE_ALL |
+ ADVERTISE_PAUSE_CAP |
+ ADVERTISE_PAUSE_ASYM);
+ mdiobus_write(bus, i, MII_CTRL1000, ADVERTISE_1000FULL);
+ mdiobus_write(bus, i, MII_BMCR, BMCR_RESET | BMCR_ANENABLE);
+ }
+
+ msleep(1000);
+
return 0;
}
return 0;
}