From 55374d9689e1d44ada02483b859005137c65d8de Mon Sep 17 00:00:00 2001 From: =?utf8?q?=E6=9E=97=E8=BE=89=E8=BE=89?= Date: Thu, 13 May 2010 07:03:11 +0000 Subject: [PATCH] update some file --- drivers/rtc/rtc-HYM8563.c | 6 ------ drivers/rtc/rtc-HYM8563.h | 6 ++---- drivers/serial/rk2818_serial.c | 15 ++++++++++----- drivers/serial/rk2818_serial.h | 3 +++ drivers/spi/rk2818_spim.c | 10 ++++++---- 5 files changed, 21 insertions(+), 19 deletions(-) diff --git a/drivers/rtc/rtc-HYM8563.c b/drivers/rtc/rtc-HYM8563.c index 052a4e0a702a..1356e748927b 100644 --- a/drivers/rtc/rtc-HYM8563.c +++ b/drivers/rtc/rtc-HYM8563.c @@ -26,12 +26,6 @@ #define DBG(x...) #endif -static const unsigned short normal_i2c[] = { - HYM_ADDR , /* HYM8563 address */ - I2C_CLIENT_END -}; -I2C_CLIENT_INSMOD; /* defines addr_data */ - static int hym8563_i2c_read_regs(struct i2c_client *client, u8 reg, u8 buf[], unsigned len) { int ret; diff --git a/drivers/rtc/rtc-HYM8563.h b/drivers/rtc/rtc-HYM8563.h index 947b2705de9a..2095c8a89465 100644 --- a/drivers/rtc/rtc-HYM8563.h +++ b/drivers/rtc/rtc-HYM8563.h @@ -15,8 +15,6 @@ #ifndef _DRIVERS_HYM8563_H #define _DRIVERS_HYM8563_H -#define HYM_ADDR 0x51 - #define RTC_CTL1 0x00 #define RTC_CTL2 0x01 #define RTC_SEC 0x02 @@ -26,9 +24,9 @@ #define RTC_WEEK 0x06 #define RTC_MON 0x07 #define RTC_YEAR 0x08 -#define RTC_A_MIN 0x09 +#define RTC_A_MIN 0x09 #define RTC_A_HOUR 0x0A -#define RTC_A_DAY 0x0B +#define RTC_A_DAY 0x0B #define RTC_A_WEEK 0x0C #define RTC_CLKOUT 0x0D #define RTC_T_CTL 0x0E diff --git a/drivers/serial/rk2818_serial.c b/drivers/serial/rk2818_serial.c index 00bf8c770ca6..7dbb6a832a07 100644 --- a/drivers/serial/rk2818_serial.c +++ b/drivers/serial/rk2818_serial.c @@ -1,5 +1,5 @@ /* - * drivers/serial/rk2818_serial.c - driver for rk2818 RK2818 serial device and console + * drivers/serial/rk2818_serial.c - driver for rk2818 serial device and console * * Copyright (C) 2010 ROCKCHIP, Inc. * @@ -14,6 +14,9 @@ */ +#if defined(CONFIG_SERIAL_RK2818_CONSOLE) && defined(CONFIG_MAGIC_SYSRQ) +#define SUPPORT_SYSRQ +#endif #include #include @@ -42,10 +45,6 @@ struct rk2818_port { unsigned int imr; }; -#if defined(CONFIG_SERIAL_RK2818_CONSOLE) && defined(CONFIG_MAGIC_SYSRQ) -#define SUPPORT_SYSRQ -#endif - #define UART_TO_RK2818(uart_port) ((struct rk2818_port *) uart_port) #define RK2818_SERIAL_MAJOR TTY_MAJOR #define RK2818_SERIAL_MINOR 64 @@ -223,9 +222,15 @@ static void rk2818_rx_chars(struct uart_port *port) unsigned int ch, flag; while((rk2818_uart_read(port,UART_USR) & UART_RECEIVE_FIFO_NOT_EMPTY) == UART_RECEIVE_FIFO_NOT_EMPTY) { + u32 lsr = rk2818_uart_read(port, UART_LSR); ch = rk2818_uart_read(port,UART_RBR); flag = TTY_NORMAL; port->icount.rx++; + if (lsr & UART_BREAK_INT_BIT) { + port->icount.brk++; + if (uart_handle_break(port)) + continue; + } if (uart_handle_sysrq_char(port, ch)) { continue; diff --git a/drivers/serial/rk2818_serial.h b/drivers/serial/rk2818_serial.h index 627cf2baa9e9..c26bb764c3ca 100644 --- a/drivers/serial/rk2818_serial.h +++ b/drivers/serial/rk2818_serial.h @@ -119,4 +119,7 @@ #define UART_TRANSMIT_FIFO_NOT_FULL (1<<1) #define UART_USR_BUSY (1) +/*UART_LSR Line Status Register*/ +#define UART_BREAK_INT_BIT (1<<4)/*break Interrupt bit*/ + #endif /* __DRIVERS_SERIAL_RK2818_SERIAL_H */ diff --git a/drivers/spi/rk2818_spim.c b/drivers/spi/rk2818_spim.c index cd6a2fbc6fd2..bc586df782a2 100644 --- a/drivers/spi/rk2818_spim.c +++ b/drivers/spi/rk2818_spim.c @@ -543,7 +543,7 @@ static void pump_transfers(unsigned long data) | (chip->tmode << SPI_TMOD_OFFSET); } message->state = RUNNING_STATE; - + /* * Adjust transfer mode if necessary. Requires platform dependent * chipselect mechanism. @@ -873,7 +873,7 @@ static int __init rk2818_spim_probe(struct platform_device *pdev) struct resource *regs; struct rk2818_spi *dws; struct spi_master *master; - int irq; + int irq; int ret; gpio_request(RK2818_PIN_PB0, "rk2818_spim"); @@ -898,8 +898,10 @@ static int __init rk2818_spim_probe(struct platform_device *pdev) if (IS_ERR(dws->clock_spim)) return PTR_ERR(dws->clock_spim); dws->regs = ioremap(regs->start, (regs->end - regs->start) + 1); - if (!dws->regs) - goto exit; + if (!dws->regs){ + release_mem_region(regs->start, (regs->end - regs->start) + 1); + return -EBUSY; + } dws->irq = irq; dws->master = master; dws->type = SSI_MOTO_SPI; -- 2.34.1