Merge tag 'sound-fix-4.1-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai...
[firefly-linux-kernel-4.4.55.git] / drivers / misc / sram.c
index 21181fa243dfd8705f10e113f4293c990b231c37..eeaaf5fca105d9aeed160fbd13c73ba0bbee539d 100644 (file)
@@ -69,12 +69,23 @@ static int sram_probe(struct platform_device *pdev)
        INIT_LIST_HEAD(&reserve_list);
 
        res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-       virt_base = devm_ioremap_resource(&pdev->dev, res);
-       if (IS_ERR(virt_base))
-               return PTR_ERR(virt_base);
+       if (!res) {
+               dev_err(&pdev->dev, "found no memory resource\n");
+               return -EINVAL;
+       }
 
        size = resource_size(res);
 
+       if (!devm_request_mem_region(&pdev->dev,
+                       res->start, size, pdev->name)) {
+               dev_err(&pdev->dev, "could not request region for resource\n");
+               return -EBUSY;
+       }
+
+       virt_base = devm_ioremap_wc(&pdev->dev, res->start, size);
+       if (IS_ERR(virt_base))
+               return PTR_ERR(virt_base);
+
        sram = devm_kzalloc(&pdev->dev, sizeof(*sram), GFP_KERNEL);
        if (!sram)
                return -ENOMEM;
@@ -205,7 +216,7 @@ static int sram_remove(struct platform_device *pdev)
 }
 
 #ifdef CONFIG_OF
-static struct of_device_id sram_dt_ids[] = {
+static const struct of_device_id sram_dt_ids[] = {
        { .compatible = "mmio-sram" },
        {}
 };