On 9/12/26 12:21, Karl Mehltretter wrote:
The ovl_* files documented in Documentation/ABI/testing/sysfs-devices-platform-sh_mobile_lcdc_fb no longer exist.Commit a979182a2453 ("fbdev: lcdcfb: Register sysfs groups through driver core") moved the attributes from each overlay's framebuffer device to the platform driver's dev_groups and renamed them overlay_*. There is now only one set of attributes for the whole LCDC. The callbacks still expect dev_get_drvdata() to return a struct fb_info, but the platform device holds struct sh_mobile_lcdc_priv, so they access the wrong structure. Restore the documented names and register the group on each overlay's framebuffer device with device_add_groups(). Remove it with device_remove_groups() before unregistering the framebuffer. Skip creation when dev_of_fbinfo(info) is NULL, as the old device_create_file() calls did. Drop the CONFIG_FB_DEVICE guard, since the driver already depends on it. Fixes: a979182a2453 ("fbdev: lcdcfb: Register sysfs groups through driver core") Cc: [email protected] Assisted-by: LLM Signed-off-by: Karl Mehltretter <[email protected]> --- Changes in v2: - Use dev_of_fbinfo() for overlay sysfs registration and removal (Helge). v1: https://lore.kernel.org/r/[email protected]/ Found while reviewing the sysfs ABI documentation. Shixiong confirmed that using the platform driver's dev_groups is wrong here. Compile-tested with Clang 22.1.8, ARCH=arm and W=1, using multi_v7_defconfig with COMPILE_TEST=y, FB_DEVICE=y and FB_SH_MOBILE_LCDC=m. Also checked FB_DEVICE=n: olddefconfig disables FB_SH_MOBILE_LCDC because of its existing Kconfig dependency, and the framebuffer core compiles. This does not test the driver with FB_DEVICE=n; removing that dependency requires additional changes outside the overlay sysfs paths. No runtime test; I have no SH-Mobile hardware. drivers/video/fbdev/sh_mobile_lcdcfb.c | 39 +++++++++++++++++--------- 1 file changed, 25 insertions(+), 14 deletions(-)
applied. Thanks! Helge
