From mboxrd@z Thu Jan 1 00:00:00 1970 From: boris.brezillon@free-electrons.com (Boris Brezillon) Date: Mon, 3 Oct 2016 18:18:40 +0200 Subject: [PATCH] drm/sun4i: Check that the plane coordinates are not negative In-Reply-To: <20161003125811.GH5228@lukather> References: <20160930143320.26241-1-maxime.ripard@free-electrons.com> <20160930180826.169e3daf@bbrezillon> <20161003125811.GH5228@lukather> Message-ID: <20161003181840.0cb369d8@bbrezillon> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org On Mon, 3 Oct 2016 14:58:11 +0200 Maxime Ripard wrote: > Hi Boris, > > On Fri, Sep 30, 2016 at 06:08:26PM +0200, Boris Brezillon wrote: > > On Fri, 30 Sep 2016 16:33:20 +0200 > > Maxime Ripard wrote: > > > > > Our planes cannot be set at negative coordinates. Make sure we reject such > > > configuration. > > > > > > Reported-by: Boris Brezillon > > > Signed-off-by: Maxime Ripard > > > --- > > > drivers/gpu/drm/sun4i/sun4i_layer.c | 3 +++ > > > 1 file changed, 3 insertions(+) > > > > > > diff --git a/drivers/gpu/drm/sun4i/sun4i_layer.c b/drivers/gpu/drm/sun4i/sun4i_layer.c > > > index f0035bf5efea..f5463c4c2cde 100644 > > > --- a/drivers/gpu/drm/sun4i/sun4i_layer.c > > > +++ b/drivers/gpu/drm/sun4i/sun4i_layer.c > > > @@ -29,6 +29,9 @@ struct sun4i_plane_desc { > > > static int sun4i_backend_layer_atomic_check(struct drm_plane *plane, > > > struct drm_plane_state *state) > > > { > > > + if ((state->crtc_x < 0) || (state->crtc_y < 0)) > > > + return -EINVAL; > > > + > > > > Hm, I think it's a perfectly valid use case from the DRM framework and > > DRM user PoV: you may want to place your plane at a negative CRTC > > offset (which means part of the plane will be hidden). > > > > Maybe I'm wrong, but it seems you can support that by adapting the > > start address of your framebuffer pointer and the layer size. > > Indeed, that would probably work. This is even somewhat what we've > been using to implement the VGA hack we use on the CHIP. > > Can you send that patch? Actually, Ville suggested a slightly different approach: use the ->src and ->dst in drm_plane_state. From mboxrd@z Thu Jan 1 00:00:00 1970 From: Boris Brezillon Subject: Re: [PATCH] drm/sun4i: Check that the plane coordinates are not negative Date: Mon, 3 Oct 2016 18:18:40 +0200 Message-ID: <20161003181840.0cb369d8@bbrezillon> References: <20160930143320.26241-1-maxime.ripard@free-electrons.com> <20160930180826.169e3daf@bbrezillon> <20161003125811.GH5228@lukather> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail.free-electrons.com (down.free-electrons.com [37.187.137.238]) by gabe.freedesktop.org (Postfix) with ESMTP id 7B32E6E570 for ; Mon, 3 Oct 2016 16:18:42 +0000 (UTC) In-Reply-To: <20161003125811.GH5228@lukather> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Maxime Ripard Cc: Daniel Vetter , Chen-Yu Tsai , dri-devel@lists.freedesktop.org, linux-arm-kernel@lists.infradead.org List-Id: dri-devel@lists.freedesktop.org T24gTW9uLCAzIE9jdCAyMDE2IDE0OjU4OjExICswMjAwCk1heGltZSBSaXBhcmQgPG1heGltZS5y aXBhcmRAZnJlZS1lbGVjdHJvbnMuY29tPiB3cm90ZToKCj4gSGkgQm9yaXMsCj4gCj4gT24gRnJp LCBTZXAgMzAsIDIwMTYgYXQgMDY6MDg6MjZQTSArMDIwMCwgQm9yaXMgQnJlemlsbG9uIHdyb3Rl Ogo+ID4gT24gRnJpLCAzMCBTZXAgMjAxNiAxNjozMzoyMCArMDIwMAo+ID4gTWF4aW1lIFJpcGFy ZCA8bWF4aW1lLnJpcGFyZEBmcmVlLWVsZWN0cm9ucy5jb20+IHdyb3RlOgo+ID4gICAKPiA+ID4g T3VyIHBsYW5lcyBjYW5ub3QgYmUgc2V0IGF0IG5lZ2F0aXZlIGNvb3JkaW5hdGVzLiBNYWtlIHN1 cmUgd2UgcmVqZWN0IHN1Y2gKPiA+ID4gY29uZmlndXJhdGlvbi4KPiA+ID4gCj4gPiA+IFJlcG9y dGVkLWJ5OiBCb3JpcyBCcmV6aWxsb24gPGJvcmlzLmJyZXppbGxvbkBmcmVlLWVsZWN0cm9ucy5j b20+Cj4gPiA+IFNpZ25lZC1vZmYtYnk6IE1heGltZSBSaXBhcmQgPG1heGltZS5yaXBhcmRAZnJl ZS1lbGVjdHJvbnMuY29tPgo+ID4gPiAtLS0KPiA+ID4gIGRyaXZlcnMvZ3B1L2RybS9zdW40aS9z dW40aV9sYXllci5jIHwgMyArKysKPiA+ID4gIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMo KykKPiA+ID4gCj4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vc3VuNGkvc3VuNGlf bGF5ZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9zdW40aS9zdW40aV9sYXllci5jCj4gPiA+IGluZGV4 IGYwMDM1YmY1ZWZlYS4uZjU0NjNjNGMyY2RlIDEwMDY0NAo+ID4gPiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vc3VuNGkvc3VuNGlfbGF5ZXIuYwo+ID4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vc3Vu NGkvc3VuNGlfbGF5ZXIuYwo+ID4gPiBAQCAtMjksNiArMjksOSBAQCBzdHJ1Y3Qgc3VuNGlfcGxh bmVfZGVzYyB7Cj4gPiA+ICBzdGF0aWMgaW50IHN1bjRpX2JhY2tlbmRfbGF5ZXJfYXRvbWljX2No ZWNrKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAo+ID4gPiAgCQkJCQkgICAgc3RydWN0IGRybV9w bGFuZV9zdGF0ZSAqc3RhdGUpCj4gPiA+ICB7Cj4gPiA+ICsJaWYgKChzdGF0ZS0+Y3J0Y194IDwg MCkgfHwgKHN0YXRlLT5jcnRjX3kgPCAwKSkKPiA+ID4gKwkJcmV0dXJuIC1FSU5WQUw7Cj4gPiA+ ICsgIAo+ID4gCj4gPiBIbSwgSSB0aGluayBpdCdzIGEgcGVyZmVjdGx5IHZhbGlkIHVzZSBjYXNl IGZyb20gdGhlIERSTSBmcmFtZXdvcmsgYW5kCj4gPiBEUk0gdXNlciBQb1Y6IHlvdSBtYXkgd2Fu dCB0byBwbGFjZSB5b3VyIHBsYW5lIGF0IGEgbmVnYXRpdmUgQ1JUQwo+ID4gb2Zmc2V0ICh3aGlj aCBtZWFucyBwYXJ0IG9mIHRoZSBwbGFuZSB3aWxsIGJlIGhpZGRlbikuCj4gPiAKPiA+IE1heWJl IEknbSB3cm9uZywgYnV0IGl0IHNlZW1zIHlvdSBjYW4gc3VwcG9ydCB0aGF0IGJ5IGFkYXB0aW5n IHRoZQo+ID4gc3RhcnQgYWRkcmVzcyBvZiB5b3VyIGZyYW1lYnVmZmVyIHBvaW50ZXIgYW5kIHRo ZSBsYXllciBzaXplLiAgCj4gCj4gSW5kZWVkLCB0aGF0IHdvdWxkIHByb2JhYmx5IHdvcmsuIFRo aXMgaXMgZXZlbiBzb21ld2hhdCB3aGF0IHdlJ3ZlCj4gYmVlbiB1c2luZyB0byBpbXBsZW1lbnQg dGhlIFZHQSBoYWNrIHdlIHVzZSBvbiB0aGUgQ0hJUC4KPiAKPiBDYW4geW91IHNlbmQgdGhhdCBw YXRjaD8KCkFjdHVhbGx5LCBWaWxsZSBzdWdnZXN0ZWQgYSBzbGlnaHRseSBkaWZmZXJlbnQgYXBw cm9hY2g6IHVzZSB0aGUKLT5zcmMgYW5kIC0+ZHN0IGluIGRybV9wbGFuZV9zdGF0ZS4KX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxp bmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJl ZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==