diff options
| author | Chintan Patel <chintanlike@gmail.com> | 2026-01-06 20:42:55 -0800 |
|---|---|---|
| committer | Helge Deller <deller@gmx.de> | 2026-02-14 11:09:46 +0100 |
| commit | 553d8a6e512abbddf37b7baa2bde8de691704856 (patch) | |
| tree | 3e4cf96d0621c34580974afe40ab6fc821a99a6b | |
| parent | 39b65316fe9d6d3f730632408ace28d49c5845a4 (diff) | |
staging: fbtft: Make FB_DEVICE dependency optional
fbtft provides sysfs interfaces for debugging and gamma configuration,
but these are not required for the core driver.
Drop the hard dependency on CONFIG_FB_DEVICE and make sysfs support
optional by using dev_of_fbinfo() at runtime. When FB_DEVICE is disabled,
sysfs operations are skipped while the code remains buildable and
type-checked.
Suggested-by: Thomas Zimmermann <tzimmermann@suse.de>
Suggested-by: Helge Deller <deller@gmx.de>
Reviewed-by: Helge Deller <deller@gmx.de>
Signed-off-by: Chintan Patel <chintanlike@gmail.com>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@intel.com>
Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de>
Signed-off-by: Helge Deller <deller@gmx.de>
| -rw-r--r-- | drivers/staging/fbtft/Kconfig | 5 | ||||
| -rw-r--r-- | drivers/staging/fbtft/fbtft-sysfs.c | 20 |
2 files changed, 20 insertions, 5 deletions
diff --git a/drivers/staging/fbtft/Kconfig b/drivers/staging/fbtft/Kconfig index c2655768209a..578412a2f379 100644 --- a/drivers/staging/fbtft/Kconfig +++ b/drivers/staging/fbtft/Kconfig @@ -2,11 +2,14 @@ menuconfig FB_TFT tristate "Support for small TFT LCD display modules" depends on FB && SPI - depends on FB_DEVICE depends on BACKLIGHT_CLASS_DEVICE depends on GPIOLIB || COMPILE_TEST select FB_BACKLIGHT select FB_SYSMEM_HELPERS_DEFERRED + help + Support for small TFT LCD display modules over SPI bus. FB_DEVICE + is not required, but if enabled, provides sysfs interface for debugging + and gamma curve configuration. if FB_TFT diff --git a/drivers/staging/fbtft/fbtft-sysfs.c b/drivers/staging/fbtft/fbtft-sysfs.c index e45c90a03a90..d05599d80011 100644 --- a/drivers/staging/fbtft/fbtft-sysfs.c +++ b/drivers/staging/fbtft/fbtft-sysfs.c @@ -203,14 +203,26 @@ static struct device_attribute debug_device_attr = void fbtft_sysfs_init(struct fbtft_par *par) { - device_create_file(par->info->dev, &debug_device_attr); + struct device *dev; + + dev = dev_of_fbinfo(par->info); + if (!dev) + return; + + device_create_file(dev, &debug_device_attr); if (par->gamma.curves && par->fbtftops.set_gamma) - device_create_file(par->info->dev, &gamma_device_attrs[0]); + device_create_file(dev, &gamma_device_attrs[0]); } void fbtft_sysfs_exit(struct fbtft_par *par) { - device_remove_file(par->info->dev, &debug_device_attr); + struct device *dev; + + dev = dev_of_fbinfo(par->info); + if (!dev) + return; + + device_remove_file(dev, &debug_device_attr); if (par->gamma.curves && par->fbtftops.set_gamma) - device_remove_file(par->info->dev, &gamma_device_attrs[0]); + device_remove_file(dev, &gamma_device_attrs[0]); } |
