mirror of
https://github.com/torvalds/linux.git
synced 2024-11-22 20:22:09 +00:00
bcf8b616de
Add support to convert from XR24 to reversed monochrome for drivers that control monochromatic display panels, that only have 1 bit per pixel. The function does a line-by-line conversion doing an intermediate step first from XR24 to 8-bit grayscale and then to reversed monochrome. The drm_fb_gray8_to_mono_reversed_line() helper was based on code from drivers/gpu/drm/tiny/repaper.c driver. Signed-off-by: Javier Martinez Canillas <javierm@redhat.com> Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de> Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Reviewed-by: Maxime Ripard <maxime@cerno.tech> Link: https://patchwork.freedesktop.org/patch/msgid/20220214133710.3278506-3-javierm@redhat.com
51 lines
2.3 KiB
C
51 lines
2.3 KiB
C
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
|
/*
|
|
* Copyright (C) 2016 Noralf Trønnes
|
|
*/
|
|
|
|
#ifndef __LINUX_DRM_FORMAT_HELPER_H
|
|
#define __LINUX_DRM_FORMAT_HELPER_H
|
|
|
|
struct drm_format_info;
|
|
struct drm_framebuffer;
|
|
struct drm_rect;
|
|
|
|
unsigned int drm_fb_clip_offset(unsigned int pitch, const struct drm_format_info *format,
|
|
const struct drm_rect *clip);
|
|
|
|
void drm_fb_memcpy(void *dst, unsigned int dst_pitch, const void *vaddr,
|
|
const struct drm_framebuffer *fb, const struct drm_rect *clip);
|
|
void drm_fb_memcpy_toio(void __iomem *dst, unsigned int dst_pitch, const void *vaddr,
|
|
const struct drm_framebuffer *fb, const struct drm_rect *clip);
|
|
void drm_fb_swab(void *dst, unsigned int dst_pitch, const void *src,
|
|
const struct drm_framebuffer *fb, const struct drm_rect *clip,
|
|
bool cached);
|
|
void drm_fb_xrgb8888_to_rgb332(void *dst, unsigned int dst_pitch, const void *vaddr,
|
|
const struct drm_framebuffer *fb, const struct drm_rect *clip);
|
|
void drm_fb_xrgb8888_to_rgb565(void *dst, unsigned int dst_pitch, const void *vaddr,
|
|
const struct drm_framebuffer *fb, const struct drm_rect *clip,
|
|
bool swab);
|
|
void drm_fb_xrgb8888_to_rgb565_toio(void __iomem *dst, unsigned int dst_pitch,
|
|
const void *vaddr, const struct drm_framebuffer *fb,
|
|
const struct drm_rect *clip, bool swab);
|
|
void drm_fb_xrgb8888_to_rgb888(void *dst, unsigned int dst_pitch, const void *src,
|
|
const struct drm_framebuffer *fb, const struct drm_rect *clip);
|
|
void drm_fb_xrgb8888_to_rgb888_toio(void __iomem *dst, unsigned int dst_pitch,
|
|
const void *vaddr, const struct drm_framebuffer *fb,
|
|
const struct drm_rect *clip);
|
|
void drm_fb_xrgb8888_to_xrgb2101010_toio(void __iomem *dst, unsigned int dst_pitch,
|
|
const void *vaddr, const struct drm_framebuffer *fb,
|
|
const struct drm_rect *clip);
|
|
void drm_fb_xrgb8888_to_gray8(void *dst, unsigned int dst_pitch, const void *vaddr,
|
|
const struct drm_framebuffer *fb, const struct drm_rect *clip);
|
|
|
|
int drm_fb_blit_toio(void __iomem *dst, unsigned int dst_pitch, uint32_t dst_format,
|
|
const void *vmap, const struct drm_framebuffer *fb,
|
|
const struct drm_rect *rect);
|
|
|
|
void drm_fb_xrgb8888_to_mono_reversed(void *dst, unsigned int dst_pitch, const void *src,
|
|
const struct drm_framebuffer *fb,
|
|
const struct drm_rect *clip);
|
|
|
|
#endif /* __LINUX_DRM_FORMAT_HELPER_H */
|