* [PATCH] staging: fbtft: remove sysfs debug interface
@ 2026-05-11 18:09 Harshit Shaw
2026-05-11 18:23 ` Greg KH
0 siblings, 1 reply; 2+ messages in thread
From: Harshit Shaw @ 2026-05-11 18:09 UTC (permalink / raw)
To: andriy.shevchenko
Cc: gregkh, error27, deller, chintanlike, tzimmermann, linux-staging,
linux-kernel, Harshit Shaw
The debug sysfs entry exposed via device_create_file() is not the
correct approach. Remove fbtft_sysfs_init() and fbtft_sysfs_exit()
along with the debug sysfs attribute. Drivers should use the standard
kernel debug API (dev_dbg/pr_debug) instead.
Signed-off-by: Harshit Shaw <shawharshit116@gmail.com>
---
drivers/staging/fbtft/fbtft-core.c | 3 -
drivers/staging/fbtft/fbtft-sysfs.c | 111 ----------------------------
drivers/staging/fbtft/internal.h | 2 -
3 files changed, 116 deletions(-)
diff --git a/drivers/staging/fbtft/fbtft-core.c b/drivers/staging/fbtft/fbtft-core.c
index 3da42c8ca6e3..e6d33127cecc 100644
--- a/drivers/staging/fbtft/fbtft-core.c
+++ b/drivers/staging/fbtft/fbtft-core.c
@@ -782,8 +782,6 @@ int fbtft_register_framebuffer(struct fb_info *fb_info)
if (ret < 0)
goto reg_fail;
- fbtft_sysfs_init(par);
-
if (par->txbuf.buf && par->txbuf.len >= 1024)
sprintf(text1, ", %zu KiB buffer memory", par->txbuf.len >> 10);
if (spi)
@@ -826,7 +824,6 @@ int fbtft_unregister_framebuffer(struct fb_info *fb_info)
if (par->fbtftops.unregister_backlight)
par->fbtftops.unregister_backlight(par);
- fbtft_sysfs_exit(par);
unregister_framebuffer(fb_info);
return 0;
diff --git a/drivers/staging/fbtft/fbtft-sysfs.c b/drivers/staging/fbtft/fbtft-sysfs.c
index d05599d80011..925b6c699599 100644
--- a/drivers/staging/fbtft/fbtft-sysfs.c
+++ b/drivers/staging/fbtft/fbtft-sysfs.c
@@ -89,63 +89,6 @@ int fbtft_gamma_parse_str(struct fbtft_par *par, u32 *curves,
return ret;
}
-static ssize_t
-sprintf_gamma(struct fbtft_par *par, u32 *curves, char *buf)
-{
- ssize_t len = 0;
- unsigned int i, j;
-
- mutex_lock(&par->gamma.lock);
- for (i = 0; i < par->gamma.num_curves; i++) {
- for (j = 0; j < par->gamma.num_values; j++)
- len += scnprintf(&buf[len], PAGE_SIZE,
- "%04x ", curves[i * par->gamma.num_values + j]);
- buf[len - 1] = '\n';
- }
- mutex_unlock(&par->gamma.lock);
-
- return len;
-}
-
-static ssize_t store_gamma_curve(struct device *device,
- struct device_attribute *attr,
- const char *buf, size_t count)
-{
- struct fb_info *fb_info = dev_get_drvdata(device);
- struct fbtft_par *par = fb_info->par;
- u32 tmp_curves[FBTFT_GAMMA_MAX_VALUES_TOTAL];
- int ret;
-
- ret = fbtft_gamma_parse_str(par, tmp_curves, buf, count);
- if (ret)
- return ret;
-
- ret = par->fbtftops.set_gamma(par, tmp_curves);
- if (ret)
- return ret;
-
- mutex_lock(&par->gamma.lock);
- memcpy(par->gamma.curves, tmp_curves,
- par->gamma.num_curves * par->gamma.num_values *
- sizeof(tmp_curves[0]));
- mutex_unlock(&par->gamma.lock);
-
- return count;
-}
-
-static ssize_t show_gamma_curve(struct device *device,
- struct device_attribute *attr, char *buf)
-{
- struct fb_info *fb_info = dev_get_drvdata(device);
- struct fbtft_par *par = fb_info->par;
-
- return sprintf_gamma(par, par->gamma.curves, buf);
-}
-
-static struct device_attribute gamma_device_attrs[] = {
- __ATTR(gamma, 0660, show_gamma_curve, store_gamma_curve),
-};
-
void fbtft_expand_debug_value(unsigned long *debug)
{
switch (*debug & 0x7) {
@@ -172,57 +115,3 @@ void fbtft_expand_debug_value(unsigned long *debug)
break;
}
}
-
-static ssize_t store_debug(struct device *device,
- struct device_attribute *attr,
- const char *buf, size_t count)
-{
- struct fb_info *fb_info = dev_get_drvdata(device);
- struct fbtft_par *par = fb_info->par;
- int ret;
-
- ret = kstrtoul(buf, 10, &par->debug);
- if (ret)
- return ret;
- fbtft_expand_debug_value(&par->debug);
-
- return count;
-}
-
-static ssize_t show_debug(struct device *device,
- struct device_attribute *attr, char *buf)
-{
- struct fb_info *fb_info = dev_get_drvdata(device);
- struct fbtft_par *par = fb_info->par;
-
- return sysfs_emit(buf, "%lu\n", par->debug);
-}
-
-static struct device_attribute debug_device_attr =
- __ATTR(debug, 0660, show_debug, store_debug);
-
-void fbtft_sysfs_init(struct fbtft_par *par)
-{
- 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(dev, &gamma_device_attrs[0]);
-}
-
-void fbtft_sysfs_exit(struct fbtft_par *par)
-{
- 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(dev, &gamma_device_attrs[0]);
-}
diff --git a/drivers/staging/fbtft/internal.h b/drivers/staging/fbtft/internal.h
index ae2ff4a4a472..7869cf8dbf2a 100644
--- a/drivers/staging/fbtft/internal.h
+++ b/drivers/staging/fbtft/internal.h
@@ -4,8 +4,6 @@
#ifndef __LINUX_FBTFT_INTERNAL_H
#define __LINUX_FBTFT_INTERNAL_H
-void fbtft_sysfs_init(struct fbtft_par *par);
-void fbtft_sysfs_exit(struct fbtft_par *par);
void fbtft_expand_debug_value(unsigned long *debug);
int fbtft_gamma_parse_str(struct fbtft_par *par, u32 *curves,
const char *str, int size);
--
2.53.0
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH] staging: fbtft: remove sysfs debug interface
2026-05-11 18:09 [PATCH] staging: fbtft: remove sysfs debug interface Harshit Shaw
@ 2026-05-11 18:23 ` Greg KH
0 siblings, 0 replies; 2+ messages in thread
From: Greg KH @ 2026-05-11 18:23 UTC (permalink / raw)
To: Harshit Shaw
Cc: andriy.shevchenko, error27, deller, chintanlike, tzimmermann,
linux-staging, linux-kernel
On Mon, May 11, 2026 at 06:09:12PM +0000, Harshit Shaw wrote:
> The debug sysfs entry exposed via device_create_file() is not the
> correct approach. Remove fbtft_sysfs_init() and fbtft_sysfs_exit()
> along with the debug sysfs attribute. Drivers should use the standard
> kernel debug API (dev_dbg/pr_debug) instead.
>
> Signed-off-by: Harshit Shaw <shawharshit116@gmail.com>
> ---
> drivers/staging/fbtft/fbtft-core.c | 3 -
> drivers/staging/fbtft/fbtft-sysfs.c | 111 ----------------------------
> drivers/staging/fbtft/internal.h | 2 -
> 3 files changed, 116 deletions(-)
>
> diff --git a/drivers/staging/fbtft/fbtft-core.c b/drivers/staging/fbtft/fbtft-core.c
> index 3da42c8ca6e3..e6d33127cecc 100644
> --- a/drivers/staging/fbtft/fbtft-core.c
> +++ b/drivers/staging/fbtft/fbtft-core.c
> @@ -782,8 +782,6 @@ int fbtft_register_framebuffer(struct fb_info *fb_info)
> if (ret < 0)
> goto reg_fail;
>
> - fbtft_sysfs_init(par);
> -
> if (par->txbuf.buf && par->txbuf.len >= 1024)
> sprintf(text1, ", %zu KiB buffer memory", par->txbuf.len >> 10);
> if (spi)
> @@ -826,7 +824,6 @@ int fbtft_unregister_framebuffer(struct fb_info *fb_info)
>
> if (par->fbtftops.unregister_backlight)
> par->fbtftops.unregister_backlight(par);
> - fbtft_sysfs_exit(par);
> unregister_framebuffer(fb_info);
>
> return 0;
> diff --git a/drivers/staging/fbtft/fbtft-sysfs.c b/drivers/staging/fbtft/fbtft-sysfs.c
> index d05599d80011..925b6c699599 100644
> --- a/drivers/staging/fbtft/fbtft-sysfs.c
> +++ b/drivers/staging/fbtft/fbtft-sysfs.c
> @@ -89,63 +89,6 @@ int fbtft_gamma_parse_str(struct fbtft_par *par, u32 *curves,
> return ret;
> }
>
> -static ssize_t
> -sprintf_gamma(struct fbtft_par *par, u32 *curves, char *buf)
> -{
> - ssize_t len = 0;
> - unsigned int i, j;
> -
> - mutex_lock(&par->gamma.lock);
> - for (i = 0; i < par->gamma.num_curves; i++) {
> - for (j = 0; j < par->gamma.num_values; j++)
> - len += scnprintf(&buf[len], PAGE_SIZE,
> - "%04x ", curves[i * par->gamma.num_values + j]);
> - buf[len - 1] = '\n';
> - }
> - mutex_unlock(&par->gamma.lock);
> -
> - return len;
> -}
> -
> -static ssize_t store_gamma_curve(struct device *device,
> - struct device_attribute *attr,
> - const char *buf, size_t count)
> -{
> - struct fb_info *fb_info = dev_get_drvdata(device);
> - struct fbtft_par *par = fb_info->par;
> - u32 tmp_curves[FBTFT_GAMMA_MAX_VALUES_TOTAL];
> - int ret;
> -
> - ret = fbtft_gamma_parse_str(par, tmp_curves, buf, count);
> - if (ret)
> - return ret;
> -
> - ret = par->fbtftops.set_gamma(par, tmp_curves);
> - if (ret)
> - return ret;
> -
> - mutex_lock(&par->gamma.lock);
> - memcpy(par->gamma.curves, tmp_curves,
> - par->gamma.num_curves * par->gamma.num_values *
> - sizeof(tmp_curves[0]));
> - mutex_unlock(&par->gamma.lock);
> -
> - return count;
> -}
> -
> -static ssize_t show_gamma_curve(struct device *device,
> - struct device_attribute *attr, char *buf)
> -{
> - struct fb_info *fb_info = dev_get_drvdata(device);
> - struct fbtft_par *par = fb_info->par;
> -
> - return sprintf_gamma(par, par->gamma.curves, buf);
> -}
> -
> -static struct device_attribute gamma_device_attrs[] = {
> - __ATTR(gamma, 0660, show_gamma_curve, store_gamma_curve),
> -};
This is not a debugging log level attribute, why remove that?
Again, first turn this into using the correct api (an attribute group),
then fix up the debugging functions that use the "debug" variable to not
do that, and then remove the debug attribute.
thanks,
greg k-h
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2026-05-11 18:23 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-05-11 18:09 [PATCH] staging: fbtft: remove sysfs debug interface Harshit Shaw
2026-05-11 18:23 ` Greg KH
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox