aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRob Herring <robh@kernel.org>2014-04-02 17:56:48 -0400
committerRob Herring <robh@kernel.org>2014-04-30 01:59:16 -0400
commitb0a6fb36a49f720c93c3da0b3f040e49e42435ad (patch)
tree3cfd40ed6002d7dfae6f8c4ad2136dcb2c04ee54
parentc972de14971f1482ab482f0a7abc85679a23326a (diff)
of/fdt: create common debugfs
Both powerpc and microblaze have the same FDT blob in debugfs feature. Move this to common location and remove the powerpc and microblaze implementations. This feature could become more useful when FDT overlay support is added. This changes the path of the blob from "$arch/flat-device-tree" to "device-tree/flat-device-tree". Signed-off-by: Rob Herring <robh@kernel.org> Tested-by: Michal Simek <michal.simek@xilinx.com> Cc: Michal Simek <monstr@monstr.eu> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> Cc: Paul Mackerras <paulus@samba.org> Cc: linuxppc-dev@lists.ozlabs.org Tested-by: Grant Likely <grant.likely@linaro.org> Tested-by: Stephen Chivers <schivers@csc.com>
-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 */