net: systemport: Set correct DMA mask
authorFlorian Fainelli <f.fainelli@gmail.com>
Wed, 18 Dec 2019 00:29:50 +0000 (16:29 -0800)
committerDavid S. Miller <davem@davemloft.net>
Fri, 20 Dec 2019 02:09:59 +0000 (18:09 -0800)
SYSTEMPORT is capabable of doing up to 40-bit of physical addresses, set
an appropriate DMA mask to permit that.

Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/broadcom/bcmsysport.c

index 8e31527..1907e47 100644 (file)
@@ -2427,6 +2427,14 @@ static int bcm_sysport_probe(struct platform_device *pdev)
        if (!of_id || !of_id->data)
                return -EINVAL;
 
+       ret = dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(40));
+       if (ret)
+               ret = dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(32));
+       if (ret) {
+               dev_err(&pdev->dev, "unable to set DMA mask: %d\n", ret);
+               return ret;
+       }
+
        /* Fairly quickly we need to know the type of adapter we have */
        params = of_id->data;