[PATCH 1/3] arm: mm: allow boards to fiddle with meminfo

2010-10-10 Thread Felipe Contreras
So that they can reserve some memory.

Signed-off-by: Felipe Contreras felipe.contre...@gmail.com
---
 arch/arm/include/asm/mach/arch.h |2 +-
 arch/arm/mm/init.c   |7 ---
 2 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/arch/arm/include/asm/mach/arch.h b/arch/arm/include/asm/mach/arch.h
index 8a0dd18..408e4d5 100644
--- a/arch/arm/include/asm/mach/arch.h
+++ b/arch/arm/include/asm/mach/arch.h
@@ -38,7 +38,7 @@ struct machine_desc {
void(*fixup)(struct machine_desc *,
 struct tag *, char **,
 struct meminfo *);
-   void(*reserve)(void);/* reserve mem blocks  */
+   void(*reserve)(struct meminfo *);/* reserve mem 
blocks  */
void(*map_io)(void);/* IO mapping function  */
void(*init_irq)(void);
struct sys_timer*timer; /* system tick timer*/
diff --git a/arch/arm/mm/init.c b/arch/arm/mm/init.c
index 7185b00..4b5c117 100644
--- a/arch/arm/mm/init.c
+++ b/arch/arm/mm/init.c
@@ -272,8 +272,6 @@ void __init arm_memblock_init(struct meminfo *mi, struct 
machine_desc *mdesc)
int i;
 
memblock_init();
-   for (i = 0; i  mi-nr_banks; i++)
-   memblock_add(mi-bank[i].start, mi-bank[i].size);
 
/* Register the kernel text, kernel data and initrd with memblock. */
 #ifdef CONFIG_XIP_KERNEL
@@ -295,7 +293,10 @@ void __init arm_memblock_init(struct meminfo *mi, struct 
machine_desc *mdesc)
 
/* reserve any platform specific memblock areas */
if (mdesc-reserve)
-   mdesc-reserve();
+   mdesc-reserve(mi);
+
+   for (i = 0; i  mi-nr_banks; i++)
+   memblock_add(mi-bank[i].start, mi-bank[i].size);
 
memblock_analyze();
memblock_dump_all();
-- 
1.7.3.1.2.g7fe2b

--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 1/3] arm: mm: allow boards to fiddle with meminfo

2010-10-10 Thread Russell King - ARM Linux
On Sun, Oct 10, 2010 at 08:40:38PM +0300, Felipe Contreras wrote:
 So that they can reserve some memory.
 
 Signed-off-by: Felipe Contreras felipe.contre...@gmail.com
 ---
  arch/arm/include/asm/mach/arch.h |2 +-
  arch/arm/mm/init.c   |7 ---
  2 files changed, 5 insertions(+), 4 deletions(-)
 
 diff --git a/arch/arm/include/asm/mach/arch.h 
 b/arch/arm/include/asm/mach/arch.h
 index 8a0dd18..408e4d5 100644
 --- a/arch/arm/include/asm/mach/arch.h
 +++ b/arch/arm/include/asm/mach/arch.h
 @@ -38,7 +38,7 @@ struct machine_desc {
   void(*fixup)(struct machine_desc *,
struct tag *, char **,
struct meminfo *);
 - void(*reserve)(void);/* reserve mem blocks  */
 + void(*reserve)(struct meminfo *);/* reserve mem 
 blocks  */
   void(*map_io)(void);/* IO mapping function  */
   void(*init_irq)(void);
   struct sys_timer*timer; /* system tick timer*/
 diff --git a/arch/arm/mm/init.c b/arch/arm/mm/init.c
 index 7185b00..4b5c117 100644
 --- a/arch/arm/mm/init.c
 +++ b/arch/arm/mm/init.c
 @@ -272,8 +272,6 @@ void __init arm_memblock_init(struct meminfo *mi, struct 
 machine_desc *mdesc)
   int i;
  
   memblock_init();
 - for (i = 0; i  mi-nr_banks; i++)
 - memblock_add(mi-bank[i].start, mi-bank[i].size);
  
   /* Register the kernel text, kernel data and initrd with memblock. */
  #ifdef CONFIG_XIP_KERNEL
 @@ -295,7 +293,10 @@ void __init arm_memblock_init(struct meminfo *mi, struct 
 machine_desc *mdesc)
  
   /* reserve any platform specific memblock areas */
   if (mdesc-reserve)
 - mdesc-reserve();
 + mdesc-reserve(mi);
 +
 + for (i = 0; i  mi-nr_banks; i++)
 + memblock_add(mi-bank[i].start, mi-bank[i].size);

It is not a good idea to change the ordering here, as we'll now be
adding the memory blocks _after_ we've started to make reservations
into memblock.

At least the omapfb code wants there to be memory present in memblock
when -reserve is called.
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 1/3] arm: mm: allow boards to fiddle with meminfo

2010-10-10 Thread Felipe Contreras
On Sun, Oct 10, 2010 at 10:03 PM, Russell King - ARM Linux
li...@arm.linux.org.uk wrote:
 On Sun, Oct 10, 2010 at 08:40:38PM +0300, Felipe Contreras wrote:
 So that they can reserve some memory.

 Signed-off-by: Felipe Contreras felipe.contre...@gmail.com
 ---
  arch/arm/include/asm/mach/arch.h |    2 +-
  arch/arm/mm/init.c               |    7 ---
  2 files changed, 5 insertions(+), 4 deletions(-)

 diff --git a/arch/arm/include/asm/mach/arch.h 
 b/arch/arm/include/asm/mach/arch.h
 index 8a0dd18..408e4d5 100644
 --- a/arch/arm/include/asm/mach/arch.h
 +++ b/arch/arm/include/asm/mach/arch.h
 @@ -38,7 +38,7 @@ struct machine_desc {
       void                    (*fixup)(struct machine_desc *,
                                        struct tag *, char **,
                                        struct meminfo *);
 -     void                    (*reserve)(void);/* reserve mem blocks  */
 +     void                    (*reserve)(struct meminfo *);/* reserve mem 
 blocks      */
       void                    (*map_io)(void);/* IO mapping function  */
       void                    (*init_irq)(void);
       struct sys_timer        *timer;         /* system tick timer    */
 diff --git a/arch/arm/mm/init.c b/arch/arm/mm/init.c
 index 7185b00..4b5c117 100644
 --- a/arch/arm/mm/init.c
 +++ b/arch/arm/mm/init.c
 @@ -272,8 +272,6 @@ void __init arm_memblock_init(struct meminfo *mi, struct 
 machine_desc *mdesc)
       int i;

       memblock_init();
 -     for (i = 0; i  mi-nr_banks; i++)
 -             memblock_add(mi-bank[i].start, mi-bank[i].size);

       /* Register the kernel text, kernel data and initrd with memblock. */
  #ifdef CONFIG_XIP_KERNEL
 @@ -295,7 +293,10 @@ void __init arm_memblock_init(struct meminfo *mi, 
 struct machine_desc *mdesc)

       /* reserve any platform specific memblock areas */
       if (mdesc-reserve)
 -             mdesc-reserve();
 +             mdesc-reserve(mi);
 +
 +     for (i = 0; i  mi-nr_banks; i++)
 +             memblock_add(mi-bank[i].start, mi-bank[i].size);

 It is not a good idea to change the ordering here, as we'll now be
 adding the memory blocks _after_ we've started to make reservations
 into memblock.

 At least the omapfb code wants there to be memory present in memblock
 when -reserve is called.

True. I initially added a new callback called reserve_mem(), but I
thought it would be nicer to avoid adding a new function almost
identical to an existing one.

Anyway, what is your suggestion? Can you come up with something else?

-- 
Felipe Contreras
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html