svn commit: r268093 - head/sys/dev/etherswitch/rtl8366

Luiz Otavio O Souza loos at FreeBSD.org
Tue Jul 1 14:33:49 UTC 2014


Author: loos
Date: Tue Jul  1 14:33:48 2014
New Revision: 268093
URL: http://svnweb.freebsd.org/changeset/base/268093

Log:
  Add the CPU port flag to the CPU port on rtl8366 (port 5).
  
  Do not allow any media change on the switch CPU port.
  
  Tested on TP-Link WR1043ND.

Modified:
  head/sys/dev/etherswitch/rtl8366/rtl8366rb.c
  head/sys/dev/etherswitch/rtl8366/rtl8366rbvar.h

Modified: head/sys/dev/etherswitch/rtl8366/rtl8366rb.c
==============================================================================
--- head/sys/dev/etherswitch/rtl8366/rtl8366rb.c	Tue Jul  1 14:12:59 2014	(r268092)
+++ head/sys/dev/etherswitch/rtl8366/rtl8366rb.c	Tue Jul  1 14:33:48 2014	(r268093)
@@ -570,6 +570,7 @@ rtl_getport(device_t dev, etherswitch_po
 			return (err);
 	} else {
 		/* fill in fixed values for CPU port */
+		p->es_flags |= ETHERSWITCH_PORT_CPU;
 		ifmr->ifm_count = 0;
 		smi_read(dev, RTL8366RB_PLSR_BASE + (RTL8366RB_NUM_PHYS)/2, &v, RTL_WAITOK);
 		v = v >> (8 * ((RTL8366RB_NUM_PHYS) % 2));
@@ -606,6 +607,8 @@ rtl_setport(device_t dev, etherswitch_po
 		RTL8366RB_PVCR_VAL(p->es_port, vlangroup), RTL_WAITOK);
 	if (err)
 		return (err);
+	if (p->es_port == RTL8366RB_CPU_PORT)
+		return (0);
 	mii = device_get_softc(sc->miibus[p->es_port]);
 	ifm = &mii->mii_media;
 	err = ifmedia_ioctl(sc->ifp[p->es_port], &p->es_ifr, ifm, SIOCSIFMEDIA);

Modified: head/sys/dev/etherswitch/rtl8366/rtl8366rbvar.h
==============================================================================
--- head/sys/dev/etherswitch/rtl8366/rtl8366rbvar.h	Tue Jul  1 14:12:59 2014	(r268092)
+++ head/sys/dev/etherswitch/rtl8366/rtl8366rbvar.h	Tue Jul  1 14:33:48 2014	(r268093)
@@ -168,9 +168,10 @@
 	(RTL8366RB_PACR | (1 << (((phy) & 0x1f) + 9)) | (((page) & 0xf) << 5) | ((reg) & 0x1f))
 
 /* general characteristics of the chip */
-#define RTL8366RB_NUM_PORTS			6
-#define RTL8366RB_NUM_PHYS			(RTL8366RB_NUM_PORTS-1)
-#define RTL8366RB_NUM_VLANS			16
-#define RTL8366RB_NUM_PHY_REG			32
+#define	RTL8366RB_CPU_PORT			5
+#define	RTL8366RB_NUM_PORTS			6
+#define	RTL8366RB_NUM_PHYS			(RTL8366RB_NUM_PORTS-1)
+#define	RTL8366RB_NUM_VLANS			16
+#define	RTL8366RB_NUM_PHY_REG			32
 
 #endif


More information about the svn-src-all mailing list