Hi Am 08.09.22 um 11:51 schrieb Takashi Iwai:
Just for some code simplification. Suggested-by: Thomas Zimmermann <tzimmermann@xxxxxxx> Signed-off-by: Takashi Iwai <tiwai@xxxxxxx>
With my comments fixed, you can add Acked-by: Thomas Zimmermann <tzimmermann@xxxxxxx>
--- drivers/gpu/drm/udl/udl_modeset.c | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/drivers/gpu/drm/udl/udl_modeset.c b/drivers/gpu/drm/udl/udl_modeset.c index c9b837ac26a7..0142fc6a478a 100644 --- a/drivers/gpu/drm/udl/udl_modeset.c +++ b/drivers/gpu/drm/udl/udl_modeset.c @@ -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) + struct drm_rect *clip)
Should probably be declared const.
{ 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 = (clip->x2 - clip->x1) << log_bpp;
Please use drm_rect_width(clip) instead. Somehow there's already too much code that open-codes this.
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;
Better do a static init with DRM_RECT_INIT(0, 0, fb->width, fb->height) and remove the other init call below.
Best regards Thomas
char *buf; char *wrptr; int color_depth = UDL_COLOR_DEPTH_16BPP; @@ -354,7 +352,8 @@ 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);+ drm_rect_init(&clip, 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 +395,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 = {
-- Thomas Zimmermann Graphics Driver Developer SUSE Software Solutions Germany GmbH Maxfeldstr. 5, 90409 Nürnberg, Germany (HRB 36809, AG Nürnberg) Geschäftsführer: Ivo Totev
Attachment:
OpenPGP_signature
Description: OpenPGP digital signature