All of lore.kernel.org
 help / color / mirror / Atom feed
From: Thomas Zimmermann <tzimmermann@suse.de>
To: Takashi Iwai <tiwai@suse.de>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>,
	linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org
Subject: Re: [PATCH v3 08/12] drm/udl: Pass rectangle directly to udl_handle_damage()
Date: Thu, 8 Sep 2022 15:07:05 +0200	[thread overview]
Message-ID: <5571a9a2-5d15-4af5-e4e2-3569bc6eed55@suse.de> (raw)
In-Reply-To: <87tu5iauw4.wl-tiwai@suse.de>


[-- Attachment #1.1: Type: text/plain, Size: 7172 bytes --]

Hi

Am 08.09.22 um 14:54 schrieb Takashi Iwai:
> On Thu, 08 Sep 2022 14:47:52 +0200,
> Thomas Zimmermann wrote:
>>
>> Hi
>>
>> Am 08.09.22 um 11:51 schrieb Takashi Iwai:
>>> Just for some code simplification.
>>>
>>> Suggested-by: Thomas Zimmermann <tzimmermann@suse.de>
>>> Signed-off-by: Takashi Iwai <tiwai@suse.de>
>>
>> With my comments fixed, you can add
>>
>> Acked-by: Thomas Zimmermann <tzimmermann@suse.de>
>>
>>> ---
>>>    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.
> 
> OK, below is the revised patch.
> 
> Do you want me a full respin for v4?

The patch looks good to me. I don't think a full v4 would be necessary 
unless another major change is requested.

Best regards
Thomas

> 
> 
> Takashi
> 
> -- 8< --
> From: Takashi Iwai <tiwai@suse.de>
> Subject: [PATCH] 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>
> ---
>   drivers/gpu/drm/udl/udl_modeset.c | 19 ++++++++-----------
>   1 file changed, 8 insertions(+), 11 deletions(-)
> 
> diff --git a/drivers/gpu/drm/udl/udl_modeset.c b/drivers/gpu/drm/udl/udl_modeset.c
> index c9b837ac26a7..d5e20bf144bc 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)
> +			     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 = {

-- 
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 #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 840 bytes --]

  reply	other threads:[~2022-09-08 13:07 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-09-08  9:51 [PATCH v3 00/12] drm/udl: More fixes Takashi Iwai
2022-09-08  9:51 ` Takashi Iwai
2022-09-08  9:51 ` [PATCH v3 01/12] drm/udl: Restore display mode on resume Takashi Iwai
2022-09-08  9:51   ` Takashi Iwai
2022-09-08  9:51 ` [PATCH v3 02/12] drm/udl: Add reset_resume Takashi Iwai
2022-09-08  9:51   ` Takashi Iwai
2022-09-08  9:51 ` [PATCH v3 03/12] drm/udl: Enable damage clipping Takashi Iwai
2022-09-08  9:51   ` Takashi Iwai
2022-09-08 13:09   ` Thomas Zimmermann
2022-09-08 13:09     ` Thomas Zimmermann
2022-09-08  9:51 ` [PATCH v3 04/12] Revert "drm/udl: Kill pending URBs at suspend and disconnect" Takashi Iwai
2022-09-08  9:51   ` Takashi Iwai
2022-09-08  9:51 ` [PATCH v3 05/12] drm/udl: Suppress error print for -EPROTO at URB completion Takashi Iwai
2022-09-08  9:51   ` Takashi Iwai
2022-09-08  9:51 ` [PATCH v3 06/12] drm/udl: Increase the default URB list size to 20 Takashi Iwai
2022-09-08  9:51   ` Takashi Iwai
2022-09-08  9:51 ` [PATCH v3 07/12] drm/udl: Drop unneeded alignment Takashi Iwai
2022-09-08  9:51   ` Takashi Iwai
2022-09-08  9:51 ` [PATCH v3 08/12] drm/udl: Pass rectangle directly to udl_handle_damage() Takashi Iwai
2022-09-08  9:51   ` Takashi Iwai
2022-09-08 12:47   ` Thomas Zimmermann
2022-09-08 12:47     ` Thomas Zimmermann
2022-09-08 12:54     ` Takashi Iwai
2022-09-08 12:54       ` Takashi Iwai
2022-09-08 13:07       ` Thomas Zimmermann [this message]
2022-09-08  9:51 ` [PATCH v3 09/12] drm/udl: Fix potential URB leaks Takashi Iwai
2022-09-08  9:51   ` Takashi Iwai
2022-09-08  9:51 ` [PATCH v3 10/12] drm/udl: Fix inconsistent urbs.count value during udl_free_urb_list() Takashi Iwai
2022-09-08  9:51   ` Takashi Iwai
2022-09-08  9:51 ` [PATCH v3 11/12] drm/udl: Don't re-initialize stuff at retrying the URB list allocation Takashi Iwai
2022-09-08  9:51   ` Takashi Iwai
2022-09-08  9:51 ` [PATCH v3 12/12] drm/udl: Sync pending URBs at the end of suspend Takashi Iwai
2022-09-08  9:51   ` Takashi Iwai
2022-09-12  7:06 ` [PATCH v3 00/12] drm/udl: More fixes Thomas Zimmermann
2022-09-12  7:06   ` Thomas Zimmermann
2022-09-12 11:51   ` Takashi Iwai
2022-09-12 11:51     ` Takashi Iwai

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5571a9a2-5d15-4af5-e4e2-3569bc6eed55@suse.de \
    --to=tzimmermann@suse.de \
    --cc=daniel.vetter@ffwll.ch \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=tiwai@suse.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.