From: Thomas Zimmermann <tzimmermann@suse.de>
To: javierm@redhat.com, deller@gmx.de
Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org,
Thomas Zimmermann <tzimmermann@suse.de>
Subject: [PATCH v2 00/32] fbdev: Modularize helpers for struct fb_ops
Date: Mon, 27 Nov 2023 14:15:29 +0100 [thread overview]
Message-ID: <20231127131655.4020-1-tzimmermann@suse.de> (raw)
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.
v2:
* warn once if I/O callbacks are missing (Javier)
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 | 16 ++-
43 files changed, 259 insertions(+), 266 deletions(-)
--
2.43.0
next reply other threads:[~2023-11-27 13:17 UTC|newest]
Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-11-27 13:15 Thomas Zimmermann [this message]
2023-11-27 13:15 ` [PATCH v2 01/32] fbdev/acornfb: Fix name of fb_ops initializer macro Thomas Zimmermann
2023-11-27 13:15 ` [PATCH v2 02/32] fbdev/sm712fb: Use correct initializer macros for struct fb_ops Thomas Zimmermann
2023-11-27 13:15 ` [PATCH v2 03/32] fbdev/vfb: Set FBINFO_VIRTFB flag Thomas Zimmermann
2023-11-27 13:15 ` [PATCH v2 04/32] fbdev/vfb: Initialize fb_ops with fbdev macros Thomas Zimmermann
2023-11-27 13:15 ` [PATCH v2 05/32] fbdev/arcfb: Set FBINFO_VIRTFB flag Thomas Zimmermann
2023-11-27 13:15 ` [PATCH v2 06/32] fbdev/arcfb: Use generator macros for deferred I/O Thomas Zimmermann
2023-11-27 13:15 ` [PATCH v2 07/32] auxdisplay/cfag12864bfb: Set FBINFO_VIRTFB flag Thomas Zimmermann
2023-11-27 13:15 ` [PATCH v2 08/32] auxdisplay/cfag12864bfb: Initialize fb_ops with fbdev macros Thomas Zimmermann
2023-11-27 13:15 ` [PATCH v2 09/32] auxdisplay/ht16k33: Set FBINFO_VIRTFB flag Thomas Zimmermann
2023-11-27 13:15 ` [PATCH v2 10/32] auxdisplay/ht16k33: Initialize fb_ops with fbdev macros Thomas Zimmermann
2023-11-27 13:15 ` [PATCH v2 11/32] hid/picolcd_fb: Set FBINFO_VIRTFB flag Thomas Zimmermann
2023-11-27 13:15 ` [PATCH v2 12/32] fbdev/sh_mobile_lcdcfb: " Thomas Zimmermann
2023-11-27 13:15 ` [PATCH v2 13/32] fbdev/sh_mobile_lcdcfb: Initialize fb_ops with fbdev macros Thomas Zimmermann
2023-11-27 13:15 ` [PATCH v2 14/32] fbdev/smscufx: Select correct helpers Thomas Zimmermann
2023-11-27 13:15 ` [PATCH v2 15/32] fbdev/udlfb: " Thomas Zimmermann
2023-11-27 13:15 ` [PATCH v2 16/32] fbdev/au1200fb: Set FBINFO_VIRTFB flag Thomas Zimmermann
2023-11-27 13:15 ` [PATCH v2 17/32] fbdev/au1200fb: Initialize fb_ops with fbdev macros Thomas Zimmermann
2023-11-27 13:15 ` [PATCH v2 18/32] fbdev/ps3fb: Set FBINFO_VIRTFB flag Thomas Zimmermann
2023-11-27 13:15 ` [PATCH v2 19/32] fbdev/ps3fb: Initialize fb_ops with fbdev macros Thomas Zimmermann
2023-11-27 13:15 ` [PATCH v2 20/32] media/ivtvfb: Initialize fb_ops to fbdev I/O-memory helpers Thomas Zimmermann
2023-11-27 13:15 ` [PATCH v2 21/32] fbdev/clps711x-fb: Initialize fb_ops with fbdev macros Thomas Zimmermann
2023-11-27 13:15 ` [PATCH v2 22/32] fbdev/vt8500lcdfb: " Thomas Zimmermann
2023-11-27 13:15 ` [PATCH v2 23/32] fbdev/wm8505fb: Initialize fb_ops to fbdev I/O-memory helpers Thomas Zimmermann
2023-11-27 13:15 ` [PATCH v2 24/32] fbdev/cyber2000fb: Initialize fb_ops with fbdev macros Thomas Zimmermann
2023-11-27 13:15 ` [PATCH v2 25/32] staging/sm750fb: Declare fb_ops as constant Thomas Zimmermann
2023-11-27 13:29 ` Greg Kroah-Hartman
2023-11-27 13:15 ` [PATCH v2 26/32] staging/sm750fb: Initialize fb_ops with fbdev macros Thomas Zimmermann
2023-11-27 13:30 ` Greg Kroah-Hartman
2023-11-27 13:15 ` [PATCH v2 27/32] fbdev: Rename FB_SYS_FOPS token to FB_SYSMEM_FOPS Thomas Zimmermann
2023-11-27 13:15 ` [PATCH v2 28/32] fbdev: Remove trailing whitespaces Thomas Zimmermann
2023-11-27 13:15 ` [PATCH v2 29/32] fbdev: Push pgprot_decrypted() into mmap implementations Thomas Zimmermann
2023-11-27 13:15 ` [PATCH v2 30/32] fbdev: Move default fb_mmap code into helper function Thomas Zimmermann
2023-11-27 13:16 ` [PATCH v2 31/32] fbdev: Warn on incorrect framebuffer access Thomas Zimmermann
2023-11-27 13:16 ` [PATCH v2 32/32] fbdev: Remove default file-I/O implementations Thomas Zimmermann
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=20231127131655.4020-1-tzimmermann@suse.de \
--to=tzimmermann@suse.de \
--cc=deller@gmx.de \
--cc=dri-devel@lists.freedesktop.org \
--cc=javierm@redhat.com \
--cc=linux-fbdev@vger.kernel.org \
/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 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).