2019-05-27 08:55:01 +02:00
/* SPDX-License-Identifier: GPL-2.0-or-later */
2019-04-05 11:52:15 +02:00
/*
* Copyright ( C ) 2016 Noralf Trønnes
*/
# ifndef __LINUX_DRM_FORMAT_HELPER_H
# define __LINUX_DRM_FORMAT_HELPER_H
2022-09-05 16:16:48 +02:00
# include <linux/types.h>
struct drm_device ;
2021-11-10 11:36:54 +01:00
struct drm_format_info ;
2019-04-05 11:52:15 +02:00
struct drm_framebuffer ;
struct drm_rect ;
2022-09-05 16:16:48 +02:00
struct iosys_map ;
2021-11-10 11:36:54 +01:00
unsigned int drm_fb_clip_offset ( unsigned int pitch , const struct drm_format_info * format ,
const struct drm_rect * clip ) ;
2022-08-08 14:53:55 +02:00
void drm_fb_memcpy ( struct iosys_map * dst , const unsigned int * dst_pitch ,
2022-08-08 14:54:06 +02:00
const struct iosys_map * src , const struct drm_framebuffer * fb ,
2022-08-08 14:53:55 +02:00
const struct drm_rect * clip ) ;
2022-08-08 14:53:56 +02:00
void drm_fb_swab ( struct iosys_map * dst , const unsigned int * dst_pitch ,
2022-08-08 14:54:06 +02:00
const struct iosys_map * src , const struct drm_framebuffer * fb ,
2022-08-08 14:53:56 +02:00
const struct drm_rect * clip , bool cached ) ;
2022-08-08 14:53:57 +02:00
void drm_fb_xrgb8888_to_rgb332 ( struct iosys_map * dst , const unsigned int * dst_pitch ,
2022-08-08 14:54:06 +02:00
const struct iosys_map * src , const struct drm_framebuffer * fb ,
2022-08-08 14:53:57 +02:00
const struct drm_rect * clip ) ;
2022-08-08 14:53:58 +02:00
void drm_fb_xrgb8888_to_rgb565 ( struct iosys_map * dst , const unsigned int * dst_pitch ,
2022-08-08 14:54:06 +02:00
const struct iosys_map * src , const struct drm_framebuffer * fb ,
2022-08-08 14:53:58 +02:00
const struct drm_rect * clip , bool swab ) ;
2023-01-02 12:29:23 +01:00
void drm_fb_xrgb8888_to_xrgb1555 ( struct iosys_map * dst , const unsigned int * dst_pitch ,
const struct iosys_map * src , const struct drm_framebuffer * fb ,
const struct drm_rect * clip ) ;
void drm_fb_xrgb8888_to_argb1555 ( struct iosys_map * dst , const unsigned int * dst_pitch ,
const struct iosys_map * src , const struct drm_framebuffer * fb ,
const struct drm_rect * clip ) ;
void drm_fb_xrgb8888_to_rgba5551 ( struct iosys_map * dst , const unsigned int * dst_pitch ,
const struct iosys_map * src , const struct drm_framebuffer * fb ,
const struct drm_rect * clip ) ;
2022-08-08 14:53:59 +02:00
void drm_fb_xrgb8888_to_rgb888 ( struct iosys_map * dst , const unsigned int * dst_pitch ,
2022-08-08 14:54:06 +02:00
const struct iosys_map * src , const struct drm_framebuffer * fb ,
2022-08-08 14:53:59 +02:00
const struct drm_rect * clip ) ;
2023-01-02 12:29:21 +01:00
void drm_fb_xrgb8888_to_argb8888 ( struct iosys_map * dst , const unsigned int * dst_pitch ,
const struct iosys_map * src , const struct drm_framebuffer * fb ,
const struct drm_rect * clip ) ;
2022-08-08 14:54:02 +02:00
void drm_fb_xrgb8888_to_xrgb2101010 ( struct iosys_map * dst , const unsigned int * dst_pitch ,
2022-08-08 14:54:06 +02:00
const struct iosys_map * src , const struct drm_framebuffer * fb ,
2022-08-08 14:54:02 +02:00
const struct drm_rect * clip ) ;
2023-01-02 12:29:22 +01:00
void drm_fb_xrgb8888_to_argb2101010 ( struct iosys_map * dst , const unsigned int * dst_pitch ,
const struct iosys_map * src , const struct drm_framebuffer * fb ,
const struct drm_rect * clip ) ;
2022-08-08 14:54:03 +02:00
void drm_fb_xrgb8888_to_gray8 ( struct iosys_map * dst , const unsigned int * dst_pitch ,
2022-08-08 14:54:06 +02:00
const struct iosys_map * src , const struct drm_framebuffer * fb ,
2022-08-08 14:54:03 +02:00
const struct drm_rect * clip ) ;
2019-04-05 11:52:15 +02:00
2022-08-08 14:53:54 +02:00
int drm_fb_blit ( struct iosys_map * dst , const unsigned int * dst_pitch , uint32_t dst_format ,
2022-08-08 14:54:06 +02:00
const struct iosys_map * src , const struct drm_framebuffer * fb ,
2022-08-08 14:53:54 +02:00
const struct drm_rect * rect ) ;
2021-04-30 12:58:33 +02:00
2022-08-08 14:54:04 +02:00
void drm_fb_xrgb8888_to_mono ( struct iosys_map * dst , const unsigned int * dst_pitch ,
2022-08-08 14:54:06 +02:00
const struct iosys_map * src , const struct drm_framebuffer * fb ,
2022-08-08 14:54:04 +02:00
const struct drm_rect * clip ) ;
2022-02-14 14:37:06 +01:00
2022-09-05 16:16:48 +02:00
size_t drm_fb_build_fourcc_list ( struct drm_device * dev ,
const u32 * native_fourccs , size_t native_nfourccs ,
u32 * fourccs_out , size_t nfourccs_out ) ;
2019-04-05 11:52:15 +02:00
# endif /* __LINUX_DRM_FORMAT_HELPER_H */