Author: adrian
Date: Sun Mar  8 23:02:15 2015
New Revision: 279797
URL: https://svnweb.freebsd.org/changeset/base/279797

Log:
  Methodise a couple more of the VLAN methods.

Modified:
  head/sys/dev/etherswitch/arswitch/arswitch.c
  head/sys/dev/etherswitch/arswitch/arswitch_vlans.c
  head/sys/dev/etherswitch/arswitch/arswitch_vlans.h
  head/sys/dev/etherswitch/arswitch/arswitchvar.h

Modified: head/sys/dev/etherswitch/arswitch/arswitch.c
==============================================================================
--- head/sys/dev/etherswitch/arswitch/arswitch.c        Sun Mar  8 22:50:45 
2015        (r279796)
+++ head/sys/dev/etherswitch/arswitch/arswitch.c        Sun Mar  8 23:02:15 
2015        (r279797)
@@ -312,6 +312,8 @@ arswitch_attach(device_t dev)
 
        sc->hal.arswitch_get_dot1q_vlan = ar8xxx_get_dot1q_vlan;
        sc->hal.arswitch_set_dot1q_vlan = ar8xxx_set_dot1q_vlan;
+       sc->hal.arswitch_flush_dot1q_vlan = ar8xxx_flush_dot1q_vlan;
+       sc->hal.arswitch_purge_dot1q_vlan = ar8xxx_purge_dot1q_vlan;
        sc->hal.arswitch_get_port_vlan = ar8xxx_get_port_vlan;
        sc->hal.arswitch_set_port_vlan = ar8xxx_set_port_vlan;
 

Modified: head/sys/dev/etherswitch/arswitch/arswitch_vlans.c
==============================================================================
--- head/sys/dev/etherswitch/arswitch/arswitch_vlans.c  Sun Mar  8 22:50:45 
2015        (r279796)
+++ head/sys/dev/etherswitch/arswitch/arswitch_vlans.c  Sun Mar  8 23:02:15 
2015        (r279797)
@@ -53,11 +53,10 @@
 /*
  * XXX TODO: teach about the AR933x SoC switch
  * XXX TODO: teach about the AR934x SoC switch
- * XXX TODO: teach about the AR8327 external switch
  */
 
 static int
-arswitch_vlan_op(struct arswitch_softc *sc, uint32_t op, uint32_t vid,
+ar8xxx_vlan_op(struct arswitch_softc *sc, uint32_t op, uint32_t vid,
        uint32_t data)
 {
        int err;
@@ -87,20 +86,20 @@ arswitch_vlan_op(struct arswitch_softc *
        return (0);
 }
 
-static int
-arswitch_flush_dot1q_vlan(struct arswitch_softc *sc)
+int
+ar8xxx_flush_dot1q_vlan(struct arswitch_softc *sc)
 {
 
        ARSWITCH_LOCK_ASSERT(sc, MA_OWNED);
-       return (arswitch_vlan_op(sc, AR8X16_VLAN_OP_FLUSH, 0, 0));
+       return (ar8xxx_vlan_op(sc, AR8X16_VLAN_OP_FLUSH, 0, 0));
 }
 
-static int
-arswitch_purge_dot1q_vlan(struct arswitch_softc *sc, int vid)
+int
+ar8xxx_purge_dot1q_vlan(struct arswitch_softc *sc, int vid)
 {
 
        ARSWITCH_LOCK_ASSERT(sc, MA_OWNED);
-       return (arswitch_vlan_op(sc, AR8X16_VLAN_OP_PURGE, vid, 0));
+       return (ar8xxx_vlan_op(sc, AR8X16_VLAN_OP_PURGE, vid, 0));
 }
 
 int
@@ -110,7 +109,7 @@ ar8xxx_get_dot1q_vlan(struct arswitch_so
        int err;
 
        ARSWITCH_LOCK_ASSERT(sc, MA_OWNED);
-       err = arswitch_vlan_op(sc, AR8X16_VLAN_OP_GET, vid, 0);
+       err = ar8xxx_vlan_op(sc, AR8X16_VLAN_OP_GET, vid, 0);
        if (err)
                return (err);
 
@@ -130,7 +129,7 @@ ar8xxx_set_dot1q_vlan(struct arswitch_so
        int err;
 
        ARSWITCH_LOCK_ASSERT(sc, MA_OWNED);
-       err = arswitch_vlan_op(sc, AR8X16_VLAN_OP_LOAD, vid, ports);
+       err = ar8xxx_vlan_op(sc, AR8X16_VLAN_OP_LOAD, vid, ports);
        if (err)
                return (err);
        return (0);
@@ -193,7 +192,7 @@ ar8xxx_reset_vlans(struct arswitch_softc
                }
        }
 
-       if (arswitch_flush_dot1q_vlan(sc)) {
+       if (sc->hal.arswitch_flush_dot1q_vlan(sc)) {
                ARSWITCH_UNLOCK(sc);
                return;
        }
@@ -323,7 +322,7 @@ ar8xxx_setvgroup(struct arswitch_softc *
            (vid & ETHERSWITCH_VID_VALID) != 0 &&
            (vid & ETHERSWITCH_VID_MASK) !=
            (vg->es_vid & ETHERSWITCH_VID_MASK)) {
-               err = arswitch_purge_dot1q_vlan(sc, vid);
+               err = sc->hal.arswitch_purge_dot1q_vlan(sc, vid);
                if (err) {
                        ARSWITCH_UNLOCK(sc);
                        return (err);

Modified: head/sys/dev/etherswitch/arswitch/arswitch_vlans.h
==============================================================================
--- head/sys/dev/etherswitch/arswitch/arswitch_vlans.h  Sun Mar  8 22:50:45 
2015        (r279796)
+++ head/sys/dev/etherswitch/arswitch/arswitch_vlans.h  Sun Mar  8 23:02:15 
2015        (r279797)
@@ -35,6 +35,8 @@ int ar8xxx_setvgroup(struct arswitch_sof
 int ar8xxx_get_pvid(struct arswitch_softc *, int, int *);
 int ar8xxx_set_pvid(struct arswitch_softc *, int, int);
 
+int ar8xxx_flush_dot1q_vlan(struct arswitch_softc *sc);
+int ar8xxx_purge_dot1q_vlan(struct arswitch_softc *sc, int vid);
 int ar8xxx_get_dot1q_vlan(struct arswitch_softc *sc, uint32_t *ports, int vid);
 int ar8xxx_set_dot1q_vlan(struct arswitch_softc *sc, uint32_t ports, int vid);
 int ar8xxx_get_port_vlan(struct arswitch_softc *sc, uint32_t *ports, int vid);

Modified: head/sys/dev/etherswitch/arswitch/arswitchvar.h
==============================================================================
--- head/sys/dev/etherswitch/arswitch/arswitchvar.h     Sun Mar  8 22:50:45 
2015        (r279796)
+++ head/sys/dev/etherswitch/arswitch/arswitchvar.h     Sun Mar  8 23:02:15 
2015        (r279797)
@@ -99,6 +99,9 @@ struct arswitch_softc {
                int (* arswitch_vlan_set_pvid) (struct arswitch_softc *, int,
                    int);
 
+               int (* arswitch_flush_dot1q_vlan) (struct arswitch_softc *sc);
+               int (* arswitch_purge_dot1q_vlan) (struct arswitch_softc *sc,
+                   int vid);
                int (* arswitch_get_dot1q_vlan) (struct arswitch_softc *,
                    uint32_t *ports, int vid);
                int (* arswitch_set_dot1q_vlan) (struct arswitch_softc *sc,
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to