From mboxrd@z Thu Jan 1 00:00:00 1970 From: ville.syrjala@linux.intel.com (Ville =?iso-8859-1?Q?Syrj=E4l=E4?=) Date: Mon, 20 Feb 2017 20:05:58 +0200 Subject: [BUG] hdlcd gets confused about base address In-Reply-To: <20170220175331.GC963@e110455-lin.cambridge.arm.com> References: <20161118233733.GP1041@n2100.armlinux.org.uk> <20170220121603.GA1132@n2100.armlinux.org.uk> <20170220175331.GC963@e110455-lin.cambridge.arm.com> Message-ID: <20170220180558.GB31595@intel.com> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org 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 > 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 > Signed-off-by: Liviu Dudau > --- > 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 From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [BUG] hdlcd gets confused about base address Date: Mon, 20 Feb 2017 20:05:58 +0200 Message-ID: <20170220180558.GB31595@intel.com> References: <20161118233733.GP1041@n2100.armlinux.org.uk> <20170220121603.GA1132@n2100.armlinux.org.uk> <20170220175331.GC963@e110455-lin.cambridge.arm.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTPS id 8F8806E239 for ; Mon, 20 Feb 2017 18:06:18 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20170220175331.GC963@e110455-lin.cambridge.arm.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Liviu Dudau Cc: linux-arm-kernel@lists.infradead.org, Mali DP Maintainers , Russell King - ARM Linux , dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org T24gTW9uLCBGZWIgMjAsIDIwMTcgYXQgMDU6NTM6MzFQTSArMDAwMCwgTGl2aXUgRHVkYXUgd3Jv dGU6Cj4gSGkgUnVzc2VsbCwKPiAKPiBPbiBNb24sIEZlYiAyMCwgMjAxNyBhdCAxMjoxNjowM1BN ICswMDAwLCBSdXNzZWxsIEtpbmcgLSBBUk0gTGludXggd3JvdGU6Cj4gPiBPbiBGcmksIE5vdiAx OCwgMjAxNiBhdCAxMTozNzozM1BNICswMDAwLCBSdXNzZWxsIEtpbmcgLSBBUk0gTGludXggd3Jv dGU6Cj4gPiA+IFNvbWV0aGluZyBJIGFsc28gbm90aWNlZCBpcyB0aGlzOgo+ID4gPiAKPiA+ID4g ICAgICAgICBzY2Fub3V0X3N0YXJ0ID0gZ2VtLT5wYWRkciArIHBsYW5lLT5zdGF0ZS0+ZmItPm9m ZnNldHNbMF0gKwo+ID4gPiAgICAgICAgICAgICAgICAgcGxhbmUtPnN0YXRlLT5jcnRjX3kgKiBw bGFuZS0+c3RhdGUtPmZiLT5waXRjaGVzWzBdICsKPiA+ID4gICAgICAgICAgICAgICAgIHBsYW5l LT5zdGF0ZS0+Y3J0Y194ICogYnBwIC8gODsKPiA+ID4gCj4gPiA+IFN1cmVseSB0aGlzIHNob3Vs ZCBiZSB1c2luZyBzcmNfW3h5XSAod2hpY2ggYXJlIHRoZSBwb3NpdGlvbiBpbiB0aGUKPiA+ID4g c291cmNlIC0gaW93LCBtZW1vcnksIGFuZCBub3QgY3J0Y19beHldIHdoaWNoIGlzIHRoZSBwb3Np dGlvbiBvbiB0aGUKPiA+ID4gQ1JUQyBkaXNwbGF5ZWQgd2luZG93LiAgVG8gcHV0IGl0IGFub3Ro ZXIgd2F5LCB0aGUgc3JjXyogZGVmaW5lIHRoZQo+ID4gPiByZWdpb24gb2YgdGhlIHNvdXJjZSBt YXRlcmlhbCB0aGF0IGlzIG1hcHBlZCBvbnRvIGEgcmVjdGFuZ3VsYXIgYXJlYQo+ID4gPiBvbiB0 aGUgZGlzcGxheSBkZWZpbmVkIGJ5IGNydGNfKi4KPiA+IAo+ID4gVGhpcyBwcm9ibGVtIHN0aWxs IGV4aXN0cy4uLgo+IAo+IFNvcnJ5LCBsb29rcyBsaWtlIHRoaXMgZmVsbCB0aHJvdWdoIHRoZSBj cmFja3Mgb2YgdXMgdHJ5aW5nIHRvIGZpeCB0aGUKPiBvdGhlciBpc3N1ZXMgeW91IHdlcmUgc2Vl aW5nLiBJJ20gYXR0YWNoaW5nIGEgcGF0Y2gsIHBsZWFzZSBsZXQgbWUga25vdwo+IGlmIHRoaXMg d29ya3MgZm9yIHlvdS4KPiAKPiBCZXN0IHJlZ2FyZHMsCj4gTGl2aXUKPiAKPiA+IAo+ID4gLS0g Cj4gPiBSTUsncyBQYXRjaCBzeXN0ZW06IGh0dHA6Ly93d3cuYXJtbGludXgub3JnLnVrL2RldmVs b3Blci9wYXRjaGVzLwo+ID4gRlRUQyBicm9hZGJhbmQgZm9yIDAuOG1pbGUgbGluZTogY3VycmVu dGx5IGF0IDkuNk1icHMgZG93biA0MDBrYnBzIHVwCj4gPiBhY2NvcmRpbmcgdG8gc3BlZWR0ZXN0 Lm5ldC4KPiAKPiAtLSAKPiA9PT09PT09PT09PT09PT09PT09PQo+IHwgSSB3b3VsZCBsaWtlIHRv IHwKPiB8IGZpeCB0aGUgd29ybGQsICB8Cj4gfCBidXQgdGhleSdyZSBub3QgfAo+IHwgZ2l2aW5n IG1lIHRoZSAgIHwKPiAgXCBzb3VyY2UgY29kZSEgIC8KPiAgIC0tLS0tLS0tLS0tLS0tLQo+ICAg ICDCr1xfKOODhClfL8KvCgo+ID5Gcm9tIGE0OTVkMjYyY2I5MWZkZWNjYjAwNjg1NjQ2ZGRiNzE3 NzRjMThlN2UgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCj4gRnJvbTogTGl2aXUgRHVkYXUgPExp dml1LkR1ZGF1QGFybS5jb20+Cj4gRGF0ZTogTW9uLCAyMCBGZWIgMjAxNyAxNzo0NDo0MiArMDAw MAo+IFN1YmplY3Q6IFtQQVRDSF0gYXJtOiBoZGxjZDogRml4IHRoZSBjYWxjdWxhdGlvbiBvZiBz Y2Fub3V0IHN0YXJ0IGFkZHJlc3MKPiAKPiBUaGUgZnJhbWVidWZmZXIgc3RhcnQgYWRkcmVzcyB1 c2VzIHRoZSBDUlRDJ3MgeCx5IHBvc2l0aW9uIHJhdGhlcgo+IHRoYW4gdGhlIHNvdXJjZSBmcmFt ZWJ1ZmZlcidzLiBGaXggdGhhdC4KPiAKPiBSZXBvcnRlZC1ieTogUnVzc2VsbCBLaW5nIDxybWsr a2VybmVsQGFybWxpbnV4Lm9yZy51az4KPiBTaWduZWQtb2ZmLWJ5OiBMaXZpdSBEdWRhdSA8TGl2 aXUuRHVkYXVAYXJtLmNvbT4KPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL2FybS9oZGxjZF9jcnRj LmMgfCAxMSArKysrKy0tLS0tLQo+ICAxIGZpbGUgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCspLCA2 IGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYXJtL2hkbGNk X2NydGMuYyBiL2RyaXZlcnMvZ3B1L2RybS9hcm0vaGRsY2RfY3J0Yy5jCj4gaW5kZXggNzk4YTNj YzQ4MGEyLi40YzFhYjczZDllMDcgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FybS9o ZGxjZF9jcnRjLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYXJtL2hkbGNkX2NydGMuYwo+IEBA IC0yNDQsMjEgKzI0NCwyMCBAQCBzdGF0aWMgdm9pZCBoZGxjZF9wbGFuZV9hdG9taWNfdXBkYXRl KHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAo+ICAJc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIg PSBwbGFuZS0+c3RhdGUtPmZiOwo+ICAJc3RydWN0IGhkbGNkX2RybV9wcml2YXRlICpoZGxjZDsK PiAgCXN0cnVjdCBkcm1fZ2VtX2NtYV9vYmplY3QgKmdlbTsKPiAtCXUzMiBzcmNfdywgc3JjX2gs IGRlc3RfdywgZGVzdF9oOwo+ICsJdTMyIHNyY194LCBzcmNfeSwgZGVzdF93LCBkZXN0X2g7Cj4g IAlkbWFfYWRkcl90IHNjYW5vdXRfc3RhcnQ7Cj4gIAo+ICAJaWYgKCFmYikKPiAgCQlyZXR1cm47 Cj4gIAo+IC0Jc3JjX3cgPSBwbGFuZS0+c3RhdGUtPnNyY193ID4+IDE2Owo+IC0Jc3JjX2ggPSBw bGFuZS0+c3RhdGUtPnNyY19oID4+IDE2Owo+ICsJc3JjX3ggPSBwbGFuZS0+c3RhdGUtPnNyY194 ID4+IDE2Owo+ICsJc3JjX3kgPSBwbGFuZS0+c3RhdGUtPnNyY195ID4+IDE2OwoKVGhpcyBzdHVm ZiBzaG91bGQgYmUgdXNpbmcgdGhlIGNsaXBwZWQgY29vcmRpbmF0ZXMsIG5vdCB0aGUgdXNlcgpj b29yZGluYXRlcy4gQW5kIGl0IGRvZXNuJ3QgbG9vayBsaWtlIHRoaXMgZ3V5IGlzIGV2ZW4gY2Fs bGluZyB0aGUKY2xpcCBoZWxwZXIgdGhpbmcuCgptYWxpZHAgc2VlbXMgdG8gYmUgY2FsbGluZyB0 aGF0IHRoaW5nLCBidXQgaXQgc3RpbGwgZG9lc24ndAptYW5hZ2UgdG8gcHJvZ3JhbSB0aGUgaHcg d2l0aCB0aGUgcmlnaHQgY29vcmRpbmF0ZXMgZnJvbSB3aGF0CkkgY2FuIHNlZS4KCi9tZSBmZWVs cyBhIGJpdCBsaWtlIGEgYnJva2VuIHJlY29yZC4uLgoKPiAgCWRlc3RfdyA9IHBsYW5lLT5zdGF0 ZS0+Y3J0Y193Owo+ICAJZGVzdF9oID0gcGxhbmUtPnN0YXRlLT5jcnRjX2g7Cj4gIAlnZW0gPSBk cm1fZmJfY21hX2dldF9nZW1fb2JqKGZiLCAwKTsKPiAgCXNjYW5vdXRfc3RhcnQgPSBnZW0tPnBh ZGRyICsgZmItPm9mZnNldHNbMF0gKwo+IC0JCXBsYW5lLT5zdGF0ZS0+Y3J0Y195ICogZmItPnBp dGNoZXNbMF0gKwo+IC0JCXBsYW5lLT5zdGF0ZS0+Y3J0Y194ICoKPiAtCQlmYi0+Zm9ybWF0LT5j cHBbMF07Cj4gKwkJc3JjX3kgKiBmYi0+cGl0Y2hlc1swXSArCj4gKwkJc3JjX3ggKglmYi0+Zm9y bWF0LT5jcHBbMF07Cj4gIAo+ICAJaGRsY2QgPSBwbGFuZS0+ZGV2LT5kZXZfcHJpdmF0ZTsKPiAg CWhkbGNkX3dyaXRlKGhkbGNkLCBIRExDRF9SRUdfRkJfTElORV9MRU5HVEgsIGZiLT5waXRjaGVz WzBdKTsKPiAtLSAKPiAyLjExLjAKPiAKCj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KPiBkcmktZGV2ZWwgbWFpbGluZyBsaXN0Cj4gZHJpLWRldmVsQGxp c3RzLmZyZWVkZXNrdG9wLm9yZwo+IGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxt YW4vbGlzdGluZm8vZHJpLWRldmVsCgoKLS0gClZpbGxlIFN5cmrDpGzDpApJbnRlbCBPVEMKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1h aWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMu ZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==