diff options
| author | Alan Cox <[email protected]> | 2008-07-22 10:18:03 +0000 |
|---|---|---|
| committer | Linus Torvalds <[email protected]> | 2008-07-22 20:03:28 +0000 |
| commit | 9e98966c7bb94355689478bc84cc3e0c190f977e (patch) | |
| tree | 928aebbfee524a48aa94a3d3def5249c8846a79a /drivers/usb/class/cdc-acm.c | |
| parent | tty: Mark unconverted drivers as BROKEN (diff) | |
| download | kernel-9e98966c7bb94355689478bc84cc3e0c190f977e.tar.gz kernel-9e98966c7bb94355689478bc84cc3e0c190f977e.zip | |
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]>
Diffstat (limited to 'drivers/usb/class/cdc-acm.c')
| -rw-r--r-- | drivers/usb/class/cdc-acm.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/drivers/usb/class/cdc-acm.c b/drivers/usb/class/cdc-acm.c index 95ae6377d7e5..0725b1871f23 100644 --- a/drivers/usb/class/cdc-acm.c +++ b/drivers/usb/class/cdc-acm.c @@ -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) |
