OSDN Git Service

net: mvpp2: make sure we use single queue mode on PPv2.1
authorMaxime Chevallier <maxime.chevallier@bootlin.com>
Thu, 12 Jul 2018 11:54:12 +0000 (13:54 +0200)
committerDavid S. Miller <davem@davemloft.net>
Fri, 13 Jul 2018 00:30:48 +0000 (17:30 -0700)
The PPv2 driver defines 2 "queue_modes" :
 - QDIST_SINGLE_MODE, where each port share one rx queue vector
   between all CPUs
 - QDIST_MULTI_MODE, where each port has one rx queue vector per CPU.

Multi queue mode isn't available on PPv2.1, make sure we fallback to
single mode when running on this revision.

Signed-off-by: Maxime Chevallier <maxime.chevallier@bootlin.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c

index 88f3da1..0d2dde3 100644 (file)
@@ -5014,6 +5014,12 @@ static int mvpp2_probe(struct platform_device *pdev)
                        (unsigned long)of_device_get_match_data(&pdev->dev);
        }
 
+       /* multi queue mode isn't supported on PPV2.1, fallback to single
+        * mode
+        */
+       if (priv->hw_version == MVPP21)
+               queue_mode = MVPP2_QDIST_SINGLE_MODE;
+
        res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
        base = devm_ioremap_resource(&pdev->dev, res);
        if (IS_ERR(base))