[POWERPC] PS3: Remove lpar address workaround
authorGeoff Levand <geoffrey.levand@am.sony.com>
Fri, 18 Jan 2008 20:32:59 +0000 (07:32 +1100)
committerPaul Mackerras <paulus@samba.org>
Fri, 25 Jan 2008 11:52:53 +0000 (22:52 +1100)
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>
arch/powerpc/platforms/ps3/Kconfig
arch/powerpc/platforms/ps3/mm.c
include/asm-powerpc/sparsemem.h

index a3d708f..a5f4e95 100644 (file)
@@ -61,17 +61,6 @@ config PS3_DYNAMIC_DMA
          This support is mainly for Linux kernel development.  If unsure,
          say N.
 
-config PS3_USE_LPAR_ADDR
-       depends on PPC_PS3 && EXPERIMENTAL
-       bool "PS3 use lpar address space"
-       default y
-       help
-         This option is solely for experimentation by experts.  Disables
-         translation of lpar addresses.  SPE support currently won't work
-         without this set to y.
-
-         If you have any doubt, choose the default y.
-
 config PS3_VUART
        depends on PPC_PS3
        tristate
index 6ce2fab..6890047 100644 (file)
 #endif
 
 enum {
-#if defined(CONFIG_PS3_USE_LPAR_ADDR)
-       USE_LPAR_ADDR = 1,
-#else
-       USE_LPAR_ADDR = 0,
-#endif
 #if defined(CONFIG_PS3_DYNAMIC_DMA)
        USE_DYNAMIC_DMA = 1,
 #else
@@ -137,11 +132,8 @@ static struct map map;
 unsigned long ps3_mm_phys_to_lpar(unsigned long phys_addr)
 {
        BUG_ON(is_kernel_addr(phys_addr));
-       if (USE_LPAR_ADDR)
-               return phys_addr;
-       else
-               return (phys_addr < map.rm.size || phys_addr >= map.total)
-                       ? phys_addr : phys_addr + map.r1.offset;
+       return (phys_addr < map.rm.size || phys_addr >= map.total)
+               ? phys_addr : phys_addr + map.r1.offset;
 }
 
 EXPORT_SYMBOL(ps3_mm_phys_to_lpar);
@@ -309,7 +301,7 @@ static int __init ps3_mm_add_memory(void)
 
        BUG_ON(!mem_init_done);
 
-       start_addr = USE_LPAR_ADDR ? map.r1.base : map.rm.size;
+       start_addr = map.rm.size;
        start_pfn = start_addr >> PAGE_SHIFT;
        nr_pages = (map.r1.size + PAGE_SIZE - 1) >> PAGE_SHIFT;
 
@@ -1007,7 +999,7 @@ static int dma_sb_region_create_linear(struct ps3_dma_region *r)
 
        if (r->offset + r->len > map.rm.size) {
                /* Map (part of) 2nd RAM chunk */
-               virt_addr = USE_LPAR_ADDR ? map.r1.base : map.rm.size;
+               virt_addr = map.rm.size;
                len = r->len;
                if (r->offset >= map.rm.size)
                        virt_addr += r->offset - map.rm.size;
index 48ad807..e8b493d 100644 (file)
  */
 #define SECTION_SIZE_BITS       24
 
-#if defined(CONFIG_PS3_USE_LPAR_ADDR)
-#define MAX_PHYSADDR_BITS       47
-#define MAX_PHYSMEM_BITS        47
-#else
 #define MAX_PHYSADDR_BITS       44
 #define MAX_PHYSMEM_BITS        44
-#endif
 
 #ifdef CONFIG_MEMORY_HOTPLUG
 extern void create_section_mapping(unsigned long start, unsigned long end);