ksz8795 has never actually enabled PVID tag insertion, and it also
programmed the PVID incorrectly. To fix this:
* Allow tag insertion to be controlled per ingress port. On most
chips, set bit 2 in Global Control 19. On KSZ88x3 this control
flag doesn't exist.
* When adding a PVID:
- Set the appropriate register bits to enable tag insertion on
egress at every other port if this was the packet's ingress port.
- Mask *out* the VID from the default tag, before or-ing in the new
PVID.
* When removing a PVID:
- Clear the same control bits to disable tag insertion.
- Don't update the default tag. This wasn't doing anything useful.
Fixes:
|
||
|---|---|---|
| .. | ||
| Kconfig | ||
| ksz8.h | ||
| ksz8795_reg.h | ||
| ksz8795_spi.c | ||
| ksz8795.c | ||
| ksz8863_smi.c | ||
| ksz9477_i2c.c | ||
| ksz9477_reg.h | ||
| ksz9477_spi.c | ||
| ksz9477.c | ||
| ksz_common.c | ||
| ksz_common.h | ||
| Makefile | ||