generic: rtl8366: add enable_vlan{,4k} to smi_ops
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@22702 3c298f89-4303-0410-b956-a3cf2f4a3e73master
parent
8c2be2e3b5
commit
9b84518158
|
@ -87,6 +87,8 @@ struct rtl8366_smi_ops {
|
||||||
int (*get_mib_counter)(struct rtl8366_smi *smi, int counter,
|
int (*get_mib_counter)(struct rtl8366_smi *smi, int counter,
|
||||||
int port, unsigned long long *val);
|
int port, unsigned long long *val);
|
||||||
int (*is_vlan_valid)(struct rtl8366_smi *smi, unsigned vlan);
|
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);
|
||||||
};
|
};
|
||||||
|
|
||||||
struct rtl8366_smi *rtl8366_smi_alloc(struct device *parent);
|
struct rtl8366_smi *rtl8366_smi_alloc(struct device *parent);
|
||||||
|
|
|
@ -560,13 +560,13 @@ static int rtl8366rb_is_vlan_valid(struct rtl8366_smi *smi, unsigned vlan)
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int rtl8366rb_vlan_set_vlan(struct rtl8366_smi *smi, int enable)
|
static int rtl8366rb_enable_vlan(struct rtl8366_smi *smi, int enable)
|
||||||
{
|
{
|
||||||
return rtl8366_smi_rmwr(smi, RTL8366RB_SGCR, RTL8366RB_SGCR_EN_VLAN,
|
return rtl8366_smi_rmwr(smi, RTL8366RB_SGCR, RTL8366RB_SGCR_EN_VLAN,
|
||||||
(enable) ? RTL8366RB_SGCR_EN_VLAN : 0);
|
(enable) ? RTL8366RB_SGCR_EN_VLAN : 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int rtl8366rb_vlan_set_4ktable(struct rtl8366_smi *smi, int enable)
|
static int rtl8366rb_enable_vlan4k(struct rtl8366_smi *smi, int enable)
|
||||||
{
|
{
|
||||||
return rtl8366_smi_rmwr(smi, RTL8366RB_SGCR,
|
return rtl8366_smi_rmwr(smi, RTL8366RB_SGCR,
|
||||||
RTL8366RB_SGCR_EN_VLAN_4KTB,
|
RTL8366RB_SGCR_EN_VLAN_4KTB,
|
||||||
|
@ -644,9 +644,9 @@ static int rtl8366rb_sw_set_vlan_enable(struct switch_dev *dev,
|
||||||
struct rtl8366_smi *smi = sw_to_rtl8366_smi(dev);
|
struct rtl8366_smi *smi = sw_to_rtl8366_smi(dev);
|
||||||
|
|
||||||
if (attr->ofs == 1)
|
if (attr->ofs == 1)
|
||||||
return rtl8366rb_vlan_set_vlan(smi, val->value.i);
|
return rtl8366rb_enable_vlan(smi, val->value.i);
|
||||||
else
|
else
|
||||||
return rtl8366rb_vlan_set_4ktable(smi, val->value.i);
|
return rtl8366rb_enable_vlan4k(smi, val->value.i);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int rtl8366rb_sw_get_learning_enable(struct switch_dev *dev,
|
static int rtl8366rb_sw_get_learning_enable(struct switch_dev *dev,
|
||||||
|
@ -1028,6 +1028,8 @@ static struct rtl8366_smi_ops rtl8366rb_smi_ops = {
|
||||||
.set_mc_index = rtl8366rb_set_mc_index,
|
.set_mc_index = rtl8366rb_set_mc_index,
|
||||||
.get_mib_counter = rtl8366rb_get_mib_counter,
|
.get_mib_counter = rtl8366rb_get_mib_counter,
|
||||||
.is_vlan_valid = rtl8366rb_is_vlan_valid,
|
.is_vlan_valid = rtl8366rb_is_vlan_valid,
|
||||||
|
.enable_vlan = rtl8366rb_enable_vlan,
|
||||||
|
.enable_vlan4k = rtl8366rb_enable_vlan4k,
|
||||||
};
|
};
|
||||||
|
|
||||||
static int __init rtl8366rb_probe(struct platform_device *pdev)
|
static int __init rtl8366rb_probe(struct platform_device *pdev)
|
||||||
|
|
|
@ -579,13 +579,13 @@ static int rtl8366s_set_mc_index(struct rtl8366_smi *smi, int port, int index)
|
||||||
RTL8366S_PORT_VLAN_CTRL_SHIFT(port));
|
RTL8366S_PORT_VLAN_CTRL_SHIFT(port));
|
||||||
}
|
}
|
||||||
|
|
||||||
static int rtl8366s_vlan_set_vlan(struct rtl8366_smi *smi, int enable)
|
static int rtl8366s_enable_vlan(struct rtl8366_smi *smi, int enable)
|
||||||
{
|
{
|
||||||
return rtl8366_smi_rmwr(smi, RTL8366S_SGCR, RTL8366S_SGCR_EN_VLAN,
|
return rtl8366_smi_rmwr(smi, RTL8366S_SGCR, RTL8366S_SGCR_EN_VLAN,
|
||||||
(enable) ? RTL8366S_SGCR_EN_VLAN : 0);
|
(enable) ? RTL8366S_SGCR_EN_VLAN : 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int rtl8366s_vlan_set_4ktable(struct rtl8366_smi *smi, int enable)
|
static int rtl8366s_enable_vlan4k(struct rtl8366_smi *smi, int enable)
|
||||||
{
|
{
|
||||||
return rtl8366_smi_rmwr(smi, RTL8366S_VLAN_TB_CTRL_REG,
|
return rtl8366_smi_rmwr(smi, RTL8366S_VLAN_TB_CTRL_REG,
|
||||||
1, (enable) ? 1 : 0);
|
1, (enable) ? 1 : 0);
|
||||||
|
@ -669,9 +669,9 @@ static int rtl8366s_sw_set_vlan_enable(struct switch_dev *dev,
|
||||||
struct rtl8366_smi *smi = sw_to_rtl8366_smi(dev);
|
struct rtl8366_smi *smi = sw_to_rtl8366_smi(dev);
|
||||||
|
|
||||||
if (attr->ofs == 1)
|
if (attr->ofs == 1)
|
||||||
return rtl8366s_vlan_set_vlan(smi, val->value.i);
|
return rtl8366s_enable_vlan(smi, val->value.i);
|
||||||
else
|
else
|
||||||
return rtl8366s_vlan_set_4ktable(smi, val->value.i);
|
return rtl8366s_enable_vlan4k(smi, val->value.i);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int rtl8366s_sw_get_learning_enable(struct switch_dev *dev,
|
static int rtl8366s_sw_get_learning_enable(struct switch_dev *dev,
|
||||||
|
@ -1055,6 +1055,8 @@ static struct rtl8366_smi_ops rtl8366s_smi_ops = {
|
||||||
.set_mc_index = rtl8366s_set_mc_index,
|
.set_mc_index = rtl8366s_set_mc_index,
|
||||||
.get_mib_counter = rtl8366_get_mib_counter,
|
.get_mib_counter = rtl8366_get_mib_counter,
|
||||||
.is_vlan_valid = rtl8366s_is_vlan_valid,
|
.is_vlan_valid = rtl8366s_is_vlan_valid,
|
||||||
|
.enable_vlan = rtl8366s_enable_vlan,
|
||||||
|
.enable_vlan4k = rtl8366s_enable_vlan4k,
|
||||||
};
|
};
|
||||||
|
|
||||||
static int __init rtl8366s_probe(struct platform_device *pdev)
|
static int __init rtl8366s_probe(struct platform_device *pdev)
|
||||||
|
|
Loading…
Reference in New Issue