Commit e2506346 authored by Jean-François Lessard's avatar Jean-François Lessard Committed by Andy Shevchenko
Browse files

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: default avatarJean-François Lessard <jefflessard3@gmail.com>
Signed-off-by: default avatarAndy Shevchenko <andriy.shevchenko@linux.intel.com>
parent 9870334f
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
@@ -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
+11 −0
Original line number Diff line number Diff line
@@ -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,