Re: [PATCH v4 3/4] fbdev: omapfb: Make FB_DEVICE dependency optional

Thomas Zimmermann
2026-01-07T07:33:23Z

Am 07.01.26 um 05:42 schrieb Chintan Patel:
> omapfb provides several sysfs interfaces for framebuffer configuration
> and debugging, but these are not required for the core driver.
>
> Remove the hard dependency on CONFIG_FB_DEVICE and make sysfs support
> optional by using dev_of_fbinfo() to obtain the backing device at runtime.
> When FB_DEVICE is disabled, sysfs operations are skipped while the code
> still builds and is type-checked.
>
> Suggested-by: Helge Deller <deller@gmx.de>
> Signed-off-by: Chintan Patel <chintanlike@gmail.com>

Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de>

> ---
> drivers/video/fbdev/omap2/omapfb/Kconfig | 3 ++-
> .../video/fbdev/omap2/omapfb/omapfb-sysfs.c | 18 ++++++++++++++----
> 2 files changed, 16 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/video/fbdev/omap2/omapfb/Kconfig b/drivers/video/fbdev/omap2/omapfb/Kconfig
> index f4cdf999a080..2d20e79adefc 100644
> --- a/drivers/video/fbdev/omap2/omapfb/Kconfig
> +++ b/drivers/video/fbdev/omap2/omapfb/Kconfig
> @@ -5,7 +5,6 @@ config OMAP2_VRFB
> menuconfig FB_OMAP2
> tristate "OMAP2+ frame buffer support"
> depends on FB
> - depends on FB_DEVICE
> depends on DRM_OMAP = n
> depends on GPIOLIB
> select FB_OMAP2_DSS
> @@ -13,6 +12,8 @@ menuconfig FB_OMAP2
> select FB_IOMEM_HELPERS
> help
> Frame buffer driver for OMAP2+ based boards.
> + FB_DEVICE is not required, but if enabled, provides sysfs interface
> + for framebuffer configuration and debugging.
>
> if FB_OMAP2
>
> diff --git a/drivers/video/fbdev/omap2/omapfb/omapfb-sysfs.c b/drivers/video/fbdev/omap2/omapfb/omapfb-sysfs.c
> index 831b2c2fbdf9..38a635d38d58 100644
> --- a/drivers/video/fbdev/omap2/omapfb/omapfb-sysfs.c
> +++ b/drivers/video/fbdev/omap2/omapfb/omapfb-sysfs.c
> @@ -558,10 +558,15 @@ int omapfb_create_sysfs(struct omapfb2_device *fbdev)
>
> DBG("create sysfs for fbs\n");
> for (i = 0; i < fbdev->num_fbs; i++) {
> + struct device *dev;
> int t;
> +
> + dev = dev_of_fbinfo(fbdev->fbs[i]);
> + if (!dev)
> + continue;
> +
> for (t = 0; t < ARRAY_SIZE(omapfb_attrs); t++) {
> - r = device_create_file(fbdev->fbs[i]->dev,
> - &omapfb_attrs[t]);
> + r = device_create_file(dev, &omapfb_attrs[t]);
>
> if (r) {
> dev_err(fbdev->dev, "failed to create sysfs "
> @@ -580,9 +585,14 @@ void omapfb_remove_sysfs(struct omapfb2_device *fbdev)
>
> DBG("remove sysfs for fbs\n");
> for (i = 0; i < fbdev->num_fbs; i++) {
> + struct device *dev;
> +
> + dev = dev_of_fbinfo(fbdev->fbs[i]);
> + if (!dev)
> + continue;
> +
> for (t = 0; t < ARRAY_SIZE(omapfb_attrs); t++)
> - device_remove_file(fbdev->fbs[i]->dev,
> - &omapfb_attrs[t]);
> + device_remove_file(dev, &omapfb_attrs[t]);
> }
> }
>

--
--
Thomas Zimmermann
Graphics Driver Developer
SUSE Software Solutions Germany GmbH
Frankenstr. 146, 90461 Nürnberg, Germany, www.suse.com
GF: Jochen Jaser, Andrew McDonald, Werner Knoblich, (HRB 36809, AG Nürnberg)