mirror of
https://github.com/torvalds/linux.git
synced 2025-12-07 20:06:24 +00:00
fbdev: Move framebuffer I/O helpers into <asm/fb.h>
Implement framebuffer I/O helpers, such as fb_read*() and fb_write*(), in the architecture's <asm/fb.h> header file or the generic one. The common case has been the use of regular I/O functions, such as __raw_readb() or memset_io(). A few architectures used plain system- memory reads and writes. Sparc used helpers for its SBus. The architectures that used special cases provide the same code in their __raw_*() I/O helpers. So the patch replaces this code with the __raw_*() functions and moves it to <asm-generic/fb.h> for all architectures. v8: * remove garbage after commit-message tags v6: * fix fb_readq()/fb_writeq() on 64-bit mips (kernel test robot) v5: * include <linux/io.h> in <asm-generic/fb>; fix s390 build v4: * ia64, loongarch, sparc64: add fb_mem*() to arch headers to keep current semantics (Arnd) v3: * implement all architectures with generic helpers * support reordering and native byte order (Geert, Arnd) Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de> Tested-by: Sui Jingfeng <suijingfeng@loongson.cn> Reviewed-by: Arnd Bergmann <arnd@arndb.de> Link: https://patchwork.freedesktop.org/patch/msgid/20230512102444.5438-7-tzimmermann@suse.de
This commit is contained in:
@@ -2,6 +2,8 @@
|
||||
#ifndef _SPARC_FB_H_
|
||||
#define _SPARC_FB_H_
|
||||
|
||||
#include <linux/io.h>
|
||||
|
||||
struct fb_info;
|
||||
struct file;
|
||||
struct vm_area_struct;
|
||||
@@ -16,6 +18,24 @@ static inline void fb_pgprotect(struct file *file, struct vm_area_struct *vma,
|
||||
int fb_is_primary_device(struct fb_info *info);
|
||||
#define fb_is_primary_device fb_is_primary_device
|
||||
|
||||
static inline void fb_memcpy_fromfb(void *to, const volatile void __iomem *from, size_t n)
|
||||
{
|
||||
sbus_memcpy_fromio(to, from, n);
|
||||
}
|
||||
#define fb_memcpy_fromfb fb_memcpy_fromfb
|
||||
|
||||
static inline void fb_memcpy_tofb(volatile void __iomem *to, const void *from, size_t n)
|
||||
{
|
||||
sbus_memcpy_toio(to, from, n);
|
||||
}
|
||||
#define fb_memcpy_tofb fb_memcpy_tofb
|
||||
|
||||
static inline void fb_memset(volatile void __iomem *addr, int c, size_t n)
|
||||
{
|
||||
sbus_memset_io(addr, c, n);
|
||||
}
|
||||
#define fb_memset fb_memset
|
||||
|
||||
#include <asm-generic/fb.h>
|
||||
|
||||
#endif /* _SPARC_FB_H_ */
|
||||
|
||||
Reference in New Issue
Block a user