mbox series

[v4,0/6] fbdev: Move framebuffer I/O helpers to <asm/fb.h>

Message ID 20230504074539.8181-1-tzimmermann@suse.de
Headers show
Series fbdev: Move framebuffer I/O helpers to <asm/fb.h> | expand

Message

Thomas Zimmermann May 4, 2023, 7:45 a.m. UTC
Fbdev provides helpers for framebuffer I/O, such as fb_readl(),
fb_writel() or fb_memcpy_to_fb(). The implementation of each helper
depends on the architecture, but they are all equivalent to regular
I/O functions of similar names. So use regular functions instead and
move all helpers into <asm-generic/fb.h>

The first patch a simple whitespace cleanup.

Until now, <linux/fb.h> contained an include of <asm/io.h>. As this
will go away, patches 2 to 4 prepare include statements in the various
drivers. Source files that use regular I/O helpers, such as readl(),
now include <linux/io.h>. Source files that use framebuffer I/O
helpers, such as fb_readl(), now include <linux/fb.h>.

Patch 5 replaces the architecture-based if-else branching in 
<linux/fb.h> by helpers in <asm-generic/fb.h>. All helpers use Linux'
existing I/O functions.

Patch 6 harmonizes naming among fbdev and existing I/O functions.

The patchset has been built for a variety of platforms, such as x86-64,
arm, aarch64, ppc64, parisc, m64k, mips and sparc.

v4:
	* keep fb_mem*() as-is on ia64, loongarch, sparc64 (Arnd)
	* don't include <asm/fb.h> (Sam)
v3:
	* add the new helpers in <asm-generic/fb.h>
	* support reordering and native byte order (Geert, Arnd)
v2:
	* use Linux I/O helpers (Sam, Arnd)

Thomas Zimmermann (6):
  fbdev/matrox: Remove trailing whitespaces
  ipu-v3: Include <linux/io.h>
  fbdev: Include <linux/io.h> in various drivers
  fbdev: Include <linux/fb.h> instead of <asm/fb.h>
  fbdev: Move framebuffer I/O helpers into <asm/fb.h>
  fbdev: Rename fb_mem*() helpers

 arch/ia64/include/asm/fb.h                  |  20 ++++
 arch/loongarch/include/asm/fb.h             |  21 ++++
 arch/parisc/video/fbdev.c                   |   3 +-
 arch/sparc/include/asm/fb.h                 |  20 ++++
 arch/sparc/video/fbdev.c                    |   1 -
 arch/x86/video/fbdev.c                      |   2 -
 drivers/gpu/ipu-v3/ipu-prv.h                |   1 +
 drivers/staging/sm750fb/sm750.c             |   2 +-
 drivers/video/fbdev/arcfb.c                 |   1 +
 drivers/video/fbdev/aty/atyfb.h             |   2 +
 drivers/video/fbdev/aty/mach64_cursor.c     |   2 +-
 drivers/video/fbdev/chipsfb.c               |   2 +-
 drivers/video/fbdev/core/fbcon.c            |   1 -
 drivers/video/fbdev/core/fbmem.c            |   6 +-
 drivers/video/fbdev/kyro/fbdev.c            |   2 +-
 drivers/video/fbdev/matrox/matroxfb_accel.c |   6 +-
 drivers/video/fbdev/matrox/matroxfb_base.h  |   4 +-
 drivers/video/fbdev/pvr2fb.c                |   2 +-
 drivers/video/fbdev/sstfb.c                 |   2 +-
 drivers/video/fbdev/stifb.c                 |   4 +-
 drivers/video/fbdev/tdfxfb.c                |   2 +-
 drivers/video/fbdev/wmt_ge_rops.c           |   2 +
 include/asm-generic/fb.h                    | 101 ++++++++++++++++++++
 include/linux/fb.h                          |  55 +----------
 24 files changed, 187 insertions(+), 77 deletions(-)

Comments

Arnd Bergmann May 4, 2023, 8:08 a.m. UTC | #1
On Thu, May 4, 2023, at 09:45, Thomas Zimmermann wrote:
> Fbdev provides helpers for framebuffer I/O, such as fb_readl(),
> fb_writel() or fb_memcpy_to_fb(). The implementation of each helper
> depends on the architecture, but they are all equivalent to regular
> I/O functions of similar names. So use regular functions instead and
> move all helpers into <asm-generic/fb.h>
>
> The first patch a simple whitespace cleanup.
>
> Until now, <linux/fb.h> contained an include of <asm/io.h>. As this
> will go away, patches 2 to 4 prepare include statements in the various
> drivers. Source files that use regular I/O helpers, such as readl(),
> now include <linux/io.h>. Source files that use framebuffer I/O
> helpers, such as fb_readl(), now include <linux/fb.h>.
>
> Patch 5 replaces the architecture-based if-else branching in 
> <linux/fb.h> by helpers in <asm-generic/fb.h>. All helpers use Linux'
> existing I/O functions.
>
> Patch 6 harmonizes naming among fbdev and existing I/O functions.
>
> The patchset has been built for a variety of platforms, such as x86-64,
> arm, aarch64, ppc64, parisc, m64k, mips and sparc.

The whole series looks good to me now,

Reviewed-by: Arnd Bergmann <arnd@arndb.de>
Thomas Zimmermann May 5, 2023, 7:01 a.m. UTC | #2
Hi

Am 04.05.23 um 10:08 schrieb Arnd Bergmann:
> On Thu, May 4, 2023, at 09:45, Thomas Zimmermann wrote:
>> Fbdev provides helpers for framebuffer I/O, such as fb_readl(),
>> fb_writel() or fb_memcpy_to_fb(). The implementation of each helper
>> depends on the architecture, but they are all equivalent to regular
>> I/O functions of similar names. So use regular functions instead and
>> move all helpers into <asm-generic/fb.h>
>>
>> The first patch a simple whitespace cleanup.
>>
>> Until now, <linux/fb.h> contained an include of <asm/io.h>. As this
>> will go away, patches 2 to 4 prepare include statements in the various
>> drivers. Source files that use regular I/O helpers, such as readl(),
>> now include <linux/io.h>. Source files that use framebuffer I/O
>> helpers, such as fb_readl(), now include <linux/fb.h>.
>>
>> Patch 5 replaces the architecture-based if-else branching in
>> <linux/fb.h> by helpers in <asm-generic/fb.h>. All helpers use Linux'
>> existing I/O functions.
>>
>> Patch 6 harmonizes naming among fbdev and existing I/O functions.
>>
>> The patchset has been built for a variety of platforms, such as x86-64,
>> arm, aarch64, ppc64, parisc, m64k, mips and sparc.
> 
> The whole series looks good to me now,

This was a bit more effort to to untangle than I expected. Thanks for 
your help with cleaning this up.

Best regards
Thomas

> 
> Reviewed-by: Arnd Bergmann <arnd@arndb.de>