Thomas Gleixner | 2874c5f | 2019-05-27 08:55:01 +0200 | [diff] [blame] | 1 | /* SPDX-License-Identifier: GPL-2.0-or-later */ |
Gerd Hoffmann | 7415287 | 2019-04-05 11:52:15 +0200 | [diff] [blame] | 2 | /* |
| 3 | * Copyright (C) 2016 Noralf Trønnes |
Gerd Hoffmann | 7415287 | 2019-04-05 11:52:15 +0200 | [diff] [blame] | 4 | */ |
| 5 | |
| 6 | #ifndef __LINUX_DRM_FORMAT_HELPER_H |
| 7 | #define __LINUX_DRM_FORMAT_HELPER_H |
| 8 | |
Thomas Zimmermann | 452290f | 2021-11-10 11:36:54 +0100 | [diff] [blame] | 9 | struct drm_format_info; |
Gerd Hoffmann | 7415287 | 2019-04-05 11:52:15 +0200 | [diff] [blame] | 10 | struct drm_framebuffer; |
| 11 | struct drm_rect; |
| 12 | |
Thomas Zimmermann | 452290f | 2021-11-10 11:36:54 +0100 | [diff] [blame] | 13 | unsigned int drm_fb_clip_offset(unsigned int pitch, const struct drm_format_info *format, |
| 14 | const struct drm_rect *clip); |
| 15 | |
Thomas Zimmermann | 27bd66d | 2021-11-10 11:36:55 +0100 | [diff] [blame] | 16 | void drm_fb_memcpy(void *dst, unsigned int dst_pitch, const void *vaddr, |
| 17 | const struct drm_framebuffer *fb, const struct drm_rect *clip); |
| 18 | void drm_fb_memcpy_toio(void __iomem *dst, unsigned int dst_pitch, const void *vaddr, |
| 19 | const struct drm_framebuffer *fb, const struct drm_rect *clip); |
Thomas Zimmermann | 3e3543c | 2021-11-10 11:36:56 +0100 | [diff] [blame] | 20 | void drm_fb_swab(void *dst, unsigned int dst_pitch, const void *src, |
| 21 | const struct drm_framebuffer *fb, const struct drm_rect *clip, |
| 22 | bool cached); |
Thomas Zimmermann | 53bc209 | 2021-11-10 11:36:57 +0100 | [diff] [blame] | 23 | void drm_fb_xrgb8888_to_rgb332(void *dst, unsigned int dst_pitch, const void *vaddr, |
| 24 | const struct drm_framebuffer *fb, const struct drm_rect *clip); |
| 25 | void drm_fb_xrgb8888_to_rgb565(void *dst, unsigned int dst_pitch, const void *vaddr, |
| 26 | const struct drm_framebuffer *fb, const struct drm_rect *clip, |
| 27 | bool swab); |
| 28 | void drm_fb_xrgb8888_to_rgb565_toio(void __iomem *dst, unsigned int dst_pitch, |
| 29 | const void *vaddr, const struct drm_framebuffer *fb, |
| 30 | const struct drm_rect *clip, bool swab); |
| 31 | void drm_fb_xrgb8888_to_rgb888(void *dst, unsigned int dst_pitch, const void *src, |
| 32 | const struct drm_framebuffer *fb, const struct drm_rect *clip); |
| 33 | void drm_fb_xrgb8888_to_rgb888_toio(void __iomem *dst, unsigned int dst_pitch, |
| 34 | const void *vaddr, const struct drm_framebuffer *fb, |
| 35 | const struct drm_rect *clip); |
Hector Martin | 877691b | 2021-12-12 15:24:06 +0900 | [diff] [blame] | 36 | void drm_fb_xrgb8888_to_xrgb2101010_toio(void __iomem *dst, unsigned int dst_pitch, |
| 37 | const void *vaddr, const struct drm_framebuffer *fb, |
| 38 | const struct drm_rect *clip); |
Thomas Zimmermann | 53bc209 | 2021-11-10 11:36:57 +0100 | [diff] [blame] | 39 | void drm_fb_xrgb8888_to_gray8(void *dst, unsigned int dst_pitch, const void *vaddr, |
| 40 | const struct drm_framebuffer *fb, const struct drm_rect *clip); |
Gerd Hoffmann | 7415287 | 2019-04-05 11:52:15 +0200 | [diff] [blame] | 41 | |
Thomas Zimmermann | 19b20a8 | 2021-11-10 11:36:58 +0100 | [diff] [blame] | 42 | int drm_fb_blit_toio(void __iomem *dst, unsigned int dst_pitch, uint32_t dst_format, |
| 43 | const void *vmap, const struct drm_framebuffer *fb, |
| 44 | const struct drm_rect *rect); |
Thomas Zimmermann | 900d3e4 | 2021-04-30 12:58:33 +0200 | [diff] [blame] | 45 | |
Javier Martinez Canillas | bcf8b61 | 2022-02-14 14:37:06 +0100 | [diff] [blame] | 46 | void drm_fb_xrgb8888_to_mono_reversed(void *dst, unsigned int dst_pitch, const void *src, |
| 47 | const struct drm_framebuffer *fb, |
| 48 | const struct drm_rect *clip); |
| 49 | |
Gerd Hoffmann | 7415287 | 2019-04-05 11:52:15 +0200 | [diff] [blame] | 50 | #endif /* __LINUX_DRM_FORMAT_HELPER_H */ |