aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRob Herring <robh@kernel.org>2014-03-31 16:17:31 -0400
committerRob Herring <robh@kernel.org>2014-04-30 01:59:19 -0400
commit1bac1869947ee3866c6d687b99e4283d37bb499b (patch)
treea5c4b4360d96c92b1c30bbabb14474553ab96d26
parent060f78c2543a890626cab81796b0d6f7070bd989 (diff)
x86: use FDT accessors for FDT blob header data
Remove the direct accesses to FDT header data using accessor function instead. This makes the code more readable and makes the FDT blob structure more opaque to the arch code. This also prepares for removing struct boot_param_header completely. Signed-off-by: Rob Herring <robh@kernel.org> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: Ingo Molnar <mingo@redhat.com> Cc: "H. Peter Anvin" <hpa@zytor.com> Cc: x86@kernel.org Tested-by: Grant Likely <grant.likely@linaro.org>
-rw-r--r--arch/x86/kernel/devicetree.c12
1 files changed, 5 insertions, 7 deletions
diff --git a/arch/x86/kernel/devicetree.c b/arch/x86/kernel/devicetree.c
index d35078ea1446..7db54b5d5f86 100644
--- a/arch/x86/kernel/devicetree.c
+++ b/arch/x86/kernel/devicetree.c
@@ -206,23 +206,21 @@ static void __init dtb_apic_setup(void)
206static void __init x86_flattree_get_config(void) 206static void __init x86_flattree_get_config(void)
207{ 207{
208 u32 size, map_len; 208 u32 size, map_len;
209 struct boot_param_header *dt; 209 void *dt;
210 210
211 if (!initial_dtb) 211 if (!initial_dtb)
212 return; 212 return;
213 213
214 map_len = max(PAGE_SIZE - (initial_dtb & ~PAGE_MASK), 214 map_len = max(PAGE_SIZE - (initial_dtb & ~PAGE_MASK), (u64)128);
215 (u64)sizeof(struct boot_param_header));
216 215
217 dt = early_memremap(initial_dtb, map_len); 216 initial_boot_params = dt = early_memremap(initial_dtb, map_len);
218 size = be32_to_cpu(dt->totalsize); 217 size = of_get_flat_dt_size();
219 if (map_len < size) { 218 if (map_len < size) {
220 early_iounmap(dt, map_len); 219 early_iounmap(dt, map_len);
221 dt = early_memremap(initial_dtb, size); 220 initial_boot_params = dt = early_memremap(initial_dtb, size);
222 map_len = size; 221 map_len = size;
223 } 222 }
224 223
225 initial_boot_params = dt;
226 unflatten_and_copy_device_tree(); 224 unflatten_and_copy_device_tree();
227 early_iounmap(dt, map_len); 225 early_iounmap(dt, map_len);
228} 226}