From mboxrd@z Thu Jan 1 00:00:00 1970 From: Liviu.Dudau@arm.com (Liviu Dudau) Date: Fri, 31 Mar 2017 14:13:22 +0100 Subject: [PATCH 2/3] drm/arm: hdlcd: fix plane base address calculation In-Reply-To: References: <20170331094937.GO7909@n2100.armlinux.org.uk> Message-ID: <20170331131322.GJ13355@e110455-lin.cambridge.arm.com> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org On Fri, Mar 31, 2017 at 10:51:46AM +0100, Russell King wrote: > The plane base address needs to be calculated using the source > coordinates to position the source correctly - it's possible to have > a larger source buffer than the CRTC size, and have several CRTCs > reading from different parts of the buffer. > > In such a case, the pitch may be larger, and we will use the source > position to select an area of the buffer to scan out. > > In order for this to work correctly, we need to also fix the atomic > check to do a fuller validation of the new state. > > Signed-off-by: Russell King This patch does not apply for me. You seem to be missing patch 59477fa90bfec ("drm/arm: Add local 'fb' variables) from your tree. Best regards, Liviu > --- > drivers/gpu/drm/arm/hdlcd_crtc.c | 14 ++++++-------- > 1 file changed, 6 insertions(+), 8 deletions(-) > > diff --git a/drivers/gpu/drm/arm/hdlcd_crtc.c b/drivers/gpu/drm/arm/hdlcd_crtc.c > index ba68fa2b5701..cf70184fd028 100644 > --- a/drivers/gpu/drm/arm/hdlcd_crtc.c > +++ b/drivers/gpu/drm/arm/hdlcd_crtc.c > @@ -240,21 +240,19 @@ static void hdlcd_plane_atomic_update(struct drm_plane *plane, > { > 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_h; > dma_addr_t scanout_start; > > if (!plane->state->fb) > return; > > - src_w = plane->state->src_w >> 16; > - src_h = plane->state->src_h >> 16; > - dest_w = plane->state->crtc_w; > - dest_h = plane->state->crtc_h; > gem = drm_fb_cma_get_gem_obj(plane->state->fb, 0); > + src_x = plane->state->src_x >> 16; > + src_y = plane->state->src_y >> 16; > + dest_h = plane->state->crtc_h; > scanout_start = gem->paddr + plane->state->fb->offsets[0] + > - plane->state->crtc_y * plane->state->fb->pitches[0] + > - plane->state->crtc_x * > - drm_format_plane_cpp(plane->state->fb->pixel_format, 0); > + src_y * plane->state->fb->pitches[0] + > + src_x * drm_format_plane_cpp(plane->state->fb->pixel_format, 0); > > hdlcd = plane->dev->dev_private; > hdlcd_write(hdlcd, HDLCD_REG_FB_LINE_LENGTH, plane->state->fb->pitches[0]); > -- > 2.7.4 > -- ==================== | I would like to | | fix the world, | | but they're not | | giving me the | \ source code! / --------------- ?\_(?)_/? From mboxrd@z Thu Jan 1 00:00:00 1970 From: Liviu Dudau Subject: Re: [PATCH 2/3] drm/arm: hdlcd: fix plane base address calculation Date: Fri, 31 Mar 2017 14:13:22 +0100 Message-ID: <20170331131322.GJ13355@e110455-lin.cambridge.arm.com> References: <20170331094937.GO7909@n2100.armlinux.org.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from foss.arm.com (foss.arm.com [217.140.101.70]) by gabe.freedesktop.org (Postfix) with ESMTP id 72F996E0B2 for ; Fri, 31 Mar 2017 13:13:24 +0000 (UTC) Content-Disposition: inline In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Russell King Cc: DRI devel , Mali DP Maintainers , LAKML List-Id: dri-devel@lists.freedesktop.org T24gRnJpLCBNYXIgMzEsIDIwMTcgYXQgMTA6NTE6NDZBTSArMDEwMCwgUnVzc2VsbCBLaW5nIHdy b3RlOgo+IFRoZSBwbGFuZSBiYXNlIGFkZHJlc3MgbmVlZHMgdG8gYmUgY2FsY3VsYXRlZCB1c2lu ZyB0aGUgc291cmNlCj4gY29vcmRpbmF0ZXMgdG8gcG9zaXRpb24gdGhlIHNvdXJjZSBjb3JyZWN0 bHkgLSBpdCdzIHBvc3NpYmxlIHRvIGhhdmUKPiBhIGxhcmdlciBzb3VyY2UgYnVmZmVyIHRoYW4g dGhlIENSVEMgc2l6ZSwgYW5kIGhhdmUgc2V2ZXJhbCBDUlRDcwo+IHJlYWRpbmcgZnJvbSBkaWZm ZXJlbnQgcGFydHMgb2YgdGhlIGJ1ZmZlci4KPiAKPiBJbiBzdWNoIGEgY2FzZSwgdGhlIHBpdGNo IG1heSBiZSBsYXJnZXIsIGFuZCB3ZSB3aWxsIHVzZSB0aGUgc291cmNlCj4gcG9zaXRpb24gdG8g c2VsZWN0IGFuIGFyZWEgb2YgdGhlIGJ1ZmZlciB0byBzY2FuIG91dC4KPiAKPiBJbiBvcmRlciBm b3IgdGhpcyB0byB3b3JrIGNvcnJlY3RseSwgd2UgbmVlZCB0byBhbHNvIGZpeCB0aGUgYXRvbWlj Cj4gY2hlY2sgdG8gZG8gYSBmdWxsZXIgdmFsaWRhdGlvbiBvZiB0aGUgbmV3IHN0YXRlLgo+IAo+ IFNpZ25lZC1vZmYtYnk6IFJ1c3NlbGwgS2luZyA8cm1rK2tlcm5lbEBhcm1saW51eC5vcmcudWs+ CgpUaGlzIHBhdGNoIGRvZXMgbm90IGFwcGx5IGZvciBtZS4gWW91IHNlZW0gdG8gYmUgbWlzc2lu ZyBwYXRjaCA1OTQ3N2ZhOTBiZmVjCigiZHJtL2FybTogQWRkIGxvY2FsICdmYicgdmFyaWFibGVz KSBmcm9tIHlvdXIgdHJlZS4KCkJlc3QgcmVnYXJkcywKTGl2aXUKCj4gLS0tCj4gIGRyaXZlcnMv Z3B1L2RybS9hcm0vaGRsY2RfY3J0Yy5jIHwgMTQgKysrKysrLS0tLS0tLS0KPiAgMSBmaWxlIGNo YW5nZWQsIDYgaW5zZXJ0aW9ucygrKSwgOCBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2FybS9oZGxjZF9jcnRjLmMgYi9kcml2ZXJzL2dwdS9kcm0vYXJtL2hk bGNkX2NydGMuYwo+IGluZGV4IGJhNjhmYTJiNTcwMS4uY2Y3MDE4NGZkMDI4IDEwMDY0NAo+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9hcm0vaGRsY2RfY3J0Yy5jCj4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL2FybS9oZGxjZF9jcnRjLmMKPiBAQCAtMjQwLDIxICsyNDAsMTkgQEAgc3RhdGljIHZvaWQg aGRsY2RfcGxhbmVfYXRvbWljX3VwZGF0ZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKPiAgewo+ ICAJc3RydWN0IGhkbGNkX2RybV9wcml2YXRlICpoZGxjZDsKPiAgCXN0cnVjdCBkcm1fZ2VtX2Nt YV9vYmplY3QgKmdlbTsKPiAtCXUzMiBzcmNfdywgc3JjX2gsIGRlc3RfdywgZGVzdF9oOwo+ICsJ dTMyIHNyY194LCBzcmNfeSwgZGVzdF9oOwo+ICAJZG1hX2FkZHJfdCBzY2Fub3V0X3N0YXJ0Owo+ ICAKPiAgCWlmICghcGxhbmUtPnN0YXRlLT5mYikKPiAgCQlyZXR1cm47Cj4gIAo+IC0Jc3JjX3cg PSBwbGFuZS0+c3RhdGUtPnNyY193ID4+IDE2Owo+IC0Jc3JjX2ggPSBwbGFuZS0+c3RhdGUtPnNy Y19oID4+IDE2Owo+IC0JZGVzdF93ID0gcGxhbmUtPnN0YXRlLT5jcnRjX3c7Cj4gLQlkZXN0X2gg PSBwbGFuZS0+c3RhdGUtPmNydGNfaDsKPiAgCWdlbSA9IGRybV9mYl9jbWFfZ2V0X2dlbV9vYmoo cGxhbmUtPnN0YXRlLT5mYiwgMCk7Cj4gKwlzcmNfeCA9IHBsYW5lLT5zdGF0ZS0+c3JjX3ggPj4g MTY7Cj4gKwlzcmNfeSA9IHBsYW5lLT5zdGF0ZS0+c3JjX3kgPj4gMTY7Cj4gKwlkZXN0X2ggPSBw bGFuZS0+c3RhdGUtPmNydGNfaDsKPiAgCXNjYW5vdXRfc3RhcnQgPSBnZW0tPnBhZGRyICsgcGxh bmUtPnN0YXRlLT5mYi0+b2Zmc2V0c1swXSArCj4gLQkJcGxhbmUtPnN0YXRlLT5jcnRjX3kgKiBw bGFuZS0+c3RhdGUtPmZiLT5waXRjaGVzWzBdICsKPiAtCQlwbGFuZS0+c3RhdGUtPmNydGNfeCAq Cj4gLQkJZHJtX2Zvcm1hdF9wbGFuZV9jcHAocGxhbmUtPnN0YXRlLT5mYi0+cGl4ZWxfZm9ybWF0 LCAwKTsKPiArCQlzcmNfeSAqIHBsYW5lLT5zdGF0ZS0+ZmItPnBpdGNoZXNbMF0gKwo+ICsJCXNy Y194ICogZHJtX2Zvcm1hdF9wbGFuZV9jcHAocGxhbmUtPnN0YXRlLT5mYi0+cGl4ZWxfZm9ybWF0 LCAwKTsKPiAgCj4gIAloZGxjZCA9IHBsYW5lLT5kZXYtPmRldl9wcml2YXRlOwo+ICAJaGRsY2Rf d3JpdGUoaGRsY2QsIEhETENEX1JFR19GQl9MSU5FX0xFTkdUSCwgcGxhbmUtPnN0YXRlLT5mYi0+ cGl0Y2hlc1swXSk7Cj4gLS0gCj4gMi43LjQKPiAKCi0tIAo9PT09PT09PT09PT09PT09PT09PQp8 IEkgd291bGQgbGlrZSB0byB8CnwgZml4IHRoZSB3b3JsZCwgIHwKfCBidXQgdGhleSdyZSBub3Qg fAp8IGdpdmluZyBtZSB0aGUgICB8CiBcIHNvdXJjZSBjb2RlISAgLwogIC0tLS0tLS0tLS0tLS0t LQogICAgwq9cXyjjg4QpXy/CrwpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVz a3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9k cmktZGV2ZWwK