summaryrefslogtreecommitdiffstats
path: root/target/linux/generic-2.6/files/drivers/net/phy/rtl8366_smi.c
diff options
context:
space:
mode:
authorjuhosg <juhosg@3c298f89-4303-0410-b956-a3cf2f4a3e73>2010-06-26 19:16:34 +0000
committerjuhosg <juhosg@3c298f89-4303-0410-b956-a3cf2f4a3e73>2010-06-26 19:16:34 +0000
commit0b58bc057607221120779fc57196288d5edd0f31 (patch)
tree113367ce84c1d573f01f2be7fddea94988c07fe7 /target/linux/generic-2.6/files/drivers/net/phy/rtl8366_smi.c
parentf816719c99d7d833944acfd073d8001cd6405175 (diff)
generic: rtl8366: introduce rtl8366_smi_rmwr function
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@21919 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'target/linux/generic-2.6/files/drivers/net/phy/rtl8366_smi.c')
-rw-r--r--target/linux/generic-2.6/files/drivers/net/phy/rtl8366_smi.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/target/linux/generic-2.6/files/drivers/net/phy/rtl8366_smi.c b/target/linux/generic-2.6/files/drivers/net/phy/rtl8366_smi.c
index 625a01749..bb2e3ba68 100644
--- a/target/linux/generic-2.6/files/drivers/net/phy/rtl8366_smi.c
+++ b/target/linux/generic-2.6/files/drivers/net/phy/rtl8366_smi.c
@@ -266,6 +266,21 @@ int rtl8366_smi_write_reg(struct rtl8366_smi *smi, u32 addr, u32 data)
}
EXPORT_SYMBOL_GPL(rtl8366_smi_write_reg);
+int rtl8366_smi_rmwr(struct rtl8366_smi *smi, u32 addr, u32 mask, u32 data)
+{
+ u32 t;
+ int err;
+
+ err = rtl8366_smi_read_reg(smi, addr, &t);
+ if (err)
+ return err;
+
+ err = rtl8366_smi_write_reg(smi, addr, (t & ~mask) | data);
+ return err;
+
+}
+EXPORT_SYMBOL_GPL(rtl8366_smi_rmwr);
+
static int rtl8366_smi_mii_init(struct rtl8366_smi *smi)
{
int ret;