drm/format-helper: Export drm_fb_clip_offset()
Provide a function that computes the offset into a blit destination buffer. This will allow to move destination-buffer clipping into the format-helper callers. v4: * add missing '@' for parameter documentation * fix typo 'frambuffer' v2: * provide documentation (Sam) * return 'unsigned int' (Sam, Noralf) Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de> Reviewed-by: Noralf Trønnes <noralf@tronnes.org> Link: https://patchwork.freedesktop.org/patch/msgid/20211110103702.374-2-tzimmermann@suse.de
This commit is contained in:
Родитель
396d9b9a48
Коммит
452290f354
|
@ -17,12 +17,27 @@
|
|||
#include <drm/drm_fourcc.h>
|
||||
#include <drm/drm_rect.h>
|
||||
|
||||
static unsigned int clip_offset(struct drm_rect *clip,
|
||||
unsigned int pitch, unsigned int cpp)
|
||||
static unsigned int clip_offset(const struct drm_rect *clip, unsigned int pitch, unsigned int cpp)
|
||||
{
|
||||
return clip->y1 * pitch + clip->x1 * cpp;
|
||||
}
|
||||
|
||||
/**
|
||||
* drm_fb_clip_offset - Returns the clipping rectangles byte-offset in a framebuffer
|
||||
* @pitch: Framebuffer line pitch in byte
|
||||
* @format: Framebuffer format
|
||||
* @clip: Clip rectangle
|
||||
*
|
||||
* Returns:
|
||||
* The byte offset of the clip rectangle's top-left corner within the framebuffer.
|
||||
*/
|
||||
unsigned int drm_fb_clip_offset(unsigned int pitch, const struct drm_format_info *format,
|
||||
const struct drm_rect *clip)
|
||||
{
|
||||
return clip_offset(clip, pitch, format->cpp[0]);
|
||||
}
|
||||
EXPORT_SYMBOL(drm_fb_clip_offset);
|
||||
|
||||
/**
|
||||
* drm_fb_memcpy - Copy clip buffer
|
||||
* @dst: Destination buffer
|
||||
|
|
|
@ -6,9 +6,13 @@
|
|||
#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, void *vaddr, struct drm_framebuffer *fb,
|
||||
struct drm_rect *clip);
|
||||
void drm_fb_memcpy_dstclip(void __iomem *dst, unsigned int dst_pitch, void *vaddr,
|
||||
|
|
Загрузка…
Ссылка в новой задаче