diff options
| author | Geoff Levand <geoffrey.levand@am.sony.com> | 2008-01-18 15:32:59 -0500 |
|---|---|---|
| committer | Paul Mackerras <paulus@samba.org> | 2008-01-25 06:52:53 -0500 |
| commit | a628df1e9dd0d3de540bf0b7d8c6ea4896539bbb (patch) | |
| tree | cbd275f7af5a082deda36dd20aa09abfd8e7010b | |
| parent | c4e6752dd4f249d6797146d655973bc0bde4c26e (diff) | |
[POWERPC] PS3: Remove lpar address workaround
Remove the PS3 workaround needed to support sparsemem SPU mappings.
The SPU mappings no longer use sparsemem, so this workaround is no
longer needed.
Signed-off-by: Geoff Levand <geoffrey.levand@am.sony.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
| -rw-r--r-- | arch/powerpc/platforms/ps3/Kconfig | 11 | ||||
| -rw-r--r-- | arch/powerpc/platforms/ps3/mm.c | 16 | ||||
| -rw-r--r-- | include/asm-powerpc/sparsemem.h | 5 |
3 files changed, 4 insertions, 28 deletions
diff --git a/arch/powerpc/platforms/ps3/Kconfig b/arch/powerpc/platforms/ps3/Kconfig index a3d708fe5709..a5f4e95dfc3d 100644 --- a/arch/powerpc/platforms/ps3/Kconfig +++ b/arch/powerpc/platforms/ps3/Kconfig | |||
| @@ -61,17 +61,6 @@ config PS3_DYNAMIC_DMA | |||
| 61 | This support is mainly for Linux kernel development. If unsure, | 61 | This support is mainly for Linux kernel development. If unsure, |
| 62 | say N. | 62 | say N. |
| 63 | 63 | ||
| 64 | config PS3_USE_LPAR_ADDR | ||
| 65 | depends on PPC_PS3 && EXPERIMENTAL | ||
| 66 | bool "PS3 use lpar address space" | ||
| 67 | default y | ||
| 68 | help | ||
| 69 | This option is solely for experimentation by experts. Disables | ||
| 70 | translation of lpar addresses. SPE support currently won't work | ||
| 71 | without this set to y. | ||
| 72 | |||
| 73 | If you have any doubt, choose the default y. | ||
| 74 | |||
| 75 | config PS3_VUART | 64 | config PS3_VUART |
| 76 | depends on PPC_PS3 | 65 | depends on PPC_PS3 |
| 77 | tristate | 66 | tristate |
diff --git a/arch/powerpc/platforms/ps3/mm.c b/arch/powerpc/platforms/ps3/mm.c index 6ce2fabd745c..68900476c842 100644 --- a/arch/powerpc/platforms/ps3/mm.c +++ b/arch/powerpc/platforms/ps3/mm.c | |||
| @@ -36,11 +36,6 @@ | |||
| 36 | #endif | 36 | #endif |
| 37 | 37 | ||
| 38 | enum { | 38 | enum { |
| 39 | #if defined(CONFIG_PS3_USE_LPAR_ADDR) | ||
| 40 | USE_LPAR_ADDR = 1, | ||
| 41 | #else | ||
| 42 | USE_LPAR_ADDR = 0, | ||
| 43 | #endif | ||
| 44 | #if defined(CONFIG_PS3_DYNAMIC_DMA) | 39 | #if defined(CONFIG_PS3_DYNAMIC_DMA) |
| 45 | USE_DYNAMIC_DMA = 1, | 40 | USE_DYNAMIC_DMA = 1, |
| 46 | #else | 41 | #else |
| @@ -137,11 +132,8 @@ static struct map map; | |||
| 137 | unsigned long ps3_mm_phys_to_lpar(unsigned long phys_addr) | 132 | unsigned long ps3_mm_phys_to_lpar(unsigned long phys_addr) |
| 138 | { | 133 | { |
| 139 | BUG_ON(is_kernel_addr(phys_addr)); | 134 | BUG_ON(is_kernel_addr(phys_addr)); |
| 140 | if (USE_LPAR_ADDR) | 135 | return (phys_addr < map.rm.size || phys_addr >= map.total) |
| 141 | return phys_addr; | 136 | ? phys_addr : phys_addr + map.r1.offset; |
| 142 | else | ||
| 143 | return (phys_addr < map.rm.size || phys_addr >= map.total) | ||
| 144 | ? phys_addr : phys_addr + map.r1.offset; | ||
| 145 | } | 137 | } |
| 146 | 138 | ||
| 147 | EXPORT_SYMBOL(ps3_mm_phys_to_lpar); | 139 | EXPORT_SYMBOL(ps3_mm_phys_to_lpar); |
| @@ -309,7 +301,7 @@ static int __init ps3_mm_add_memory(void) | |||
| 309 | 301 | ||
| 310 | BUG_ON(!mem_init_done); | 302 | BUG_ON(!mem_init_done); |
| 311 | 303 | ||
| 312 | start_addr = USE_LPAR_ADDR ? map.r1.base : map.rm.size; | 304 | start_addr = map.rm.size; |
| 313 | start_pfn = start_addr >> PAGE_SHIFT; | 305 | start_pfn = start_addr >> PAGE_SHIFT; |
| 314 | nr_pages = (map.r1.size + PAGE_SIZE - 1) >> PAGE_SHIFT; | 306 | nr_pages = (map.r1.size + PAGE_SIZE - 1) >> PAGE_SHIFT; |
| 315 | 307 | ||
| @@ -1007,7 +999,7 @@ static int dma_sb_region_create_linear(struct ps3_dma_region *r) | |||
| 1007 | 999 | ||
| 1008 | if (r->offset + r->len > map.rm.size) { | 1000 | if (r->offset + r->len > map.rm.size) { |
| 1009 | /* Map (part of) 2nd RAM chunk */ | 1001 | /* Map (part of) 2nd RAM chunk */ |
| 1010 | virt_addr = USE_LPAR_ADDR ? map.r1.base : map.rm.size; | 1002 | virt_addr = map.rm.size; |
| 1011 | len = r->len; | 1003 | len = r->len; |
| 1012 | if (r->offset >= map.rm.size) | 1004 | if (r->offset >= map.rm.size) |
| 1013 | virt_addr += r->offset - map.rm.size; | 1005 | virt_addr += r->offset - map.rm.size; |
diff --git a/include/asm-powerpc/sparsemem.h b/include/asm-powerpc/sparsemem.h index 48ad807a0b8a..e8b493d52b4f 100644 --- a/include/asm-powerpc/sparsemem.h +++ b/include/asm-powerpc/sparsemem.h | |||
| @@ -10,13 +10,8 @@ | |||
| 10 | */ | 10 | */ |
| 11 | #define SECTION_SIZE_BITS 24 | 11 | #define SECTION_SIZE_BITS 24 |
| 12 | 12 | ||
| 13 | #if defined(CONFIG_PS3_USE_LPAR_ADDR) | ||
| 14 | #define MAX_PHYSADDR_BITS 47 | ||
| 15 | #define MAX_PHYSMEM_BITS 47 | ||
| 16 | #else | ||
| 17 | #define MAX_PHYSADDR_BITS 44 | 13 | #define MAX_PHYSADDR_BITS 44 |
| 18 | #define MAX_PHYSMEM_BITS 44 | 14 | #define MAX_PHYSMEM_BITS 44 |
| 19 | #endif | ||
| 20 | 15 | ||
| 21 | #ifdef CONFIG_MEMORY_HOTPLUG | 16 | #ifdef CONFIG_MEMORY_HOTPLUG |
| 22 | extern void create_section_mapping(unsigned long start, unsigned long end); | 17 | extern void create_section_mapping(unsigned long start, unsigned long end); |
