diff options
| author | Allen Martin <amartin@nvidia.com> | 2012-12-19 13:02:36 -0800 | 
|---|---|---|
| committer | Allen Martin <amartin@nvidia.com> | 2012-12-19 13:02:36 -0800 | 
| commit | a098cf41fdb2a6607c675f7fe4f3164617c9367e (patch) | |
| tree | b37acb36f65909e6f74cc537d73efd883a1485a6 /drivers/serial/serial_sh.c | |
| parent | b8a7c467960ffb4d5a5e1eef5f7783fb6f594542 (diff) | |
| parent | 095728803eedfce850a2f85828f79500cb09979e (diff) | |
| download | olio-uboot-2014.01-a098cf41fdb2a6607c675f7fe4f3164617c9367e.tar.xz olio-uboot-2014.01-a098cf41fdb2a6607c675f7fe4f3164617c9367e.zip | |
Merge remote-tracking branch 'u-boot/master' into u-boot-arm-merged
Conflicts:
	README
	arch/arm/cpu/armv7/exynos/clock.c
	board/samsung/universal_c210/universal.c
	drivers/misc/Makefile
	drivers/power/power_fsl.c
	include/configs/mx35pdk.h
	include/configs/mx53loco.h
	include/configs/seaboard.h
Diffstat (limited to 'drivers/serial/serial_sh.c')
| -rw-r--r-- | drivers/serial/serial_sh.c | 20 | 
1 files changed, 13 insertions, 7 deletions
| diff --git a/drivers/serial/serial_sh.c b/drivers/serial/serial_sh.c index 3c931d021..ee1f2d768 100644 --- a/drivers/serial/serial_sh.c +++ b/drivers/serial/serial_sh.c @@ -117,6 +117,14 @@ static int serial_rx_fifo_level(void)  	return scif_rxfill(&sh_sci);  } +static void handle_error(void) +{ +	sci_in(&sh_sci, SCxSR); +	sci_out(&sh_sci, SCxSR, SCxSR_ERROR_CLEAR(&sh_sci)); +	sci_in(&sh_sci, SCLSR); +	sci_out(&sh_sci, SCLSR, 0x00); +} +  void serial_raw_putc(const char c)  {  	while (1) { @@ -138,16 +146,14 @@ static void sh_serial_putc(const char c)  static int sh_serial_tstc(void)  { +	if (sci_in(&sh_sci, SCxSR) & SCIF_ERRORS) { +		handle_error(); +		return 0; +	} +  	return serial_rx_fifo_level() ? 1 : 0;  } -void handle_error(void) -{ -	sci_in(&sh_sci, SCxSR); -	sci_out(&sh_sci, SCxSR, SCxSR_ERROR_CLEAR(&sh_sci)); -	sci_in(&sh_sci, SCLSR); -	sci_out(&sh_sci, SCLSR, 0x00); -}  int serial_getc_check(void)  { |