mirror of
https://github.com/torvalds/linux.git
synced 2026-03-08 03:24:45 +01:00
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>
This commit is contained in:
parent
39b65316fe
commit
553d8a6e51
2 changed files with 20 additions and 5 deletions
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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]);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue