All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sam Ravnborg <sam@ravnborg.org>
To: Thomas Zimmermann <tzimmermann@suse.de>
Cc: daniel@ffwll.ch, javierm@redhat.com, deller@gmx.de,
	geert+renesas@glider.be, lee@kernel.org,
	daniel.thompson@linaro.org, jingoohan1@gmail.com,
	linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org,
	linux-sh@vger.kernel.org, linux-omap@vger.kernel.org,
	linux-staging@lists.linux.dev
Subject: Re: [PATCH 30/30] fbdev: Make support for userspace interfaces configurable
Date: Sun, 11 Jun 2023 18:37:16 +0200	[thread overview]
Message-ID: <20230611163716.GA1139759@ravnborg.org> (raw)
In-Reply-To: <20230605144812.15241-31-tzimmermann@suse.de>

Hi Thomas,

On Mon, Jun 05, 2023 at 04:48:12PM +0200, Thomas Zimmermann wrote:
> Add Kconfig option CONFIG_FB_DEVICE and make the virtual fbdev
> device optional. If the new option has not been selected, fbdev
> does not create a files in devfs or sysfs.
s/ a//
> 
> Most modern Linux systems run a DRM-based graphics stack that uses
> the kernel's framebuffer console, but has otherwise deprecated fbdev
> support. Yet fbdev userspace interfaces are still present.
> 
> The option makes it possible to use the fbdev subsystem as console
> implementation without support for userspace. This closes potential
> entry points to manipulate kernel or I/O memory via framebuffers. It
> also prevents the execution of driver code via ioctl or sysfs, both
> of which might allow malicious software to exploit bugs in the fbdev
> code.
> 
> A small number of fbdev drivers require struct fbinfo.dev to be
> initialized, usually for the support of sysfs interface. Make these
> drivers depend on FB_DEVICE. They can later be fixed if necessary.
Should that be a TODO in gpu/todo.rst?
Otherwise the amount of people knowing about this
is very close to 1.
As an alternative add a TODO to each Kconfig file.

> 
> Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
> ---
>  drivers/staging/fbtft/Kconfig            |  1 +
>  drivers/video/fbdev/Kconfig              | 12 +++++++++
>  drivers/video/fbdev/core/Makefile        |  7 +++---
>  drivers/video/fbdev/core/fb_internal.h   | 32 ++++++++++++++++++++++++
>  drivers/video/fbdev/omap2/omapfb/Kconfig |  2 +-
>  include/linux/fb.h                       |  2 ++
>  6 files changed, 52 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/staging/fbtft/Kconfig b/drivers/staging/fbtft/Kconfig
> index 4d29e8c1014e..5dda3c65a38e 100644
> --- a/drivers/staging/fbtft/Kconfig
> +++ b/drivers/staging/fbtft/Kconfig
> @@ -2,6 +2,7 @@
>  menuconfig FB_TFT
>  	tristate "Support for small TFT LCD display modules"
>  	depends on FB && SPI
> +	depends on FB_DEVICE
>  	depends on GPIOLIB || COMPILE_TEST
>  	select FB_SYS_FILLRECT
>  	select FB_SYS_COPYAREA
> diff --git a/drivers/video/fbdev/Kconfig b/drivers/video/fbdev/Kconfig
> index 6df9bd09454a..48d9a14f889c 100644
> --- a/drivers/video/fbdev/Kconfig
> +++ b/drivers/video/fbdev/Kconfig
> @@ -57,6 +57,15 @@ config FIRMWARE_EDID
>  	  combination with certain motherboards and monitors are known to
>  	  suffer from this problem.
>  
> +config FB_DEVICE
> +        bool "Provide legacy /dev/fb* device"
> +        depends on FB
> +        help
> +	  Say Y here if you want the legacy /dev/fb* device file. It's
> +	  only required if you have userspace programs that depend on
> +	  fbdev for graphics output. This does not effect the framebuffer
> +	  console.
tabs to spaces to indent the above correct.

> +
>  config FB_DDC
>  	tristate
>  	depends on FB
> @@ -1545,6 +1554,7 @@ config FB_3DFX_I2C
>  config FB_VOODOO1
>  	tristate "3Dfx Voodoo Graphics (sst1) support"
>  	depends on FB && PCI
> +	depends on FB_DEVICE
>  	select FB_CFB_FILLRECT
>  	select FB_CFB_COPYAREA
>  	select FB_CFB_IMAGEBLIT
> @@ -1862,6 +1872,7 @@ config FB_SH_MOBILE_LCDC
>  	tristate "SuperH Mobile LCDC framebuffer support"
>  	depends on FB && HAVE_CLK && HAS_IOMEM
>  	depends on SUPERH || ARCH_RENESAS || COMPILE_TEST
> +	depends on FB_DEVICE
>  	select FB_SYS_FILLRECT
>  	select FB_SYS_COPYAREA
>  	select FB_SYS_IMAGEBLIT
> @@ -1930,6 +1941,7 @@ config FB_SMSCUFX
>  config FB_UDL
>  	tristate "Displaylink USB Framebuffer support"
>  	depends on FB && USB
> +	depends on FB_DEVICE
>  	select FB_MODE_HELPERS
>  	select FB_SYS_FILLRECT
>  	select FB_SYS_COPYAREA
> diff --git a/drivers/video/fbdev/core/Makefile b/drivers/video/fbdev/core/Makefile
> index 125d24f50c36..d5e8772620f8 100644
> --- a/drivers/video/fbdev/core/Makefile
> +++ b/drivers/video/fbdev/core/Makefile
> @@ -2,12 +2,13 @@
>  obj-$(CONFIG_FB_NOTIFY)           += fb_notify.o
>  obj-$(CONFIG_FB)                  += fb.o
>  fb-y                              := fb_backlight.o \
> -                                     fb_devfs.o \
>                                       fb_info.o \
> -                                     fb_procfs.o \
> -                                     fbmem.o fbmon.o fbcmap.o fbsysfs.o \
> +                                     fbmem.o fbmon.o fbcmap.o \
>                                       modedb.o fbcvt.o fb_cmdline.o fb_io_fops.o
>  fb-$(CONFIG_FB_DEFERRED_IO)       += fb_defio.o
> +fb-$(CONFIG_FB_DEVICE)            += fb_devfs.o \
> +                                     fb_procfs.o \
> +                                     fbsysfs.o
Maybe change this to one line to avoid '\'?

>  
>  ifeq ($(CONFIG_FRAMEBUFFER_CONSOLE),y)
>  fb-y				  += fbcon.o bitblit.o softcursor.o
> diff --git a/drivers/video/fbdev/core/fb_internal.h b/drivers/video/fbdev/core/fb_internal.h
> index 0b43c0cd5096..b8a28466db79 100644
> --- a/drivers/video/fbdev/core/fb_internal.h
> +++ b/drivers/video/fbdev/core/fb_internal.h
> @@ -3,12 +3,22 @@
>  #ifndef _FB_INTERNAL_H
>  #define _FB_INTERNAL_H
>  
> +#include <linux/device.h>
>  #include <linux/fb.h>
>  #include <linux/mutex.h>
>  
>  /* fb_devfs.c */
> +#if defined(CONFIG_FB_DEVICE)
>  int fb_register_chrdev(void);
>  void fb_unregister_chrdev(void);
> +#else
> +static inline int fb_register_chrdev(void)
> +{
> +	return 0;
> +}
> +static inline void fb_unregister_chrdev(void)
> +{ }
> +#endif
>  
>  /* fbmem.c */
>  extern struct class *fb_class;
> @@ -19,11 +29,33 @@ struct fb_info *get_fb_info(unsigned int idx);
>  void put_fb_info(struct fb_info *fb_info);
>  
>  /* fb_procfs.c */
> +#if defined(CONFIG_FB_DEVICE)
>  int fb_init_procfs(void);
>  void fb_cleanup_procfs(void);
> +#else
> +static inline int fb_init_procfs(void)
> +{
> +	return 0;
> +}
> +static inline void fb_cleanup_procfs(void)
> +{ }
> +#endif
>  
>  /* fbsysfs.c */
> +#if defined(CONFIG_FB_DEVICE)
>  int fb_device_create(struct fb_info *fb_info);
>  void fb_device_destroy(struct fb_info *fb_info);
> +#else
> +static inline int fb_device_create(struct fb_info *fb_info)
> +{
> +	get_device(fb_info->device); // as in device_add()
> +
> +	return 0;
> +}
> +static inline void fb_device_destroy(struct fb_info *fb_info)
> +{
> +	put_device(fb_info->device); // as in device_del()
> +}
> +#endif
I do not see why fb_device_{create,destroy} needs to call
{get,put}_device - and it is not explained.
A short explanation in the commit maybe?

With my comments addressed:
Reviewed-by: Sam Ravnborg <sam@ravnborg.org>

Note: I do not engage in the thread about the best Kconfig
solution - I trust the involved people will find a good solution.

	Sam

>  
>  #endif
> diff --git a/drivers/video/fbdev/omap2/omapfb/Kconfig b/drivers/video/fbdev/omap2/omapfb/Kconfig
> index 69f9cb03507e..21069fdb7cc2 100644
> --- a/drivers/video/fbdev/omap2/omapfb/Kconfig
> +++ b/drivers/video/fbdev/omap2/omapfb/Kconfig
> @@ -5,9 +5,9 @@ config OMAP2_VRFB
>  menuconfig FB_OMAP2
>  	tristate "OMAP2+ frame buffer support"
>  	depends on FB
> +	depends on FB_DEVICE
>  	depends on DRM_OMAP = n
>  	depends on GPIOLIB
> -
>  	select FB_OMAP2_DSS
>  	select OMAP2_VRFB if ARCH_OMAP2 || ARCH_OMAP3
>  	select FB_CFB_FILLRECT
> diff --git a/include/linux/fb.h b/include/linux/fb.h
> index 541a0e3ce21f..40ed1028160c 100644
> --- a/include/linux/fb.h
> +++ b/include/linux/fb.h
> @@ -481,7 +481,9 @@ struct fb_info {
>  
>  	const struct fb_ops *fbops;
>  	struct device *device;		/* This is the parent */
> +#if defined(CONFIG_FB_DEVICE)
>  	struct device *dev;		/* This is this fb device */
> +#endif
>  	int class_flag;                    /* private sysfs flags */
>  #ifdef CONFIG_FB_TILEBLITTING
>  	struct fb_tile_ops *tileops;    /* Tile Blitting */
> -- 
> 2.40.1

WARNING: multiple messages have this Message-ID (diff)
From: Sam Ravnborg <sam@ravnborg.org>
To: Thomas Zimmermann <tzimmermann@suse.de>
Cc: daniel.thompson@linaro.org, linux-staging@lists.linux.dev,
	geert+renesas@glider.be, linux-sh@vger.kernel.org,
	jingoohan1@gmail.com, deller@gmx.de, lee@kernel.org,
	javierm@redhat.com, dri-devel@lists.freedesktop.org,
	linux-fbdev@vger.kernel.org, linux-omap@vger.kernel.org
Subject: Re: [PATCH 30/30] fbdev: Make support for userspace interfaces configurable
Date: Sun, 11 Jun 2023 18:37:16 +0200	[thread overview]
Message-ID: <20230611163716.GA1139759@ravnborg.org> (raw)
In-Reply-To: <20230605144812.15241-31-tzimmermann@suse.de>

Hi Thomas,

On Mon, Jun 05, 2023 at 04:48:12PM +0200, Thomas Zimmermann wrote:
> Add Kconfig option CONFIG_FB_DEVICE and make the virtual fbdev
> device optional. If the new option has not been selected, fbdev
> does not create a files in devfs or sysfs.
s/ a//
> 
> Most modern Linux systems run a DRM-based graphics stack that uses
> the kernel's framebuffer console, but has otherwise deprecated fbdev
> support. Yet fbdev userspace interfaces are still present.
> 
> The option makes it possible to use the fbdev subsystem as console
> implementation without support for userspace. This closes potential
> entry points to manipulate kernel or I/O memory via framebuffers. It
> also prevents the execution of driver code via ioctl or sysfs, both
> of which might allow malicious software to exploit bugs in the fbdev
> code.
> 
> A small number of fbdev drivers require struct fbinfo.dev to be
> initialized, usually for the support of sysfs interface. Make these
> drivers depend on FB_DEVICE. They can later be fixed if necessary.
Should that be a TODO in gpu/todo.rst?
Otherwise the amount of people knowing about this
is very close to 1.
As an alternative add a TODO to each Kconfig file.

> 
> Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
> ---
>  drivers/staging/fbtft/Kconfig            |  1 +
>  drivers/video/fbdev/Kconfig              | 12 +++++++++
>  drivers/video/fbdev/core/Makefile        |  7 +++---
>  drivers/video/fbdev/core/fb_internal.h   | 32 ++++++++++++++++++++++++
>  drivers/video/fbdev/omap2/omapfb/Kconfig |  2 +-
>  include/linux/fb.h                       |  2 ++
>  6 files changed, 52 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/staging/fbtft/Kconfig b/drivers/staging/fbtft/Kconfig
> index 4d29e8c1014e..5dda3c65a38e 100644
> --- a/drivers/staging/fbtft/Kconfig
> +++ b/drivers/staging/fbtft/Kconfig
> @@ -2,6 +2,7 @@
>  menuconfig FB_TFT
>  	tristate "Support for small TFT LCD display modules"
>  	depends on FB && SPI
> +	depends on FB_DEVICE
>  	depends on GPIOLIB || COMPILE_TEST
>  	select FB_SYS_FILLRECT
>  	select FB_SYS_COPYAREA
> diff --git a/drivers/video/fbdev/Kconfig b/drivers/video/fbdev/Kconfig
> index 6df9bd09454a..48d9a14f889c 100644
> --- a/drivers/video/fbdev/Kconfig
> +++ b/drivers/video/fbdev/Kconfig
> @@ -57,6 +57,15 @@ config FIRMWARE_EDID
>  	  combination with certain motherboards and monitors are known to
>  	  suffer from this problem.
>  
> +config FB_DEVICE
> +        bool "Provide legacy /dev/fb* device"
> +        depends on FB
> +        help
> +	  Say Y here if you want the legacy /dev/fb* device file. It's
> +	  only required if you have userspace programs that depend on
> +	  fbdev for graphics output. This does not effect the framebuffer
> +	  console.
tabs to spaces to indent the above correct.

> +
>  config FB_DDC
>  	tristate
>  	depends on FB
> @@ -1545,6 +1554,7 @@ config FB_3DFX_I2C
>  config FB_VOODOO1
>  	tristate "3Dfx Voodoo Graphics (sst1) support"
>  	depends on FB && PCI
> +	depends on FB_DEVICE
>  	select FB_CFB_FILLRECT
>  	select FB_CFB_COPYAREA
>  	select FB_CFB_IMAGEBLIT
> @@ -1862,6 +1872,7 @@ config FB_SH_MOBILE_LCDC
>  	tristate "SuperH Mobile LCDC framebuffer support"
>  	depends on FB && HAVE_CLK && HAS_IOMEM
>  	depends on SUPERH || ARCH_RENESAS || COMPILE_TEST
> +	depends on FB_DEVICE
>  	select FB_SYS_FILLRECT
>  	select FB_SYS_COPYAREA
>  	select FB_SYS_IMAGEBLIT
> @@ -1930,6 +1941,7 @@ config FB_SMSCUFX
>  config FB_UDL
>  	tristate "Displaylink USB Framebuffer support"
>  	depends on FB && USB
> +	depends on FB_DEVICE
>  	select FB_MODE_HELPERS
>  	select FB_SYS_FILLRECT
>  	select FB_SYS_COPYAREA
> diff --git a/drivers/video/fbdev/core/Makefile b/drivers/video/fbdev/core/Makefile
> index 125d24f50c36..d5e8772620f8 100644
> --- a/drivers/video/fbdev/core/Makefile
> +++ b/drivers/video/fbdev/core/Makefile
> @@ -2,12 +2,13 @@
>  obj-$(CONFIG_FB_NOTIFY)           += fb_notify.o
>  obj-$(CONFIG_FB)                  += fb.o
>  fb-y                              := fb_backlight.o \
> -                                     fb_devfs.o \
>                                       fb_info.o \
> -                                     fb_procfs.o \
> -                                     fbmem.o fbmon.o fbcmap.o fbsysfs.o \
> +                                     fbmem.o fbmon.o fbcmap.o \
>                                       modedb.o fbcvt.o fb_cmdline.o fb_io_fops.o
>  fb-$(CONFIG_FB_DEFERRED_IO)       += fb_defio.o
> +fb-$(CONFIG_FB_DEVICE)            += fb_devfs.o \
> +                                     fb_procfs.o \
> +                                     fbsysfs.o
Maybe change this to one line to avoid '\'?

>  
>  ifeq ($(CONFIG_FRAMEBUFFER_CONSOLE),y)
>  fb-y				  += fbcon.o bitblit.o softcursor.o
> diff --git a/drivers/video/fbdev/core/fb_internal.h b/drivers/video/fbdev/core/fb_internal.h
> index 0b43c0cd5096..b8a28466db79 100644
> --- a/drivers/video/fbdev/core/fb_internal.h
> +++ b/drivers/video/fbdev/core/fb_internal.h
> @@ -3,12 +3,22 @@
>  #ifndef _FB_INTERNAL_H
>  #define _FB_INTERNAL_H
>  
> +#include <linux/device.h>
>  #include <linux/fb.h>
>  #include <linux/mutex.h>
>  
>  /* fb_devfs.c */
> +#if defined(CONFIG_FB_DEVICE)
>  int fb_register_chrdev(void);
>  void fb_unregister_chrdev(void);
> +#else
> +static inline int fb_register_chrdev(void)
> +{
> +	return 0;
> +}
> +static inline void fb_unregister_chrdev(void)
> +{ }
> +#endif
>  
>  /* fbmem.c */
>  extern struct class *fb_class;
> @@ -19,11 +29,33 @@ struct fb_info *get_fb_info(unsigned int idx);
>  void put_fb_info(struct fb_info *fb_info);
>  
>  /* fb_procfs.c */
> +#if defined(CONFIG_FB_DEVICE)
>  int fb_init_procfs(void);
>  void fb_cleanup_procfs(void);
> +#else
> +static inline int fb_init_procfs(void)
> +{
> +	return 0;
> +}
> +static inline void fb_cleanup_procfs(void)
> +{ }
> +#endif
>  
>  /* fbsysfs.c */
> +#if defined(CONFIG_FB_DEVICE)
>  int fb_device_create(struct fb_info *fb_info);
>  void fb_device_destroy(struct fb_info *fb_info);
> +#else
> +static inline int fb_device_create(struct fb_info *fb_info)
> +{
> +	get_device(fb_info->device); // as in device_add()
> +
> +	return 0;
> +}
> +static inline void fb_device_destroy(struct fb_info *fb_info)
> +{
> +	put_device(fb_info->device); // as in device_del()
> +}
> +#endif
I do not see why fb_device_{create,destroy} needs to call
{get,put}_device - and it is not explained.
A short explanation in the commit maybe?

With my comments addressed:
Reviewed-by: Sam Ravnborg <sam@ravnborg.org>

Note: I do not engage in the thread about the best Kconfig
solution - I trust the involved people will find a good solution.

	Sam

>  
>  #endif
> diff --git a/drivers/video/fbdev/omap2/omapfb/Kconfig b/drivers/video/fbdev/omap2/omapfb/Kconfig
> index 69f9cb03507e..21069fdb7cc2 100644
> --- a/drivers/video/fbdev/omap2/omapfb/Kconfig
> +++ b/drivers/video/fbdev/omap2/omapfb/Kconfig
> @@ -5,9 +5,9 @@ config OMAP2_VRFB
>  menuconfig FB_OMAP2
>  	tristate "OMAP2+ frame buffer support"
>  	depends on FB
> +	depends on FB_DEVICE
>  	depends on DRM_OMAP = n
>  	depends on GPIOLIB
> -
>  	select FB_OMAP2_DSS
>  	select OMAP2_VRFB if ARCH_OMAP2 || ARCH_OMAP3
>  	select FB_CFB_FILLRECT
> diff --git a/include/linux/fb.h b/include/linux/fb.h
> index 541a0e3ce21f..40ed1028160c 100644
> --- a/include/linux/fb.h
> +++ b/include/linux/fb.h
> @@ -481,7 +481,9 @@ struct fb_info {
>  
>  	const struct fb_ops *fbops;
>  	struct device *device;		/* This is the parent */
> +#if defined(CONFIG_FB_DEVICE)
>  	struct device *dev;		/* This is this fb device */
> +#endif
>  	int class_flag;                    /* private sysfs flags */
>  #ifdef CONFIG_FB_TILEBLITTING
>  	struct fb_tile_ops *tileops;    /* Tile Blitting */
> -- 
> 2.40.1

  parent reply	other threads:[~2023-06-11 16:37 UTC|newest]

Thread overview: 190+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-06-05 14:47 [PATCH 00/30] fbdev: Make userspace interfaces optional Thomas Zimmermann
2023-06-05 14:47 ` Thomas Zimmermann
2023-06-05 14:47 ` [PATCH 01/30] backlight/bd6107: Compare against struct fb_info.device Thomas Zimmermann
2023-06-05 14:47   ` Thomas Zimmermann
2023-06-07  7:30   ` Javier Martinez Canillas
2023-06-07  7:30     ` Javier Martinez Canillas
2023-06-07  7:34   ` Javier Martinez Canillas
2023-06-07  7:34     ` Javier Martinez Canillas
2023-06-05 14:47 ` [PATCH 02/30] backlight/gpio_backlight: " Thomas Zimmermann
2023-06-05 14:47   ` Thomas Zimmermann
2023-06-05 20:19   ` Ruhl, Michael J
2023-06-05 20:23     ` Sam Ravnborg
2023-06-05 20:23       ` Sam Ravnborg
2023-06-05 20:41       ` Ruhl, Michael J
2023-06-05 20:41         ` Ruhl, Michael J
2023-06-06  7:24     ` Thomas Zimmermann
2023-06-06  7:49       ` Dan Carpenter
2023-06-06  7:49         ` Dan Carpenter
2023-06-06  8:05         ` Thomas Zimmermann
2023-06-06  8:05           ` Thomas Zimmermann
2023-06-05 14:47 ` [PATCH 03/30] backlight/lv5207lp: " Thomas Zimmermann
2023-06-05 14:47   ` Thomas Zimmermann
2023-06-07  7:35   ` Javier Martinez Canillas
2023-06-05 14:47 ` [PATCH 04/30] fbdev/atyfb: Reorder backlight and framebuffer init/cleanup Thomas Zimmermann
2023-06-05 14:47   ` Thomas Zimmermann
2023-06-07  7:36   ` Javier Martinez Canillas
2023-06-07  7:36     ` Javier Martinez Canillas
2023-06-05 14:47 ` [PATCH 05/30] fbdev/atyfb: Use hardware device as backlight parent Thomas Zimmermann
2023-06-05 14:47   ` Thomas Zimmermann
2023-06-07  7:41   ` Javier Martinez Canillas
2023-06-07  7:41     ` Javier Martinez Canillas
2023-06-05 14:47 ` [PATCH 06/30] fbdev/aty128fb: Reorder backlight and framebuffer init/cleanup Thomas Zimmermann
2023-06-05 14:47   ` Thomas Zimmermann
2023-06-07  7:42   ` Javier Martinez Canillas
2023-06-07  7:42     ` Javier Martinez Canillas
2023-06-05 14:47 ` [PATCH 07/30] fbdev/aty128fb: Use hardware device as backlight parent Thomas Zimmermann
2023-06-05 14:47   ` Thomas Zimmermann
2023-06-07  7:55   ` Javier Martinez Canillas
2023-06-07  7:55     ` Javier Martinez Canillas
2023-06-05 14:47 ` [PATCH 08/30] fbdev/broadsheetfb: Call device_remove_file() with hardware device Thomas Zimmermann
2023-06-05 14:47   ` Thomas Zimmermann
2023-06-07  7:55   ` Javier Martinez Canillas
2023-06-05 14:47 ` [PATCH 09/30] fbdev/ep93xx-fb: Alloc DMA memory from " Thomas Zimmermann
2023-06-05 14:47   ` Thomas Zimmermann
2023-06-07  8:47   ` Javier Martinez Canillas
2023-06-07  8:47     ` Javier Martinez Canillas
2023-06-05 14:47 ` [PATCH 10/30] fbdev/ep93xx-fb: Output messages with fb_info() and fb_err() Thomas Zimmermann
2023-06-05 14:47   ` Thomas Zimmermann
2023-06-07  8:59   ` Javier Martinez Canillas
2023-06-07  8:59     ` Javier Martinez Canillas
2023-06-05 14:47 ` [PATCH 11/30] fbdev/ep93xx-fb: Do not assign to struct fb_info.dev Thomas Zimmermann
2023-06-05 14:47   ` Thomas Zimmermann
2023-06-06  5:26   ` Dan Carpenter
2023-06-06  5:26     ` Dan Carpenter
2023-06-07  9:00   ` Javier Martinez Canillas
2023-06-07  9:00     ` Javier Martinez Canillas
2023-06-05 14:47 ` [PATCH 12/30] fbdev/mb862xxfb: Output messages with fb_dbg() and fb_err() Thomas Zimmermann
2023-06-05 14:47   ` Thomas Zimmermann
2023-06-07  9:00   ` Javier Martinez Canillas
2023-06-07  9:00     ` Javier Martinez Canillas
2023-06-05 14:47 ` [PATCH 13/30] fbdev/metronomefb: Use hardware device for dev_err() Thomas Zimmermann
2023-06-05 14:47   ` Thomas Zimmermann
2023-06-07  9:01   ` Javier Martinez Canillas
2023-06-07  9:01     ` Javier Martinez Canillas
2023-06-05 14:47 ` [PATCH 14/30] fbdev/nvidiafb: Reorder backlight and framebuffer init/cleanup Thomas Zimmermann
2023-06-05 14:47   ` Thomas Zimmermann
2023-06-07  9:02   ` Javier Martinez Canillas
2023-06-07  9:02     ` Javier Martinez Canillas
2023-06-05 14:47 ` [PATCH 15/30] fbdev/nvidiafb: Use hardware device as backlight parent Thomas Zimmermann
2023-06-05 14:47   ` Thomas Zimmermann
2023-06-07  9:02   ` Javier Martinez Canillas
2023-06-07  9:02     ` Javier Martinez Canillas
2023-06-05 14:47 ` [PATCH 16/30] fbdev/pxa168fb: Do not assign to struct fb_info.dev Thomas Zimmermann
2023-06-05 14:47   ` Thomas Zimmermann
2023-06-07  9:09   ` Javier Martinez Canillas
2023-06-07  9:09     ` Javier Martinez Canillas
2023-06-05 14:47 ` [PATCH 17/30] fbdev/radeonfb: Reorder backlight and framebuffer cleanup Thomas Zimmermann
2023-06-05 14:47   ` Thomas Zimmermann
2023-06-07  9:09   ` Javier Martinez Canillas
2023-06-07  9:09     ` Javier Martinez Canillas
2023-06-05 14:48 ` [PATCH 18/30] fbdev/radeonfb: Use hardware device as backlight parent Thomas Zimmermann
2023-06-05 14:48   ` Thomas Zimmermann
2023-06-06  5:28   ` Dan Carpenter
2023-06-06  5:28     ` Dan Carpenter
2023-06-06  7:30     ` Thomas Zimmermann
2023-06-06  7:30       ` Thomas Zimmermann
2023-06-07  9:10   ` Javier Martinez Canillas
2023-06-07  9:10     ` Javier Martinez Canillas
2023-06-05 14:48 ` [PATCH 19/30] fbdev/rivafb: Reorder backlight and framebuffer init/cleanup Thomas Zimmermann
2023-06-05 14:48   ` Thomas Zimmermann
2023-06-07  9:11   ` Javier Martinez Canillas
2023-06-05 14:48 ` [PATCH 20/30] fbdev/rivafb: Use hardware device as backlight parent Thomas Zimmermann
2023-06-05 14:48   ` Thomas Zimmermann
2023-06-07  9:11   ` Javier Martinez Canillas
2023-06-07  9:11     ` Javier Martinez Canillas
2023-06-05 14:48 ` [PATCH 21/30] fbdev/sm501fb: Output message with fb_err() Thomas Zimmermann
2023-06-05 14:48   ` Thomas Zimmermann
2023-06-07  9:12   ` Javier Martinez Canillas
2023-06-05 14:48 ` [PATCH 22/30] fbdev/smscufx: Detect registered fb_info from refcount Thomas Zimmermann
2023-06-05 14:48   ` Thomas Zimmermann
2023-06-07 22:22   ` Javier Martinez Canillas
2023-06-07 22:22     ` Javier Martinez Canillas
2023-06-12 10:19     ` Thomas Zimmermann
2023-06-12 10:40       ` Javier Martinez Canillas
2023-06-05 14:48 ` [PATCH 23/30] fbdev/tdfxfb: Set i2c adapter parent to hardware device Thomas Zimmermann
2023-06-05 14:48   ` Thomas Zimmermann
2023-06-07 22:23   ` Javier Martinez Canillas
2023-06-07 22:23     ` Javier Martinez Canillas
2023-06-05 14:48 ` [PATCH 24/30] fbdev/core: Pass Linux device to pm_vt_switch_*() functions Thomas Zimmermann
2023-06-05 14:48   ` Thomas Zimmermann
2023-06-07 19:25   ` Sam Ravnborg
2023-06-07 19:25     ` Sam Ravnborg
2023-06-05 14:48 ` [PATCH 25/30] fbdev/core: Move framebuffer and backlight helpers into separate files Thomas Zimmermann
2023-06-05 14:48   ` Thomas Zimmermann
2023-06-07 19:38   ` Sam Ravnborg
2023-06-07 19:38     ` Sam Ravnborg
2023-06-09  7:19     ` Thomas Zimmermann
2023-06-09  7:19       ` Thomas Zimmermann
2023-06-05 14:48 ` [PATCH 26/30] fbdev/core: Add fb_device_{create,destroy}() Thomas Zimmermann
2023-06-05 14:48   ` Thomas Zimmermann
2023-06-07 19:45   ` Sam Ravnborg
2023-06-07 19:45     ` Sam Ravnborg
2023-06-05 14:48 ` [PATCH 27/30] fbdev/core: Move procfs code to separate file Thomas Zimmermann
2023-06-05 14:48   ` Thomas Zimmermann
2023-06-07 20:33   ` Sam Ravnborg
2023-06-07 20:33     ` Sam Ravnborg
2023-06-05 14:48 ` [PATCH 28/30] fbdev/core: Move file-I/O code into " Thomas Zimmermann
2023-06-05 14:48   ` Thomas Zimmermann
2023-06-05 21:35   ` kernel test robot
2023-06-05 21:35     ` kernel test robot
2023-06-07 20:48   ` Sam Ravnborg
2023-06-07 20:48     ` Sam Ravnborg
2023-06-12 10:35     ` Thomas Zimmermann
2023-06-12 10:35       ` Thomas Zimmermann
2023-06-07 22:28   ` Javier Martinez Canillas
2023-06-07 22:28     ` Javier Martinez Canillas
2023-06-05 14:48 ` [PATCH 29/30] fbdev/core: Rework fb init code Thomas Zimmermann
2023-06-05 14:48   ` Thomas Zimmermann
2023-06-07 20:51   ` Sam Ravnborg
2023-06-07 20:51     ` Sam Ravnborg
2023-06-05 14:48 ` [PATCH 30/30] fbdev: Make support for userspace interfaces configurable Thomas Zimmermann
2023-06-05 14:48   ` Thomas Zimmermann
2023-06-05 15:03   ` Greg KH
2023-06-05 15:03     ` Greg KH
2023-06-05 21:45   ` kernel test robot
2023-06-05 21:45     ` kernel test robot
2023-06-07  8:48   ` Geert Uytterhoeven
2023-06-07  8:48     ` Geert Uytterhoeven
2023-06-07 15:15     ` Thomas Zimmermann
2023-06-07 15:15       ` Thomas Zimmermann
2023-06-07 15:24       ` Geert Uytterhoeven
2023-06-07 15:24         ` Geert Uytterhoeven
2023-06-07 23:07         ` Javier Martinez Canillas
2023-06-07 23:07           ` Javier Martinez Canillas
2023-06-09  7:09           ` Thomas Zimmermann
2023-06-09  7:09             ` Thomas Zimmermann
2023-06-09  7:29             ` Geert Uytterhoeven
2023-06-09  7:29               ` Geert Uytterhoeven
2023-06-09  8:00               ` Thomas Zimmermann
2023-06-09  8:00                 ` Thomas Zimmermann
2023-06-09  9:14                 ` Geert Uytterhoeven
2023-06-09  9:14                   ` Geert Uytterhoeven
2023-06-09 11:04                   ` Thomas Zimmermann
2023-06-09 11:04                     ` Thomas Zimmermann
2023-06-09 11:22                     ` Geert Uytterhoeven
2023-06-09 11:22                       ` Geert Uytterhoeven
2023-06-09  9:59                 ` Javier Martinez Canillas
2023-06-09  9:59                   ` Javier Martinez Canillas
2023-06-09 10:10                   ` Geert Uytterhoeven
2023-06-09 10:10                     ` Geert Uytterhoeven
2023-06-09 10:24                     ` Javier Martinez Canillas
2023-06-09 10:24                       ` Javier Martinez Canillas
2023-06-09 11:27                 ` Javier Martinez Canillas
2023-06-09 11:27                   ` Javier Martinez Canillas
2023-06-11 16:37   ` Sam Ravnborg [this message]
2023-06-11 16:37     ` Sam Ravnborg
2023-06-12  6:47     ` Thomas Zimmermann
2023-06-12  6:47       ` Thomas Zimmermann
2023-06-12  7:00     ` Thomas Zimmermann
2023-06-12  7:00       ` Thomas Zimmermann
2023-06-07  8:35 ` [PATCH 00/30] fbdev: Make userspace interfaces optional Geert Uytterhoeven
2023-06-07  8:35   ` Geert Uytterhoeven
2023-06-12 10:46   ` Thomas Zimmermann
2023-06-12 10:46     ` Thomas Zimmermann
2023-06-07 12:06 ` Markus Elfring
2023-06-07 12:06   ` Markus Elfring
2023-06-07 12:21   ` Thomas Zimmermann
2023-06-07 12:21     ` Thomas Zimmermann
2023-06-07 14:08     ` Markus Elfring
2023-06-07 14:08       ` Markus Elfring

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20230611163716.GA1139759@ravnborg.org \
    --to=sam@ravnborg.org \
    --cc=daniel.thompson@linaro.org \
    --cc=daniel@ffwll.ch \
    --cc=deller@gmx.de \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=geert+renesas@glider.be \
    --cc=javierm@redhat.com \
    --cc=jingoohan1@gmail.com \
    --cc=lee@kernel.org \
    --cc=linux-fbdev@vger.kernel.org \
    --cc=linux-omap@vger.kernel.org \
    --cc=linux-sh@vger.kernel.org \
    --cc=linux-staging@lists.linux.dev \
    --cc=tzimmermann@suse.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.