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 <alan@redhat.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
@@ -609,7 +609,7 @@ static void stli_unthrottle(struct tty_struct *tty);
|
||||
static void stli_stop(struct tty_struct *tty);
|
||||
static void stli_start(struct tty_struct *tty);
|
||||
static void stli_flushbuffer(struct tty_struct *tty);
|
||||
static void stli_breakctl(struct tty_struct *tty, int state);
|
||||
static int stli_breakctl(struct tty_struct *tty, int state);
|
||||
static void stli_waituntilsent(struct tty_struct *tty, int timeout);
|
||||
static void stli_sendxchar(struct tty_struct *tty, char ch);
|
||||
static void stli_hangup(struct tty_struct *tty);
|
||||
@@ -1909,7 +1909,7 @@ static void stli_flushbuffer(struct tty_struct *tty)
|
||||
|
||||
/*****************************************************************************/
|
||||
|
||||
static void stli_breakctl(struct tty_struct *tty, int state)
|
||||
static int stli_breakctl(struct tty_struct *tty, int state)
|
||||
{
|
||||
struct stlibrd *brdp;
|
||||
struct stliport *portp;
|
||||
@@ -1917,15 +1917,16 @@ static void stli_breakctl(struct tty_struct *tty, int state)
|
||||
|
||||
portp = tty->driver_data;
|
||||
if (portp == NULL)
|
||||
return;
|
||||
return -EINVAL;
|
||||
if (portp->brdnr >= stli_nrbrds)
|
||||
return;
|
||||
return -EINVAL;
|
||||
brdp = stli_brds[portp->brdnr];
|
||||
if (brdp == NULL)
|
||||
return;
|
||||
return -EINVAL;
|
||||
|
||||
arg = (state == -1) ? BREAKON : BREAKOFF;
|
||||
stli_cmdwait(brdp, portp, A_BREAK, &arg, sizeof(long), 0);
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
Reference in New Issue
Block a user