From mboxrd@z Thu Jan 1 00:00:00 1970 From: maxime.ripard@bootlin.com (Maxime Ripard) Date: Fri, 23 Mar 2018 11:06:59 +0100 Subject: [PATCH 05/10] drm/sun4i: Explicitly list and check formats supported by the frontend In-Reply-To: <20180321152904.22411-6-paul.kocialkowski@bootlin.com> References: <20180321152904.22411-1-paul.kocialkowski@bootlin.com> <20180321152904.22411-6-paul.kocialkowski@bootlin.com> Message-ID: <20180323100659.vojpyt7eazioevdj@flea> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org On Wed, Mar 21, 2018 at 04:28:59PM +0100, Paul Kocialkowski wrote: > In order to check whether the frontend supports a specific format, an > explicit list and a related helper are introduced. > > They are then used to determine whether the frontend can actually support > the requested format when it was selected to be used. > > Signed-off-by: Paul Kocialkowski > --- > drivers/gpu/drm/sun4i/sun4i_backend.c | 5 ++++ > drivers/gpu/drm/sun4i/sun4i_frontend.c | 44 ++++++++++++++++++++++++++++++++++ > drivers/gpu/drm/sun4i/sun4i_frontend.h | 1 + > 3 files changed, 50 insertions(+) > > diff --git a/drivers/gpu/drm/sun4i/sun4i_backend.c b/drivers/gpu/drm/sun4i/sun4i_backend.c > index 7703ba989743..1fad0714c70e 100644 > --- a/drivers/gpu/drm/sun4i/sun4i_backend.c > +++ b/drivers/gpu/drm/sun4i/sun4i_backend.c > @@ -532,6 +532,11 @@ static int sun4i_backend_atomic_check(struct sunxi_engine *engine, > struct drm_format_name_buf format_name; > > if (sun4i_backend_plane_uses_frontend(plane_state)) { > + if (!sun4i_frontend_format_is_supported(fb->format->format)) { > + DRM_DEBUG_DRIVER("Frontend plane check failed\n"); > + return -EINVAL; > + } > + So you're checking if the frontend doesn't support it and if the backend doesn't support it. Who supports it then? :) Like I was saying, this should be moved to the previous patch, within sun4i_backend_plane_uses_frontend. > +static const uint32_t sun4i_frontend_formats[] = { > + /* RGB */ > + DRM_FORMAT_XRGB8888, > + DRM_FORMAT_BGRX8888, > + /* YUV444 */ > + DRM_FORMAT_YUV444, > + DRM_FORMAT_YVU444, > + /* YUV422 */ > + DRM_FORMAT_YUYV, > + DRM_FORMAT_YVYU, > + DRM_FORMAT_UYVY, > + DRM_FORMAT_VYUY, > + DRM_FORMAT_NV16, > + DRM_FORMAT_NV61, > + DRM_FORMAT_YUV422, > + DRM_FORMAT_YVU422, > + /* YUV420 */ > + DRM_FORMAT_NV12, > + DRM_FORMAT_NV21, > + DRM_FORMAT_YUV420, > + DRM_FORMAT_YVU420, > + /* YUV411 */ > + DRM_FORMAT_YUV411, > + DRM_FORMAT_YVU411, > +}; I think this list should reflect what the driver currently supports, not what the hardware supports. Maxime -- Maxime Ripard, Bootlin (formerly Free Electrons) Embedded Linux and Kernel engineering https://bootlin.com From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maxime Ripard Subject: Re: [PATCH 05/10] drm/sun4i: Explicitly list and check formats supported by the frontend Date: Fri, 23 Mar 2018 11:06:59 +0100 Message-ID: <20180323100659.vojpyt7eazioevdj@flea> References: <20180321152904.22411-1-paul.kocialkowski@bootlin.com> <20180321152904.22411-6-paul.kocialkowski@bootlin.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail.bootlin.com (mail.bootlin.com [62.4.15.54]) by gabe.freedesktop.org (Postfix) with ESMTP id 15E5B6E15F for ; Fri, 23 Mar 2018 10:07:11 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20180321152904.22411-6-paul.kocialkowski@bootlin.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Paul Kocialkowski Cc: David Airlie , linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, Chen-Yu Tsai , Daniel Vetter , linux-arm-kernel@lists.infradead.org List-Id: dri-devel@lists.freedesktop.org T24gV2VkLCBNYXIgMjEsIDIwMTggYXQgMDQ6Mjg6NTlQTSArMDEwMCwgUGF1bCBLb2NpYWxrb3dz a2kgd3JvdGU6Cj4gSW4gb3JkZXIgdG8gY2hlY2sgd2hldGhlciB0aGUgZnJvbnRlbmQgc3VwcG9y dHMgYSBzcGVjaWZpYyBmb3JtYXQsIGFuCj4gZXhwbGljaXQgbGlzdCBhbmQgYSByZWxhdGVkIGhl bHBlciBhcmUgaW50cm9kdWNlZC4KPiAKPiBUaGV5IGFyZSB0aGVuIHVzZWQgdG8gZGV0ZXJtaW5l IHdoZXRoZXIgdGhlIGZyb250ZW5kIGNhbiBhY3R1YWxseSBzdXBwb3J0Cj4gdGhlIHJlcXVlc3Rl ZCBmb3JtYXQgd2hlbiBpdCB3YXMgc2VsZWN0ZWQgdG8gYmUgdXNlZC4KPiAKPiBTaWduZWQtb2Zm LWJ5OiBQYXVsIEtvY2lhbGtvd3NraSA8cGF1bC5rb2NpYWxrb3dza2lAYm9vdGxpbi5jb20+Cj4g LS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9zdW40aS9zdW40aV9iYWNrZW5kLmMgIHwgIDUgKysrKwo+ ICBkcml2ZXJzL2dwdS9kcm0vc3VuNGkvc3VuNGlfZnJvbnRlbmQuYyB8IDQ0ICsrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysKPiAgZHJpdmVycy9ncHUvZHJtL3N1bjRpL3N1bjRpX2Zy b250ZW5kLmggfCAgMSArCj4gIDMgZmlsZXMgY2hhbmdlZCwgNTAgaW5zZXJ0aW9ucygrKQo+IAo+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vc3VuNGkvc3VuNGlfYmFja2VuZC5jIGIvZHJp dmVycy9ncHUvZHJtL3N1bjRpL3N1bjRpX2JhY2tlbmQuYwo+IGluZGV4IDc3MDNiYTk4OTc0My4u MWZhZDA3MTRjNzBlIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9zdW40aS9zdW40aV9i YWNrZW5kLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vc3VuNGkvc3VuNGlfYmFja2VuZC5jCj4g QEAgLTUzMiw2ICs1MzIsMTEgQEAgc3RhdGljIGludCBzdW40aV9iYWNrZW5kX2F0b21pY19jaGVj ayhzdHJ1Y3Qgc3VueGlfZW5naW5lICplbmdpbmUsCj4gIAkJc3RydWN0IGRybV9mb3JtYXRfbmFt ZV9idWYgZm9ybWF0X25hbWU7Cj4gIAo+ICAJCWlmIChzdW40aV9iYWNrZW5kX3BsYW5lX3VzZXNf ZnJvbnRlbmQocGxhbmVfc3RhdGUpKSB7Cj4gKwkJCWlmICghc3VuNGlfZnJvbnRlbmRfZm9ybWF0 X2lzX3N1cHBvcnRlZChmYi0+Zm9ybWF0LT5mb3JtYXQpKSB7Cj4gKwkJCQlEUk1fREVCVUdfRFJJ VkVSKCJGcm9udGVuZCBwbGFuZSBjaGVjayBmYWlsZWRcbiIpOwo+ICsJCQkJcmV0dXJuIC1FSU5W QUw7Cj4gKwkJCX0KPiArCgpTbyB5b3UncmUgY2hlY2tpbmcgaWYgdGhlIGZyb250ZW5kIGRvZXNu J3Qgc3VwcG9ydCBpdCBhbmQgaWYgdGhlCmJhY2tlbmQgZG9lc24ndCBzdXBwb3J0IGl0LiBXaG8g c3VwcG9ydHMgaXQgdGhlbj8gOikKCkxpa2UgSSB3YXMgc2F5aW5nLCB0aGlzIHNob3VsZCBiZSBt b3ZlZCB0byB0aGUgcHJldmlvdXMgcGF0Y2gsIHdpdGhpbgpzdW40aV9iYWNrZW5kX3BsYW5lX3Vz ZXNfZnJvbnRlbmQuCgo+ICtzdGF0aWMgY29uc3QgdWludDMyX3Qgc3VuNGlfZnJvbnRlbmRfZm9y bWF0c1tdID0gewo+ICsJLyogUkdCICovCj4gKwlEUk1fRk9STUFUX1hSR0I4ODg4LAo+ICsJRFJN X0ZPUk1BVF9CR1JYODg4OCwKPiArCS8qIFlVVjQ0NCAqLwo+ICsJRFJNX0ZPUk1BVF9ZVVY0NDQs Cj4gKwlEUk1fRk9STUFUX1lWVTQ0NCwKPiArCS8qIFlVVjQyMiAqLwo+ICsJRFJNX0ZPUk1BVF9Z VVlWLAo+ICsJRFJNX0ZPUk1BVF9ZVllVLAo+ICsJRFJNX0ZPUk1BVF9VWVZZLAo+ICsJRFJNX0ZP Uk1BVF9WWVVZLAo+ICsJRFJNX0ZPUk1BVF9OVjE2LAo+ICsJRFJNX0ZPUk1BVF9OVjYxLAo+ICsJ RFJNX0ZPUk1BVF9ZVVY0MjIsCj4gKwlEUk1fRk9STUFUX1lWVTQyMiwKPiArCS8qIFlVVjQyMCAq Lwo+ICsJRFJNX0ZPUk1BVF9OVjEyLAo+ICsJRFJNX0ZPUk1BVF9OVjIxLAo+ICsJRFJNX0ZPUk1B VF9ZVVY0MjAsCj4gKwlEUk1fRk9STUFUX1lWVTQyMCwKPiArCS8qIFlVVjQxMSAqLwo+ICsJRFJN X0ZPUk1BVF9ZVVY0MTEsCj4gKwlEUk1fRk9STUFUX1lWVTQxMSwKPiArfTsKCkkgdGhpbmsgdGhp cyBsaXN0IHNob3VsZCByZWZsZWN0IHdoYXQgdGhlIGRyaXZlciBjdXJyZW50bHkgc3VwcG9ydHMs Cm5vdCB3aGF0IHRoZSBoYXJkd2FyZSBzdXBwb3J0cy4KCk1heGltZQoKLS0gCk1heGltZSBSaXBh cmQsIEJvb3RsaW4gKGZvcm1lcmx5IEZyZWUgRWxlY3Ryb25zKQpFbWJlZGRlZCBMaW51eCBhbmQg S2VybmVsIGVuZ2luZWVyaW5nCmh0dHBzOi8vYm9vdGxpbi5jb20KX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmkt ZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3Jn L21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755294AbeCWL1Q convert rfc822-to-8bit (ORCPT ); Fri, 23 Mar 2018 07:27:16 -0400 Received: from mail.bootlin.com ([62.4.15.54]:40710 "EHLO mail.bootlin.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932356AbeCWKHL (ORCPT ); Fri, 23 Mar 2018 06:07:11 -0400 Date: Fri, 23 Mar 2018 11:06:59 +0100 From: Maxime Ripard To: Paul Kocialkowski Cc: linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-arm-kernel@lists.infradead.org, David Airlie , Chen-Yu Tsai , Daniel Vetter , Gustavo Padovan , Sean Paul Subject: Re: [PATCH 05/10] drm/sun4i: Explicitly list and check formats supported by the frontend Message-ID: <20180323100659.vojpyt7eazioevdj@flea> References: <20180321152904.22411-1-paul.kocialkowski@bootlin.com> <20180321152904.22411-6-paul.kocialkowski@bootlin.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: 8BIT In-Reply-To: <20180321152904.22411-6-paul.kocialkowski@bootlin.com> User-Agent: NeoMutt/20180223 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, Mar 21, 2018 at 04:28:59PM +0100, Paul Kocialkowski wrote: > In order to check whether the frontend supports a specific format, an > explicit list and a related helper are introduced. > > They are then used to determine whether the frontend can actually support > the requested format when it was selected to be used. > > Signed-off-by: Paul Kocialkowski > --- > drivers/gpu/drm/sun4i/sun4i_backend.c | 5 ++++ > drivers/gpu/drm/sun4i/sun4i_frontend.c | 44 ++++++++++++++++++++++++++++++++++ > drivers/gpu/drm/sun4i/sun4i_frontend.h | 1 + > 3 files changed, 50 insertions(+) > > diff --git a/drivers/gpu/drm/sun4i/sun4i_backend.c b/drivers/gpu/drm/sun4i/sun4i_backend.c > index 7703ba989743..1fad0714c70e 100644 > --- a/drivers/gpu/drm/sun4i/sun4i_backend.c > +++ b/drivers/gpu/drm/sun4i/sun4i_backend.c > @@ -532,6 +532,11 @@ static int sun4i_backend_atomic_check(struct sunxi_engine *engine, > struct drm_format_name_buf format_name; > > if (sun4i_backend_plane_uses_frontend(plane_state)) { > + if (!sun4i_frontend_format_is_supported(fb->format->format)) { > + DRM_DEBUG_DRIVER("Frontend plane check failed\n"); > + return -EINVAL; > + } > + So you're checking if the frontend doesn't support it and if the backend doesn't support it. Who supports it then? :) Like I was saying, this should be moved to the previous patch, within sun4i_backend_plane_uses_frontend. > +static const uint32_t sun4i_frontend_formats[] = { > + /* RGB */ > + DRM_FORMAT_XRGB8888, > + DRM_FORMAT_BGRX8888, > + /* YUV444 */ > + DRM_FORMAT_YUV444, > + DRM_FORMAT_YVU444, > + /* YUV422 */ > + DRM_FORMAT_YUYV, > + DRM_FORMAT_YVYU, > + DRM_FORMAT_UYVY, > + DRM_FORMAT_VYUY, > + DRM_FORMAT_NV16, > + DRM_FORMAT_NV61, > + DRM_FORMAT_YUV422, > + DRM_FORMAT_YVU422, > + /* YUV420 */ > + DRM_FORMAT_NV12, > + DRM_FORMAT_NV21, > + DRM_FORMAT_YUV420, > + DRM_FORMAT_YVU420, > + /* YUV411 */ > + DRM_FORMAT_YUV411, > + DRM_FORMAT_YVU411, > +}; I think this list should reflect what the driver currently supports, not what the hardware supports. Maxime -- Maxime Ripard, Bootlin (formerly Free Electrons) Embedded Linux and Kernel engineering https://bootlin.com