From 0b58bc057607221120779fc57196288d5edd0f31 Mon Sep 17 00:00:00 2001 From: juhosg Date: Sat, 26 Jun 2010 19:16:34 +0000 Subject: generic: rtl8366: introduce rtl8366_smi_rmwr function git-svn-id: svn://svn.openwrt.org/openwrt/trunk@21919 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- .../linux/generic-2.6/files/drivers/net/phy/rtl8366_smi.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'target/linux/generic-2.6/files/drivers/net/phy/rtl8366_smi.c') 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; -- cgit v1.2.3