fiq_debugger: print log by console thread

Change-Id: Id664cdfe02f87b1f8bb37b9a4e3985c1eafef226
Signed-off-by: Huibin Hong <huibin.hong@rock-chips.com>
This commit is contained in:
Huibin Hong
2016-08-12 11:19:48 +08:00
committed by Huang, Tao
parent 2433cd6ab6
commit 72b534b19a
4 changed files with 20 additions and 2 deletions

View File

@@ -239,9 +239,9 @@ static void console_write(struct platform_device *pdev, const char *s, unsigned
} else {
while (count--) {
if (*s == '\n') {
kfifo_put(&fifo, &r);
kfifo_put(&fifo, r);
}
kfifo_put(&fifo, s++);
kfifo_put(&fifo, *s++);
}
wake_up_process(t->console_task);
}

View File

@@ -56,3 +56,9 @@ config FIQ_WATCHDOG
select FIQ_DEBUGGER
select PSTORE_RAM
default n
config RK_CONSOLE_THREAD
bool "Console write by thread"
default n
help
Normal kernel printk will write out to UART by "kconsole" kthread

View File

@@ -811,6 +811,13 @@ static void fiq_debugger_console_write(struct console *co,
if (!state->console_enable && !state->syslog_dumping)
return;
#ifdef CONFIG_RK_CONSOLE_THREAD
if (state->pdata->console_write) {
state->pdata->console_write(state->pdev, s, count);
return;
}
#endif
fiq_debugger_uart_enable(state);
spin_lock_irqsave(&state->console_lock, flags);
while (count--) {

View File

@@ -59,6 +59,11 @@ struct fiq_debugger_pdata {
void (*force_irq)(struct platform_device *pdev, unsigned int irq);
void (*force_irq_ack)(struct platform_device *pdev, unsigned int irq);
#ifdef CONFIG_RK_CONSOLE_THREAD
void (*console_write)(struct platform_device *pdev, const char *s,
unsigned int count);
#endif
};
#endif