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 
97415287eSGerd Hoffmann struct drm_framebuffer;
107415287eSGerd Hoffmann struct drm_rect;
117415287eSGerd Hoffmann 
127415287eSGerd Hoffmann void drm_fb_memcpy(void *dst, void *vaddr, struct drm_framebuffer *fb,
137415287eSGerd Hoffmann 		   struct drm_rect *clip);
145ab7af71SThomas Zimmermann void drm_fb_memcpy_dstclip(void __iomem *dst, unsigned int dst_pitch, void *vaddr,
15bf4f6d16SGerd Hoffmann 			   struct drm_framebuffer *fb,
1626f024f5SGerd Hoffmann 			   struct drm_rect *clip);
17bd34cea2SNoralf Trønnes void drm_fb_swab(void *dst, void *src, struct drm_framebuffer *fb,
18bd34cea2SNoralf Trønnes 		 struct drm_rect *clip, bool cached);
19bcc44420SGerd Hoffmann void drm_fb_xrgb8888_to_rgb565(void *dst, void *vaddr,
207415287eSGerd Hoffmann 			       struct drm_framebuffer *fb,
21d653bd39SGerd Hoffmann 			       struct drm_rect *clip, bool swab);
22d653bd39SGerd Hoffmann void drm_fb_xrgb8888_to_rgb565_dstclip(void __iomem *dst, unsigned int dst_pitch,
23bcc44420SGerd Hoffmann 				       void *vaddr, struct drm_framebuffer *fb,
24d653bd39SGerd Hoffmann 				       struct drm_rect *clip, bool swab);
255c5373b5SGerd Hoffmann void drm_fb_xrgb8888_to_rgb888_dstclip(void __iomem *dst, unsigned int dst_pitch,
26ec3de7a4SGerd Hoffmann 				       void *vaddr, struct drm_framebuffer *fb,
27ec3de7a4SGerd Hoffmann 				       struct drm_rect *clip);
287415287eSGerd Hoffmann void drm_fb_xrgb8888_to_gray8(u8 *dst, void *vaddr, struct drm_framebuffer *fb,
297415287eSGerd Hoffmann 			      struct drm_rect *clip);
307415287eSGerd Hoffmann 
31*900d3e4aSThomas Zimmermann int drm_fb_blit_rect_dstclip(void __iomem *dst, unsigned int dst_pitch,
32*900d3e4aSThomas Zimmermann 			     uint32_t dst_format, void *vmap,
33*900d3e4aSThomas Zimmermann 			     struct drm_framebuffer *fb,
34*900d3e4aSThomas Zimmermann 			     struct drm_rect *rect);
35*900d3e4aSThomas Zimmermann int drm_fb_blit_dstclip(void __iomem *dst, unsigned int dst_pitch,
36*900d3e4aSThomas Zimmermann 			uint32_t dst_format, void *vmap,
37*900d3e4aSThomas Zimmermann 			struct drm_framebuffer *fb);
38*900d3e4aSThomas Zimmermann 
397415287eSGerd Hoffmann #endif /* __LINUX_DRM_FORMAT_HELPER_H */
40