summaryrefslogtreecommitdiffstats
path: root/meta/recipes-kernel/linux/linux-omap2-git/beagleboard/04-gptimer_add_debug_to_sysrq_q
diff options
context:
space:
mode:
authorRichard Purdie <rpurdie@linux.intel.com>2010-08-27 15:14:24 +0100
committerRichard Purdie <rpurdie@linux.intel.com>2010-08-27 15:29:45 +0100
commit29d6678fd546377459ef75cf54abeef5b969b5cf (patch)
tree8edd65790e37a00d01c3f203f773fe4b5012db18 /meta/recipes-kernel/linux/linux-omap2-git/beagleboard/04-gptimer_add_debug_to_sysrq_q
parentda49de6885ee1bc424e70bc02f21f6ab920efb55 (diff)
downloadpoky-29d6678fd546377459ef75cf54abeef5b969b5cf.tar.gz
Major layout change to the packages directory
Having one monolithic packages directory makes it hard to find things and is generally overwhelming. This commit splits it into several logical sections roughly based on function, recipes.txt gives more information about the classifications used. The opportunity is also used to switch from "packages" to "recipes" as used in OpenEmbedded as the term "packages" can be confusing to people and has many different meanings. Not all recipes have been classified yet, this is just a first pass at separating things out. Some packages are moved to meta-extras as they're no longer actively used or maintained. Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
Diffstat (limited to 'meta/recipes-kernel/linux/linux-omap2-git/beagleboard/04-gptimer_add_debug_to_sysrq_q')
-rw-r--r--meta/recipes-kernel/linux/linux-omap2-git/beagleboard/04-gptimer_add_debug_to_sysrq_q110
1 files changed, 110 insertions, 0 deletions
diff --git a/meta/recipes-kernel/linux/linux-omap2-git/beagleboard/04-gptimer_add_debug_to_sysrq_q b/meta/recipes-kernel/linux/linux-omap2-git/beagleboard/04-gptimer_add_debug_to_sysrq_q
new file mode 100644
index 0000000000..aa9f09811a
--- /dev/null
+++ b/meta/recipes-kernel/linux/linux-omap2-git/beagleboard/04-gptimer_add_debug_to_sysrq_q
@@ -0,0 +1,110 @@
1Add extra debug for the q_d_w_o() when work fn is already active.
2
3From: Paul Walmsley <paul@pwsan.com>
4
5
6---
7
8 arch/arm/mach-omap2/timer-gp.c | 3 ++-
9 arch/arm/plat-omap/dmtimer.c | 20 ++++++++++++++++++++
10 include/asm-arm/arch-omap/dmtimer.h | 1 +
11 kernel/time/timer_list.c | 8 ++++++++
12 4 files changed, 31 insertions(+), 1 deletions(-)
13
14diff --git a/arch/arm/mach-omap2/timer-gp.c b/arch/arm/mach-omap2/timer-gp.c
15index ce5c2b4..e3ed368 100644
16--- a/arch/arm/mach-omap2/timer-gp.c
17+++ b/arch/arm/mach-omap2/timer-gp.c
18@@ -50,6 +50,7 @@
19 #define GPTIMER_MATCH_VAL (0xffffffff - (32768/2))
20
21 static struct omap_dm_timer *gptimer;
22+struct omap_dm_timer *gptimer_pub;
23 static struct clock_event_device clockevent_gpt;
24
25 static u32 last_load;
26@@ -111,7 +112,7 @@ static void __init omap2_gp_clockevent_init(void)
27 {
28 u32 tick_rate;
29
30- gptimer = omap_dm_timer_request_specific(1);
31+ gptimer = gptimer_pub = omap_dm_timer_request_specific(1);
32 BUG_ON(gptimer == NULL);
33
34 #if defined(CONFIG_OMAP_32K_TIMER)
35diff --git a/arch/arm/plat-omap/dmtimer.c b/arch/arm/plat-omap/dmtimer.c
36index e38a11e..b10f8ac 100644
37--- a/arch/arm/plat-omap/dmtimer.c
38+++ b/arch/arm/plat-omap/dmtimer.c
39@@ -614,6 +614,26 @@ void omap_dm_timer_set_int_enable(struct omap_dm_timer *timer,
40 omap_dm_timer_write_reg(timer, OMAP_TIMER_WAKEUP_EN_REG, value);
41 }
42
43+void omap_dm_timer_dump_int_enable(struct omap_dm_timer *timer)
44+{
45+ u32 l;
46+ l = omap_dm_timer_read_reg(timer, OMAP_TIMER_COUNTER_REG);
47+ pr_err("GPT TCRR: %08x\n", l);
48+ l = omap_dm_timer_read_reg(timer, OMAP_TIMER_MATCH_REG);
49+ pr_err("GPT TMAT: %08x\n", l);
50+ l = omap_dm_timer_read_reg(timer, OMAP_TIMER_STAT_REG);
51+ pr_err("GPT TISR: %08x\n", l);
52+ l = omap_dm_timer_read_reg(timer, OMAP_TIMER_INT_EN_REG);
53+ pr_err("GPT TIER: %08x\n", l);
54+ l = omap_dm_timer_read_reg(timer, OMAP_TIMER_CTRL_REG);
55+ pr_err("GPT TCLR: %08x\n", l);
56+ l = omap_dm_timer_read_reg(timer, OMAP_TIMER_TICK_INT_MASK_SET_REG);
57+ pr_err("GPT TOCR: %08x\n", l);
58+ l = omap_dm_timer_read_reg(timer, OMAP_TIMER_TICK_INT_MASK_COUNT_REG);
59+ pr_err("GPT TOWR: %08x\n", l);
60+}
61+
62+
63 unsigned int omap_dm_timer_read_status(struct omap_dm_timer *timer)
64 {
65 unsigned int l;
66diff --git a/include/asm-arm/arch-omap/dmtimer.h b/include/asm-arm/arch-omap/dmtimer.h
67index 02b29e8..a8123e9 100644
68--- a/include/asm-arm/arch-omap/dmtimer.h
69+++ b/include/asm-arm/arch-omap/dmtimer.h
70@@ -73,6 +73,7 @@ void omap_dm_timer_set_prescaler(struct omap_dm_timer *timer, int prescaler);
71
72 void omap_dm_timer_set_int_enable(struct omap_dm_timer *timer, unsigned int value);
73
74+void omap_dm_timer_dump_int_enable(struct omap_dm_timer *timer);
75 unsigned int omap_dm_timer_read_status(struct omap_dm_timer *timer);
76 void omap_dm_timer_write_status(struct omap_dm_timer *timer, unsigned int value);
77 unsigned int omap_dm_timer_read_counter(struct omap_dm_timer *timer);
78diff --git a/kernel/time/timer_list.c b/kernel/time/timer_list.c
79index a40e20f..452eab7 100644
80--- a/kernel/time/timer_list.c
81+++ b/kernel/time/timer_list.c
82@@ -18,6 +18,8 @@
83 #include <linux/kallsyms.h>
84 #include <linux/tick.h>
85
86+#include <asm/arch/dmtimer.h>
87+
88 #include <asm/uaccess.h>
89
90 typedef void (*print_fn_t)(struct seq_file *m, unsigned int *classes);
91@@ -239,6 +241,8 @@ static void timer_list_show_tickdevices(struct seq_file *m)
92 static void timer_list_show_tickdevices(struct seq_file *m) { }
93 #endif
94
95+extern struct omap_dm_timer *gptimer_pub;
96+
97 static int timer_list_show(struct seq_file *m, void *v)
98 {
99 u64 now = ktime_to_ns(ktime_get());
100@@ -254,6 +258,10 @@ static int timer_list_show(struct seq_file *m, void *v)
101 SEQ_printf(m, "\n");
102 timer_list_show_tickdevices(m);
103
104+ SEQ_printf(m, "\n");
105+
106+ omap_dm_timer_dump_int_enable(gptimer_pub);
107+
108 return 0;
109 }
110