From: 黄涛 Date: Mon, 3 Jun 2013 07:44:48 +0000 (+0800) Subject: rk: clock: dump cru register when panic X-Git-Tag: firefly_0821_release~7016 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=6d5423ef133e0a537b5488dc883c2f348200f463;p=firefly-linux-kernel-4.4.55.git rk: clock: dump cru register when panic --- diff --git a/arch/arm/plat-rk/clock.c b/arch/arm/plat-rk/clock.c index 2b0b6da61ca3..c8054b302304 100644 --- a/arch/arm/plat-rk/clock.c +++ b/arch/arm/plat-rk/clock.c @@ -765,3 +765,25 @@ static int __init clk_proc_init(void) late_initcall(clk_proc_init); #endif /* CONFIG_RK_CLOCK_PROC */ +static int clk_panic(struct notifier_block *this, unsigned long ev, void *ptr) +{ +#ifdef RK30_CRU_BASE +#define CRU_BASE RK30_CRU_BASE +#elif defined(RK2928_CRU_BASE) +#define CRU_BASE RK2928_CRU_BASE +#endif +#ifdef CRU_BASE + print_hex_dump(KERN_WARNING, "", DUMP_PREFIX_ADDRESS, 16, 4, CRU_BASE, 0x150, false); +#endif + return NOTIFY_DONE; +} + +static struct notifier_block clk_panic_block = { + .notifier_call = clk_panic, +}; + +static int __init clk_panic_init(void) +{ + return atomic_notifier_chain_register(&panic_notifier_list, &clk_panic_block); +} +pure_initcall(clk_panic_init);