brintos

brintos / linux-shallow public Read only

0
0
Text · 2.9 KiB · b1da230 Raw
137 lines · c
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_framebuffer18#define pgprot_framebuffer pgprot_framebuffer19static 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#endif26 27#ifndef video_is_primary_device28#define video_is_primary_device video_is_primary_device29static inline bool video_is_primary_device(struct device *dev)30{31	return false;32}33#endif34 35/*36 * I/O helpers for the framebuffer. Prefer these functions over their37 * regular counterparts. The regular I/O functions provide in-order38 * access and swap bytes to/from little-endian ordering. Neither is39 * required for framebuffers. Instead, the helpers read and write40 * raw framebuffer data. Independent operations can be reordered for41 * improved performance.42 */43 44#ifndef fb_readb45static inline u8 fb_readb(const volatile void __iomem *addr)46{47	return __raw_readb(addr);48}49#define fb_readb fb_readb50#endif51 52#ifndef fb_readw53static inline u16 fb_readw(const volatile void __iomem *addr)54{55	return __raw_readw(addr);56}57#define fb_readw fb_readw58#endif59 60#ifndef fb_readl61static inline u32 fb_readl(const volatile void __iomem *addr)62{63	return __raw_readl(addr);64}65#define fb_readl fb_readl66#endif67 68#ifndef fb_readq69#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_readq75#endif76#endif77 78#ifndef fb_writeb79static inline void fb_writeb(u8 b, volatile void __iomem *addr)80{81	__raw_writeb(b, addr);82}83#define fb_writeb fb_writeb84#endif85 86#ifndef fb_writew87static inline void fb_writew(u16 b, volatile void __iomem *addr)88{89	__raw_writew(b, addr);90}91#define fb_writew fb_writew92#endif93 94#ifndef fb_writel95static inline void fb_writel(u32 b, volatile void __iomem *addr)96{97	__raw_writel(b, addr);98}99#define fb_writel fb_writel100#endif101 102#ifndef fb_writeq103#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_writeq109#endif110#endif111 112#ifndef fb_memcpy_fromio113static 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_fromio118#endif119 120#ifndef fb_memcpy_toio121static 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_toio126#endif127 128#ifndef fb_memset129static 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_io134#endif135 136#endif /* __ASM_GENERIC_VIDEO_H_ */137