From: Jo-Philipp Wich Date: Tue, 13 Feb 2018 14:58:48 +0000 (+0100) Subject: ramips: fix reporting effective VLAN ID on MT7621 switches X-Git-Tag: v18.06.0-rc1~941 X-Git-Url: http://git.openwrt.org/?p=openwrt%2Fopenwrt.git;a=commitdiff_plain;h=dc7a1e8555 ramips: fix reporting effective VLAN ID on MT7621 switches On MT7621, the REG_ESW_VLAN_VTIM reads are undefined, causing swconfig to always report `vid: 0` in swconfig show output. Since a 4K VLAN table is used on this platform, the VLAN ID always correponds to the actual VLAN table index so provide a specific MT7621 implementation of the get_vid callback which returns the table index as VLAN ID. Signed-off-by: Jo-Philipp Wich --- diff --git a/target/linux/ramips/files-4.9/drivers/net/ethernet/mtk/mt7530.c b/target/linux/ramips/files-4.9/drivers/net/ethernet/mtk/mt7530.c index 21f892655a..5216cb5c66 100644 --- a/target/linux/ramips/files-4.9/drivers/net/ethernet/mtk/mt7530.c +++ b/target/linux/ramips/files-4.9/drivers/net/ethernet/mtk/mt7530.c @@ -478,6 +478,14 @@ mt7530_set_vid(struct switch_dev *dev, const struct switch_attr *attr, return 0; } +static int +mt7621_get_vid(struct switch_dev *dev, const struct switch_attr *attr, + struct switch_val *val) +{ + val->value.i = val->port_vlan; + return 0; +} + static int mt7530_get_vid(struct switch_dev *dev, const struct switch_attr *attr, struct switch_val *val) @@ -835,6 +843,17 @@ static const struct switch_attr mt7621_port[] = { }, }; +static const struct switch_attr mt7621_vlan[] = { + { + .type = SWITCH_TYPE_INT, + .name = "vid", + .description = "VLAN ID (0-4094)", + .set = mt7530_set_vid, + .get = mt7621_get_vid, + .max = 4094, + }, +}; + static const struct switch_attr mt7530_port[] = { { .type = SWITCH_TYPE_STRING, @@ -866,8 +885,8 @@ static const struct switch_dev_ops mt7621_ops = { .n_attr = ARRAY_SIZE(mt7621_port), }, .attr_vlan = { - .attr = mt7530_vlan, - .n_attr = ARRAY_SIZE(mt7530_vlan), + .attr = mt7621_vlan, + .n_attr = ARRAY_SIZE(mt7621_vlan), }, .get_vlan_ports = mt7530_get_vlan_ports, .set_vlan_ports = mt7530_set_vlan_ports,