aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/microblaze/kernel/prom.c31
-rw-r--r--arch/powerpc/kernel/prom.c21
-rw-r--r--drivers/of/fdt.c24
3 files changed, 24 insertions, 52 deletions
diff --git a/arch/microblaze/kernel/prom.c b/arch/microblaze/kernel/prom.c
index c76630603058..68f099960ebc 100644
--- a/arch/microblaze/kernel/prom.c
+++ b/arch/microblaze/kernel/prom.c
@@ -114,34 +114,3 @@ void __init early_init_devtree(void *params)
114 114
115 pr_debug(" <- early_init_devtree()\n"); 115 pr_debug(" <- early_init_devtree()\n");
116} 116}
117
118/*******
119 *
120 * New implementation of the OF "find" APIs, return a refcounted
121 * object, call of_node_put() when done. The device tree and list
122 * are protected by a rw_lock.
123 *
124 * Note that property management will need some locking as well,
125 * this isn't dealt with yet.
126 *
127 *******/
128
129#if defined(CONFIG_DEBUG_FS) && defined(DEBUG)
130static struct debugfs_blob_wrapper flat_dt_blob;
131
132static int __init export_flat_device_tree(void)
133{
134 struct dentry *d;
135
136 flat_dt_blob.data = initial_boot_params;
137 flat_dt_blob.size = initial_boot_params->totalsize;
138
139 d = debugfs_create_blob("flat-device-tree", S_IFREG | S_IRUSR,
140 of_debugfs_root, &flat_dt_blob);
141 if (!d)
142 return 1;
143
144 return 0;
145}
146device_initcall(export_flat_device_tree);
147#endif
diff --git a/arch/powerpc/kernel/prom.c b/arch/powerpc/kernel/prom.c
index 483273e5c3e0..e5e2b6f63567 100644
--- a/arch/powerpc/kernel/prom.c
+++ b/arch/powerpc/kernel/prom.c
@@ -29,7 +29,6 @@
29#include <linux/bitops.h> 29#include <linux/bitops.h>
30#include <linux/export.h> 30#include <linux/export.h>
31#include <linux/kexec.h> 31#include <linux/kexec.h>
32#include <linux/debugfs.h>
33#include <linux/irq.h> 32#include <linux/irq.h>
34#include <linux/memblock.h> 33#include <linux/memblock.h>
35#include <linux/of.h> 34#include <linux/of.h>
@@ -924,23 +923,3 @@ bool arch_match_cpu_phys_id(int cpu, u64 phys_id)
924{ 923{
925 return (int)phys_id == get_hard_smp_processor_id(cpu); 924 return (int)phys_id == get_hard_smp_processor_id(cpu);
926} 925}
927
928#if defined(CONFIG_DEBUG_FS) && defined(DEBUG)
929static struct debugfs_blob_wrapper flat_dt_blob;
930
931static int __init export_flat_device_tree(void)
932{
933 struct dentry *d;
934
935 flat_dt_blob.data = initial_boot_params;
936 flat_dt_blob.size = be32_to_cpu(initial_boot_params->totalsize);
937
938 d = debugfs_create_blob("flat-device-tree", S_IFREG | S_IRUSR,
939 powerpc_debugfs_root, &flat_dt_blob);
940 if (!d)
941 return 1;
942
943 return 0;
944}
945__initcall(export_flat_device_tree);
946#endif
diff --git a/drivers/of/fdt.c b/drivers/of/fdt.c
index 0b38a6aa8603..4129f7442244 100644
--- a/drivers/of/fdt.c
+++ b/drivers/of/fdt.c
@@ -20,6 +20,7 @@
20#include <linux/errno.h> 20#include <linux/errno.h>
21#include <linux/slab.h> 21#include <linux/slab.h>
22#include <linux/libfdt.h> 22#include <linux/libfdt.h>
23#include <linux/debugfs.h>
23 24
24#include <asm/setup.h> /* for COMMAND_LINE_SIZE */ 25#include <asm/setup.h> /* for COMMAND_LINE_SIZE */
25#include <asm/page.h> 26#include <asm/page.h>
@@ -916,4 +917,27 @@ void __init unflatten_and_copy_device_tree(void)
916 unflatten_device_tree(); 917 unflatten_device_tree();
917} 918}
918 919
920#if defined(CONFIG_DEBUG_FS) && defined(DEBUG)
921static struct debugfs_blob_wrapper flat_dt_blob;
922
923static int __init of_flat_dt_debugfs_export_fdt(void)
924{
925 struct dentry *d = debugfs_create_dir("device-tree", NULL);
926
927 if (!d)
928 return -ENOENT;
929
930 flat_dt_blob.data = initial_boot_params;
931 flat_dt_blob.size = fdt_totalsize(initial_boot_params);
932
933 d = debugfs_create_blob("flat-device-tree", S_IFREG | S_IRUSR,
934 d, &flat_dt_blob);
935 if (!d)
936 return -ENOENT;
937
938 return 0;
939}
940module_init(of_flat_dt_debugfs_export_fdt);
941#endif
942
919#endif /* CONFIG_OF_EARLY_FLATTREE */ 943#endif /* CONFIG_OF_EARLY_FLATTREE */