mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-09-18 22:14:16 +00:00
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
41 lines
955 B
C
41 lines
955 B
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
#ifndef _SPARC_FB_H_
|
|
#define _SPARC_FB_H_
|
|
|
|
#include <linux/io.h>
|
|
|
|
struct fb_info;
|
|
struct file;
|
|
struct vm_area_struct;
|
|
|
|
#ifdef CONFIG_SPARC32
|
|
static inline void fb_pgprotect(struct file *file, struct vm_area_struct *vma,
|
|
unsigned long off)
|
|
{ }
|
|
#define fb_pgprotect fb_pgprotect
|
|
#endif
|
|
|
|
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_ */
|