diff --git a/drivers/soc/rockchip/Kconfig b/drivers/soc/rockchip/Kconfig index 24e827205215..eecfcbd5ea3f 100644 --- a/drivers/soc/rockchip/Kconfig +++ b/drivers/soc/rockchip/Kconfig @@ -111,7 +111,7 @@ config ROCKCHIP_VENDOR_STORAGE_UPDATE_LOADER The /dev/vendor_storage must set root user access only. config ROCKCHIP_DEBUG - bool "Rockchip DEBUG" + tristate "Rockchip DEBUG" default y help Print dbgpcsr for every cpu when panic. diff --git a/drivers/soc/rockchip/rockchip_debug.c b/drivers/soc/rockchip/rockchip_debug.c index 5ca2bb5777d7..bc0b89209e09 100644 --- a/drivers/soc/rockchip/rockchip_debug.c +++ b/drivers/soc/rockchip/rockchip_debug.c @@ -49,9 +49,10 @@ * }; */ -#include #include #include +#include +#include #include #include #include "../../staging/android/fiq_debugger/fiq_debugger_priv.h" @@ -70,7 +71,7 @@ static void __iomem *rockchip_cpu_debug[16]; -#ifdef CONFIG_FIQ_DEBUGGER +#if IS_ENABLED(CONFIG_FIQ_DEBUGGER) int rockchip_debug_dump_pcsr(struct fiq_debugger_output *output) { unsigned long dbgpcsr; @@ -123,6 +124,7 @@ int rockchip_debug_dump_pcsr(struct fiq_debugger_output *output) } return NOTIFY_OK; } +EXPORT_SYMBOL_GPL(rockchip_debug_dump_pcsr); #endif static int rockchip_panic_notify(struct notifier_block *nb, unsigned long event, @@ -219,3 +221,20 @@ static int __init rockchip_debug_init(void) return 0; } arch_initcall(rockchip_debug_init); + +static void __exit rockchip_debug_exit(void) +{ + int i = 0; + + atomic_notifier_chain_unregister(&panic_notifier_list, + &rockchip_panic_nb); + + while (rockchip_cpu_debug[i]) + iounmap(rockchip_cpu_debug[i++]); +} +module_exit(rockchip_debug_exit); + +MODULE_AUTHOR("Huibin Hong "); +MODULE_DESCRIPTION("Rockchip Debugger"); +MODULE_LICENSE("GPL"); +MODULE_ALIAS("platform:rockchip-debugger"); diff --git a/drivers/soc/rockchip/rockchip_debug.h b/drivers/soc/rockchip/rockchip_debug.h index d8b83fb6e27d..82036d8ebf72 100644 --- a/drivers/soc/rockchip/rockchip_debug.h +++ b/drivers/soc/rockchip/rockchip_debug.h @@ -7,7 +7,7 @@ struct fiq_debugger_output; -#ifdef CONFIG_FIQ_DEBUGGER +#if IS_ENABLED(CONFIG_FIQ_DEBUGGER) int rockchip_debug_dump_pcsr(struct fiq_debugger_output *output); #endif