projects
/
openwrt
/
staging
/
thess.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
f5eeb3f
)
rtl8306: do not overwrite registers in the phy fixup, it could mess up other switches...
author
Felix Fietkau
<nbd@openwrt.org>
Sat, 2 Apr 2011 16:35:22 +0000
(16:35 +0000)
committer
Felix Fietkau
<nbd@openwrt.org>
Sat, 2 Apr 2011 16:35:22 +0000
(16:35 +0000)
SVN-Revision: 26410
target/linux/generic/files/drivers/net/phy/rtl8306.c
patch
|
blob
|
history
diff --git
a/target/linux/generic/files/drivers/net/phy/rtl8306.c
b/target/linux/generic/files/drivers/net/phy/rtl8306.c
index 4fa910a6f27662c42dede9528f7ba052a9320182..78ded0ace4859c3daa94f08b42d32d2e33e886d4 100644
(file)
--- a/
target/linux/generic/files/drivers/net/phy/rtl8306.c
+++ b/
target/linux/generic/files/drivers/net/phy/rtl8306.c
@@
-56,6
+56,7
@@
struct rtl_priv {
int do_cpu;
struct mii_bus *bus;
char hwname[sizeof(RTL_NAME_UNKNOWN)];
+ bool fixup;
};
struct rtl_phyregs {
@@
-256,6
+257,9
@@
rtl_set_page(struct rtl_priv *priv, unsigned int page)
struct mii_bus *bus = priv->bus;
u16 pgsel;
+ if (priv->fixup)
+ return;
+
if (priv->page == page)
return;
@@
-923,6
+927,8
@@
rtl8306_fixup(struct phy_device *pdev)
if (pdev->addr != 0 && pdev->addr != 4)
return 0;
+ memset(&priv, 0, sizeof(priv));
+ priv.fixup = true;
priv.page = -1;
priv.bus = pdev->bus;
chipid = rtl_get(&priv.dev, RTL_REG_CHIPID);