staging: mt7621-eth: set correct dma mask.
authorNeilBrown <neil@brown.name>
Sun, 9 Dec 2018 05:20:32 +0000 (16:20 +1100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 12 Dec 2018 10:55:39 +0000 (11:55 +0100)
Since commit f8c55dc6e828 ("MIPS: use generic dma noncoherent ops for
simple noncoherent platforms") changed MIPS dma handling, the eth
driver fails because the dma mask is set on the wrong 'struct device'.

Move the setting to the correct struct device.

Signed-off-by: NeilBrown <neil@brown.name>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/mt7621-eth/mtk_eth_soc.c

index 363d3c978e0247082ad83b2af71f9f9df018cfb5..21a76a8ccc26f398ae6622e147a033d058c85144 100644 (file)
@@ -1689,6 +1689,8 @@ static int mtk_open(struct net_device *dev)
        struct mtk_mac *mac = netdev_priv(dev);
        struct mtk_eth *eth = mac->hw;
 
+       dma_coerce_mask_and_coherent(&dev->dev, DMA_BIT_MASK(32));
+
        if (!atomic_read(&eth->dma_refcnt)) {
                int err = mtk_start_dma(eth);
 
@@ -2062,9 +2064,6 @@ static int mtk_probe(struct platform_device *pdev)
        struct clk *sysclk;
        int err;
 
-       pdev->dev.coherent_dma_mask = DMA_BIT_MASK(32);
-       pdev->dev.dma_mask = &pdev->dev.coherent_dma_mask;
-
        device_reset(&pdev->dev);
 
        match = of_match_device(of_mtk_match, &pdev->dev);