diff options
author | Octavian Purdila <octavian.purdila@intel.com> | 2014-05-12 11:55:05 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2014-05-15 16:19:00 -0400 |
commit | f10d8434201859d5ad7f51032dcd2d0c09e85ee2 (patch) | |
tree | d063c057509a94a571c250567ec8601e9c85204e /drivers/platform | |
parent | 25c72c786cb571cfdf39a31f9f64d143d8623a7a (diff) |
goldfish: add support for 64bit to the virtual bus
This patchs adds a new register to pass the upper 32bits for the
device name address when running in 64bit mode.
Signed-off-by: Octavian Purdila <octavian.purdila@intel.com>
Signed-off-by: Jun Tian <jun.j.tian@intel.com>
Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/platform')
-rw-r--r-- | drivers/platform/goldfish/pdev_bus.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/platform/goldfish/pdev_bus.c b/drivers/platform/goldfish/pdev_bus.c index 4eb2bb34790d..eb254400c44a 100644 --- a/drivers/platform/goldfish/pdev_bus.c +++ b/drivers/platform/goldfish/pdev_bus.c | |||
@@ -36,6 +36,7 @@ | |||
36 | #define PDEV_BUS_IO_SIZE (0x14) | 36 | #define PDEV_BUS_IO_SIZE (0x14) |
37 | #define PDEV_BUS_IRQ (0x18) | 37 | #define PDEV_BUS_IRQ (0x18) |
38 | #define PDEV_BUS_IRQ_COUNT (0x1c) | 38 | #define PDEV_BUS_IRQ_COUNT (0x1c) |
39 | #define PDEV_BUS_GET_NAME_HIGH (0x20) | ||
39 | 40 | ||
40 | struct pdev_bus_dev { | 41 | struct pdev_bus_dev { |
41 | struct list_head list; | 42 | struct list_head list; |
@@ -129,7 +130,10 @@ static int goldfish_new_pdev(void) | |||
129 | dev->pdev.dev.dma_mask = (void *)(dev->pdev.name + name_len + 1); | 130 | dev->pdev.dev.dma_mask = (void *)(dev->pdev.name + name_len + 1); |
130 | *dev->pdev.dev.dma_mask = ~0; | 131 | *dev->pdev.dev.dma_mask = ~0; |
131 | 132 | ||
132 | writel((unsigned long)name, pdev_bus_base + PDEV_BUS_GET_NAME); | 133 | #ifdef CONFIG_64BIT |
134 | writel((u32)((u64)name>>32), pdev_bus_base + PDEV_BUS_GET_NAME_HIGH); | ||
135 | #endif | ||
136 | writel((u32)(u64)name, pdev_bus_base + PDEV_BUS_GET_NAME); | ||
133 | name[name_len] = '\0'; | 137 | name[name_len] = '\0'; |
134 | dev->pdev.id = readl(pdev_bus_base + PDEV_BUS_ID); | 138 | dev->pdev.id = readl(pdev_bus_base + PDEV_BUS_ID); |
135 | dev->pdev.resource[0].start = base; | 139 | dev->pdev.resource[0].start = base; |