at for-next 2.9 kB view raw
1/* SPDX-License-Identifier: GPL-2.0 */ 2 3#ifndef __ASM_GENERIC_VIDEO_H_ 4#define __ASM_GENERIC_VIDEO_H_ 5 6/* 7 * Only include this header file from your architecture's <asm/fb.h>. 8 */ 9 10#include <linux/io.h> 11#include <linux/mm_types.h> 12#include <linux/pgtable.h> 13#include <linux/types.h> 14 15struct device; 16 17#ifndef pgprot_framebuffer 18#define pgprot_framebuffer pgprot_framebuffer 19static inline pgprot_t pgprot_framebuffer(pgprot_t prot, 20 unsigned long vm_start, unsigned long vm_end, 21 unsigned long offset) 22{ 23 return pgprot_writecombine(prot); 24} 25#endif 26 27#ifndef video_is_primary_device 28#define video_is_primary_device video_is_primary_device 29static inline bool video_is_primary_device(struct device *dev) 30{ 31 return false; 32} 33#endif 34 35/* 36 * I/O helpers for the framebuffer. Prefer these functions over their 37 * regular counterparts. The regular I/O functions provide in-order 38 * access and swap bytes to/from little-endian ordering. Neither is 39 * required for framebuffers. Instead, the helpers read and write 40 * raw framebuffer data. Independent operations can be reordered for 41 * improved performance. 42 */ 43 44#ifndef fb_readb 45static inline u8 fb_readb(const volatile void __iomem *addr) 46{ 47 return __raw_readb(addr); 48} 49#define fb_readb fb_readb 50#endif 51 52#ifndef fb_readw 53static inline u16 fb_readw(const volatile void __iomem *addr) 54{ 55 return __raw_readw(addr); 56} 57#define fb_readw fb_readw 58#endif 59 60#ifndef fb_readl 61static inline u32 fb_readl(const volatile void __iomem *addr) 62{ 63 return __raw_readl(addr); 64} 65#define fb_readl fb_readl 66#endif 67 68#ifndef fb_readq 69#if defined(__raw_readq) 70static inline u64 fb_readq(const volatile void __iomem *addr) 71{ 72 return __raw_readq(addr); 73} 74#define fb_readq fb_readq 75#endif 76#endif 77 78#ifndef fb_writeb 79static inline void fb_writeb(u8 b, volatile void __iomem *addr) 80{ 81 __raw_writeb(b, addr); 82} 83#define fb_writeb fb_writeb 84#endif 85 86#ifndef fb_writew 87static inline void fb_writew(u16 b, volatile void __iomem *addr) 88{ 89 __raw_writew(b, addr); 90} 91#define fb_writew fb_writew 92#endif 93 94#ifndef fb_writel 95static inline void fb_writel(u32 b, volatile void __iomem *addr) 96{ 97 __raw_writel(b, addr); 98} 99#define fb_writel fb_writel 100#endif 101 102#ifndef fb_writeq 103#if defined(__raw_writeq) 104static inline void fb_writeq(u64 b, volatile void __iomem *addr) 105{ 106 __raw_writeq(b, addr); 107} 108#define fb_writeq fb_writeq 109#endif 110#endif 111 112#ifndef fb_memcpy_fromio 113static inline void fb_memcpy_fromio(void *to, const volatile void __iomem *from, size_t n) 114{ 115 memcpy_fromio(to, from, n); 116} 117#define fb_memcpy_fromio fb_memcpy_fromio 118#endif 119 120#ifndef fb_memcpy_toio 121static inline void fb_memcpy_toio(volatile void __iomem *to, const void *from, size_t n) 122{ 123 memcpy_toio(to, from, n); 124} 125#define fb_memcpy_toio fb_memcpy_toio 126#endif 127 128#ifndef fb_memset 129static inline void fb_memset_io(volatile void __iomem *addr, int c, size_t n) 130{ 131 memset_io(addr, c, n); 132} 133#define fb_memset fb_memset_io 134#endif 135 136#endif /* __ASM_GENERIC_VIDEO_H_ */