nozomi DTR/RTS
PATCH 1/1 nozomi DTR/RTS
Hi,
I noticed that DTR toggling doesn't work with the nozomi driver (TIOCMBIS/TIOCMBIC ioctls have no effect). This is a nuisance because that makes it hard to get the modem back in command mode.
Attached patch adds a tty_ops->tiocmset function that makes it work.
Should we also rip out the TIOCMBIS/TIOCMBIC handling in ntty_ioctl()? It doesn't seem to be used anyway.
Patch is against 2.6.23-rc3-mm1, but not tested with that. I tested it with 2.6.18.4 and the pharscape.org driver.
Eric
drivers/char/nozomi.c renamed from drivers/char/nozomi.c.orig +9 -4
@@ -1930,12 +1930,16 @@ }/* Sets io controls parameters */ -static int ntty_tiocmset (struct tty_struct *tty,struct file *file,u32 arg) +static int ntty_tiocmset (struct tty_struct *tty,struct file *file, +unsigned int set,unsigned int clear) {struct port *port = (struct port *)tty->driver_data; -set_rts (port->tty_index, (arg &TIOCM_RTS ) ?1 :0 ); -set_dtr (port->tty_index, (arg &TIOCM_DTR ) ?1 :0 ); +if (set &TIOCM_RTS )set_rts (port->tty_index,1 ); +else if (clear &TIOCM_RTS )set_rts (port->tty_index,0 ); + +if (set &TIOCM_DTR )set_dtr (port->tty_index,1 ); +else if (clear &TIOCM_DTR )set_dtr (port->tty_index,0 );return 0 ; }
@@ -2039,7 +2043,7 @@spin_unlock_irqrestore (&dc->spin_mutex, flags);break ;case TIOCMSET : - rval =ntty_tiocmset (tty, file, arg); + rval =ntty_tiocmset (tty, file, arg, ~arg);break ;case TIOCMBIC :if (get_user (mask, (unsigned long __user *)arg))
@@ -2152,6 +2156,7 @@ .set_termios = ntty_set_termios, .chars_in_buffer = ntty_chars_in_buffer, .put_char = ntty_put_char, + .tiocmset = ntty_tiocmset, };/* Initializes the tty */
Quoted 4 lines
Attached patch adds a
tty_ops->tiocmsetfunction that makes it work.Should we also rip out the TIOCMBIS/TIOCMBIC handling in
ntty_ioctl()? It doesn't seem to be used anyway.
Yes - its bogus.
Quoted 5 lines · Eric Lammerts
Hi,
I noticed that DTR toggling doesn't work with the nozomi driver (TIOCMBIS/TIOCMBIC ioctls have no effect). This is a nuisance because that makes it hard to get the modem back in command mode.
Quoted 7 lines
Attached patch adds a
tty_ops->tiocmsetfunction that makes it work.Should we also rip out the TIOCMBIS/TIOCMBIC handling in
ntty_ioctl()? It doesn't seem to be used anyway.Patch is against 2.6.23-rc3-mm1, but not tested with that. I tested it with 2.6.18.4 and the pharscape.org driver.
Thanks, I've updated the driver in -mm with these changes.
greg k-h