12874c5fdSThomas Gleixner /* SPDX-License-Identifier: GPL-2.0-or-later */ 27415287eSGerd Hoffmann /* 37415287eSGerd Hoffmann * Copyright (C) 2016 Noralf Trønnes 47415287eSGerd Hoffmann */ 57415287eSGerd Hoffmann 67415287eSGerd Hoffmann #ifndef __LINUX_DRM_FORMAT_HELPER_H 77415287eSGerd Hoffmann #define __LINUX_DRM_FORMAT_HELPER_H 87415287eSGerd Hoffmann 971bf5587SThomas Zimmermann struct iosys_map; 10452290f3SThomas Zimmermann struct drm_format_info; 117415287eSGerd Hoffmann struct drm_framebuffer; 127415287eSGerd Hoffmann struct drm_rect; 137415287eSGerd Hoffmann 14452290f3SThomas Zimmermann unsigned int drm_fb_clip_offset(unsigned int pitch, const struct drm_format_info *format, 15452290f3SThomas Zimmermann const struct drm_rect *clip); 16452290f3SThomas Zimmermann 17edbe262aSThomas Zimmermann void drm_fb_memcpy(struct iosys_map *dst, const unsigned int *dst_pitch, 18edbe262aSThomas Zimmermann const struct iosys_map *vmap, const struct drm_framebuffer *fb, 19edbe262aSThomas Zimmermann const struct drm_rect *clip); 20ce582859SThomas Zimmermann void drm_fb_swab(struct iosys_map *dst, const unsigned int *dst_pitch, 21ce582859SThomas Zimmermann const struct iosys_map *vmap, const struct drm_framebuffer *fb, 22ce582859SThomas Zimmermann const struct drm_rect *clip, bool cached); 23e13140a0SThomas Zimmermann void drm_fb_xrgb8888_to_rgb332(struct iosys_map *dst, const unsigned int *dst_pitch, 24e13140a0SThomas Zimmermann const struct iosys_map *vmap, const struct drm_framebuffer *fb, 25e13140a0SThomas Zimmermann const struct drm_rect *clip); 26ab298c29SThomas Zimmermann void drm_fb_xrgb8888_to_rgb565(struct iosys_map *dst, const unsigned int *dst_pitch, 27ab298c29SThomas Zimmermann const struct iosys_map *vmap, const struct drm_framebuffer *fb, 2853bc2098SThomas Zimmermann const struct drm_rect *clip, bool swab); 29*c4863ce0SThomas Zimmermann void drm_fb_xrgb8888_to_rgb888(struct iosys_map *dst, const unsigned int *dst_pitch, 30*c4863ce0SThomas Zimmermann const struct iosys_map *vmap, const struct drm_framebuffer *fb, 3153bc2098SThomas Zimmermann const struct drm_rect *clip); 32877691b9SHector Martin void drm_fb_xrgb8888_to_xrgb2101010_toio(void __iomem *dst, unsigned int dst_pitch, 33877691b9SHector Martin const void *vaddr, const struct drm_framebuffer *fb, 34877691b9SHector Martin const struct drm_rect *clip); 3553bc2098SThomas Zimmermann void drm_fb_xrgb8888_to_gray8(void *dst, unsigned int dst_pitch, const void *vaddr, 3653bc2098SThomas Zimmermann const struct drm_framebuffer *fb, const struct drm_rect *clip); 377415287eSGerd Hoffmann 3871bf5587SThomas Zimmermann int drm_fb_blit(struct iosys_map *dst, const unsigned int *dst_pitch, uint32_t dst_format, 3971bf5587SThomas Zimmermann const struct iosys_map *vmap, const struct drm_framebuffer *fb, 4019b20a80SThomas Zimmermann const struct drm_rect *rect); 41900d3e4aSThomas Zimmermann 429b13a3fcSGeert Uytterhoeven void drm_fb_xrgb8888_to_mono(void *dst, unsigned int dst_pitch, const void *src, 439b13a3fcSGeert Uytterhoeven const struct drm_framebuffer *fb, const struct drm_rect *clip); 44bcf8b616SJavier Martinez Canillas 457415287eSGerd Hoffmann #endif /* __LINUX_DRM_FORMAT_HELPER_H */ 46