From: Thomas Zimmermann <tzimmermann@suse.de>
To: maarten.lankhorst@linux.intel.com, mripard@kernel.org,
airlied@gmail.com, daniel@ffwll.ch, javierm@redhat.com,
deller@gmx.de, geert@linux-m68k.org, sudipm.mukherjee@gmail.com,
teddy.wang@siliconmotion.com
Cc: dri-devel@lists.freedesktop.org, linux-fbdev@vger.kernel.org,
Thomas Zimmermann <tzimmermann@suse.de>
Subject: [PATCH 0/6] drm,fbdev: Use fbdev's I/O helpers
Date: Tue, 25 Apr 2023 16:28:40 +0200 [thread overview]
Message-ID: <20230425142846.730-1-tzimmermann@suse.de> (raw)
Make fbdev's built-in helpers for reading and writing I/O and system
memory available to DRM. Replace DRM's internal helpers.
The first patch resolves a bug that's been in the fbdev code for
more than 15 years. Makes the read/write helpers work successfully
with the IGT tests.
Patches 2 to 4 streamline fbdev's file-I/O code and remove a few
duplicate checks.
Patch 5 moves the default-I/O code into the new helpers fb_cfb_read()
and fb_cfb_write(); patch 6 uses them in DRM. This allows us to remove
quite a bit of code from DRM's internal fbdev helpers.
Tested with i915 and simpledrm.
The next step here is to remove the drm_fb_helper_{cfb,sys}_*()
entirely. They where mostly introduced because fbdev doesn't protect
it's public interfaces with an CONFIG_FB preprocessor guards. But all
of DRM driver's fbdev emulation won't be build without CONFIG_FB, so
this is not an issue in practice. Removing the DRM wrappers will
further simplify the DRM code.
Thomas Zimmermann (6):
fbdev: Return number of bytes read or written
fbdev: Use screen_buffer in fb_sys_{read,write}()
fbdev: Don't re-validate info->state in fb_ops implementations
fbdev: Validate info->screen_{base,buffer} in fb_ops implementations
fbdev: Move CFB read and write code into helper functions
drm/fb-helper: Use fb_{cfb,sys}_{read, write}()
drivers/gpu/drm/drm_fb_helper.c | 174 +------------------------
drivers/video/fbdev/cobalt_lcdfb.c | 6 +
drivers/video/fbdev/core/Makefile | 2 +-
drivers/video/fbdev/core/fb_cfb_fops.c | 126 ++++++++++++++++++
drivers/video/fbdev/core/fb_sys_fops.c | 36 ++---
drivers/video/fbdev/core/fbmem.c | 111 +---------------
drivers/video/fbdev/sm712fb.c | 10 +-
include/linux/fb.h | 10 ++
8 files changed, 173 insertions(+), 302 deletions(-)
create mode 100644 drivers/video/fbdev/core/fb_cfb_fops.c
--
2.40.0
WARNING: multiple messages have this Message-ID (diff)
From: Thomas Zimmermann <tzimmermann@suse.de>
To: maarten.lankhorst@linux.intel.com, mripard@kernel.org,
airlied@gmail.com, daniel@ffwll.ch, javierm@redhat.com,
deller@gmx.de, geert@linux-m68k.org, sudipm.mukherjee@gmail.com,
teddy.wang@siliconmotion.com
Cc: linux-fbdev@vger.kernel.org,
Thomas Zimmermann <tzimmermann@suse.de>,
dri-devel@lists.freedesktop.org
Subject: [PATCH 0/6] drm,fbdev: Use fbdev's I/O helpers
Date: Tue, 25 Apr 2023 16:28:40 +0200 [thread overview]
Message-ID: <20230425142846.730-1-tzimmermann@suse.de> (raw)
Make fbdev's built-in helpers for reading and writing I/O and system
memory available to DRM. Replace DRM's internal helpers.
The first patch resolves a bug that's been in the fbdev code for
more than 15 years. Makes the read/write helpers work successfully
with the IGT tests.
Patches 2 to 4 streamline fbdev's file-I/O code and remove a few
duplicate checks.
Patch 5 moves the default-I/O code into the new helpers fb_cfb_read()
and fb_cfb_write(); patch 6 uses them in DRM. This allows us to remove
quite a bit of code from DRM's internal fbdev helpers.
Tested with i915 and simpledrm.
The next step here is to remove the drm_fb_helper_{cfb,sys}_*()
entirely. They where mostly introduced because fbdev doesn't protect
it's public interfaces with an CONFIG_FB preprocessor guards. But all
of DRM driver's fbdev emulation won't be build without CONFIG_FB, so
this is not an issue in practice. Removing the DRM wrappers will
further simplify the DRM code.
Thomas Zimmermann (6):
fbdev: Return number of bytes read or written
fbdev: Use screen_buffer in fb_sys_{read,write}()
fbdev: Don't re-validate info->state in fb_ops implementations
fbdev: Validate info->screen_{base,buffer} in fb_ops implementations
fbdev: Move CFB read and write code into helper functions
drm/fb-helper: Use fb_{cfb,sys}_{read, write}()
drivers/gpu/drm/drm_fb_helper.c | 174 +------------------------
drivers/video/fbdev/cobalt_lcdfb.c | 6 +
drivers/video/fbdev/core/Makefile | 2 +-
drivers/video/fbdev/core/fb_cfb_fops.c | 126 ++++++++++++++++++
drivers/video/fbdev/core/fb_sys_fops.c | 36 ++---
drivers/video/fbdev/core/fbmem.c | 111 +---------------
drivers/video/fbdev/sm712fb.c | 10 +-
include/linux/fb.h | 10 ++
8 files changed, 173 insertions(+), 302 deletions(-)
create mode 100644 drivers/video/fbdev/core/fb_cfb_fops.c
--
2.40.0
next reply other threads:[~2023-04-25 14:28 UTC|newest]
Thread overview: 73+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-04-25 14:28 Thomas Zimmermann [this message]
2023-04-25 14:28 ` [PATCH 0/6] drm,fbdev: Use fbdev's I/O helpers Thomas Zimmermann
2023-04-25 14:28 ` [PATCH 1/6] fbdev: Return number of bytes read or written Thomas Zimmermann
2023-04-25 14:28 ` Thomas Zimmermann
2023-04-25 16:15 ` Javier Martinez Canillas
2023-04-25 16:15 ` Javier Martinez Canillas
2023-04-26 9:43 ` [1/6] " Sui Jingfeng
2023-04-26 14:41 ` [PATCH 1/6] " Geert Uytterhoeven
2023-04-26 14:41 ` Geert Uytterhoeven
2023-04-26 15:01 ` Thomas Zimmermann
2023-04-26 15:01 ` Thomas Zimmermann
2023-04-25 14:28 ` [PATCH 2/6] fbdev: Use screen_buffer in fb_sys_{read,write}() Thomas Zimmermann
2023-04-25 14:28 ` Thomas Zimmermann
2023-04-25 16:35 ` Javier Martinez Canillas
2023-04-25 16:35 ` Javier Martinez Canillas
2023-04-26 14:14 ` Thomas Zimmermann
2023-04-26 14:43 ` Geert Uytterhoeven
2023-04-26 14:43 ` Geert Uytterhoeven
2023-04-26 9:47 ` [2/6] " Sui Jingfeng
2023-04-25 14:28 ` [PATCH 3/6] fbdev: Don't re-validate info->state in fb_ops implementations Thomas Zimmermann
2023-04-25 14:28 ` Thomas Zimmermann
2023-04-25 16:38 ` Javier Martinez Canillas
2023-04-25 16:38 ` Javier Martinez Canillas
2023-04-26 9:49 ` [3/6] " Sui Jingfeng
2023-04-26 14:49 ` [PATCH 3/6] " Geert Uytterhoeven
2023-04-26 14:49 ` Geert Uytterhoeven
2023-04-26 15:07 ` Thomas Zimmermann
2023-04-26 15:07 ` Thomas Zimmermann
2023-04-25 14:28 ` [PATCH 4/6] fbdev: Validate info->screen_{base,buffer} " Thomas Zimmermann
2023-04-25 14:28 ` [PATCH 4/6] fbdev: Validate info->screen_{base, buffer} " Thomas Zimmermann
2023-04-25 16:39 ` [PATCH 4/6] fbdev: Validate info->screen_{base,buffer} " Javier Martinez Canillas
2023-04-25 16:39 ` Javier Martinez Canillas
2023-04-26 10:24 ` [4/6] fbdev: Validate info->screen_{base, buffer} " Sui Jingfeng
2023-04-26 14:56 ` [PATCH 4/6] fbdev: Validate info->screen_{base,buffer} " Geert Uytterhoeven
2023-04-26 14:56 ` [PATCH 4/6] fbdev: Validate info->screen_{base, buffer} " Geert Uytterhoeven
2023-04-27 13:54 ` [PATCH 4/6] fbdev: Validate info->screen_{base,buffer} " Thomas Zimmermann
2023-04-27 13:54 ` [PATCH 4/6] fbdev: Validate info->screen_{base, buffer} " Thomas Zimmermann
2023-04-25 14:28 ` [PATCH 5/6] fbdev: Move CFB read and write code into helper functions Thomas Zimmermann
2023-04-25 14:28 ` Thomas Zimmermann
2023-04-25 16:47 ` Javier Martinez Canillas
2023-04-25 16:47 ` Javier Martinez Canillas
2023-04-26 5:16 ` kernel test robot
2023-04-26 5:16 ` kernel test robot
2023-04-26 14:24 ` Thomas Zimmermann
2023-04-26 14:24 ` Thomas Zimmermann
2023-04-26 6:07 ` kernel test robot
2023-04-26 6:07 ` kernel test robot
2023-04-26 6:47 ` kernel test robot
2023-04-26 6:47 ` kernel test robot
2023-04-26 10:25 ` [5/6] " Sui Jingfeng
2023-04-26 15:01 ` [PATCH 5/6] " Geert Uytterhoeven
2023-04-26 15:01 ` Geert Uytterhoeven
2023-04-26 15:06 ` Thomas Zimmermann
2023-04-26 15:06 ` Thomas Zimmermann
2023-04-26 15:21 ` Geert Uytterhoeven
2023-04-26 15:21 ` Geert Uytterhoeven
2023-04-28 11:20 ` Thomas Zimmermann
2023-04-28 11:20 ` Thomas Zimmermann
2023-04-28 12:20 ` Geert Uytterhoeven
2023-04-28 12:20 ` Geert Uytterhoeven
2023-04-25 14:28 ` [PATCH 6/6] drm/fb-helper: Use fb_{cfb,sys}_{read, write}() Thomas Zimmermann
2023-04-25 14:28 ` Thomas Zimmermann
2023-04-25 16:50 ` Javier Martinez Canillas
2023-04-25 16:50 ` Javier Martinez Canillas
2023-04-26 10:26 ` [6/6] " Sui Jingfeng
2023-04-26 15:15 ` [PATCH 6/6] " Geert Uytterhoeven
2023-04-26 15:15 ` Geert Uytterhoeven
2023-04-28 11:25 ` Thomas Zimmermann
2023-04-28 11:25 ` Thomas Zimmermann
2023-04-25 19:17 ` [PATCH 0/6] drm,fbdev: Use fbdev's I/O helpers Helge Deller
2023-04-25 19:17 ` Helge Deller
2023-04-26 10:33 ` Sui Jingfeng
2023-04-26 11:22 ` 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=20230425142846.730-1-tzimmermann@suse.de \
--to=tzimmermann@suse.de \
--cc=airlied@gmail.com \
--cc=daniel@ffwll.ch \
--cc=deller@gmx.de \
--cc=dri-devel@lists.freedesktop.org \
--cc=geert@linux-m68k.org \
--cc=javierm@redhat.com \
--cc=linux-fbdev@vger.kernel.org \
--cc=maarten.lankhorst@linux.intel.com \
--cc=mripard@kernel.org \
--cc=sudipm.mukherjee@gmail.com \
--cc=teddy.wang@siliconmotion.com \
/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.