char: switch gs, cyclades and esp to return int for put_char
PATCH 1/1 char: switch gs, cyclades and esp to return int for put_char
Signed-off-by Alan Cox <[email protected]>
drivers/char/cyclades.c +5 -4
@@ -2815,7 +2815,7 @@* done stuffing characters into the driver. If there is no room * in the queue, the character is ignored. */ -static void cy_put_char (struct tty_struct *tty,unsigned char ch) +static int cy_put_char (struct tty_struct *tty,unsigned char ch) {struct cyclades_port *info = tty->driver_data;unsigned long flags;
@@ -2825,15 +2825,15 @@#endif if (serial_paranoia_check (info, tty->name,"cy_put_char" )) -return ; +return 0 ;if (!info->xmit_buf) -return ; +return 0 ;spin_lock_irqsave (&info->card->card_lock, flags);if (info->xmit_cnt >= (int )(SERIAL_XMIT_SIZE -1 )) {spin_unlock_irqrestore (&info->card->card_lock, flags); -return ; +return 0 ; } info->xmit_buf[info->xmit_head++] = ch;
@@ -2842,6 +2842,7 @@ info->idle_stats.xmit_bytes++; info->idle_stats.xmit_idle = jiffies;spin_unlock_irqrestore (&info->card->card_lock, flags); +return 1 ; }/* cy_put_char */ /*
drivers/char/esp.c +6 -3
@@ -1156,24 +1156,27 @@spin_unlock_irqrestore (&info->lock, flags); } -static void rs_put_char (struct tty_struct *tty,unsigned char ch) +static int rs_put_char (struct tty_struct *tty,unsigned char ch) {struct esp_struct *info = (struct esp_struct *)tty->driver_data;unsigned long flags; +int ret =0 ;if (serial_paranoia_check (info, tty->name,"rs_put_char" )) -return ; +return 0 ;if (!info->xmit_buf) -return ; +return 0 ;spin_lock_irqsave (&info->lock, flags);if (info->xmit_cnt <ESP_XMIT_SIZE -1 ) { info->xmit_buf[info->xmit_head++] = ch; info->xmit_head &=ESP_XMIT_SIZE -1 ; info->xmit_cnt++; + ret =1 ; }spin_unlock_irqrestore (&info->lock, flags); +return ret; }static void rs_flush_chars (struct tty_struct *tty)
drivers/char/generic_serial.c +6 -5
@@ -49,19 +49,19 @@module_param (gs_debug, int,0644 ); -void gs_put_char (struct tty_struct * tty,unsigned char ch) +int gs_put_char (struct tty_struct * tty,unsigned char ch) {struct gs_port *port;func_enter (); -if (!tty)return ; +if (!tty)return 0 ; port = tty->driver_data; -if (!port)return ; +if (!port)return 0 ; -if (! (port->flags &ASYNC_INITIALIZED ))return ; +if (! (port->flags &ASYNC_INITIALIZED ))return 0 ;/* Take a lock on the serial tranmit buffer! */ mutex_lock (& port->port_write_mutex);
@@ -69,7 +69,7 @@if (port->xmit_cnt >=SERIAL_XMIT_SIZE -1 ) {/* Sorry, buffer is full, drop character. Update statistics???? -- REW */ mutex_unlock (&port->port_write_mutex); -return ; +return 0 ; } port->xmit_buf[port->xmit_head++] = ch;
@@ -78,6 +78,7 @@mutex_unlock (&port->port_write_mutex);func_exit (); +return 1 ; }
include/linux/generic_serial.h +1 -1
@@ -78,7 +78,7 @@#define GS_DEBUG_WRITE 0x00000040#ifdef __KERNEL__ -void gs_put_char (struct tty_struct *tty,unsigned char ch); +int gs_put_char (struct tty_struct *tty,unsigned char ch);int gs_write (struct tty_struct *tty,const unsigned char *buf,int count);int gs_write_room (struct tty_struct *tty);