Date: Sat, 6 May 2017 05:50:08 +0000 (UTC) From: Adrian Chadd <adrian@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r317864 - head/sys/dev/etherswitch/infineon Message-ID: <201705060550.v465o8rn072682@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: adrian Date: Sat May 6 05:50:07 2017 New Revision: 317864 URL: https://svnweb.freebsd.org/changeset/base/317864 Log: [infineon] [etherswitch] no hardcode tagging port setting at amd6996fc Tagging port can set by etherswitchcfg command. Tested: * on Netgear_WGR614Cv7 Submitted by: Hiroki Mori <yamori813@yahoo.co.jp> Reviewed by: mizhka Modified: head/sys/dev/etherswitch/infineon/adm6996fc.c Modified: head/sys/dev/etherswitch/infineon/adm6996fc.c ============================================================================== --- head/sys/dev/etherswitch/infineon/adm6996fc.c Sat May 6 05:37:36 2017 (r317863) +++ head/sys/dev/etherswitch/infineon/adm6996fc.c Sat May 6 05:50:07 2017 (r317864) @@ -35,6 +35,7 @@ * This code suppose ADM6996FC SDC/SDIO connect to SOC network interface * MDC/MDIO. * This code development on Netgear WGR614Cv7. + * etherswitchcfg command port option support addtag. */ #include <sys/param.h> @@ -462,8 +463,6 @@ adm6996fc_getport(device_t dev, etherswi p->es_pvid = ADM6996FC_PVIDBYDATA(data1, data2); if (((data1 >> ADM6996FC_OPTE_SHIFT) & 0x01) == 1) p->es_flags |= ETHERSWITCH_PORT_ADDTAG; - else - p->es_flags |= ETHERSWITCH_PORT_STRIPTAG; } else { p->es_pvid = 0; } @@ -517,6 +516,10 @@ adm6996fc_setport(device_t dev, etherswi data = ADM6996FC_READREG(parent, bcaddr[p->es_port]); data &= ~(0xf << 10); data |= (p->es_pvid & 0xf) << ADM6996FC_PVID_SHIFT; + if (p->es_flags & ETHERSWITCH_PORT_ADDTAG) + data |= 1 << ADM6996FC_OPTE_SHIFT; + else + data &= ~(1 << ADM6996FC_OPTE_SHIFT); ADM6996FC_WRITEREG(parent, bcaddr[p->es_port], data); data = ADM6996FC_READREG(parent, vidaddr[p->es_port]); /* only port 4 is hi bit */ @@ -670,9 +673,6 @@ adm6996fc_setconf(device_t dev, etherswi /* Private VID set 1 */ data &= ~(0xf << 10); data |= (1 << 10); - /* Output Packet Tagging Enable */ - if (i == 5) - data |= (1 << 4); ADM6996FC_WRITEREG(parent, bcaddr[i], data); } for (i = 2;i <= 15; ++i) {
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201705060550.v465o8rn072682>