From: ville.syrjala@linux.intel.com (Ville Syrjälä)
To: linux-arm-kernel@lists.infradead.org
Subject: [BUG] hdlcd gets confused about base address
Date: Mon, 20 Feb 2017 20:05:58 +0200 [thread overview]
Message-ID: <20170220180558.GB31595@intel.com> (raw)
In-Reply-To: <20170220175331.GC963@e110455-lin.cambridge.arm.com>
On Mon, Feb 20, 2017 at 05:53:31PM +0000, Liviu Dudau wrote:
> Hi Russell,
>
> On Mon, Feb 20, 2017 at 12:16:03PM +0000, Russell King - ARM Linux wrote:
> > On Fri, Nov 18, 2016 at 11:37:33PM +0000, Russell King - ARM Linux wrote:
> > > Something I also noticed is this:
> > >
> > > scanout_start = gem->paddr + plane->state->fb->offsets[0] +
> > > plane->state->crtc_y * plane->state->fb->pitches[0] +
> > > plane->state->crtc_x * bpp / 8;
> > >
> > > Surely this should be using src_[xy] (which are the position in the
> > > source - iow, memory, and not crtc_[xy] which is the position on the
> > > CRTC displayed window. To put it another way, the src_* define the
> > > region of the source material that is mapped onto a rectangular area
> > > on the display defined by crtc_*.
> >
> > This problem still exists...
>
> Sorry, looks like this fell through the cracks of us trying to fix the
> other issues you were seeing. I'm attaching a patch, please let me know
> if this works for you.
>
> Best regards,
> Liviu
>
> >
> > --
> > RMK's Patch system: http://www.armlinux.org.uk/developer/patches/
> > FTTC broadband for 0.8mile line: currently at 9.6Mbps down 400kbps up
> > according to speedtest.net.
>
> --
> ====================
> | I would like to |
> | fix the world, |
> | but they're not |
> | giving me the |
> \ source code! /
> ---------------
> ?\_(?)_/?
> >From a495d262cb91fdeccb00685646ddb71774c18e7e Mon Sep 17 00:00:00 2001
> From: Liviu Dudau <Liviu.Dudau@arm.com>
> Date: Mon, 20 Feb 2017 17:44:42 +0000
> Subject: [PATCH] arm: hdlcd: Fix the calculation of scanout start address
>
> The framebuffer start address uses the CRTC's x,y position rather
> than the source framebuffer's. Fix that.
>
> Reported-by: Russell King <rmk+kernel@armlinux.org.uk>
> Signed-off-by: Liviu Dudau <Liviu.Dudau@arm.com>
> ---
> drivers/gpu/drm/arm/hdlcd_crtc.c | 11 +++++------
> 1 file changed, 5 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/gpu/drm/arm/hdlcd_crtc.c b/drivers/gpu/drm/arm/hdlcd_crtc.c
> index 798a3cc480a2..4c1ab73d9e07 100644
> --- a/drivers/gpu/drm/arm/hdlcd_crtc.c
> +++ b/drivers/gpu/drm/arm/hdlcd_crtc.c
> @@ -244,21 +244,20 @@ static void hdlcd_plane_atomic_update(struct drm_plane *plane,
> struct drm_framebuffer *fb = plane->state->fb;
> struct hdlcd_drm_private *hdlcd;
> struct drm_gem_cma_object *gem;
> - u32 src_w, src_h, dest_w, dest_h;
> + u32 src_x, src_y, dest_w, dest_h;
> dma_addr_t scanout_start;
>
> if (!fb)
> return;
>
> - src_w = plane->state->src_w >> 16;
> - src_h = plane->state->src_h >> 16;
> + src_x = plane->state->src_x >> 16;
> + src_y = plane->state->src_y >> 16;
This stuff should be using the clipped coordinates, not the user
coordinates. And it doesn't look like this guy is even calling the
clip helper thing.
malidp seems to be calling that thing, but it still doesn't
manage to program the hw with the right coordinates from what
I can see.
/me feels a bit like a broken record...
> dest_w = plane->state->crtc_w;
> dest_h = plane->state->crtc_h;
> gem = drm_fb_cma_get_gem_obj(fb, 0);
> scanout_start = gem->paddr + fb->offsets[0] +
> - plane->state->crtc_y * fb->pitches[0] +
> - plane->state->crtc_x *
> - fb->format->cpp[0];
> + src_y * fb->pitches[0] +
> + src_x * fb->format->cpp[0];
>
> hdlcd = plane->dev->dev_private;
> hdlcd_write(hdlcd, HDLCD_REG_FB_LINE_LENGTH, fb->pitches[0]);
> --
> 2.11.0
>
> _______________________________________________
> dri-devel mailing list
> dri-devel at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel
--
Ville Syrj?l?
Intel OTC
next prev parent reply other threads:[~2017-02-20 18:05 UTC|newest]
Thread overview: 48+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-11-18 23:37 [BUG] hdlcd gets confused about base address Russell King - ARM Linux
2016-11-21 9:44 ` Daniel Vetter
2016-11-21 11:06 ` Liviu Dudau
2016-11-21 11:20 ` Russell King - ARM Linux
2016-11-21 11:32 ` Liviu Dudau
2016-11-21 12:25 ` Russell King - ARM Linux
2016-11-21 12:56 ` Liviu Dudau
2016-11-21 13:24 ` Russell King - ARM Linux
2016-11-21 13:50 ` Liviu Dudau
2016-11-21 14:03 ` Russell King - ARM Linux
2016-11-21 17:32 ` Liviu Dudau
2016-11-21 17:56 ` Russell King - ARM Linux
2016-11-21 18:16 ` Russell King - ARM Linux
2016-11-21 18:25 ` Liviu Dudau
2016-11-21 18:23 ` Liviu Dudau
2016-11-21 18:43 ` Russell King - ARM Linux
2016-11-21 14:30 ` Russell King - ARM Linux
2016-11-21 14:55 ` Russell King - ARM Linux
2016-11-22 7:02 ` Daniel Vetter
2017-02-20 12:16 ` Russell King - ARM Linux
2017-02-20 17:53 ` Liviu Dudau
2017-02-20 17:57 ` Russell King - ARM Linux
2017-02-20 18:05 ` Ville Syrjälä [this message]
2017-02-20 18:59 ` Russell King - ARM Linux
2017-02-22 15:42 ` Ville Syrjälä
2017-02-26 19:31 ` Daniel Vetter
2017-02-22 15:15 ` Liviu Dudau
2017-02-22 15:30 ` Ville Syrjälä
2017-03-08 16:30 ` [PATCH v2] drm: hdlcd: Fix the calculation of the scanout start address Liviu Dudau
2017-03-31 9:49 ` Russell King - ARM Linux
2017-03-31 9:51 ` [PATCH 1/3] drm/arm: hdlcd: properly validate plane state Russell King
2017-03-31 10:18 ` Liviu Dudau
2017-03-31 10:20 ` Russell King - ARM Linux
2017-03-31 10:23 ` Liviu Dudau
2017-03-31 10:27 ` Russell King - ARM Linux
2017-03-31 11:41 ` Liviu Dudau
2017-03-31 12:21 ` Russell King - ARM Linux
2017-03-31 9:51 ` [PATCH 2/3] drm/arm: hdlcd: fix plane base address calculation Russell King
2017-03-31 13:13 ` Liviu Dudau
2017-03-31 9:51 ` [PATCH 3/3] drm/arm: hdlcd: check for rotation Russell King
2017-03-31 10:11 ` Ville Syrjälä
2017-03-31 10:21 ` Liviu Dudau
2017-03-31 13:18 ` [PATCH v2] drm: hdlcd: Fix the calculation of the scanout start address Liviu Dudau
2017-03-31 13:48 ` Russell King - ARM Linux
2017-04-03 10:31 ` Liviu Dudau
2017-04-03 13:13 ` Russell King - ARM Linux
2017-04-03 14:07 ` Liviu Dudau
2017-04-06 11:07 ` Jani Nikula
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=20170220180558.GB31595@intel.com \
--to=ville.syrjala@linux.intel.com \
--cc=linux-arm-kernel@lists.infradead.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).