diff options
Diffstat (limited to 'arch/mn10300/kernel/gdb-io-ttysm.c')
| -rw-r--r-- | arch/mn10300/kernel/gdb-io-ttysm.c | 24 | 
1 files changed, 13 insertions, 11 deletions
diff --git a/arch/mn10300/kernel/gdb-io-ttysm.c b/arch/mn10300/kernel/gdb-io-ttysm.c index a560bbc3137..97dfda23342 100644 --- a/arch/mn10300/kernel/gdb-io-ttysm.c +++ b/arch/mn10300/kernel/gdb-io-ttysm.c @@ -58,9 +58,12 @@ void __init gdbstub_io_init(void)  	gdbstub_io_set_baud(115200);  	/* we want to get serial receive interrupts */ -	set_intr_level(gdbstub_port->rx_irq, GxICR_LEVEL_0); -	set_intr_level(gdbstub_port->tx_irq, GxICR_LEVEL_0); -	set_intr_stub(EXCEP_IRQ_LEVEL0, gdbstub_io_rx_handler); +	set_intr_level(gdbstub_port->rx_irq, +		NUM2GxICR_LEVEL(CONFIG_GDBSTUB_IRQ_LEVEL)); +	set_intr_level(gdbstub_port->tx_irq, +		NUM2GxICR_LEVEL(CONFIG_GDBSTUB_IRQ_LEVEL)); +	set_intr_stub(NUM2EXCEP_IRQ_LEVEL(CONFIG_GDBSTUB_IRQ_LEVEL), +		gdbstub_io_rx_handler);  	*gdbstub_port->rx_icr |= GxICR_ENABLE;  	tmp = *gdbstub_port->rx_icr; @@ -84,12 +87,7 @@ void __init gdbstub_io_init(void)  	tmp = *gdbstub_port->_control;  	/* permit level 0 IRQs only */ -	asm volatile( -		"	and %0,epsw	\n" -		"	or %1,epsw	\n" -		: -		: "i"(~EPSW_IM), "i"(EPSW_IE|EPSW_IM_1) -		); +	local_change_intr_mask_level(NUM2EPSW_IM(CONFIG_GDBSTUB_IRQ_LEVEL + 1));  }  /* @@ -184,6 +182,9 @@ int gdbstub_io_rx_char(unsigned char *_ch, int nonblock)  {  	unsigned ix;  	u8 ch, st; +#if defined(CONFIG_MN10300_WD_TIMER) +	int cpu; +#endif  	*_ch = 0xff; @@ -201,8 +202,9 @@ try_again:  		if (nonblock)  			return -EAGAIN;  #ifdef CONFIG_MN10300_WD_TIMER -		watchdog_alert_counter = 0; -#endif /* CONFIG_MN10300_WD_TIMER */ +	for (cpu = 0; cpu < NR_CPUS; cpu++) +		watchdog_alert_counter[cpu] = 0; +#endif  		goto try_again;  	}  |