auxdisplay: linedisp: add num_chars sysfs attribute

Add a read-only 'num_chars' sysfs attribute to report display digit count.

The num_chars attribute provides essential capability information to
userspace applications that need to know display dimensions before writing
messages, complementing the existing message and scroll controls.

No functional changes to existing behavior.

Signed-off-by: Jean-François Lessard <jefflessard3@gmail.com>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
This commit is contained in:
Jean-François Lessard
2025-09-18 08:13:14 -04:00
committed by Andy Shevchenko
parent 9870334f48
commit e25063466d
2 changed files with 22 additions and 0 deletions

View File

@@ -15,6 +15,17 @@ Description:
echo "Hello World" > message
cat message # Returns "Hello World\n"
What: /sys/.../num_chars
Date: November 2025
KernelVersion: 6.18
Contact: Jean-François Lessard <jefflessard3@gmail.com>
Description:
Read-only attribute showing the character width capacity of
the line display device. Messages longer than this will scroll.
Example:
cat num_chars # Returns "16\n" for 16-char display
What: /sys/.../scroll_step_ms
Date: October 2021
KernelVersion: 5.16

View File

@@ -178,6 +178,16 @@ static ssize_t message_store(struct device *dev, struct device_attribute *attr,
static DEVICE_ATTR_RW(message);
static ssize_t num_chars_show(struct device *dev, struct device_attribute *attr,
char *buf)
{
struct linedisp *linedisp = to_linedisp(dev);
return sysfs_emit(buf, "%u\n", linedisp->num_chars);
}
static DEVICE_ATTR_RO(num_chars);
static ssize_t scroll_step_ms_show(struct device *dev,
struct device_attribute *attr, char *buf)
{
@@ -240,6 +250,7 @@ static DEVICE_ATTR(map_seg14, 0644, map_seg_show, map_seg_store);
static struct attribute *linedisp_attrs[] = {
&dev_attr_message.attr,
&dev_attr_num_chars.attr,
&dev_attr_scroll_step_ms.attr,
&dev_attr_map_seg7.attr,
&dev_attr_map_seg14.attr,