diff options
author | juhosg <juhosg@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2011-01-08 20:24:22 +0000 |
---|---|---|
committer | juhosg <juhosg@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2011-01-08 20:24:22 +0000 |
commit | 14f9ab7993b9e07f16cc3e10dd4f8da3a32d79f2 (patch) | |
tree | 86a7f92a6c1e83760975ec5c970d902fa4ef5155 /target | |
parent | 7a158c5f4037cf77126bf0e8d03310934da14c10 (diff) |
generic: rtl8366: add enable_port helper
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@24937 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'target')
-rw-r--r-- | target/linux/generic/files/drivers/net/phy/rtl8366_smi.h | 1 | ||||
-rw-r--r-- | target/linux/generic/files/drivers/net/phy/rtl8366rb.c | 7 | ||||
-rw-r--r-- | target/linux/generic/files/drivers/net/phy/rtl8366s.c | 7 |
3 files changed, 15 insertions, 0 deletions
diff --git a/target/linux/generic/files/drivers/net/phy/rtl8366_smi.h b/target/linux/generic/files/drivers/net/phy/rtl8366_smi.h index 12768a445..7239cf9fa 100644 --- a/target/linux/generic/files/drivers/net/phy/rtl8366_smi.h +++ b/target/linux/generic/files/drivers/net/phy/rtl8366_smi.h @@ -93,6 +93,7 @@ struct rtl8366_smi_ops { int (*is_vlan_valid)(struct rtl8366_smi *smi, unsigned vlan); int (*enable_vlan)(struct rtl8366_smi *smi, int enable); int (*enable_vlan4k)(struct rtl8366_smi *smi, int enable); + int (*enable_port)(struct rtl8366_smi *smi, int port, int enable); }; struct rtl8366_smi *rtl8366_smi_alloc(struct device *parent); diff --git a/target/linux/generic/files/drivers/net/phy/rtl8366rb.c b/target/linux/generic/files/drivers/net/phy/rtl8366rb.c index c991db8c1..492ed2535 100644 --- a/target/linux/generic/files/drivers/net/phy/rtl8366rb.c +++ b/target/linux/generic/files/drivers/net/phy/rtl8366rb.c @@ -607,6 +607,12 @@ static int rtl8366rb_enable_vlan4k(struct rtl8366_smi *smi, int enable) (enable) ? RTL8366RB_SGCR_EN_VLAN_4KTB : 0); } +static int rtl8366rb_enable_port(struct rtl8366_smi *smi, int port, int enable) +{ + return rtl8366_smi_rmwr(smi, RTL8366RB_PECR, (1 << port), + (enable) ? 0 : (1 << port)); +} + static int rtl8366rb_sw_reset_mibs(struct switch_dev *dev, const struct switch_attr *attr, struct switch_val *val) @@ -1214,6 +1220,7 @@ static struct rtl8366_smi_ops rtl8366rb_smi_ops = { .is_vlan_valid = rtl8366rb_is_vlan_valid, .enable_vlan = rtl8366rb_enable_vlan, .enable_vlan4k = rtl8366rb_enable_vlan4k, + .enable_port = rtl8366rb_enable_port, }; static int __devinit rtl8366rb_probe(struct platform_device *pdev) diff --git a/target/linux/generic/files/drivers/net/phy/rtl8366s.c b/target/linux/generic/files/drivers/net/phy/rtl8366s.c index 80a546a2d..2d472cfd3 100644 --- a/target/linux/generic/files/drivers/net/phy/rtl8366s.c +++ b/target/linux/generic/files/drivers/net/phy/rtl8366s.c @@ -605,6 +605,12 @@ static int rtl8366s_is_vlan_valid(struct rtl8366_smi *smi, unsigned vlan) return 1; } +static int rtl8366s_enable_port(struct rtl8366_smi *smi, int port, int enable) +{ + return rtl8366_smi_rmwr(smi, RTL8366S_PECR, (1 << port), + (enable) ? 0 : (1 << port)); +} + static int rtl8366s_sw_reset_mibs(struct switch_dev *dev, const struct switch_attr *attr, struct switch_val *val) @@ -1032,6 +1038,7 @@ static struct rtl8366_smi_ops rtl8366s_smi_ops = { .is_vlan_valid = rtl8366s_is_vlan_valid, .enable_vlan = rtl8366s_enable_vlan, .enable_vlan4k = rtl8366s_enable_vlan4k, + .enable_port = rtl8366s_enable_port, }; static int __devinit rtl8366s_probe(struct platform_device *pdev) |