summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChintan Patel <chintanlike@gmail.com>2026-01-06 20:42:55 -0800
committerHelge Deller <deller@gmx.de>2026-02-14 11:09:46 +0100
commit553d8a6e512abbddf37b7baa2bde8de691704856 (patch)
tree3e4cf96d0621c34580974afe40ab6fc821a99a6b
parent39b65316fe9d6d3f730632408ace28d49c5845a4 (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/Kconfig5
-rw-r--r--drivers/staging/fbtft/fbtft-sysfs.c20
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]);
}