Merge tag 'iommu-updates-v3.16' of git://git.kernel.org/pub/scm/linux/kernel/git...
[firefly-linux-kernel-4.4.55.git] / drivers / platform / goldfish / pdev_bus.c
index 92cc4cfafde581eb7fe56fb6a11c3c0000465755..8c43589c3edba9248c13760c8e92025b4a5cf599 100644 (file)
@@ -36,6 +36,7 @@
 #define PDEV_BUS_IO_SIZE        (0x14)
 #define PDEV_BUS_IRQ            (0x18)
 #define PDEV_BUS_IRQ_COUNT      (0x1c)
+#define PDEV_BUS_GET_NAME_HIGH  (0x20)
 
 struct pdev_bus_dev {
        struct list_head list;
@@ -129,7 +130,10 @@ static int goldfish_new_pdev(void)
        dev->pdev.dev.dma_mask = (void *)(dev->pdev.name + name_len + 1);
        *dev->pdev.dev.dma_mask = ~0;
 
-       writel((unsigned long)name, pdev_bus_base + PDEV_BUS_GET_NAME);
+#ifdef CONFIG_64BIT
+       writel((u32)((u64)name>>32), pdev_bus_base + PDEV_BUS_GET_NAME_HIGH);
+#endif
+       writel((u32)(unsigned long)name, pdev_bus_base + PDEV_BUS_GET_NAME);
        name[name_len] = '\0';
        dev->pdev.id = readl(pdev_bus_base + PDEV_BUS_ID);
        dev->pdev.resource[0].start = base;
@@ -184,11 +188,6 @@ static int goldfish_pdev_bus_probe(struct platform_device *pdev)
        pdev_bus_addr = r->start;
        pdev_bus_len = resource_size(r);
 
-       if (request_mem_region(pdev_bus_addr, pdev_bus_len, "goldfish")) {
-               dev_err(&pdev->dev, "unable to reserve Goldfish MMIO.\n");
-               return -EBUSY;
-       }
-
        pdev_bus_base = ioremap(pdev_bus_addr, pdev_bus_len);
        if (pdev_bus_base == NULL) {
                ret = -ENOMEM;