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 9452290f3SThomas Zimmermann struct drm_format_info; 107415287eSGerd Hoffmann struct drm_framebuffer; 117415287eSGerd Hoffmann struct drm_rect; 127415287eSGerd Hoffmann 13452290f3SThomas Zimmermann unsigned int drm_fb_clip_offset(unsigned int pitch, const struct drm_format_info *format, 14452290f3SThomas Zimmermann const struct drm_rect *clip); 15452290f3SThomas Zimmermann 1627bd66ddSThomas Zimmermann void drm_fb_memcpy(void *dst, unsigned int dst_pitch, const void *vaddr, 1727bd66ddSThomas Zimmermann const struct drm_framebuffer *fb, const struct drm_rect *clip); 1827bd66ddSThomas Zimmermann void drm_fb_memcpy_toio(void __iomem *dst, unsigned int dst_pitch, const void *vaddr, 1927bd66ddSThomas Zimmermann const struct drm_framebuffer *fb, const struct drm_rect *clip); 203e3543c8SThomas Zimmermann void drm_fb_swab(void *dst, unsigned int dst_pitch, const void *src, 213e3543c8SThomas Zimmermann const struct drm_framebuffer *fb, const struct drm_rect *clip, 223e3543c8SThomas Zimmermann bool cached); 23*53bc2098SThomas Zimmermann void drm_fb_xrgb8888_to_rgb332(void *dst, unsigned int dst_pitch, const void *vaddr, 24*53bc2098SThomas Zimmermann const struct drm_framebuffer *fb, const struct drm_rect *clip); 25*53bc2098SThomas Zimmermann void drm_fb_xrgb8888_to_rgb565(void *dst, unsigned int dst_pitch, const void *vaddr, 26*53bc2098SThomas Zimmermann const struct drm_framebuffer *fb, const struct drm_rect *clip, 27*53bc2098SThomas Zimmermann bool swab); 28*53bc2098SThomas Zimmermann void drm_fb_xrgb8888_to_rgb565_toio(void __iomem *dst, unsigned int dst_pitch, 29*53bc2098SThomas Zimmermann const void *vaddr, const struct drm_framebuffer *fb, 30*53bc2098SThomas Zimmermann const struct drm_rect *clip, bool swab); 31*53bc2098SThomas Zimmermann void drm_fb_xrgb8888_to_rgb888(void *dst, unsigned int dst_pitch, const void *src, 32*53bc2098SThomas Zimmermann const struct drm_framebuffer *fb, const struct drm_rect *clip); 33*53bc2098SThomas Zimmermann void drm_fb_xrgb8888_to_rgb888_toio(void __iomem *dst, unsigned int dst_pitch, 34*53bc2098SThomas Zimmermann const void *vaddr, const struct drm_framebuffer *fb, 35*53bc2098SThomas Zimmermann const struct drm_rect *clip); 36*53bc2098SThomas Zimmermann void drm_fb_xrgb8888_to_gray8(void *dst, unsigned int dst_pitch, const void *vaddr, 37*53bc2098SThomas Zimmermann const struct drm_framebuffer *fb, const struct drm_rect *clip); 387415287eSGerd Hoffmann 39900d3e4aSThomas Zimmermann int drm_fb_blit_rect_dstclip(void __iomem *dst, unsigned int dst_pitch, 40900d3e4aSThomas Zimmermann uint32_t dst_format, void *vmap, 41900d3e4aSThomas Zimmermann struct drm_framebuffer *fb, 42900d3e4aSThomas Zimmermann struct drm_rect *rect); 43900d3e4aSThomas Zimmermann int drm_fb_blit_dstclip(void __iomem *dst, unsigned int dst_pitch, 44900d3e4aSThomas Zimmermann uint32_t dst_format, void *vmap, 45900d3e4aSThomas Zimmermann struct drm_framebuffer *fb); 46900d3e4aSThomas Zimmermann 477415287eSGerd Hoffmann #endif /* __LINUX_DRM_FORMAT_HELPER_H */ 48