Linux Audio

Check our new training course

Loading...
Note: File does not exist in v4.10.11.
  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_ */