Lines Matching +full:op +full:- +full:mode

1 /*-
2 * SPDX-License-Identifier: BSD-2-Clause
78 ar40xx_hw_vtu_op(struct ar40xx_softc *sc, uint32_t op, uint32_t val) in ar40xx_hw_vtu_op() argument
83 "%s: called; op=0x%08x, val=0x%08x\n", in ar40xx_hw_vtu_op()
84 __func__, op, val); in ar40xx_hw_vtu_op()
91 if ((op & AR40XX_VTU_FUNC1_OP) == AR40XX_VTU_FUNC1_OP_LOAD) { in ar40xx_hw_vtu_op()
96 op |= AR40XX_VTU_FUNC1_BUSY; in ar40xx_hw_vtu_op()
97 AR40XX_REG_WRITE(sc, AR40XX_REG_VTU_FUNC1, op); in ar40xx_hw_vtu_op()
112 uint32_t op, val, mode; in ar40xx_hw_vtu_load_vlan() local
119 op = AR40XX_VTU_FUNC1_OP_LOAD | (vid << AR40XX_VTU_FUNC1_VID_S); in ar40xx_hw_vtu_load_vlan()
124 mode = AR40XX_VTU_FUNC0_EG_MODE_NOT; in ar40xx_hw_vtu_load_vlan()
125 else if (sc->sc_vlan.vlan == 0) in ar40xx_hw_vtu_load_vlan()
126 /* VLAN mode disabled; keep the provided VLAN tag */ in ar40xx_hw_vtu_load_vlan()
127 mode = AR40XX_VTU_FUNC0_EG_MODE_KEEP; in ar40xx_hw_vtu_load_vlan()
130 mode = AR40XX_VTU_FUNC0_EG_MODE_UNTAG; in ar40xx_hw_vtu_load_vlan()
133 mode = AR40XX_VTU_FUNC0_EG_MODE_TAG; in ar40xx_hw_vtu_load_vlan()
134 val |= mode << AR40XX_VTU_FUNC0_EG_MODE_S(i); in ar40xx_hw_vtu_load_vlan()
136 ret = ar40xx_hw_vtu_op(sc, op, val); in ar40xx_hw_vtu_load_vlan()
162 uint32_t op, reg, val; in ar40xx_hw_vtu_get_vlan() local
165 op = AR40XX_VTU_FUNC1_OP_GET_ONE; in ar40xx_hw_vtu_get_vlan()
170 /* XXX TODO: the VTU here stores egress mode - keep, tag, untagged, none */ in ar40xx_hw_vtu_get_vlan()
171 op |= (vid << AR40XX_VTU_FUNC1_VID_S); in ar40xx_hw_vtu_get_vlan()
172 r = ar40xx_hw_vtu_op(sc, op, 0); in ar40xx_hw_vtu_get_vlan()
174 device_printf(sc->sc_dev, "%s: %d: op failed\n", __func__, vid); in ar40xx_hw_vtu_get_vlan()
185 /* XXX KEEP (unmodified? For non-dot1q operation?) */ in ar40xx_hw_vtu_get_vlan()