]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
net: mscc: ocelot: export NUM_TC constant from felix to common switch lib
authorVladimir Oltean <vladimir.oltean@nxp.com>
Fri, 15 Jan 2021 02:11:16 +0000 (04:11 +0200)
committerJakub Kicinski <kuba@kernel.org>
Sat, 16 Jan 2021 04:02:34 +0000 (20:02 -0800)
We should be moving anything that isn't DSA-specific or SoC-specific out
of the felix DSA driver, and into the common mscc_ocelot switch library.

The number of traffic classes is one of the aspects that is common
between all ocelot switches, so it belongs in the library.

This patch also makes seville use 8 TX queues, and therefore enables
prioritization via the QOS_CLASS field in the NPI injection header.

Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/dsa/ocelot/felix.c
drivers/net/dsa/ocelot/felix.h
drivers/net/dsa/ocelot/felix_vsc9959.c
drivers/net/dsa/ocelot/seville_vsc9953.c
include/soc/mscc/ocelot.h

index 178be0d736bdfab39648a64b9825c787e7469673..0c6a7de033318cb58d39364251705e153ee44a4e 100644 (file)
@@ -299,7 +299,7 @@ static void felix_port_qos_map_init(struct ocelot *ocelot, int port)
                       ANA_PORT_QOS_CFG,
                       port);
 
-       for (i = 0; i < FELIX_NUM_TC * 2; i++) {
+       for (i = 0; i < OCELOT_NUM_TC * 2; i++) {
                ocelot_rmw_ix(ocelot,
                              (ANA_PORT_PCP_DEI_MAP_DP_PCP_DEI_VAL & i) |
                              ANA_PORT_PCP_DEI_MAP_QOS_PCP_DEI_VAL(i),
index 5434fe278d2c366fe6fb5b7433f17c071e1ff0ef..994835cb9307f6036da28f4b9b4ba753d164af97 100644 (file)
@@ -5,7 +5,6 @@
 #define _MSCC_FELIX_H
 
 #define ocelot_to_felix(o)             container_of((o), struct felix, ocelot)
-#define FELIX_NUM_TC                   8
 
 /* Platform-specific information */
 struct felix_info {
index 21dacb85976e61940b94bc055af523a7b5a1c0e1..f9711e69b8d54aa7d4892b6d7f0755f99934e843 100644 (file)
@@ -1376,7 +1376,7 @@ static const struct felix_info felix_info_vsc9959 = {
        .vcap                   = vsc9959_vcap_props,
        .num_mact_rows          = 2048,
        .num_ports              = 6,
-       .num_tx_queues          = FELIX_NUM_TC,
+       .num_tx_queues          = OCELOT_NUM_TC,
        .switch_pci_bar         = 4,
        .imdio_pci_bar          = 0,
        .ptp_caps               = &vsc9959_ptp_caps,
@@ -1435,7 +1435,7 @@ static int felix_pci_probe(struct pci_dev *pdev,
        pci_set_drvdata(pdev, felix);
        ocelot = &felix->ocelot;
        ocelot->dev = &pdev->dev;
-       ocelot->num_flooding_pgids = FELIX_NUM_TC;
+       ocelot->num_flooding_pgids = OCELOT_NUM_TC;
        felix->info = &felix_info_vsc9959;
        felix->switch_base = pci_resource_start(pdev,
                                                felix->info->switch_pci_bar);
index 8dad0c894eca13f211c5978d810e3b13196ae7c8..5e9bfdea50be5d3d4c293779a5cb3e6593ea2b99 100644 (file)
@@ -1201,6 +1201,7 @@ static const struct felix_info seville_info_vsc9953 = {
        .vcap                   = vsc9953_vcap_props,
        .num_mact_rows          = 2048,
        .num_ports              = 10,
+       .num_tx_queues          = OCELOT_NUM_TC,
        .mdio_bus_alloc         = vsc9953_mdio_bus_alloc,
        .mdio_bus_free          = vsc9953_mdio_bus_free,
        .phylink_validate       = vsc9953_phylink_validate,
index e548b0f51d0c6c4ffa5321c64cfc1f35b5a7fb7e..1dc0c6d0671a4e0536f32fcd640be998bc4c4ab6 100644 (file)
@@ -98,6 +98,7 @@
 #define IFH_REW_OP_TWO_STEP_PTP                0x3
 #define IFH_REW_OP_ORIGIN_PTP          0x5
 
+#define OCELOT_NUM_TC                  8
 #define OCELOT_TAG_LEN                 16
 #define OCELOT_SHORT_PREFIX_LEN                4
 #define OCELOT_LONG_PREFIX_LEN         16