mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-12 15:08:25 -04:00
drm/udl: Pass rectangle directly to udl_handle_damage()
Just for some code simplification. Suggested-by: Thomas Zimmermann <tzimmermann@suse.de> Acked-by: Thomas Zimmermann <tzimmermann@suse.de> Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de> Link: https://patchwork.freedesktop.org/patch/msgid/87tu5iauw4.wl-tiwai@suse.de
This commit is contained in:
committed by
Thomas Zimmermann
parent
aeb76f97fc
commit
b13fa27a4b
@@ -244,14 +244,13 @@ static long udl_log_cpp(unsigned int cpp)
|
||||
|
||||
static int udl_handle_damage(struct drm_framebuffer *fb,
|
||||
const struct iosys_map *map,
|
||||
int x, int y, int width, int height)
|
||||
const struct drm_rect *clip)
|
||||
{
|
||||
struct drm_device *dev = fb->dev;
|
||||
void *vaddr = map->vaddr; /* TODO: Use mapping abstraction properly */
|
||||
int i, ret;
|
||||
char *cmd;
|
||||
struct urb *urb;
|
||||
struct drm_rect clip;
|
||||
int log_bpp;
|
||||
|
||||
ret = udl_log_cpp(fb->format->cpp[0]);
|
||||
@@ -259,8 +258,6 @@ static int udl_handle_damage(struct drm_framebuffer *fb,
|
||||
return ret;
|
||||
log_bpp = ret;
|
||||
|
||||
drm_rect_init(&clip, x, y, width, height);
|
||||
|
||||
ret = drm_gem_fb_begin_cpu_access(fb, DMA_FROM_DEVICE);
|
||||
if (ret)
|
||||
return ret;
|
||||
@@ -272,11 +269,11 @@ static int udl_handle_damage(struct drm_framebuffer *fb,
|
||||
}
|
||||
cmd = urb->transfer_buffer;
|
||||
|
||||
for (i = clip.y1; i < clip.y2; i++) {
|
||||
for (i = clip->y1; i < clip->y2; i++) {
|
||||
const int line_offset = fb->pitches[0] * i;
|
||||
const int byte_offset = line_offset + (clip.x1 << log_bpp);
|
||||
const int dev_byte_offset = (fb->width * i + clip.x1) << log_bpp;
|
||||
const int byte_width = (clip.x2 - clip.x1) << log_bpp;
|
||||
const int byte_offset = line_offset + (clip->x1 << log_bpp);
|
||||
const int dev_byte_offset = (fb->width * i + clip->x1) << log_bpp;
|
||||
const int byte_width = drm_rect_width(clip) << log_bpp;
|
||||
ret = udl_render_hline(dev, log_bpp, &urb, (char *)vaddr,
|
||||
&cmd, byte_offset, dev_byte_offset,
|
||||
byte_width);
|
||||
@@ -329,6 +326,7 @@ udl_simple_display_pipe_enable(struct drm_simple_display_pipe *pipe,
|
||||
struct udl_device *udl = to_udl(dev);
|
||||
struct drm_display_mode *mode = &crtc_state->mode;
|
||||
struct drm_shadow_plane_state *shadow_plane_state = to_drm_shadow_plane_state(plane_state);
|
||||
struct drm_rect clip = DRM_RECT_INIT(0, 0, fb->width, fb->height);
|
||||
char *buf;
|
||||
char *wrptr;
|
||||
int color_depth = UDL_COLOR_DEPTH_16BPP;
|
||||
@@ -354,7 +352,7 @@ udl_simple_display_pipe_enable(struct drm_simple_display_pipe *pipe,
|
||||
|
||||
udl->mode_buf_len = wrptr - buf;
|
||||
|
||||
udl_handle_damage(fb, &shadow_plane_state->data[0], 0, 0, fb->width, fb->height);
|
||||
udl_handle_damage(fb, &shadow_plane_state->data[0], &clip);
|
||||
|
||||
/* enable display */
|
||||
udl_crtc_write_mode_to_hw(crtc);
|
||||
@@ -396,8 +394,7 @@ udl_simple_display_pipe_update(struct drm_simple_display_pipe *pipe,
|
||||
return;
|
||||
|
||||
if (drm_atomic_helper_damage_merged(old_plane_state, state, &rect))
|
||||
udl_handle_damage(fb, &shadow_plane_state->data[0], rect.x1, rect.y1,
|
||||
rect.x2 - rect.x1, rect.y2 - rect.y1);
|
||||
udl_handle_damage(fb, &shadow_plane_state->data[0], &rect);
|
||||
}
|
||||
|
||||
static const struct drm_simple_display_pipe_funcs udl_simple_display_pipe_funcs = {
|
||||
|
||||
Reference in New Issue
Block a user