Message ID | 20230217094403.1574468-2-fe@dev.tdt.de |
---|---|
State | New |
Headers | show |
Series | leds: ledtrig-tty: add tty_led_mode xtension | expand |
On Fri, Feb 17, 2023 at 10:44:02AM +0100, Florian Eckert wrote: > For a given struct tty_struct, this provides the appropriate tty line > state flags needed to add more modes to the ledtrig-tty trigger. > > The new function is then used to get via tty_tiocmget() the different tty > line states. > > Signed-off-by: Florian Eckert <fe@dev.tdt.de> > --- > drivers/tty/tty_io.c | 30 +++++++++++++++++++++++------- > include/linux/tty.h | 1 + > 2 files changed, 24 insertions(+), 7 deletions(-) > > diff --git a/drivers/tty/tty_io.c b/drivers/tty/tty_io.c > index 3149114bf130..f049ab8b3362 100644 > --- a/drivers/tty/tty_io.c > +++ b/drivers/tty/tty_io.c > @@ -2493,26 +2493,42 @@ static int send_break(struct tty_struct *tty, unsigned int duration) > return retval; > } > > +/* > + * tty_get_mget - get modem status > + * @tty: tty device > + * > + * Obtain the modem status bits from the tty driver if the feature > + * is supported. Return -ENOTTY if it is not available. Please make this proper kernel doc, the first comment line has to be /** And you didn't mark -ENOTTY properly here either :( > + */ > +int tty_get_mget(struct tty_struct *tty) > +{ > + int retval = -ENOTTY; > + > + if (tty->ops->tiocmget) > + retval = tty->ops->tiocmget(tty); > + > + return retval; > +} > +EXPORT_SYMBOL_GPL(tty_get_mget); > + > /** > * tty_tiocmget - get modem status > * @tty: tty device > * @p: pointer to result > * > * Obtain the modem status bits from the tty driver if the feature is > - * supported. Return -%ENOTTY if it is not available. > + * supported. Why did you remove the return value statement from the documentation here? It's still true, right? thanks, greg k-h
diff --git a/drivers/tty/tty_io.c b/drivers/tty/tty_io.c index 3149114bf130..f049ab8b3362 100644 --- a/drivers/tty/tty_io.c +++ b/drivers/tty/tty_io.c @@ -2493,26 +2493,42 @@ static int send_break(struct tty_struct *tty, unsigned int duration) return retval; } +/* + * tty_get_mget - get modem status + * @tty: tty device + * + * Obtain the modem status bits from the tty driver if the feature + * is supported. Return -ENOTTY if it is not available. + */ +int tty_get_mget(struct tty_struct *tty) +{ + int retval = -ENOTTY; + + if (tty->ops->tiocmget) + retval = tty->ops->tiocmget(tty); + + return retval; +} +EXPORT_SYMBOL_GPL(tty_get_mget); + /** * tty_tiocmget - get modem status * @tty: tty device * @p: pointer to result * * Obtain the modem status bits from the tty driver if the feature is - * supported. Return -%ENOTTY if it is not available. + * supported. * * Locking: none (up to the driver) */ static int tty_tiocmget(struct tty_struct *tty, int __user *p) { - int retval = -ENOTTY; + int retval; - if (tty->ops->tiocmget) { - retval = tty->ops->tiocmget(tty); + retval = tty_get_mget(tty); + if (retval >= 0) + retval = put_user(retval, p); - if (retval >= 0) - retval = put_user(retval, p); - } return retval; } diff --git a/include/linux/tty.h b/include/linux/tty.h index 730c3301d710..825186c0fec1 100644 --- a/include/linux/tty.h +++ b/include/linux/tty.h @@ -421,6 +421,7 @@ int tty_unthrottle_safe(struct tty_struct *tty); int tty_do_resize(struct tty_struct *tty, struct winsize *ws); int tty_get_icount(struct tty_struct *tty, struct serial_icounter_struct *icount); +int tty_get_mget(struct tty_struct *tty); int is_current_pgrp_orphaned(void); void tty_hangup(struct tty_struct *tty); void tty_vhangup(struct tty_struct *tty);
For a given struct tty_struct, this provides the appropriate tty line state flags needed to add more modes to the ledtrig-tty trigger. The new function is then used to get via tty_tiocmget() the different tty line states. Signed-off-by: Florian Eckert <fe@dev.tdt.de> --- drivers/tty/tty_io.c | 30 +++++++++++++++++++++++------- include/linux/tty.h | 1 + 2 files changed, 24 insertions(+), 7 deletions(-)