diff options
author | Gabor Juhos <juhosg@openwrt.org> | 2010-06-28 17:23:37 +0000 |
---|---|---|
committer | Gabor Juhos <juhosg@openwrt.org> | 2010-06-28 17:23:37 +0000 |
commit | 256d0de5cc40aa524bfb15a203417dc9df8fcafb (patch) | |
tree | 7791c08945fe8ff2042783a3839bdcff7b0933f0 /target/linux/generic/files/drivers/net/phy/rtl8366_smi.h | |
parent | b07dacb2785102545069d89dd2c70c852073cbd2 (diff) | |
download | upstream-256d0de5cc40aa524bfb15a203417dc9df8fcafb.tar.gz upstream-256d0de5cc40aa524bfb15a203417dc9df8fcafb.tar.bz2 upstream-256d0de5cc40aa524bfb15a203417dc9df8fcafb.zip |
generic: rtl8366: add VLAN handling functions to rtl8366_smi_ops
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@21977 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'target/linux/generic/files/drivers/net/phy/rtl8366_smi.h')
-rw-r--r-- | target/linux/generic/files/drivers/net/phy/rtl8366_smi.h | 26 |
1 files changed, 19 insertions, 7 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 1afee9b73a..c0374bfdd5 100644 --- a/target/linux/generic/files/drivers/net/phy/rtl8366_smi.h +++ b/target/linux/generic/files/drivers/net/phy/rtl8366_smi.h @@ -14,6 +14,7 @@ #include <linux/phy.h> struct rtl8366_smi_ops; +struct rtl8366_vlan_ops; struct mii_bus; struct rtl8366_smi { @@ -27,13 +28,6 @@ struct rtl8366_smi { struct rtl8366_smi_ops *ops; }; -struct rtl8366_smi_ops { - int (*detect)(struct rtl8366_smi *smi); - - int (*mii_read)(struct mii_bus *bus, int addr, int reg); - int (*mii_write)(struct mii_bus *bus, int addr, int reg, u16 val); -}; - struct rtl8366_vlan_mc { u16 vid; u8 priority; @@ -49,6 +43,24 @@ struct rtl8366_vlan_4k { u8 fid; }; +struct rtl8366_smi_ops { + int (*detect)(struct rtl8366_smi *smi); + + int (*mii_read)(struct mii_bus *bus, int addr, int reg); + int (*mii_write)(struct mii_bus *bus, int addr, int reg, u16 val); + + int (*get_vlan_mc)(struct rtl8366_smi *smi, u32 index, + struct rtl8366_vlan_mc *vlanmc); + int (*set_vlan_mc)(struct rtl8366_smi *smi, u32 index, + const struct rtl8366_vlan_mc *vlanmc); + int (*get_vlan_4k)(struct rtl8366_smi *smi, u32 vid, + struct rtl8366_vlan_4k *vlan4k); + int (*set_vlan_4k)(struct rtl8366_smi *smi, + const struct rtl8366_vlan_4k *vlan4k); + int (*get_mc_index)(struct rtl8366_smi *smi, int port, int *val); + int (*set_mc_index)(struct rtl8366_smi *smi, int port, int index); +}; + int rtl8366_smi_init(struct rtl8366_smi *smi); void rtl8366_smi_cleanup(struct rtl8366_smi *smi); int rtl8366_smi_write_reg(struct rtl8366_smi *smi, u32 addr, u32 data); |