projects
/
15.05
/
openwrt.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
d31f5b4
)
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)
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@26410
3c298f89
-4303-0410-b956-
a3cf2f4a3e73
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
4fa910a
..
78ded0a
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);