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 --]
next prev parent reply other threads:[~2022-09-08 13:07 UTC|newest]
Thread overview: 19+ 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 ` [PATCH v3 01/12] drm/udl: Restore display mode on resume Takashi Iwai
2022-09-08 9:51 ` [PATCH v3 02/12] drm/udl: Add reset_resume Takashi Iwai
2022-09-08 9:51 ` [PATCH v3 03/12] drm/udl: Enable damage clipping Takashi Iwai
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 ` [PATCH v3 05/12] drm/udl: Suppress error print for -EPROTO at URB completion 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 ` [PATCH v3 07/12] drm/udl: Drop unneeded alignment 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 12:47 ` Thomas Zimmermann
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 ` [PATCH v3 10/12] drm/udl: Fix inconsistent urbs.count value during udl_free_urb_list() 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 ` [PATCH v3 12/12] drm/udl: Sync pending URBs at the end of suspend Takashi Iwai
2022-09-12 7:06 ` [PATCH v3 00/12] drm/udl: More fixes Thomas Zimmermann
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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox