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: Wed, 4 Jan 2017 15:27:37 +0200 Subject: [PATCH] drm/meson: Fix plane atomic check when no crtc for the plane In-Reply-To: <1483435254-27955-1-git-send-email-narmstrong@baylibre.com> References: <1483435254-27955-1-git-send-email-narmstrong@baylibre.com> Message-ID: <20170104132737.GF31595@intel.com> To: linus-amlogic@lists.infradead.org List-Id: linus-amlogic.lists.infradead.org On Tue, Jan 03, 2017 at 10:20:54AM +0100, Neil Armstrong wrote: > When no CRTC is associated with the plane, the meson_plane_atomic_check() > call breaks the kernel with an Oops. > > Fixes: bbbe775ec5b5 ("drm: Add support for Amlogic Meson Graphic Controller") > Signed-off-by: Neil Armstrong > --- > drivers/gpu/drm/meson/meson_plane.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/drivers/gpu/drm/meson/meson_plane.c b/drivers/gpu/drm/meson/meson_plane.c > index 4942ca0..7890e30 100644 > --- a/drivers/gpu/drm/meson/meson_plane.c > +++ b/drivers/gpu/drm/meson/meson_plane.c > @@ -51,6 +51,9 @@ static int meson_plane_atomic_check(struct drm_plane *plane, > struct drm_crtc_state *crtc_state; > struct drm_rect clip = { 0, }; > > + if (!state->crtc) > + return 0; > + Since you're not going to call drm_plane_helper_check_state() you will fail to update plane_state->visible. What i915 does in this case is look for state->crtc first, and if that's NULL it'll pick the crtc from the old state (plane->state->crtc). It looks a bit ugly, but maybe we should hide it in a small helper function that could be used by all drivers? > crtc_state = drm_atomic_get_crtc_state(state->state, state->crtc); > if (IS_ERR(crtc_state)) > return PTR_ERR(crtc_state); > -- > 1.9.1 > > _______________________________________________ > 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.syrjala@linux.intel.com (Ville =?iso-8859-1?Q?Syrj=E4l=E4?=) Date: Wed, 4 Jan 2017 15:27:37 +0200 Subject: [PATCH] drm/meson: Fix plane atomic check when no crtc for the plane In-Reply-To: <1483435254-27955-1-git-send-email-narmstrong@baylibre.com> References: <1483435254-27955-1-git-send-email-narmstrong@baylibre.com> Message-ID: <20170104132737.GF31595@intel.com> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org On Tue, Jan 03, 2017 at 10:20:54AM +0100, Neil Armstrong wrote: > When no CRTC is associated with the plane, the meson_plane_atomic_check() > call breaks the kernel with an Oops. > > Fixes: bbbe775ec5b5 ("drm: Add support for Amlogic Meson Graphic Controller") > Signed-off-by: Neil Armstrong > --- > drivers/gpu/drm/meson/meson_plane.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/drivers/gpu/drm/meson/meson_plane.c b/drivers/gpu/drm/meson/meson_plane.c > index 4942ca0..7890e30 100644 > --- a/drivers/gpu/drm/meson/meson_plane.c > +++ b/drivers/gpu/drm/meson/meson_plane.c > @@ -51,6 +51,9 @@ static int meson_plane_atomic_check(struct drm_plane *plane, > struct drm_crtc_state *crtc_state; > struct drm_rect clip = { 0, }; > > + if (!state->crtc) > + return 0; > + Since you're not going to call drm_plane_helper_check_state() you will fail to update plane_state->visible. What i915 does in this case is look for state->crtc first, and if that's NULL it'll pick the crtc from the old state (plane->state->crtc). It looks a bit ugly, but maybe we should hide it in a small helper function that could be used by all drivers? > crtc_state = drm_atomic_get_crtc_state(state->state, state->crtc); > if (IS_ERR(crtc_state)) > return PTR_ERR(crtc_state); > -- > 1.9.1 > > _______________________________________________ > 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: [PATCH] drm/meson: Fix plane atomic check when no crtc for the plane Date: Wed, 4 Jan 2017 15:27:37 +0200 Message-ID: <20170104132737.GF31595@intel.com> References: <1483435254-27955-1-git-send-email-narmstrong@baylibre.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTPS id 11E156E265 for ; Wed, 4 Jan 2017 13:28:04 +0000 (UTC) Content-Disposition: inline In-Reply-To: <1483435254-27955-1-git-send-email-narmstrong@baylibre.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Neil Armstrong Cc: linux-amlogic@lists.infradead.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org List-Id: dri-devel@lists.freedesktop.org T24gVHVlLCBKYW4gMDMsIDIwMTcgYXQgMTA6MjA6NTRBTSArMDEwMCwgTmVpbCBBcm1zdHJvbmcg d3JvdGU6Cj4gV2hlbiBubyBDUlRDIGlzIGFzc29jaWF0ZWQgd2l0aCB0aGUgcGxhbmUsIHRoZSBt ZXNvbl9wbGFuZV9hdG9taWNfY2hlY2soKQo+IGNhbGwgYnJlYWtzIHRoZSBrZXJuZWwgd2l0aCBh biBPb3BzLgo+IAo+IEZpeGVzOiBiYmJlNzc1ZWM1YjUgKCJkcm06IEFkZCBzdXBwb3J0IGZvciBB bWxvZ2ljIE1lc29uIEdyYXBoaWMgQ29udHJvbGxlciIpCj4gU2lnbmVkLW9mZi1ieTogTmVpbCBB cm1zdHJvbmcgPG5hcm1zdHJvbmdAYmF5bGlicmUuY29tPgo+IC0tLQo+ICBkcml2ZXJzL2dwdS9k cm0vbWVzb24vbWVzb25fcGxhbmUuYyB8IDMgKysrCj4gIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2Vy dGlvbnMoKykKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21lc29uL21lc29uX3Bs YW5lLmMgYi9kcml2ZXJzL2dwdS9kcm0vbWVzb24vbWVzb25fcGxhbmUuYwo+IGluZGV4IDQ5NDJj YTAuLjc4OTBlMzAgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL21lc29uL21lc29uX3Bs YW5lLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vbWVzb24vbWVzb25fcGxhbmUuYwo+IEBAIC01 MSw2ICs1MSw5IEBAIHN0YXRpYyBpbnQgbWVzb25fcGxhbmVfYXRvbWljX2NoZWNrKHN0cnVjdCBk cm1fcGxhbmUgKnBsYW5lLAo+ICAJc3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlOwo+ ICAJc3RydWN0IGRybV9yZWN0IGNsaXAgPSB7IDAsIH07Cj4gIAo+ICsJaWYgKCFzdGF0ZS0+Y3J0 YykKPiArCQlyZXR1cm4gMDsKPiArCgpTaW5jZSB5b3UncmUgbm90IGdvaW5nIHRvIGNhbGwgZHJt X3BsYW5lX2hlbHBlcl9jaGVja19zdGF0ZSgpIHlvdSB3aWxsCmZhaWwgdG8gdXBkYXRlIHBsYW5l X3N0YXRlLT52aXNpYmxlLgoKV2hhdCBpOTE1IGRvZXMgaW4gdGhpcyBjYXNlIGlzIGxvb2sgZm9y IHN0YXRlLT5jcnRjIGZpcnN0LCBhbmQgaWYgdGhhdCdzCk5VTEwgaXQnbGwgcGljayB0aGUgY3J0 YyBmcm9tIHRoZSBvbGQgc3RhdGUgKHBsYW5lLT5zdGF0ZS0+Y3J0YykuIEl0Cmxvb2tzIGEgYml0 IHVnbHksIGJ1dCBtYXliZSB3ZSBzaG91bGQgaGlkZSBpdCBpbiBhIHNtYWxsIGhlbHBlciBmdW5j dGlvbgp0aGF0IGNvdWxkIGJlIHVzZWQgYnkgYWxsIGRyaXZlcnM/Cgo+ICAJY3J0Y19zdGF0ZSA9 IGRybV9hdG9taWNfZ2V0X2NydGNfc3RhdGUoc3RhdGUtPnN0YXRlLCBzdGF0ZS0+Y3J0Yyk7Cj4g IAlpZiAoSVNfRVJSKGNydGNfc3RhdGUpKQo+ICAJCXJldHVybiBQVFJfRVJSKGNydGNfc3RhdGUp Owo+IC0tIAo+IDEuOS4xCj4gCj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KPiBkcmktZGV2ZWwgbWFpbGluZyBsaXN0Cj4gZHJpLWRldmVsQGxpc3RzLmZy ZWVkZXNrdG9wLm9yZwo+IGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlz dGluZm8vZHJpLWRldmVsCgotLSAKVmlsbGUgU3lyasOkbMOkCkludGVsIE9UQwpfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBs aXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVz a3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1030423AbdADN1z (ORCPT ); Wed, 4 Jan 2017 08:27:55 -0500 Received: from mga06.intel.com ([134.134.136.31]:21243 "EHLO mga06.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932168AbdADN1v (ORCPT ); Wed, 4 Jan 2017 08:27:51 -0500 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.33,459,1477983600"; d="scan'208";a="26041697" Date: Wed, 4 Jan 2017 15:27:37 +0200 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= To: Neil Armstrong Cc: airlied@linux.ie, linux-amlogic@lists.infradead.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, dri-devel@lists.freedesktop.org Subject: Re: [PATCH] drm/meson: Fix plane atomic check when no crtc for the plane Message-ID: <20170104132737.GF31595@intel.com> References: <1483435254-27955-1-git-send-email-narmstrong@baylibre.com> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <1483435254-27955-1-git-send-email-narmstrong@baylibre.com> User-Agent: Mutt/1.5.24 (2015-08-30) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, Jan 03, 2017 at 10:20:54AM +0100, Neil Armstrong wrote: > When no CRTC is associated with the plane, the meson_plane_atomic_check() > call breaks the kernel with an Oops. > > Fixes: bbbe775ec5b5 ("drm: Add support for Amlogic Meson Graphic Controller") > Signed-off-by: Neil Armstrong > --- > drivers/gpu/drm/meson/meson_plane.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/drivers/gpu/drm/meson/meson_plane.c b/drivers/gpu/drm/meson/meson_plane.c > index 4942ca0..7890e30 100644 > --- a/drivers/gpu/drm/meson/meson_plane.c > +++ b/drivers/gpu/drm/meson/meson_plane.c > @@ -51,6 +51,9 @@ static int meson_plane_atomic_check(struct drm_plane *plane, > struct drm_crtc_state *crtc_state; > struct drm_rect clip = { 0, }; > > + if (!state->crtc) > + return 0; > + Since you're not going to call drm_plane_helper_check_state() you will fail to update plane_state->visible. What i915 does in this case is look for state->crtc first, and if that's NULL it'll pick the crtc from the old state (plane->state->crtc). It looks a bit ugly, but maybe we should hide it in a small helper function that could be used by all drivers? > crtc_state = drm_atomic_get_crtc_state(state->state, state->crtc); > if (IS_ERR(crtc_state)) > return PTR_ERR(crtc_state); > -- > 1.9.1 > > _______________________________________________ > dri-devel mailing list > dri-devel@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/dri-devel -- Ville Syrjälä Intel OTC