mirror of
https://github.com/rd-stuffs/msm-4.14.git
synced 2025-02-20 11:45:48 +08:00
ANDROID: fiq_debugger: Add option to apply uart overlay by FIQ_DEBUGGER_UART_OVERLAY
fiq_debugger is taking over uart, so it is necessary to disable original uart in DT file. It can be done manually or by overlay. Change-Id: I9f50ec15b0e22e602d73b9f745fc8666f8925d09 Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
This commit is contained in:
parent
535e33b7b5
commit
d7c65f6e91
@ -42,6 +42,15 @@ config FIQ_DEBUGGER_CONSOLE_DEFAULT_ENABLE
|
|||||||
If enabled, this puts the fiq debugger into console mode by default.
|
If enabled, this puts the fiq debugger into console mode by default.
|
||||||
Otherwise, the fiq debugger will start out in debug mode.
|
Otherwise, the fiq debugger will start out in debug mode.
|
||||||
|
|
||||||
|
config FIQ_DEBUGGER_UART_OVERLAY
|
||||||
|
bool "Install uart DT overlay"
|
||||||
|
depends on FIQ_DEBUGGER
|
||||||
|
select OF_OVERLAY
|
||||||
|
default n
|
||||||
|
help
|
||||||
|
If enabled, fiq debugger is calling fiq_debugger_uart_overlay()
|
||||||
|
that will apply overlay uart_overlay@0 to disable proper uart.
|
||||||
|
|
||||||
config FIQ_WATCHDOG
|
config FIQ_WATCHDOG
|
||||||
bool
|
bool
|
||||||
select FIQ_DEBUGGER
|
select FIQ_DEBUGGER
|
||||||
|
@ -39,6 +39,10 @@
|
|||||||
#include <asm/fiq_glue.h>
|
#include <asm/fiq_glue.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef CONFIG_FIQ_DEBUGGER_UART_OVERLAY
|
||||||
|
#include <linux/of.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
#include <linux/uaccess.h>
|
#include <linux/uaccess.h>
|
||||||
|
|
||||||
#include "fiq_debugger.h"
|
#include "fiq_debugger.h"
|
||||||
@ -1201,10 +1205,36 @@ static struct platform_driver fiq_debugger_driver = {
|
|||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#if defined(CONFIG_FIQ_DEBUGGER_UART_OVERLAY)
|
||||||
|
int fiq_debugger_uart_overlay(void)
|
||||||
|
{
|
||||||
|
struct device_node *onp = of_find_node_by_path("/uart_overlay@0");
|
||||||
|
int ret;
|
||||||
|
|
||||||
|
if (!onp) {
|
||||||
|
pr_err("serial_debugger: uart overlay not found\n");
|
||||||
|
return -ENODEV;
|
||||||
|
}
|
||||||
|
|
||||||
|
ret = of_overlay_create(onp);
|
||||||
|
if (ret < 0) {
|
||||||
|
pr_err("serial_debugger: fail to create overlay: %d\n", ret);
|
||||||
|
of_node_put(onp);
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
pr_info("serial_debugger: uart overlay applied\n");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
static int __init fiq_debugger_init(void)
|
static int __init fiq_debugger_init(void)
|
||||||
{
|
{
|
||||||
#if defined(CONFIG_FIQ_DEBUGGER_CONSOLE)
|
#if defined(CONFIG_FIQ_DEBUGGER_CONSOLE)
|
||||||
fiq_debugger_tty_init();
|
fiq_debugger_tty_init();
|
||||||
|
#endif
|
||||||
|
#if defined(CONFIG_FIQ_DEBUGGER_UART_OVERLAY)
|
||||||
|
fiq_debugger_uart_overlay();
|
||||||
#endif
|
#endif
|
||||||
return platform_driver_register(&fiq_debugger_driver);
|
return platform_driver_register(&fiq_debugger_driver);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user