[PATCH 0/5] auxdisplay: linedisp: support attribute attachment to auxdisplay devices

Jean-François Lessard posted 5 patches 1 month ago
There is a newer version of this series
.../ABI/testing/sysfs-auxdisplay-linedisp     |  90 +++++++
drivers/auxdisplay/line-display.c             | 219 ++++++++++++++++--
drivers/auxdisplay/line-display.h             |   4 +
3 files changed, 295 insertions(+), 18 deletions(-)
create mode 100644 Documentation/ABI/testing/sysfs-auxdisplay-linedisp
[PATCH 0/5] auxdisplay: linedisp: support attribute attachment to auxdisplay devices
Posted by Jean-François Lessard 1 month ago
This series modernizes the auxdisplay line display (linedisp) library to
enable seamless integration with auxdisplay parent devices while
maintaining backward compatibility.

The key improvement is adding attach/detach APIs that allow linedisp sysfs
attributes to be bound directly to their parent auxdisplay devices avoiding
child device proliferation and enabling a uniform 7-segment userspace
interface across different driver architectures.

This series introduces attachment infrastructure for linedisp devices.
The first consumer of this API will be the TM16XX driver series.
See the related patch series:
  auxdisplay: Add TM16xx 7-segment LED matrix display controllers driver

Changes include:
1. Encapsulate container_of() usage with to_linedisp() helper function for
   cleaner context retrieval
2. Improve message display behavior with static padding when message length
   is smaller than display width
3. Add 'num_chars' read-only attribute for userspace capability discovery
4. Add attach/detach API for sysfs attributes binding to parent devices
5. Document all linedisp sysfs attributes in ABI documentation

All existing linedisp_register() users remain unaffected. The new APIs
enable drivers like TM16XX to integrate 7-segment functionality within
their LED class device hierarchy while providing a uniform 7-segment API.

Thanks to Andy Shevchenko for early feedback and guidance.

RFC changelog:
- Replace scope_guard() with guard()() for synchronized list operations.
- Replace NULL assignments with proper list_entry_is_head() pattern.
- Clearly document why introducing the attach/detach APIs.
- Split in patch series, each patch containing a specific change.
- Implement static (non-scrolling) display for short messages.
- Document exisiting and new ABI sysfs attributes.

Jean-François Lessard (5):
  auxdisplay: linedisp: encapsulate container_of usage within
    to_linedisp
  auxdisplay: linedisp: display static message when length <= display
    size
  auxdisplay: linedisp: add num_chars sysfs attribute
  auxdisplay: linedisp: support attribute attachment to auxdisplay
    devices
  docs: ABI: auxdisplay: document linedisp library sysfs attributes

 .../ABI/testing/sysfs-auxdisplay-linedisp     |  90 +++++++
 drivers/auxdisplay/line-display.c             | 219 ++++++++++++++++--
 drivers/auxdisplay/line-display.h             |   4 +
 3 files changed, 295 insertions(+), 18 deletions(-)
 create mode 100644 Documentation/ABI/testing/sysfs-auxdisplay-linedisp

-- 
2.43.0

Re: [PATCH 0/5] auxdisplay: linedisp: support attribute attachment to auxdisplay devices
Posted by Andy Shevchenko 1 month ago
On Sun, Aug 31, 2025 at 10:00:24PM -0400, Jean-François Lessard wrote:
> This series modernizes the auxdisplay line display (linedisp) library to
> enable seamless integration with auxdisplay parent devices while
> maintaining backward compatibility.
> 
> The key improvement is adding attach/detach APIs that allow linedisp sysfs
> attributes to be bound directly to their parent auxdisplay devices avoiding
> child device proliferation and enabling a uniform 7-segment userspace
> interface across different driver architectures.
> 
> This series introduces attachment infrastructure for linedisp devices.
> The first consumer of this API will be the TM16XX driver series.
> See the related patch series:
>   auxdisplay: Add TM16xx 7-segment LED matrix display controllers driver
> 
> Changes include:
> 1. Encapsulate container_of() usage with to_linedisp() helper function for
>    cleaner context retrieval
> 2. Improve message display behavior with static padding when message length
>    is smaller than display width
> 3. Add 'num_chars' read-only attribute for userspace capability discovery
> 4. Add attach/detach API for sysfs attributes binding to parent devices
> 5. Document all linedisp sysfs attributes in ABI documentation
> 
> All existing linedisp_register() users remain unaffected. The new APIs
> enable drivers like TM16XX to integrate 7-segment functionality within
> their LED class device hierarchy while providing a uniform 7-segment API.
> 
> Thanks to Andy Shevchenko for early feedback and guidance.

Overall LGTM, only one question about spin lock vs. mutex. The rest is simple
nit-picks. I'll also wait for Geert's review / Acks.

-- 
With Best Regards,
Andy Shevchenko
Re: [PATCH 0/5] auxdisplay: linedisp: support attribute attachment to auxdisplay devices
Posted by Jean-François Lessard 1 month ago
Le 2 septembre 2025 07 h 00 min 35 s HAE, Andy Shevchenko <andriy.shevchenko@intel.com> a écrit :
>On Sun, Aug 31, 2025 at 10:00:24PM -0400, Jean-François Lessard wrote:
>> This series modernizes the auxdisplay line display (linedisp) library to
>> enable seamless integration with auxdisplay parent devices while
>> maintaining backward compatibility.
>> 
>> The key improvement is adding attach/detach APIs that allow linedisp sysfs
>> attributes to be bound directly to their parent auxdisplay devices avoiding
>> child device proliferation and enabling a uniform 7-segment userspace
>> interface across different driver architectures.
>> 
>> This series introduces attachment infrastructure for linedisp devices.
>> The first consumer of this API will be the TM16XX driver series.
>> See the related patch series:
>>   auxdisplay: Add TM16xx 7-segment LED matrix display controllers driver
>> 
>> Changes include:
>> 1. Encapsulate container_of() usage with to_linedisp() helper function for
>>    cleaner context retrieval
>> 2. Improve message display behavior with static padding when message length
>>    is smaller than display width
>> 3. Add 'num_chars' read-only attribute for userspace capability discovery
>> 4. Add attach/detach API for sysfs attributes binding to parent devices
>> 5. Document all linedisp sysfs attributes in ABI documentation
>> 
>> All existing linedisp_register() users remain unaffected. The new APIs
>> enable drivers like TM16XX to integrate 7-segment functionality within
>> their LED class device hierarchy while providing a uniform 7-segment API.
>> 
>> Thanks to Andy Shevchenko for early feedback and guidance.
>
>Overall LGTM, only one question about spin lock vs. mutex. The rest is simple
>nit-picks. I'll also wait for Geert's review / Acks.
>

Agreed. I will wait for Geert's feedback before submitting V2.
Re: [PATCH 0/5] auxdisplay: linedisp: support attribute attachment to auxdisplay devices
Posted by Jean-François Lessard 3 weeks, 3 days ago
Hi Geert,

Le 2 septembre 2025 13 h 44 min 45 s HAE, "Jean-François Lessard" <jefflessard3@gmail.com> a écrit :
>Le 2 septembre 2025 07 h 00 min 35 s HAE, Andy Shevchenko <andriy.shevchenko@intel.com> a écrit :
>>On Sun, Aug 31, 2025 at 10:00:24PM -0400, Jean-François Lessard wrote:
>>> This series modernizes the auxdisplay line display (linedisp) library to
>>> enable seamless integration with auxdisplay parent devices while
>>> maintaining backward compatibility.
>>> 
>>> The key improvement is adding attach/detach APIs that allow linedisp sysfs
>>> attributes to be bound directly to their parent auxdisplay devices avoiding
>>> child device proliferation and enabling a uniform 7-segment userspace
>>> interface across different driver architectures.
>>> 
>>> This series introduces attachment infrastructure for linedisp devices.
>>> The first consumer of this API will be the TM16XX driver series.
>>> See the related patch series:
>>>   auxdisplay: Add TM16xx 7-segment LED matrix display controllers driver
>>> 
>>> Changes include:
>>> 1. Encapsulate container_of() usage with to_linedisp() helper function for
>>>    cleaner context retrieval
>>> 2. Improve message display behavior with static padding when message length
>>>    is smaller than display width
>>> 3. Add 'num_chars' read-only attribute for userspace capability discovery
>>> 4. Add attach/detach API for sysfs attributes binding to parent devices
>>> 5. Document all linedisp sysfs attributes in ABI documentation
>>> 
>>> All existing linedisp_register() users remain unaffected. The new APIs
>>> enable drivers like TM16XX to integrate 7-segment functionality within
>>> their LED class device hierarchy while providing a uniform 7-segment API.
>>> 
>>> Thanks to Andy Shevchenko for early feedback and guidance.
>>
>>Overall LGTM, only one question about spin lock vs. mutex. The rest is simple
>>nit-picks. I'll also wait for Geert's review / Acks.
>>
>
>Agreed. I will wait for Geert's feedback before submitting V2.
>

Do you have any feedback on this patch series?
Or would you prefer to review V2 instead?

Thanks in advance,

Jean-François Lessard
Re: [PATCH 0/5] auxdisplay: linedisp: support attribute attachment to auxdisplay devices
Posted by Geert Uytterhoeven 3 weeks, 3 days ago
Hi Jean-François,

On Mon, 8 Sept 2025 at 20:50, Jean-François Lessard
<jefflessard3@gmail.com> wrote:
> Le 2 septembre 2025 13 h 44 min 45 s HAE, "Jean-François Lessard" <jefflessard3@gmail.com> a écrit :
> >Le 2 septembre 2025 07 h 00 min 35 s HAE, Andy Shevchenko <andriy.shevchenko@intel.com> a écrit :
> >>On Sun, Aug 31, 2025 at 10:00:24PM -0400, Jean-François Lessard wrote:
> >>> This series modernizes the auxdisplay line display (linedisp) library to
> >>> enable seamless integration with auxdisplay parent devices while
> >>> maintaining backward compatibility.
> >>>
> >>> The key improvement is adding attach/detach APIs that allow linedisp sysfs
> >>> attributes to be bound directly to their parent auxdisplay devices avoiding
> >>> child device proliferation and enabling a uniform 7-segment userspace
> >>> interface across different driver architectures.
> >>>
> >>> This series introduces attachment infrastructure for linedisp devices.
> >>> The first consumer of this API will be the TM16XX driver series.
> >>> See the related patch series:
> >>>   auxdisplay: Add TM16xx 7-segment LED matrix display controllers driver
> >>>
> >>> Changes include:
> >>> 1. Encapsulate container_of() usage with to_linedisp() helper function for
> >>>    cleaner context retrieval
> >>> 2. Improve message display behavior with static padding when message length
> >>>    is smaller than display width
> >>> 3. Add 'num_chars' read-only attribute for userspace capability discovery
> >>> 4. Add attach/detach API for sysfs attributes binding to parent devices
> >>> 5. Document all linedisp sysfs attributes in ABI documentation
> >>>
> >>> All existing linedisp_register() users remain unaffected. The new APIs
> >>> enable drivers like TM16XX to integrate 7-segment functionality within
> >>> their LED class device hierarchy while providing a uniform 7-segment API.
> >>>
> >>> Thanks to Andy Shevchenko for early feedback and guidance.
> >>
> >>Overall LGTM, only one question about spin lock vs. mutex. The rest is simple
> >>nit-picks. I'll also wait for Geert's review / Acks.
> >
> >Agreed. I will wait for Geert's feedback before submitting V2.
>
> Do you have any feedback on this patch series?
> Or would you prefer to review V2 instead?

Sorry, I haven't gotten to reviewing your series yet.
Please don't let me block you, and continue with V2.
Thanks!

Gr{oetje,eeting}s,

                        Geert

-- 
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds