]> git.proxmox.com Git - mirror_ubuntu-artful-kernel.git/commitdiff
Set the dma mask for platform device which is not created from DT.
authorYin, Fengwei <fengwei.yin@linaro.org>
Thu, 23 Apr 2015 05:15:59 +0000 (13:15 +0800)
committerKleber Sacilotto de Souza <kleber.souza@canonical.com>
Fri, 13 Apr 2018 14:00:30 +0000 (16:00 +0200)
Signed-off-by: Yin, Fengwei <fengwei.yin@linaro.org>
drivers/net/wireless/ath/wcn36xx/main.c

index a27df39ad67d8dc1eb55c3f37f534901aaef8d29..ee8c2f857be9db99a3700a20a2ca03ad33705e98 100644 (file)
@@ -1043,10 +1043,17 @@ static int wcn36xx_probe(struct platform_device *pdev)
        wcn = hw->priv;
        wcn->hw = hw;
        wcn->dev = &pdev->dev;
+       wcn->dev->dma_mask = kzalloc(sizeof(*wcn->dev->dma_mask), GFP_KERNEL);
+       if (!wcn->dev->dma_mask) {
+               ret = -ENOMEM;
+               goto dma_mask_err;
+       }
+       dma_set_mask_and_coherent(wcn->dev, DMA_BIT_MASK(32));
        wcn->ctrl_ops = pdev->dev.platform_data;
        if (!wcn->ctrl_ops->get_chip_type) {
                dev_err(&pdev->dev, "Missing ops->get_chip_type\n");
-               return -EINVAL;
+               ret = -EINVAL;
+               goto out_wq;
        }
        wcn->chip_version = wcn->ctrl_ops->get_chip_type();
 
@@ -1071,6 +1078,8 @@ static int wcn36xx_probe(struct platform_device *pdev)
 out_unmap:
        iounmap(wcn->mmio);
 out_wq:
+       kfree(wcn->dev->dma_mask);
+dma_mask_err:
        ieee80211_free_hw(hw);
 out_err:
        return ret;