]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
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)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 26 Sep 2018 06:39:40 +0000 (08:39 +0200)
[ Upstream commit 1e27a628e3f444f53ab8099dfb31c5156e38d112 ]

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>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c

index 0319ed9ef8b815518a490cdd098018fcda46738a..f7f08e3fa7615b748f8d2af61d21328ae66a56ca 100644 (file)
@@ -5011,6 +5011,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))