Re: [PATCH v2 2/4] staging: fbtft: Make FB_DEVICE dependency optional

From: Andy Shevchenko
Date: Sat Dec 27 2025 - 09:21:08 EST


On Fri, Dec 19, 2025 at 7:43 AM Chintan Patel <chintanlike@xxxxxxxxx> wrote:
>
> 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.

> v2:
> - Replace CONFIG_FB_DEVICE ifdefs with runtime checks
> - Use dev_of_fbinfo() to guard sysfs creation and removal

The place for the change log is either a cover letter, or...

> Suggested-by: Thomas Zimmermann <tzimmermann@xxxxxxx>
> Suggested-by: Helge Deller <deller@xxxxxx>
> Signed-off-by: Chintan Patel <chintanlike@xxxxxxxxx>
> ---

...a comment block here. It's not so important to be in the Git
history since we have a lore.kernel.org archive.

> drivers/staging/fbtft/Kconfig | 5 ++++-
> drivers/staging/fbtft/fbtft-sysfs.c | 18 ++++++++++++++----

...

> void fbtft_sysfs_init(struct fbtft_par *par)
> {
> - device_create_file(par->info->dev, &debug_device_attr);
> + struct device *dev = dev_of_fbinfo(par->info);
> +
> + if (!dev)
> + return;


The better way is to decouple the definition and the assignment in the
cases when it's followed by a conditional (validation check). In this
case any new code added in between doesn't affect readability and
maintenance efforts.

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]);
> }

Ditto for the rest.

--
With Best Regards,
Andy Shevchenko