All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ayan Halder <ayan.halder@arm.com>
To: Liviu Dudau <liviu.dudau@arm.com>
Cc: airlied@linux.ie, nd@arm.com, seanpaul@chromium.org,
	linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org
Subject: Re: [PATCH] drm: Use horizontal and vertical chroma subsampling factor while calculating offsets in the physical address of framebuffer
Date: Mon, 20 Aug 2018 13:38:59 +0100	[thread overview]
Message-ID: <20180820123859.GA2054@arm.com> (raw)
In-Reply-To: <20180820110319.GV907@e110455-lin.cambridge.arm.com>

On Mon, Aug 20, 2018 at 12:03:19PM +0100, Liviu Dudau wrote:
> On Fri, Aug 17, 2018 at 06:33:04PM +0100, Ayan Kumar Halder wrote:
> > For multi-planar formats, while calculating offsets in planes with index greater than 0
> > (ie second plane, third plane, etc), one needs to divide (src_x * cpp) with horizontal
> > chroma subsampling factor and (src_y * pitch) with vertical chroma subsampling factor.
> > 
> > The reason being that the planes contain subsampled (ie reduced) data (by a factor of 2) and thus the
> 
> drop the extraneous "the" at the end of the line.
> 
> > while calculating the byte position coresponding to the x and y co-ordinates, one needs to be
> 
> and drop the extraneous "be" at the end of this line.
> 
> > divide it with the sampling factor.
> > 
> > Signed-off-by: Ayan Kumar halder <ayan.halder@arm.com>
> 
> Otherwise, it looks good to me!
> 
> Reviewed-by: Liviu Dudau <liviu.dudau@arm.com>
>
Thanks Liviu. I will update the commit message and push this in
drm-misc-next.

> Best regards,
> Liviu
> 
> > ---
> >  drivers/gpu/drm/drm_fb_cma_helper.c | 11 +++++++++--
> >  1 file changed, 9 insertions(+), 2 deletions(-)
> > 
> > diff --git a/drivers/gpu/drm/drm_fb_cma_helper.c b/drivers/gpu/drm/drm_fb_cma_helper.c
> > index b127061..47e0e2f 100644
> > --- a/drivers/gpu/drm/drm_fb_cma_helper.c
> > +++ b/drivers/gpu/drm/drm_fb_cma_helper.c
> > @@ -86,14 +86,21 @@ dma_addr_t drm_fb_cma_get_gem_addr(struct drm_framebuffer *fb,
> >  {
> >  	struct drm_gem_cma_object *obj;
> >  	dma_addr_t paddr;
> > +	u8 h_div = 1, v_div = 1;
> >  
> >  	obj = drm_fb_cma_get_gem_obj(fb, plane);
> >  	if (!obj)
> >  		return 0;
> >  
> >  	paddr = obj->paddr + fb->offsets[plane];
> > -	paddr += fb->format->cpp[plane] * (state->src_x >> 16);
> > -	paddr += fb->pitches[plane] * (state->src_y >> 16);
> > +
> > +	if (plane > 0) {
> > +		h_div = fb->format->hsub;
> > +		v_div = fb->format->vsub;
> > +	}
> > +
> > +	paddr += (fb->format->cpp[plane] * (state->src_x >> 16)) / h_div;
> > +	paddr += (fb->pitches[plane] * (state->src_y >> 16)) / v_div;
> >  
> >  	return paddr;
> >  }
> > -- 
> > 2.7.4
> > 
> 
> -- 
> ====================
> | I would like to |
> | fix the world,  |
> | but they're not |
> | giving me the   |
>  \ source code!  /
>   ---------------
>     ??\_(???)_/??
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

WARNING: multiple messages have this Message-ID (diff)
From: Ayan Halder <ayan.halder@arm.com>
To: Liviu Dudau <liviu.dudau@arm.com>
Cc: airlied@linux.ie, linux-kernel@vger.kernel.org,
	dri-devel@lists.freedesktop.org, seanpaul@chromium.org,
	nd@arm.com
Subject: Re: [PATCH] drm: Use horizontal and vertical chroma subsampling factor while calculating offsets in the physical address of framebuffer
Date: Mon, 20 Aug 2018 13:38:59 +0100	[thread overview]
Message-ID: <20180820123859.GA2054@arm.com> (raw)
In-Reply-To: <20180820110319.GV907@e110455-lin.cambridge.arm.com>

On Mon, Aug 20, 2018 at 12:03:19PM +0100, Liviu Dudau wrote:
> On Fri, Aug 17, 2018 at 06:33:04PM +0100, Ayan Kumar Halder wrote:
> > For multi-planar formats, while calculating offsets in planes with index greater than 0
> > (ie second plane, third plane, etc), one needs to divide (src_x * cpp) with horizontal
> > chroma subsampling factor and (src_y * pitch) with vertical chroma subsampling factor.
> > 
> > The reason being that the planes contain subsampled (ie reduced) data (by a factor of 2) and thus the
> 
> drop the extraneous "the" at the end of the line.
> 
> > while calculating the byte position coresponding to the x and y co-ordinates, one needs to be
> 
> and drop the extraneous "be" at the end of this line.
> 
> > divide it with the sampling factor.
> > 
> > Signed-off-by: Ayan Kumar halder <ayan.halder@arm.com>
> 
> Otherwise, it looks good to me!
> 
> Reviewed-by: Liviu Dudau <liviu.dudau@arm.com>
>
Thanks Liviu. I will update the commit message and push this in
drm-misc-next.

> Best regards,
> Liviu
> 
> > ---
> >  drivers/gpu/drm/drm_fb_cma_helper.c | 11 +++++++++--
> >  1 file changed, 9 insertions(+), 2 deletions(-)
> > 
> > diff --git a/drivers/gpu/drm/drm_fb_cma_helper.c b/drivers/gpu/drm/drm_fb_cma_helper.c
> > index b127061..47e0e2f 100644
> > --- a/drivers/gpu/drm/drm_fb_cma_helper.c
> > +++ b/drivers/gpu/drm/drm_fb_cma_helper.c
> > @@ -86,14 +86,21 @@ dma_addr_t drm_fb_cma_get_gem_addr(struct drm_framebuffer *fb,
> >  {
> >  	struct drm_gem_cma_object *obj;
> >  	dma_addr_t paddr;
> > +	u8 h_div = 1, v_div = 1;
> >  
> >  	obj = drm_fb_cma_get_gem_obj(fb, plane);
> >  	if (!obj)
> >  		return 0;
> >  
> >  	paddr = obj->paddr + fb->offsets[plane];
> > -	paddr += fb->format->cpp[plane] * (state->src_x >> 16);
> > -	paddr += fb->pitches[plane] * (state->src_y >> 16);
> > +
> > +	if (plane > 0) {
> > +		h_div = fb->format->hsub;
> > +		v_div = fb->format->vsub;
> > +	}
> > +
> > +	paddr += (fb->format->cpp[plane] * (state->src_x >> 16)) / h_div;
> > +	paddr += (fb->pitches[plane] * (state->src_y >> 16)) / v_div;
> >  
> >  	return paddr;
> >  }
> > -- 
> > 2.7.4
> > 
> 
> -- 
> ====================
> | I would like to |
> | fix the world,  |
> | but they're not |
> | giving me the   |
>  \ source code!  /
>   ---------------
>     ??\_(???)_/??
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel

  reply	other threads:[~2018-08-20 12:39 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-08-17 17:33 [PATCH] drm: Use horizontal and vertical chroma subsampling factor while calculating offsets in the physical address of framebuffer Ayan Kumar Halder
2018-08-20 11:03 ` Liviu Dudau
2018-08-20 12:38   ` Ayan Halder [this message]
2018-08-20 12:38     ` Ayan Halder
2018-08-20 13:24     ` Liviu Dudau

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=20180820123859.GA2054@arm.com \
    --to=ayan.halder@arm.com \
    --cc=airlied@linux.ie \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=liviu.dudau@arm.com \
    --cc=nd@arm.com \
    --cc=seanpaul@chromium.org \
    /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.