* [PATCH v5 0/2] leds: ledtrig-tty: add tty_led_mode xtension @ 2023-02-21 8:18 Florian Eckert 2023-02-21 8:19 ` [PATCH v5 1/2] tty: new helper function tty_get_mget Florian Eckert 2023-02-21 8:19 ` [PATCH v5 2/2] trigger: ledtrig-tty: add additional modes Florian Eckert 0 siblings, 2 replies; 7+ messages in thread From: Florian Eckert @ 2023-02-21 8:18 UTC (permalink / raw) To: u.kleine-koenig, gregkh, jirislaby, pavel, lee Cc: linux-kernel, linux-leds, Eckert.Florian Hello, here commes v5 of this series to add additional tty_led_modes. v5: Changes compared to the v4 patchset with 20230220152038.3877596-1-fe@dev.tdt.de are. Sorry for the inconvenience, but I sent the wrong patch for ledtrig-tty.c in v4. The v5 patchset now includes all the changes I specified in the v4 patchset. v4: Changes compared to the v3 patchset with 20230220093739.320478-1-fe@dev.tdt.de are. Addressed review comments by Jiri Slaby are: ledtrig-tty.c: - Do not use __TTY_LED_MAX pattern us instead __TTY_LED_LAST = TTY_LED_RNG - Move declartion and assignment into one singel line - Use __TTY_LED_LAST pattern, to simplify tty_mode_show and tty_mode_store handling v3: Changes compared to the v2 patchset with 20230217094403.1574468-1-fe@dev.tdt.de are. Addressed review comments by Greg K-H are: tty.h: - Fix first comment line and remark -%ENOTTY for the new function 'tty_get_mget' to make a proper kernel doc. - Add the return value -%ENOTTY again, I thought it was no longer needed. v2: Changes compared to the initial patchset with 20230213140638.620206-1-fe@dev.tdt.de are. Addressed review comments by Jiri Slaby are: tty.h: - Fix compilation error because of wrong rebaseing - Remove empty lines - Use new 'tty_get_mget' in 'tty_tiocmget' ledtrig-tty.c: - Update commit description - Use enum for tty_led_mod in struct ledtrig_tty_date - Rename sysfs file from 'mode' to 'tty_led_mode' - Change tty_led_mode show function to use loop instead of switch/case - Change tty_led_mode store function to use loop instead of switch/case - Check return value of function tty_get_mget Florian Eckert (2): tty: new helper function tty_get_mget trigger: ledtrig-tty: add additional modes .../ABI/testing/sysfs-class-led-trigger-tty | 16 ++ drivers/leds/trigger/ledtrig-tty.c | 145 ++++++++++++++++-- drivers/tty/tty_io.c | 28 +++- include/linux/tty.h | 1 + 4 files changed, 169 insertions(+), 21 deletions(-) -- 2.30.2 ^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH v5 1/2] tty: new helper function tty_get_mget 2023-02-21 8:18 [PATCH v5 0/2] leds: ledtrig-tty: add tty_led_mode xtension Florian Eckert @ 2023-02-21 8:19 ` Florian Eckert 2023-02-21 8:19 ` [PATCH v5 2/2] trigger: ledtrig-tty: add additional modes Florian Eckert 1 sibling, 0 replies; 7+ messages in thread From: Florian Eckert @ 2023-02-21 8:19 UTC (permalink / raw) To: u.kleine-koenig, gregkh, jirislaby, pavel, lee Cc: linux-kernel, linux-leds, Eckert.Florian 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 | 28 ++++++++++++++++++++++------ include/linux/tty.h | 1 + 2 files changed, 23 insertions(+), 6 deletions(-) diff --git a/drivers/tty/tty_io.c b/drivers/tty/tty_io.c index 3149114bf130..a068b03a0828 100644 --- a/drivers/tty/tty_io.c +++ b/drivers/tty/tty_io.c @@ -2493,6 +2493,24 @@ 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 @@ -2505,14 +2523,12 @@ static int send_break(struct tty_struct *tty, unsigned int duration) */ 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); -- 2.30.2 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH v5 2/2] trigger: ledtrig-tty: add additional modes 2023-02-21 8:18 [PATCH v5 0/2] leds: ledtrig-tty: add tty_led_mode xtension Florian Eckert 2023-02-21 8:19 ` [PATCH v5 1/2] tty: new helper function tty_get_mget Florian Eckert @ 2023-02-21 8:19 ` Florian Eckert 2023-02-22 0:02 ` kernel test robot 1 sibling, 1 reply; 7+ messages in thread From: Florian Eckert @ 2023-02-21 8:19 UTC (permalink / raw) To: u.kleine-koenig, gregkh, jirislaby, pavel, lee Cc: linux-kernel, linux-leds, Eckert.Florian Add additional modes to trigger the selected LED. The following modes are supported: Tx/Rx: Flash LED on data transmission (default) CTS: DCE Ready to accept data from the DTE. DSR: DCE is ready to receive and send data. CAR: DCE is receiving a carrier from a remote DTE. RNG: DCE has detected an incoming ring signal. The mode can be changed for example with the following command: echo "CTS" > /sys/class/leds/<led>/mode This would turn on the LED, when the DTE(modem) signals the DCE that it is ready to accept data. Signed-off-by: Florian Eckert <fe@dev.tdt.de> --- .../ABI/testing/sysfs-class-led-trigger-tty | 16 ++ drivers/leds/trigger/ledtrig-tty.c | 145 ++++++++++++++++-- 2 files changed, 146 insertions(+), 15 deletions(-) diff --git a/Documentation/ABI/testing/sysfs-class-led-trigger-tty b/Documentation/ABI/testing/sysfs-class-led-trigger-tty index 2bf6b24e781b..31d62a5ae095 100644 --- a/Documentation/ABI/testing/sysfs-class-led-trigger-tty +++ b/Documentation/ABI/testing/sysfs-class-led-trigger-tty @@ -4,3 +4,19 @@ KernelVersion: 5.10 Contact: linux-leds@vger.kernel.org Description: Specifies the tty device name of the triggering tty + +What: /sys/class/leds/<led>/mode +Date: January 2023 +KernelVersion: 6.3 +Description: + Specifies the operating to trigger the LED. + The following operating modes are supported: + Tx/Rx: Flash LED on data transmission (default) + CTS: DCE Ready to accept data from the DTE. + LED on if line is high. + DSR: DCE is ready to receive and send data. + LED on if line is high. + CAR: DCE is receiving a carrier from a remote DTE. + LED on if line is high. + RNG: DCE has detected an incoming ring signal. + LED on if line is high. diff --git a/drivers/leds/trigger/ledtrig-tty.c b/drivers/leds/trigger/ledtrig-tty.c index f62db7e520b5..7c4c171c8745 100644 --- a/drivers/leds/trigger/ledtrig-tty.c +++ b/drivers/leds/trigger/ledtrig-tty.c @@ -7,6 +7,15 @@ #include <linux/tty.h> #include <uapi/linux/serial.h> +enum tty_led_mode { + TTY_LED_CNT, + TTY_LED_CTS, + TTY_LED_DSR, + TTY_LED_CAR, + TTY_LED_RNG, + __TTY_LED_LAST = TTY_LED_RNG +}; + struct ledtrig_tty_data { struct led_classdev *led_cdev; struct delayed_work dwork; @@ -14,6 +23,15 @@ struct ledtrig_tty_data { const char *ttyname; struct tty_struct *tty; int rx, tx; + enum tty_led_mode mode; +}; + +static const char * const mode[] = { + [TTY_LED_CNT] = "Tx/Rx", // Trasmit Data / Receive Data + [TTY_LED_CTS] = "CTS", // CTS Clear To Send + [TTY_LED_DSR] = "DSR", // DSR Data Set Ready + [TTY_LED_CAR] = "CAR", // CAR Data Carrier Detect (DCD) + [TTY_LED_RNG] = "RNG", // RNG Ring Indicator (RI) }; static void ledtrig_tty_restart(struct ledtrig_tty_data *trigger_data) @@ -21,6 +39,70 @@ static void ledtrig_tty_restart(struct ledtrig_tty_data *trigger_data) schedule_delayed_work(&trigger_data->dwork, 0); } +static ssize_t ledtrig_tty_mode_show(char *buf, enum tty_led_mode tty_mode) +{ + int len = 0; + int i; + + for (i = 0; i <= __TTY_LED_LAST; i++) { + bool hit = tty_mode == i; + bool last = i == __TTY_LED_LAST; + + len += sysfs_emit_at(buf, len, "%s%s%s%s", + hit ? "[" : "", + mode[i], + hit ? "]" : "", + last ? "" : " "); + } + + len += sysfs_emit_at(buf, len, "\n"); + + return len; +} + +static ssize_t tty_led_mode_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + struct ledtrig_tty_data *trigger_data = led_trigger_get_drvdata(dev); + enum tty_led_mode tty_mode; + + mutex_lock(&trigger_data->mutex); + tty_mode = trigger_data->mode; + mutex_unlock(&trigger_data->mutex); + + return ledtrig_tty_mode_show(buf, tty_mode); +} + +static ssize_t tty_led_mode_store(struct device *dev, + struct device_attribute *attr, const char *buf, + size_t size) +{ + struct ledtrig_tty_data *trigger_data = led_trigger_get_drvdata(dev); + ssize_t ret = size; + enum tty_led_mode tty_mode = __TTY_LED_LAST; + int i; + + /* Check for new line in string*/ + if (size > 0 && buf[size - 1] == '\n') + size -= 1; + + for (i = 0; i <= __TTY_LED_LAST; i++) + if (strncmp(buf, mode[i], size) == 0) { + tty_mode = i; + break; + } + + if (i > __TTY_LED_LAST) + return -EINVAL; + + mutex_lock(&trigger_data->mutex); + trigger_data->mode = tty_mode; + mutex_unlock(&trigger_data->mutex); + + return ret; +} +static DEVICE_ATTR_RW(tty_led_mode); + static ssize_t ttyname_show(struct device *dev, struct device_attribute *attr, char *buf) { @@ -76,6 +158,18 @@ static ssize_t ttyname_store(struct device *dev, } static DEVICE_ATTR_RW(ttyname); +static void ledtrig_tty_flags(struct ledtrig_tty_data *trigger_data, + unsigned int flag) +{ + unsigned int status; + + status = tty_get_mget(trigger_data->tty); + if (status & flag) + led_set_brightness_sync(trigger_data->led_cdev, LED_ON); + else + led_set_brightness_sync(trigger_data->led_cdev, LED_OFF); +} + static void ledtrig_tty_work(struct work_struct *work) { struct ledtrig_tty_data *trigger_data = @@ -113,21 +207,38 @@ static void ledtrig_tty_work(struct work_struct *work) trigger_data->tty = tty; } - ret = tty_get_icount(trigger_data->tty, &icount); - if (ret) { - dev_info(trigger_data->tty->dev, "Failed to get icount, stopped polling\n"); - mutex_unlock(&trigger_data->mutex); - return; - } - - if (icount.rx != trigger_data->rx || - icount.tx != trigger_data->tx) { - led_set_brightness_sync(trigger_data->led_cdev, LED_ON); - - trigger_data->rx = icount.rx; - trigger_data->tx = icount.tx; - } else { - led_set_brightness_sync(trigger_data->led_cdev, LED_OFF); + switch (trigger_data->mode) { + case TTY_LED_CTS: + ledtrig_tty_flags(trigger_data, TIOCM_CTS); + break; + case TTY_LED_DSR: + ledtrig_tty_flags(trigger_data, TIOCM_DSR); + break; + case TTY_LED_CAR: + ledtrig_tty_flags(trigger_data, TIOCM_CAR); + break; + case TTY_LED_RNG: + ledtrig_tty_flags(trigger_data, TIOCM_RNG); + break; + case TTY_LED_CNT: + default: + ret = tty_get_icount(trigger_data->tty, &icount); + if (ret) { + dev_info(trigger_data->tty->dev, "Failed to get icount, stopped polling\n"); + mutex_unlock(&trigger_data->mutex); + return; + } + + if (icount.rx != trigger_data->rx || + icount.tx != trigger_data->tx) { + led_set_brightness_sync(trigger_data->led_cdev, LED_ON); + + trigger_data->rx = icount.rx; + trigger_data->tx = icount.tx; + } else { + led_set_brightness_sync(trigger_data->led_cdev, LED_OFF); + } + break; } out: @@ -137,6 +248,7 @@ static void ledtrig_tty_work(struct work_struct *work) static struct attribute *ledtrig_tty_attrs[] = { &dev_attr_ttyname.attr, + &dev_attr_tty_led_mode.attr, NULL }; ATTRIBUTE_GROUPS(ledtrig_tty); @@ -149,6 +261,9 @@ static int ledtrig_tty_activate(struct led_classdev *led_cdev) if (!trigger_data) return -ENOMEM; + /* set default mode */ + trigger_data->mode = TTY_LED_CNT; + led_set_trigger_data(led_cdev, trigger_data); INIT_DELAYED_WORK(&trigger_data->dwork, ledtrig_tty_work); -- 2.30.2 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH v5 2/2] trigger: ledtrig-tty: add additional modes 2023-02-21 8:19 ` [PATCH v5 2/2] trigger: ledtrig-tty: add additional modes Florian Eckert @ 2023-02-22 0:02 ` kernel test robot 2023-02-22 6:07 ` Florian Eckert 0 siblings, 1 reply; 7+ messages in thread From: kernel test robot @ 2023-02-22 0:02 UTC (permalink / raw) To: Florian Eckert, u.kleine-koenig, gregkh, jirislaby, pavel, lee Cc: oe-kbuild-all, linux-kernel, linux-leds, Eckert.Florian Hi Florian, Thank you for the patch! Perhaps something to improve: [auto build test WARNING on tty/tty-testing] [also build test WARNING on tty/tty-next tty/tty-linus staging/staging-testing staging/staging-next staging/staging-linus pavel-leds/for-next linus/master v6.2 next-20230221] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch#_base_tree_information] url: https://github.com/intel-lab-lkp/linux/commits/Florian-Eckert/tty-new-helper-function-tty_get_mget/20230221-162126 base: https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty.git tty-testing patch link: https://lore.kernel.org/r/20230221081901.15557-3-fe%40dev.tdt.de patch subject: [PATCH v5 2/2] trigger: ledtrig-tty: add additional modes reproduce: # https://github.com/intel-lab-lkp/linux/commit/445b7555bccd279bf106995ee42f5dbef2e97c8b git remote add linux-review https://github.com/intel-lab-lkp/linux git fetch --no-tags linux-review Florian-Eckert/tty-new-helper-function-tty_get_mget/20230221-162126 git checkout 445b7555bccd279bf106995ee42f5dbef2e97c8b make menuconfig # enable CONFIG_COMPILE_TEST, CONFIG_WARN_MISSING_DOCUMENTS, CONFIG_WARN_ABI_ERRORS make htmldocs If you fix the issue, kindly add following tag where applicable | Reported-by: kernel test robot <lkp@intel.com> | Link: https://lore.kernel.org/oe-kbuild-all/202302220740.2RKDHnof-lkp@intel.com/ All warnings (new ones prefixed by >>): >> Documentation/ABI/testing/sysfs-class-led-trigger-tty:9: WARNING: Unexpected indentation. >> Documentation/ABI/testing/sysfs-class-led-trigger-tty:9: WARNING: Block quote ends without a blank line; unexpected unindent. vim +9 Documentation/ABI/testing/sysfs-class-led-trigger-tty > 9 Date: January 2023 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH v5 2/2] trigger: ledtrig-tty: add additional modes 2023-02-22 0:02 ` kernel test robot @ 2023-02-22 6:07 ` Florian Eckert 2023-02-22 7:16 ` Jiri Slaby 0 siblings, 1 reply; 7+ messages in thread From: Florian Eckert @ 2023-02-22 6:07 UTC (permalink / raw) To: kernel test robot Cc: u.kleine-koenig, gregkh, jirislaby, pavel, lee, oe-kbuild-all, linux-kernel, linux-leds, Eckert.Florian On 2023-02-22 01:02, kernel test robot wrote: > Hi Florian, > > Thank you for the patch! Perhaps something to improve: > > [auto build test WARNING on tty/tty-testing] > [also build test WARNING on tty/tty-next tty/tty-linus > staging/staging-testing staging/staging-next staging/staging-linus > pavel-leds/for-next linus/master v6.2 next-20230221] > [If your patch is applied to the wrong git tree, kindly drop us a note. > And when submitting patch, we suggest to use '--base' as documented in > https://git-scm.com/docs/git-format-patch#_base_tree_information] > > url: > https://github.com/intel-lab-lkp/linux/commits/Florian-Eckert/tty-new-helper-function-tty_get_mget/20230221-162126 > base: https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty.git > tty-testing > patch link: > https://lore.kernel.org/r/20230221081901.15557-3-fe%40dev.tdt.de > patch subject: [PATCH v5 2/2] trigger: ledtrig-tty: add additional > modes > reproduce: > # > https://github.com/intel-lab-lkp/linux/commit/445b7555bccd279bf106995ee42f5dbef2e97c8b > git remote add linux-review > https://github.com/intel-lab-lkp/linux > git fetch --no-tags linux-review > Florian-Eckert/tty-new-helper-function-tty_get_mget/20230221-162126 > git checkout 445b7555bccd279bf106995ee42f5dbef2e97c8b > make menuconfig > # enable CONFIG_COMPILE_TEST, CONFIG_WARN_MISSING_DOCUMENTS, > CONFIG_WARN_ABI_ERRORS > make htmldocs > > If you fix the issue, kindly add following tag where applicable > | Reported-by: kernel test robot <lkp@intel.com> > | Link: > https://lore.kernel.org/oe-kbuild-all/202302220740.2RKDHnof-lkp@intel.com/ > > All warnings (new ones prefixed by >>): > >>> Documentation/ABI/testing/sysfs-class-led-trigger-tty:9: WARNING: >>> Unexpected indentation. >>> Documentation/ABI/testing/sysfs-class-led-trigger-tty:9: WARNING: >>> Block quote ends without a blank line; unexpected unindent. > > vim +9 Documentation/ABI/testing/sysfs-class-led-trigger-tty > > > 9 Date: January 2023 I apologies for the question! But I don't know what the test buildbot here wants from me. I've looked at the other files and I can't find anything that stands out. -- Regards Florian ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH v5 2/2] trigger: ledtrig-tty: add additional modes 2023-02-22 6:07 ` Florian Eckert @ 2023-02-22 7:16 ` Jiri Slaby 2023-02-22 7:21 ` Jiri Slaby 0 siblings, 1 reply; 7+ messages in thread From: Jiri Slaby @ 2023-02-22 7:16 UTC (permalink / raw) To: Florian Eckert, kernel test robot Cc: u.kleine-koenig, gregkh, pavel, lee, oe-kbuild-all, linux-kernel, linux-leds, Eckert.Florian On 22. 02. 23, 7:07, Florian Eckert wrote: > > > On 2023-02-22 01:02, kernel test robot wrote: >> Hi Florian, >> >> Thank you for the patch! Perhaps something to improve: >> >> [auto build test WARNING on tty/tty-testing] >> [also build test WARNING on tty/tty-next tty/tty-linus >> staging/staging-testing staging/staging-next staging/staging-linus >> pavel-leds/for-next linus/master v6.2 next-20230221] >> [If your patch is applied to the wrong git tree, kindly drop us a note. >> And when submitting patch, we suggest to use '--base' as documented in >> https://git-scm.com/docs/git-format-patch#_base_tree_information] >> >> url: >> https://github.com/intel-lab-lkp/linux/commits/Florian-Eckert/tty-new-helper-function-tty_get_mget/20230221-162126 >> base: https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty.git >> tty-testing >> patch link: >> https://lore.kernel.org/r/20230221081901.15557-3-fe%40dev.tdt.de >> patch subject: [PATCH v5 2/2] trigger: ledtrig-tty: add additional modes >> reproduce: >> # >> https://github.com/intel-lab-lkp/linux/commit/445b7555bccd279bf106995ee42f5dbef2e97c8b >> git remote add linux-review >> https://github.com/intel-lab-lkp/linux >> git fetch --no-tags linux-review >> Florian-Eckert/tty-new-helper-function-tty_get_mget/20230221-162126 >> git checkout 445b7555bccd279bf106995ee42f5dbef2e97c8b >> make menuconfig >> # enable CONFIG_COMPILE_TEST, CONFIG_WARN_MISSING_DOCUMENTS, >> CONFIG_WARN_ABI_ERRORS >> make htmldocs >> >> If you fix the issue, kindly add following tag where applicable >> | Reported-by: kernel test robot <lkp@intel.com> >> | Link: >> https://lore.kernel.org/oe-kbuild-all/202302220740.2RKDHnof-lkp@intel.com/ >> >> All warnings (new ones prefixed by >>): >> >>>> Documentation/ABI/testing/sysfs-class-led-trigger-tty:9: WARNING: >>>> Unexpected indentation. >>>> Documentation/ABI/testing/sysfs-class-led-trigger-tty:9: WARNING: >>>> Block quote ends without a blank line; unexpected unindent. >> >> vim +9 Documentation/ABI/testing/sysfs-class-led-trigger-tty >> >> > 9 Date: January 2023 > > I apologies for the question! But I don't know what the test buildbot > here wants from me. > I've looked at the other files and I can't find anything that stands out. sphinx is always misleading. It's the indentation of all "LED on if ...". -- js suse labs ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH v5 2/2] trigger: ledtrig-tty: add additional modes 2023-02-22 7:16 ` Jiri Slaby @ 2023-02-22 7:21 ` Jiri Slaby 0 siblings, 0 replies; 7+ messages in thread From: Jiri Slaby @ 2023-02-22 7:21 UTC (permalink / raw) To: Florian Eckert, kernel test robot Cc: u.kleine-koenig, gregkh, pavel, lee, oe-kbuild-all, linux-kernel, linux-leds, Eckert.Florian On 22. 02. 23, 8:16, Jiri Slaby wrote: >>> vim +9 Documentation/ABI/testing/sysfs-class-led-trigger-tty >>> >>> > 9 Date: January 2023 >> >> I apologies for the question! But I don't know what the test buildbot >> here wants from me. >> I've looked at the other files and I can't find anything that stands out. > > sphinx is always misleading. > > It's the indentation of all "LED on if ...". So this should work: Specifies the operating to trigger the LED. The following operating modes are supported: * Tx/Rx: Flash LED on data transmission (default) * CTS: DCE Ready to accept data from the DTE. LED on if line is high. * DSR: DCE is ready to receive and send data. LED on if line is high. * CAR: DCE is receiving a carrier from a remote DTE. LED on if line is high. * RNG: DCE has detected an incoming ring signal. LED on if line is high. -- js suse labs ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2023-02-22 7:21 UTC | newest] Thread overview: 7+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2023-02-21 8:18 [PATCH v5 0/2] leds: ledtrig-tty: add tty_led_mode xtension Florian Eckert 2023-02-21 8:19 ` [PATCH v5 1/2] tty: new helper function tty_get_mget Florian Eckert 2023-02-21 8:19 ` [PATCH v5 2/2] trigger: ledtrig-tty: add additional modes Florian Eckert 2023-02-22 0:02 ` kernel test robot 2023-02-22 6:07 ` Florian Eckert 2023-02-22 7:16 ` Jiri Slaby 2023-02-22 7:21 ` Jiri Slaby
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox