linux-fbdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 00/32] fbdev: Modularize helpers for struct fb_ops
@ 2023-11-15 10:19 Thomas Zimmermann
  2023-11-15 10:19 ` [PATCH 01/32] fbdev/acornfb: Fix name of fb_ops initializer macro Thomas Zimmermann
                   ` (31 more replies)
  0 siblings, 32 replies; 77+ messages in thread
From: Thomas Zimmermann @ 2023-11-15 10:19 UTC (permalink / raw)
  To: deller, javierm; +Cc: linux-fbdev, dri-devel, Thomas Zimmermann

Convert the remaining fbdev drivers to use fbdev's helpers macros
for struct fb_ops. Then push the current default code for file-I/O
operations into a module and remove it as default. Each driver now
selects the helpers its needs for file I/O and drawing to its
framebuffer. If no helper has been set for an operation in struct
fb_ops, the operation is unsupported. Once applied, fbdev drivers
will not include unnecessary helper code. The helpers will also be
more robust against mis-use.

The first 2 patches are bug fixes. Patches 3 to 26 modify fbdev
drivers to set up their fb_ops structures correctly and select the
necessary helpers.

Patches 27 and 28 do a few additional minor cleanups.

Patches 29 to 32 move all helpers for struct fb_ops into modules
and drop the default. Helpers also warn if they operate on the
wrong type of framebuffer memory. Framebuffers in I/O memory and
system memory can only be used with the correct helper functions.

Thomas Zimmermann (32):
  fbdev/acornfb: Fix name of fb_ops initializer macro
  fbdev/sm712fb: Use correct initializer macros for struct fb_ops
  fbdev/vfb: Set FBINFO_VIRTFB flag
  fbdev/vfb: Initialize fb_ops with fbdev macros
  fbdev/arcfb: Set FBINFO_VIRTFB flag
  fbdev/arcfb: Use generator macros for deferred I/O
  auxdisplay/cfag12864bfb: Set FBINFO_VIRTFB flag
  auxdisplay/cfag12864bfb: Initialize fb_ops with fbdev macros
  auxdisplay/ht16k33: Set FBINFO_VIRTFB flag
  auxdisplay/ht16k33: Initialize fb_ops with fbdev macros
  hid/picolcd_fb: Set FBINFO_VIRTFB flag
  fbdev/sh_mobile_lcdcfb: Set FBINFO_VIRTFB flag
  fbdev/sh_mobile_lcdcfb: Initialize fb_ops with fbdev macros
  fbdev/smscufx: Select correct helpers
  fbdev/udlfb: Select correct helpers
  fbdev/au1200fb: Set FBINFO_VIRTFB flag
  fbdev/au1200fb: Initialize fb_ops with fbdev macros
  fbdev/ps3fb: Set FBINFO_VIRTFB flag
  fbdev/ps3fb: Initialize fb_ops with fbdev macros
  media/ivtvfb: Initialize fb_ops to fbdev I/O-memory helpers
  fbdev/clps711x-fb: Initialize fb_ops with fbdev macros
  fbdev/vt8500lcdfb: Initialize fb_ops with fbdev macros
  fbdev/wm8505fb: Initialize fb_ops to fbdev I/O-memory helpers
  fbdev/cyber2000fb: Initialize fb_ops with fbdev macros
  staging/sm750fb: Declare fb_ops as constant
  staging/sm750fb: Initialize fb_ops with fbdev macros
  fbdev: Rename FB_SYS_FOPS token to FB_SYSMEM_FOPS
  fbdev: Remove trailing whitespaces
  fbdev: Push pgprot_decrypted() into mmap implementations
  fbdev: Move default fb_mmap code into helper function
  fbdev: Warn on incorrect framebuffer access
  fbdev: Remove default file-I/O implementations

 drivers/auxdisplay/Kconfig                    |  10 +-
 drivers/auxdisplay/cfag12864bfb.c             |  10 +-
 drivers/auxdisplay/ht16k33.c                  |  10 +-
 drivers/hid/hid-picolcd_fb.c                  |   1 +
 drivers/media/pci/ivtv/Kconfig                |   4 +-
 drivers/media/pci/ivtv/ivtvfb.c               |   6 +-
 drivers/staging/sm750fb/sm750.c               |  65 ++++++++--
 drivers/video/fbdev/Kconfig                   |  50 ++------
 drivers/video/fbdev/acornfb.c                 |   2 +-
 drivers/video/fbdev/amba-clcd.c               |   2 +
 drivers/video/fbdev/arcfb.c                   | 114 +++++-------------
 drivers/video/fbdev/au1100fb.c                |   2 +
 drivers/video/fbdev/au1200fb.c                |  11 +-
 drivers/video/fbdev/clps711x-fb.c             |   4 +-
 drivers/video/fbdev/core/Kconfig              |   7 +-
 drivers/video/fbdev/core/Makefile             |   2 +-
 drivers/video/fbdev/core/cfbcopyarea.c        |   3 +
 drivers/video/fbdev/core/cfbfillrect.c        |   3 +
 drivers/video/fbdev/core/cfbimgblt.c          |   3 +
 drivers/video/fbdev/core/fb_chrdev.c          |  68 ++---------
 drivers/video/fbdev/core/fb_defio.c           |   2 +
 drivers/video/fbdev/core/fb_io_fops.c         |  36 ++++++
 drivers/video/fbdev/core/fb_sys_fops.c        |   6 +
 drivers/video/fbdev/core/syscopyarea.c        |   3 +
 drivers/video/fbdev/core/sysfillrect.c        |   3 +
 drivers/video/fbdev/core/sysimgblt.c          |   3 +
 drivers/video/fbdev/cyber2000fb.c             |   9 +-
 drivers/video/fbdev/ep93xx-fb.c               |   2 +
 drivers/video/fbdev/gbefb.c                   |   2 +
 drivers/video/fbdev/omap/omapfb_main.c        |   2 +
 .../video/fbdev/omap2/omapfb/omapfb-main.c    |   2 +
 drivers/video/fbdev/ps3fb.c                   |  11 +-
 drivers/video/fbdev/sa1100fb.c                |   2 +
 drivers/video/fbdev/sbuslib.c                 |   5 +-
 drivers/video/fbdev/sh_mobile_lcdcfb.c        |  16 +--
 drivers/video/fbdev/sm712fb.c                 |   6 +-
 drivers/video/fbdev/smscufx.c                 |   2 +
 drivers/video/fbdev/udlfb.c                   |   2 +
 drivers/video/fbdev/vermilion/vermilion.c     |   2 +
 drivers/video/fbdev/vfb.c                     |  10 +-
 drivers/video/fbdev/vt8500lcdfb.c             |   4 +-
 drivers/video/fbdev/wm8505fb.c                |   2 +
 include/linux/fb.h                            |  11 +-
 43 files changed, 254 insertions(+), 266 deletions(-)


base-commit: ab54663d6cd21c6748f91c1cc0fe3456d4e38ce6
-- 
2.42.0


^ permalink raw reply	[flat|nested] 77+ messages in thread

end of thread, other threads:[~2023-11-22  9:03 UTC | newest]

Thread overview: 77+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-11-15 10:19 [PATCH 00/32] fbdev: Modularize helpers for struct fb_ops Thomas Zimmermann
2023-11-15 10:19 ` [PATCH 01/32] fbdev/acornfb: Fix name of fb_ops initializer macro Thomas Zimmermann
2023-11-16  9:45   ` Javier Martinez Canillas
2023-11-15 10:19 ` [PATCH 02/32] fbdev/sm712fb: Use correct initializer macros for struct fb_ops Thomas Zimmermann
2023-11-16  9:46   ` Javier Martinez Canillas
2023-11-15 10:19 ` [PATCH 03/32] fbdev/vfb: Set FBINFO_VIRTFB flag Thomas Zimmermann
2023-11-16 10:00   ` Javier Martinez Canillas
2023-11-15 10:19 ` [PATCH 04/32] fbdev/vfb: Initialize fb_ops with fbdev macros Thomas Zimmermann
2023-11-16 10:04   ` Javier Martinez Canillas
2023-11-15 10:19 ` [PATCH 05/32] fbdev/arcfb: Set FBINFO_VIRTFB flag Thomas Zimmermann
2023-11-16 10:05   ` Javier Martinez Canillas
2023-11-15 10:19 ` [PATCH 06/32] fbdev/arcfb: Use generator macros for deferred I/O Thomas Zimmermann
2023-11-16 10:16   ` Javier Martinez Canillas
2023-11-15 10:19 ` [PATCH 07/32] auxdisplay/cfag12864bfb: Set FBINFO_VIRTFB flag Thomas Zimmermann
2023-11-16 10:16   ` Javier Martinez Canillas
2023-11-21 23:44   ` Miguel Ojeda
2023-11-15 10:19 ` [PATCH 08/32] auxdisplay/cfag12864bfb: Initialize fb_ops with fbdev macros Thomas Zimmermann
2023-11-16 10:22   ` Javier Martinez Canillas
2023-11-21 23:45   ` Miguel Ojeda
2023-11-15 10:19 ` [PATCH 09/32] auxdisplay/ht16k33: Set FBINFO_VIRTFB flag Thomas Zimmermann
2023-11-16 10:23   ` Javier Martinez Canillas
2023-11-21 23:50   ` Miguel Ojeda
2023-11-22  9:03     ` Thomas Zimmermann
2023-11-22  7:42   ` Robin van der Gracht
2023-11-15 10:19 ` [PATCH 10/32] auxdisplay/ht16k33: Initialize fb_ops with fbdev macros Thomas Zimmermann
2023-11-16 10:23   ` Javier Martinez Canillas
2023-11-21 23:45   ` Miguel Ojeda
2023-11-22  7:47   ` Robin van der Gracht
2023-11-15 10:19 ` [PATCH 11/32] hid/picolcd_fb: Set FBINFO_VIRTFB flag Thomas Zimmermann
2023-11-16 10:27   ` Javier Martinez Canillas
2023-11-17  8:51     ` Bruno Prémont
2023-11-21  8:42   ` Jiri Kosina
2023-11-21  8:56     ` Thomas Zimmermann
2023-11-15 10:19 ` [PATCH 12/32] fbdev/sh_mobile_lcdcfb: " Thomas Zimmermann
2023-11-16 10:29   ` Javier Martinez Canillas
2023-11-15 10:19 ` [PATCH 13/32] fbdev/sh_mobile_lcdcfb: Initialize fb_ops with fbdev macros Thomas Zimmermann
2023-11-16 10:45   ` Javier Martinez Canillas
2023-11-15 10:19 ` [PATCH 14/32] fbdev/smscufx: Select correct helpers Thomas Zimmermann
2023-11-16 10:46   ` Javier Martinez Canillas
2023-11-15 10:19 ` [PATCH 15/32] fbdev/udlfb: " Thomas Zimmermann
2023-11-16 10:46   ` Javier Martinez Canillas
2023-11-15 10:19 ` [PATCH 16/32] fbdev/au1200fb: Set FBINFO_VIRTFB flag Thomas Zimmermann
2023-11-16 10:47   ` Javier Martinez Canillas
2023-11-15 10:19 ` [PATCH 17/32] fbdev/au1200fb: Initialize fb_ops with fbdev macros Thomas Zimmermann
2023-11-16 10:48   ` Javier Martinez Canillas
2023-11-15 10:19 ` [PATCH 18/32] fbdev/ps3fb: Set FBINFO_VIRTFB flag Thomas Zimmermann
2023-11-16 10:48   ` Javier Martinez Canillas
2023-11-15 10:19 ` [PATCH 19/32] fbdev/ps3fb: Initialize fb_ops with fbdev macros Thomas Zimmermann
2023-11-16 10:53   ` Javier Martinez Canillas
2023-11-15 10:19 ` [PATCH 20/32] media/ivtvfb: Initialize fb_ops to fbdev I/O-memory helpers Thomas Zimmermann
2023-11-16 11:26   ` Javier Martinez Canillas
2023-11-20  8:52   ` Hans Verkuil
2023-11-20 11:29     ` Thomas Zimmermann
2023-11-15 10:19 ` [PATCH 21/32] fbdev/clps711x-fb: Initialize fb_ops with fbdev macros Thomas Zimmermann
2023-11-16 11:28   ` Javier Martinez Canillas
2023-11-15 10:19 ` [PATCH 22/32] fbdev/vt8500lcdfb: " Thomas Zimmermann
2023-11-16 11:30   ` Javier Martinez Canillas
2023-11-15 10:19 ` [PATCH 23/32] fbdev/wm8505fb: Initialize fb_ops to fbdev I/O-memory helpers Thomas Zimmermann
2023-11-16 11:34   ` Javier Martinez Canillas
2023-11-15 10:19 ` [PATCH 24/32] fbdev/cyber2000fb: Initialize fb_ops with fbdev macros Thomas Zimmermann
2023-11-16 11:35   ` Javier Martinez Canillas
2023-11-15 10:19 ` [PATCH 25/32] staging/sm750fb: Declare fb_ops as constant Thomas Zimmermann
2023-11-16 11:44   ` Javier Martinez Canillas
2023-11-15 10:19 ` [PATCH 26/32] staging/sm750fb: Initialize fb_ops with fbdev macros Thomas Zimmermann
2023-11-16 11:57   ` Javier Martinez Canillas
2023-11-15 10:19 ` [PATCH 27/32] fbdev: Rename FB_SYS_FOPS token to FB_SYSMEM_FOPS Thomas Zimmermann
2023-11-16 12:05   ` Javier Martinez Canillas
2023-11-15 10:19 ` [PATCH 28/32] fbdev: Remove trailing whitespaces Thomas Zimmermann
2023-11-16 11:57   ` Javier Martinez Canillas
2023-11-15 10:19 ` [PATCH 29/32] fbdev: Push pgprot_decrypted() into mmap implementations Thomas Zimmermann
2023-11-16 13:04   ` Javier Martinez Canillas
2023-11-15 10:19 ` [PATCH 30/32] fbdev: Move default fb_mmap code into helper function Thomas Zimmermann
2023-11-16 13:10   ` Javier Martinez Canillas
2023-11-15 10:19 ` [PATCH 31/32] fbdev: Warn on incorrect framebuffer access Thomas Zimmermann
2023-11-16 13:12   ` Javier Martinez Canillas
2023-11-15 10:19 ` [PATCH 32/32] fbdev: Remove default file-I/O implementations Thomas Zimmermann
2023-11-16 13:15   ` Javier Martinez Canillas

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).