mirror of https://github.com/hak5/openwrt-owl.git
generic: rtl8366_smi: init VLANs only in first switch initialization
SVN-Revision: 24936owl
parent
d88fc86fca
commit
5120660512
|
@ -507,25 +507,38 @@ int rtl8366_reset_vlan(struct rtl8366_smi *smi)
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (i = 0; i < smi->num_ports; i++) {
|
return 0;
|
||||||
if (i == smi->cpu_port)
|
}
|
||||||
continue;
|
EXPORT_SYMBOL_GPL(rtl8366_reset_vlan);
|
||||||
|
|
||||||
err = rtl8366_set_vlan(smi, (i + 1),
|
static int rtl8366_init_vlan(struct rtl8366_smi *smi)
|
||||||
(1 << i) | (1 << smi->cpu_port),
|
{
|
||||||
(1 << i) | (1 << smi->cpu_port),
|
int port;
|
||||||
0);
|
int err;
|
||||||
|
|
||||||
|
err = rtl8366_reset_vlan(smi);
|
||||||
|
if (err)
|
||||||
|
return err;
|
||||||
|
|
||||||
|
for (port = 0; port < smi->num_ports; port++) {
|
||||||
|
u32 mask;
|
||||||
|
|
||||||
|
if (port == smi->cpu_port)
|
||||||
|
mask = (1 << smi->num_ports) - 1;
|
||||||
|
else
|
||||||
|
mask = (1 << port) | (1 << smi->cpu_port);
|
||||||
|
|
||||||
|
err = rtl8366_set_vlan(smi, (port + 1), mask, mask, 0);
|
||||||
if (err)
|
if (err)
|
||||||
return err;
|
return err;
|
||||||
|
|
||||||
err = rtl8366_set_pvid(smi, i, (i + 1));
|
err = rtl8366_set_pvid(smi, port, (port + 1));
|
||||||
if (err)
|
if (err)
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return rtl8366_enable_vlan(smi, 1);
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL_GPL(rtl8366_reset_vlan);
|
|
||||||
|
|
||||||
#ifdef CONFIG_RTL8366S_PHY_DEBUG_FS
|
#ifdef CONFIG_RTL8366S_PHY_DEBUG_FS
|
||||||
int rtl8366_debugfs_open(struct inode *inode, struct file *file)
|
int rtl8366_debugfs_open(struct inode *inode, struct file *file)
|
||||||
|
@ -1169,6 +1182,13 @@ int rtl8366_smi_init(struct rtl8366_smi *smi)
|
||||||
goto err_free_sck;
|
goto err_free_sck;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
err = rtl8366_init_vlan(smi);
|
||||||
|
if (err) {
|
||||||
|
dev_err(smi->parent, "VLAN initialization failed, err=%d\n",
|
||||||
|
err);
|
||||||
|
goto err_disable_hw;
|
||||||
|
}
|
||||||
|
|
||||||
err = rtl8366_smi_mii_init(smi);
|
err = rtl8366_smi_mii_init(smi);
|
||||||
if (err)
|
if (err)
|
||||||
goto err_free_sck;
|
goto err_free_sck;
|
||||||
|
|
Loading…
Reference in New Issue