mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-28 02:32:09 -04:00
tty: rework break handling
Some hardware needs to do break handling itself and may have partial support only. Make break_ctl return an error code. Add a tty driver flag so you can indicate driver hardware side break support. Signed-off-by: Alan Cox <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
This commit is contained in:
parent
abbe629ae4
commit
9e98966c7b
20 changed files with 97 additions and 84 deletions
|
|
@ -732,13 +732,16 @@ static void acm_tty_unthrottle(struct tty_struct *tty)
|
|||
tasklet_schedule(&acm->urb_task);
|
||||
}
|
||||
|
||||
static void acm_tty_break_ctl(struct tty_struct *tty, int state)
|
||||
static int acm_tty_break_ctl(struct tty_struct *tty, int state)
|
||||
{
|
||||
struct acm *acm = tty->driver_data;
|
||||
int retval;
|
||||
if (!ACM_READY(acm))
|
||||
return;
|
||||
if (acm_send_break(acm, state ? 0xffff : 0))
|
||||
return -EINVAL;
|
||||
retval = acm_send_break(acm, state ? 0xffff : 0);
|
||||
if (retval < 0)
|
||||
dbg("send break failed");
|
||||
return retval;
|
||||
}
|
||||
|
||||
static int acm_tty_tiocmget(struct tty_struct *tty, struct file *file)
|
||||
|
|
|
|||
|
|
@ -395,7 +395,7 @@ static void serial_set_termios(struct tty_struct *tty, struct ktermios *old)
|
|||
tty_termios_copy_hw(tty->termios, old);
|
||||
}
|
||||
|
||||
static void serial_break(struct tty_struct *tty, int break_state)
|
||||
static int serial_break(struct tty_struct *tty, int break_state)
|
||||
{
|
||||
struct usb_serial_port *port = tty->driver_data;
|
||||
|
||||
|
|
@ -409,6 +409,7 @@ static void serial_break(struct tty_struct *tty, int break_state)
|
|||
port->serial->type->break_ctl(tty, break_state);
|
||||
unlock_kernel();
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int serial_read_proc(char *page, char **start, off_t off, int count,
|
||||
|
|
|
|||
Loading…
Reference in a new issue