From mboxrd@z Thu Jan 1 00:00:00 1970 From: ayan.halder@arm.com (Ayan Halder) Date: Mon, 15 Jan 2018 15:47:44 +0000 Subject: [PATCH 01/19] drm/fourcc: Add a function to tell if the format embeds alpha In-Reply-To: <20180109132833.petfgnh3fvbbvosv@flea> References: <1796930.sWoKI78acY@avalon> <20180109132833.petfgnh3fvbbvosv@flea> Message-ID: <20180115154744.GA28269@arm.com> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org On Tue, Jan 09, 2018 at 02:28:33PM +0100, Maxime Ripard wrote: > Hi Laurent, > > On Tue, Jan 09, 2018 at 02:29:58PM +0200, Laurent Pinchart wrote: > > On Tuesday, 9 January 2018 12:56:20 EET Maxime Ripard wrote: > > > There's a bunch of drivers that duplicate the same function to know if a > > > particular format embeds an alpha component or not. > > > > > > Let's create a helper to avoid duplicating that logic. > > > > > > Cc: Boris Brezillon > > > Cc: Eric Anholt > > > Cc: Inki Dae > > > Cc: Joonyoung Shim > > > Cc: Kyungmin Park > > > Cc: Laurent Pinchart > > > Cc: Mark Yao > > > Cc: Seung-Woo Kim > > > Signed-off-by: Maxime Ripard > > > --- > > > drivers/gpu/drm/drm_fourcc.c | 43 +++++++++++++++++++++++++++++++++++++- > > > include/drm/drm_fourcc.h | 1 +- > > > 2 files changed, 44 insertions(+) > > > > > > diff --git a/drivers/gpu/drm/drm_fourcc.c b/drivers/gpu/drm/drm_fourcc.c > > > index 9c0152df45ad..6e6227d6a46b 100644 > > > --- a/drivers/gpu/drm/drm_fourcc.c > > > +++ b/drivers/gpu/drm/drm_fourcc.c > > > @@ -348,3 +348,46 @@ int drm_format_plane_height(int height, uint32_t > > > format, int plane) return height / info->vsub; > > > } > > > EXPORT_SYMBOL(drm_format_plane_height); > > > + > > > +/** > > > + * drm_format_has_alpha - get whether the format embeds an alpha component > > > + * @format: pixel format (DRM_FORMAT_*) > > > + * > > > + * Returns: > > > + * true if the format embeds an alpha component, false otherwise. > > > + */ > > > +bool drm_format_has_alpha(uint32_t format) > > > +{ > > > + switch (format) { > > > + case DRM_FORMAT_ARGB4444: > > > + case DRM_FORMAT_ABGR4444: > > > + case DRM_FORMAT_RGBA4444: > > > + case DRM_FORMAT_BGRA4444: > > > + case DRM_FORMAT_ARGB1555: > > > + case DRM_FORMAT_ABGR1555: > > > + case DRM_FORMAT_RGBA5551: > > > + case DRM_FORMAT_BGRA5551: > > > + case DRM_FORMAT_ARGB8888: > > > + case DRM_FORMAT_ABGR8888: > > > + case DRM_FORMAT_RGBA8888: > > > + case DRM_FORMAT_BGRA8888: > > > + case DRM_FORMAT_ARGB2101010: > > > + case DRM_FORMAT_ABGR2101010: > > > + case DRM_FORMAT_RGBA1010102: > > > + case DRM_FORMAT_BGRA1010102: > > > + case DRM_FORMAT_AYUV: > > > + case DRM_FORMAT_XRGB8888_A8: > > > + case DRM_FORMAT_XBGR8888_A8: > > > + case DRM_FORMAT_RGBX8888_A8: > > > + case DRM_FORMAT_BGRX8888_A8: > > > + case DRM_FORMAT_RGB888_A8: > > > + case DRM_FORMAT_BGR888_A8: > > > + case DRM_FORMAT_RGB565_A8: > > > + case DRM_FORMAT_BGR565_A8: > > > + return true; > > > + > > > + default: > > > + return false; > > > + } > > > +} > > > +EXPORT_SYMBOL(drm_format_has_alpha); > > > > How about adding the information to struct drm_format_info instead ? > > drm_format_has_alpha() could then be implemented as > > > > bool drm_format_has_alpha(uint32_t format) > > { > > const struct drm_format_info *info; > > > > info = drm_format_info(format); > > return info ? info->has_alpha : false; > > } > > I considered it, and wasn't too sure about if adding more fields to > drm_format_info was ok. I can definitely do it that way. Are you going to send an updated patch with the change mentioned here. Or should I update my patch (https://patchwork.kernel.org/patch/10161023/) and change the type of '.alpha' to boolean to denote if the color format has an alpha channel or not. > > although drivers should really use the drm_framebuffer::format field directly > > in most cases, so the helper might not be needed at all. > > The drivers converted in my serie shouldn't be too hard to convert to > use drm_format_info directly, so that can be removed as well. > > Maxime > > -- > Maxime Ripard, Free Electrons > Embedded Linux and Kernel engineering > http://free-electrons.com > _______________________________________________ > dri-devel mailing list > dri-devel at lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/dri-devel IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you. From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ayan Halder Subject: Re: [PATCH 01/19] drm/fourcc: Add a function to tell if the format embeds alpha Date: Mon, 15 Jan 2018 15:47:44 +0000 Message-ID: <20180115154744.GA28269@arm.com> References: <1796930.sWoKI78acY@avalon> <20180109132833.petfgnh3fvbbvosv@flea> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from EUR01-DB5-obe.outbound.protection.outlook.com (mail-eopbgr60068.outbound.protection.outlook.com [40.107.6.68]) by gabe.freedesktop.org (Postfix) with ESMTPS id 25C046E122 for ; Mon, 15 Jan 2018 15:47:49 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20180109132833.petfgnh3fvbbvosv@flea> 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: Thomas Petazzoni , Boris Brezillon , Seung-Woo Kim , linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, Kyungmin Park , Laurent Pinchart , Mark Yao , Daniel Vetter , Chen-Yu Tsai , linux-arm-kernel@lists.infradead.org, thomas@vitsch.nl List-Id: dri-devel@lists.freedesktop.org T24gVHVlLCBKYW4gMDksIDIwMTggYXQgMDI6Mjg6MzNQTSArMDEwMCwgTWF4aW1lIFJpcGFyZCB3 cm90ZToKPiBIaSBMYXVyZW50LAo+Cj4gT24gVHVlLCBKYW4gMDksIDIwMTggYXQgMDI6Mjk6NThQ TSArMDIwMCwgTGF1cmVudCBQaW5jaGFydCB3cm90ZToKPiA+IE9uIFR1ZXNkYXksIDkgSmFudWFy eSAyMDE4IDEyOjU2OjIwIEVFVCBNYXhpbWUgUmlwYXJkIHdyb3RlOgo+ID4gPiBUaGVyZSdzIGEg YnVuY2ggb2YgZHJpdmVycyB0aGF0IGR1cGxpY2F0ZSB0aGUgc2FtZSBmdW5jdGlvbiB0byBrbm93 IGlmIGEKPiA+ID4gcGFydGljdWxhciBmb3JtYXQgZW1iZWRzIGFuIGFscGhhIGNvbXBvbmVudCBv ciBub3QuCj4gPiA+Cj4gPiA+IExldCdzIGNyZWF0ZSBhIGhlbHBlciB0byBhdm9pZCBkdXBsaWNh dGluZyB0aGF0IGxvZ2ljLgo+ID4gPgo+ID4gPiBDYzogQm9yaXMgQnJlemlsbG9uIDxib3Jpcy5i cmV6aWxsb25AZnJlZS1lbGVjdHJvbnMuY29tPgo+ID4gPiBDYzogRXJpYyBBbmhvbHQgPGVyaWNA YW5ob2x0Lm5ldD4KPiA+ID4gQ2M6IElua2kgRGFlIDxpbmtpLmRhZUBzYW1zdW5nLmNvbT4KPiA+ ID4gQ2M6IEpvb255b3VuZyBTaGltIDxqeTA5MjIuc2hpbUBzYW1zdW5nLmNvbT4KPiA+ID4gQ2M6 IEt5dW5nbWluIFBhcmsgPGt5dW5nbWluLnBhcmtAc2Ftc3VuZy5jb20+Cj4gPiA+IENjOiBMYXVy ZW50IFBpbmNoYXJ0IDxsYXVyZW50LnBpbmNoYXJ0QGlkZWFzb25ib2FyZC5jb20+Cj4gPiA+IENj OiBNYXJrIFlhbyA8bWFyay55YW9Acm9jay1jaGlwcy5jb20+Cj4gPiA+IENjOiBTZXVuZy1Xb28g S2ltIDxzdzAzMTIua2ltQHNhbXN1bmcuY29tPgo+ID4gPiBTaWduZWQtb2ZmLWJ5OiBNYXhpbWUg UmlwYXJkIDxtYXhpbWUucmlwYXJkQGZyZWUtZWxlY3Ryb25zLmNvbT4KPiA+ID4gLS0tCj4gPiA+ ICBkcml2ZXJzL2dwdS9kcm0vZHJtX2ZvdXJjYy5jIHwgNDMgKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKy0KPiA+ID4gIGluY2x1ZGUvZHJtL2RybV9mb3VyY2MuaCAgICAgfCAg MSArLQo+ID4gPiAgMiBmaWxlcyBjaGFuZ2VkLCA0NCBpbnNlcnRpb25zKCspCj4gPiA+Cj4gPiA+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2ZvdXJjYy5jIGIvZHJpdmVycy9ncHUv ZHJtL2RybV9mb3VyY2MuYwo+ID4gPiBpbmRleCA5YzAxNTJkZjQ1YWQuLjZlNjIyN2Q2YTQ2YiAx MDA2NDQKPiA+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9mb3VyY2MuYwo+ID4gPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vZHJtX2ZvdXJjYy5jCj4gPiA+IEBAIC0zNDgsMyArMzQ4LDQ2IEBA IGludCBkcm1fZm9ybWF0X3BsYW5lX2hlaWdodChpbnQgaGVpZ2h0LCB1aW50MzJfdAo+ID4gPiBm b3JtYXQsIGludCBwbGFuZSkgcmV0dXJuIGhlaWdodCAvIGluZm8tPnZzdWI7Cj4gPiA+ICB9Cj4g PiA+ICBFWFBPUlRfU1lNQk9MKGRybV9mb3JtYXRfcGxhbmVfaGVpZ2h0KTsKPiA+ID4gKwo+ID4g PiArLyoqCj4gPiA+ICsgKiBkcm1fZm9ybWF0X2hhc19hbHBoYSAtIGdldCB3aGV0aGVyIHRoZSBm b3JtYXQgZW1iZWRzIGFuIGFscGhhIGNvbXBvbmVudAo+ID4gPiArICogQGZvcm1hdDogcGl4ZWwg Zm9ybWF0IChEUk1fRk9STUFUXyopCj4gPiA+ICsgKgo+ID4gPiArICogUmV0dXJuczoKPiA+ID4g KyAqIHRydWUgaWYgdGhlIGZvcm1hdCBlbWJlZHMgYW4gYWxwaGEgY29tcG9uZW50LCBmYWxzZSBv dGhlcndpc2UuCj4gPiA+ICsgKi8KPiA+ID4gK2Jvb2wgZHJtX2Zvcm1hdF9oYXNfYWxwaGEodWlu dDMyX3QgZm9ybWF0KQo+ID4gPiArewo+ID4gPiArIHN3aXRjaCAoZm9ybWF0KSB7Cj4gPiA+ICsg Y2FzZSBEUk1fRk9STUFUX0FSR0I0NDQ0Ogo+ID4gPiArIGNhc2UgRFJNX0ZPUk1BVF9BQkdSNDQ0 NDoKPiA+ID4gKyBjYXNlIERSTV9GT1JNQVRfUkdCQTQ0NDQ6Cj4gPiA+ICsgY2FzZSBEUk1fRk9S TUFUX0JHUkE0NDQ0Ogo+ID4gPiArIGNhc2UgRFJNX0ZPUk1BVF9BUkdCMTU1NToKPiA+ID4gKyBj YXNlIERSTV9GT1JNQVRfQUJHUjE1NTU6Cj4gPiA+ICsgY2FzZSBEUk1fRk9STUFUX1JHQkE1NTUx Ogo+ID4gPiArIGNhc2UgRFJNX0ZPUk1BVF9CR1JBNTU1MToKPiA+ID4gKyBjYXNlIERSTV9GT1JN QVRfQVJHQjg4ODg6Cj4gPiA+ICsgY2FzZSBEUk1fRk9STUFUX0FCR1I4ODg4Ogo+ID4gPiArIGNh c2UgRFJNX0ZPUk1BVF9SR0JBODg4ODoKPiA+ID4gKyBjYXNlIERSTV9GT1JNQVRfQkdSQTg4ODg6 Cj4gPiA+ICsgY2FzZSBEUk1fRk9STUFUX0FSR0IyMTAxMDEwOgo+ID4gPiArIGNhc2UgRFJNX0ZP Uk1BVF9BQkdSMjEwMTAxMDoKPiA+ID4gKyBjYXNlIERSTV9GT1JNQVRfUkdCQTEwMTAxMDI6Cj4g PiA+ICsgY2FzZSBEUk1fRk9STUFUX0JHUkExMDEwMTAyOgo+ID4gPiArIGNhc2UgRFJNX0ZPUk1B VF9BWVVWOgo+ID4gPiArIGNhc2UgRFJNX0ZPUk1BVF9YUkdCODg4OF9BODoKPiA+ID4gKyBjYXNl IERSTV9GT1JNQVRfWEJHUjg4ODhfQTg6Cj4gPiA+ICsgY2FzZSBEUk1fRk9STUFUX1JHQlg4ODg4 X0E4Ogo+ID4gPiArIGNhc2UgRFJNX0ZPUk1BVF9CR1JYODg4OF9BODoKPiA+ID4gKyBjYXNlIERS TV9GT1JNQVRfUkdCODg4X0E4Ogo+ID4gPiArIGNhc2UgRFJNX0ZPUk1BVF9CR1I4ODhfQTg6Cj4g PiA+ICsgY2FzZSBEUk1fRk9STUFUX1JHQjU2NV9BODoKPiA+ID4gKyBjYXNlIERSTV9GT1JNQVRf QkdSNTY1X0E4Ogo+ID4gPiArICAgICAgICAgcmV0dXJuIHRydWU7Cj4gPiA+ICsKPiA+ID4gKyBk ZWZhdWx0Ogo+ID4gPiArICAgICAgICAgcmV0dXJuIGZhbHNlOwo+ID4gPiArIH0KPiA+ID4gK30K PiA+ID4gK0VYUE9SVF9TWU1CT0woZHJtX2Zvcm1hdF9oYXNfYWxwaGEpOwo+ID4KPiA+IEhvdyBh Ym91dCBhZGRpbmcgdGhlIGluZm9ybWF0aW9uIHRvIHN0cnVjdCBkcm1fZm9ybWF0X2luZm8gaW5z dGVhZCA/Cj4gPiBkcm1fZm9ybWF0X2hhc19hbHBoYSgpIGNvdWxkIHRoZW4gYmUgaW1wbGVtZW50 ZWQgYXMKPiA+Cj4gPiBib29sIGRybV9mb3JtYXRfaGFzX2FscGhhKHVpbnQzMl90IGZvcm1hdCkK PiA+IHsKPiA+ICAgICBjb25zdCBzdHJ1Y3QgZHJtX2Zvcm1hdF9pbmZvICppbmZvOwo+ID4KPiA+ ICAgICBpbmZvID0gZHJtX2Zvcm1hdF9pbmZvKGZvcm1hdCk7Cj4gPiAgICAgcmV0dXJuIGluZm8g PyBpbmZvLT5oYXNfYWxwaGEgOiBmYWxzZTsKPiA+IH0KPgo+IEkgY29uc2lkZXJlZCBpdCwgYW5k IHdhc24ndCB0b28gc3VyZSBhYm91dCBpZiBhZGRpbmcgbW9yZSBmaWVsZHMgdG8KPiBkcm1fZm9y bWF0X2luZm8gd2FzIG9rLiBJIGNhbiBkZWZpbml0ZWx5IGRvIGl0IHRoYXQgd2F5LgpBcmUgeW91 IGdvaW5nIHRvIHNlbmQgYW4gdXBkYXRlZCBwYXRjaCB3aXRoIHRoZSBjaGFuZ2UgbWVudGlvbmVk IGhlcmUuCk9yIHNob3VsZCBJIHVwZGF0ZSBteSBwYXRjaCAoaHR0cHM6Ly9wYXRjaHdvcmsua2Vy bmVsLm9yZy9wYXRjaC8xMDE2MTAyMy8pCmFuZCBjaGFuZ2UgdGhlIHR5cGUgb2YgJy5hbHBoYScg dG8gYm9vbGVhbiB0byBkZW5vdGUgaWYgdGhlIGNvbG9yCmZvcm1hdCBoYXMgYW4gYWxwaGEgY2hh bm5lbCBvciBub3QuCgo+ID4gYWx0aG91Z2ggZHJpdmVycyBzaG91bGQgcmVhbGx5IHVzZSB0aGUg ZHJtX2ZyYW1lYnVmZmVyOjpmb3JtYXQgZmllbGQgZGlyZWN0bHkKPiA+IGluIG1vc3QgY2FzZXMs IHNvIHRoZSBoZWxwZXIgbWlnaHQgbm90IGJlIG5lZWRlZCBhdCBhbGwuCj4KPiBUaGUgZHJpdmVy cyBjb252ZXJ0ZWQgaW4gbXkgc2VyaWUgc2hvdWxkbid0IGJlIHRvbyBoYXJkIHRvIGNvbnZlcnQg dG8KPiB1c2UgZHJtX2Zvcm1hdF9pbmZvIGRpcmVjdGx5LCBzbyB0aGF0IGNhbiBiZSByZW1vdmVk IGFzIHdlbGwuCj4KPiBNYXhpbWUKPgo+IC0tCj4gTWF4aW1lIFJpcGFyZCwgRnJlZSBFbGVjdHJv bnMKPiBFbWJlZGRlZCBMaW51eCBhbmQgS2VybmVsIGVuZ2luZWVyaW5nCj4gaHR0cDovL2ZyZWUt ZWxlY3Ryb25zLmNvbQoKCgo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCj4gZHJpLWRldmVsIG1haWxpbmcgbGlzdAo+IGRyaS1kZXZlbEBsaXN0cy5mcmVl ZGVza3RvcC5vcmcKPiBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3Rp bmZvL2RyaS1kZXZlbAoKSU1QT1JUQU5UIE5PVElDRTogVGhlIGNvbnRlbnRzIG9mIHRoaXMgZW1h aWwgYW5kIGFueSBhdHRhY2htZW50cyBhcmUgY29uZmlkZW50aWFsIGFuZCBtYXkgYWxzbyBiZSBw cml2aWxlZ2VkLiBJZiB5b3UgYXJlIG5vdCB0aGUgaW50ZW5kZWQgcmVjaXBpZW50LCBwbGVhc2Ug bm90aWZ5IHRoZSBzZW5kZXIgaW1tZWRpYXRlbHkgYW5kIGRvIG5vdCBkaXNjbG9zZSB0aGUgY29u dGVudHMgdG8gYW55IG90aGVyIHBlcnNvbiwgdXNlIGl0IGZvciBhbnkgcHVycG9zZSwgb3Igc3Rv cmUgb3IgY29weSB0aGUgaW5mb3JtYXRpb24gaW4gYW55IG1lZGl1bS4gVGhhbmsgeW91LgpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFp bGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5m cmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK From mboxrd@z Thu Jan 1 00:00:00 1970 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755365AbeAOPrv (ORCPT + 1 other); Mon, 15 Jan 2018 10:47:51 -0500 Received: from mail-db5eur01on0081.outbound.protection.outlook.com ([104.47.2.81]:3774 "EHLO EUR01-DB5-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751407AbeAOPrt (ORCPT ); Mon, 15 Jan 2018 10:47:49 -0500 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Ayan.Halder@arm.com; Date: Mon, 15 Jan 2018 15:47:44 +0000 From: Ayan Halder To: Maxime Ripard Cc: Laurent Pinchart , Thomas Petazzoni , Boris Brezillon , Seung-Woo Kim , linux-kernel@vger.kernel.org, Kyungmin Park , Chen-Yu Tsai , dri-devel@lists.freedesktop.org, Daniel Vetter , thomas@vitsch.nl, linux-arm-kernel@lists.infradead.org, Mark Yao Subject: Re: [PATCH 01/19] drm/fourcc: Add a function to tell if the format embeds alpha Message-ID: <20180115154744.GA28269@arm.com> References: <1796930.sWoKI78acY@avalon> <20180109132833.petfgnh3fvbbvosv@flea> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20180109132833.petfgnh3fvbbvosv@flea> User-Agent: Mutt/1.5.24 (2015-08-30) X-Originating-IP: [217.140.96.140] X-ClientProxiedBy: DB6PR07CA0172.eurprd07.prod.outlook.com (2603:10a6:6:43::26) To AM5PR0802MB2404.eurprd08.prod.outlook.com (2603:10a6:203:9f::9) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 529972c9-8a24-44f5-67ee-08d55c2f52e5 X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(7020095)(4652020)(5600026)(4604075)(48565401081)(2017052603307)(7153060)(7193020);SRVR:AM5PR0802MB2404; X-Microsoft-Exchange-Diagnostics: 1;AM5PR0802MB2404;3:78x/tZN4YJic4D60t0kmsS8ONROFyIp5FKofakBsyzrNdpRFX6hw792wUHk9HD87KwKwQ8QVVr3eCfkeuu5Gb303S1et8bz5/LdJAuz4NVg2uE+/oON1lhti26tPtm/Tk1TT5qPQC0NE0PSLcxOrHudDsq773BlPW+IY+gpMCvLwtu6ecwMHrFeM8cK+gH21gk1l1xZaVWppCT+um+f1JvjrcTQf2vaQ/4bqbyW4ANiYskQgRPIwJcH4IxFWd9I3;25:Cv6SxyhQ7dabJ1FVzmcL3y4zuy/5Mn07Vxi7/PSVqveimlgOFOr6w9KyhGohpik21s/eJqVtqIiiaq8nNcFEAtCL3tvh55yD8oCUrUHDjFNBvfjMdnY76HO7y6pTSdHU3s9j3VJtZqEwRiXsG1ihB6AJ6m0dKHNlUqROpy0dLHyfI+7cL2At//XFgWBCjdTgF1pRXvNaLHpXDG0qlOUlYsKkv5/rnCaeoHL752eHwZK0i+iCKoqdIiZkqLjrLA1E6/tMBMv7YITHWN6o8MidqyaFy7XXd84YnWJ1UcndHwVUNRVWw5mG5FfOTuFN1k5SyDbfWGkJFFoI5nPHSQ1SYg==;31:AmU1c2dkjAXu0+vlnoD8r2S4Vb4OByKV71Qgn0sP51R1b/SxhtIKEkvuR4kgIydIT2NnvXtC9zop5VJm36uXrvOxd/4DJ3t6rOUgc9GxmdDU7LChMP47u8kZyDbylgnxFsgj5r+Q8J8qKSildmncmZKUt2GgpXmslmzai6g5/gvqQ7ejogPSQ38c/x86m8f/wZ+HNia3EMyAjr1h/yz0JZrj8dYVhzuFRqx538hGEmU= X-MS-TrafficTypeDiagnostic: AM5PR0802MB2404: Content-Transfer-Encoding: 8BIT X-Microsoft-Exchange-Diagnostics: 1;AM5PR0802MB2404;20:TkiviT36YoTLOsdbpiFxshWrZesvYeM+vpuqulLN+TNnCct5gJCfF2vnTtDmOKnwChgl5vdl+JVYu3TYqkxG6NPr3qlHYeJ00Mp9SSSYIMYYLYECNPkRK0Qcz34Kw5MFuCg2urCl7gKcvhtUwetBXtePu2yAplaTBVQyZljhkyPXwfY0Royl3VWAhgbEV9CEtI74uN4iLf6kghOK/ZOiQdbN/C7vVznUlhyp3ZSHkoVeB0MVNEPnJriqw3SXyX4JHzkAqgHTvgGt5HGWvUS5k9DaCOzHGo/tW3yZ5YmRJiHlXMU+UeLkd9rzb+2maJObKPBwO+OqjgDd6GD/qtUJHFgU5ogKC/zZLgfumG4dMNsX4SFyi/QxoYebCzxraUDMgmn46dNB9sQAvBzo59xx3t782eRkP7/q4xpl+be4cCcXdzcAXzQtwwYHuc+I6ryYN0kuBCO0toXMZREl15t5qGsWxPJBvdphddbpujaoZbRt3yU/S/xky3vs/sehNxq/;4:c1ZdeW0suRdkaJZO5tI3fnUbc87w2trR8oY63E49Ce9FpJnrZ/Lvgnv/+fIYS17anbwLzj3IZJZblQMP02lfnUr//IWfbZwk0r32LF5QWnRJAyTpW0dLA2cggrtTKVXSF0phFu0QowxY8QmL4ib+R5WO+5qrSZ7zTaOtrJ4kjBwaQaKojJKdXMe05nU1sumllnz7tHta0qZ10Xv5vdn+4NQi12OyI3ccYMI6S9nXkxAfiQGPCblbP9pNbF6yXG2XmLNrfWjUtY7OTuncBrpqC/acumxgoolqM1tnkLQsLNZjR0JK5EhQYS4d1xr37keg5GKG0EfSv+EYkFHH9RxWF0SIMOY59VcNxvJmzkl8T5AVtJKoVJwVHcqmH4kRwlpT X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(58145275503218)(217544274631240)(7411616537696); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040470)(2401047)(5005006)(8121501046)(93006095)(93001095)(10201501046)(3231023)(944501161)(3002001)(6055026)(6041268)(20161123558120)(20161123560045)(20161123562045)(20161123564045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(6072148)(201708071742011);SRVR:AM5PR0802MB2404;BCL:0;PCL:0;RULEID:(100000803101)(100110400095);SRVR:AM5PR0802MB2404; X-Forefront-PRVS: 0553CBB77A X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(6069001)(346002)(376002)(366004)(39860400002)(396003)(39380400002)(189003)(199004)(40434004)(24454002)(6116002)(72206003)(3846002)(86362001)(6496006)(386003)(105586002)(966005)(52116002)(305945005)(93886005)(25786009)(7736002)(1076002)(50466002)(16526018)(58126008)(54906003)(23726003)(83506002)(229853002)(478600001)(76176011)(316002)(97736004)(59450400001)(6246003)(6486002)(7416002)(2950100002)(8936002)(66066001)(6916009)(106356001)(81156014)(81166006)(47776003)(33656002)(53936002)(8676002)(76506005)(2906002)(8746002)(53386004)(36756003)(68736007)(5890100001)(6306002)(4326008)(5660300001)(18370500001);DIR:OUT;SFP:1101;SCL:1;SRVR:AM5PR0802MB2404;H:localhost;FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;AM5PR0802MB2404;23:DLsp40YXnN0xUPhnVa2AuPIoG0K+FZzuvI1bl1F?= =?us-ascii?Q?5mWHk268pRWQjaLeUc9f7imSjWFFdwukWgRoajs2KN8peHpvDCluDfG7FzWo?= =?us-ascii?Q?nhBRmKw5SHui1umrDnbAq9sJ9ToxDF8KbHJAf+i1/3Fs6okY5YEF83Yb8hBp?= =?us-ascii?Q?wQfHrLtLqHp9sdCZANrPfzTm9w+WvtrplG8F/ARJ67h7pM8KhpLOcWobXqcl?= =?us-ascii?Q?adKOn6GXJ91Y9bgzHliZc/pRpKdQpKKWed50YjZv8WQd14E27X5v6diP5QVP?= =?us-ascii?Q?isYtijVm6M+wNMnOCizzkynl5E/HIC4fARxBJ6z/XhBVL1wRKfkQuG5zzmS2?= =?us-ascii?Q?/oDdZ87LT/Org4PHQWDP5DY3aIT2csaxc/egQRv4oNadkm6Lf8VcoMXsf6SC?= =?us-ascii?Q?khk1AZKXEPOlziMg+lmWTeviL9cJGYc5rGR0bM/Cuh5f4Zt3zM5wdtVJzIii?= =?us-ascii?Q?QYv+xMXQvBI/utKxAfcsHj+c+88oJUvuWcOu6Z/No+7z80c+9xBvRSW0dEYN?= =?us-ascii?Q?zbKp/cuPxqH0kUtkCYeRP2zMqACm8ujIc4s6TjMV8VJB0C4IhOP1EfjYEIa9?= =?us-ascii?Q?9EThbK2mUqNCwP+SsAB3UN33jiFHOZXfo1mGGav8xktp+vKqFh/1AK5i0PyS?= =?us-ascii?Q?I7b27doPe6MrLyzY8souNelIns4TXalrVUO14zrZbRBcz9EMw+d1mFJl5+lx?= =?us-ascii?Q?tihw3ozsbM4SD1lUqq7B+/lY5Uj5o0oZthgMwaG07pBJjXqMlDEQ7FLGZPru?= =?us-ascii?Q?phI1FR8qMhd4rHIencgtbAanczVJWUtKnl9rBS/BmpbM+uif2nCO0YXuj9hD?= =?us-ascii?Q?V58gVLCphIXKzDtiunmU3pWl1ag7+ndATQA+b86wKoiRkFQ5GwTHzs/9255C?= =?us-ascii?Q?Sc7tQ5kR6aivYNvr0fGPTn1S1hU21s6FraUIMrTuFc8ymM8IMFU+3FPNqfVO?= =?us-ascii?Q?/k6wMvDrqyoL6mPsGhvZ5t20qB2OmccheZLV6SzOpZx+LqRe/4iJ9f8OEUea?= =?us-ascii?Q?ZamvEGe0q3Hi5EGxAmQBLoy+YPdAMlyIh0UjLSCQ908qkwe0hQx0hV/5iOlS?= =?us-ascii?Q?9vGwy58xYNKtL/Y21E4/NHvPY+Vi3cJDXA+mJ5WPcrfjuIt5qnssMBacWK1+?= =?us-ascii?Q?rwtZh3C+vMBldf3NrTj78GBZ5pZc/uoVRENqF+//CnHTqj6xkUIuWdDALdY7?= =?us-ascii?Q?wL9j1L0XOeiC/6txanM7KxPLQqulPcQh99JXLU9thHqoTlcIbkII0aC6Z5Te?= =?us-ascii?Q?ICm33jW7afdsdo9LNJSPvv+oY22PNCQT808KZwaZJ+LcK+8mjEjzq6PLjT7f?= =?us-ascii?Q?canFA/hRttFx1I39rmZU1Ujsy3w3pkmFSe5RgzXOC+PGGQjCRDMShG33MLVs?= =?us-ascii?Q?FHOCF5XH6SenVBKAFyUIL4ZpaH7c63jSHH5Qd0itFujMukAzz0dD2+JsBt4P?= =?us-ascii?Q?iVrjKIAX2mg=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1;AM5PR0802MB2404;6:vnybyGv3Z5DPWncZflicXxbAErHmj+HCbHy4dWQBMzHdUeBB4i/FvYoTsgO1NH383rlcj7qRldHyklWAQzd6MsWFOyjgeboXrkF23yMabzVLvSztS4Gb55U2g1zIv5Ldl/MKHOUaeiHJt1krUcv+uCcBuJOi9wI01335EkuqtsuCCYPoyFPVvcTq/mQved14B00ps5e9+tdYw5WO/Jv8gpa2Jiq+DSDXmdgnUb4vMbj6iLg9ZyKvx48vBStui3ADSqs16GQX7AqzeluTn+fXwYxm9FVW05y01syyG4Rtb8CoDaOxy4vxnGN5O6QoVMAGGydmld1ds9FllSy10RBM2e9wiN99VQr8+8dU81c8GpE=;5:owI61vh92TW90da4TExkefDoziFNKEWuRWT2BcMn/7VPZGj4HhD2mL/bouTWWUWOoxUp7NO4yyqjbGMu9lGJSgADtcscZSqdfElHSGoDRpZdrVfve6u5zhRAc+Xw0tSUVzPyqdIh7HHdh9dGbY66w5w/H1uBJJj/U/FtRJE1TBs=;24:bvlEeO+BO69LDyOX3JuHrPonuH47bEphp0kLhiTzo0Xat4iKBVUupgobTqWBX5jqEJz0ePwvnG/CHZ47w/xuWV7SMG7aIYqyS6PN6KILcUA=;7:N+l+im5QkwywNlzqHOhxO1wKm5PAp0pjKwXbUH0mN2wABQjuW9n8ixiglvSIx3NnWbkSiMm3iUU6WmwY1ffUs2ec5mdEdR9U10TiqBGlYU9I8xClDTkxI8CqmLx0I/sIViOrJCRPgeRZSmJfrq6pt+NpXiYx48qA7+2NbnKhNLQwbQ3DMa4tZ7tWTTidMG35eebZxPXtHZn/kBjJ/zC1hRKy7ynISB6mV57mrJooJspOsYBa2FD07qmLoUTf6CHm SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Jan 2018 15:47:46.5840 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 529972c9-8a24-44f5-67ee-08d55c2f52e5 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM5PR0802MB2404 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Return-Path: On Tue, Jan 09, 2018 at 02:28:33PM +0100, Maxime Ripard wrote: > Hi Laurent, > > On Tue, Jan 09, 2018 at 02:29:58PM +0200, Laurent Pinchart wrote: > > On Tuesday, 9 January 2018 12:56:20 EET Maxime Ripard wrote: > > > There's a bunch of drivers that duplicate the same function to know if a > > > particular format embeds an alpha component or not. > > > > > > Let's create a helper to avoid duplicating that logic. > > > > > > Cc: Boris Brezillon > > > Cc: Eric Anholt > > > Cc: Inki Dae > > > Cc: Joonyoung Shim > > > Cc: Kyungmin Park > > > Cc: Laurent Pinchart > > > Cc: Mark Yao > > > Cc: Seung-Woo Kim > > > Signed-off-by: Maxime Ripard > > > --- > > > drivers/gpu/drm/drm_fourcc.c | 43 +++++++++++++++++++++++++++++++++++++- > > > include/drm/drm_fourcc.h | 1 +- > > > 2 files changed, 44 insertions(+) > > > > > > diff --git a/drivers/gpu/drm/drm_fourcc.c b/drivers/gpu/drm/drm_fourcc.c > > > index 9c0152df45ad..6e6227d6a46b 100644 > > > --- a/drivers/gpu/drm/drm_fourcc.c > > > +++ b/drivers/gpu/drm/drm_fourcc.c > > > @@ -348,3 +348,46 @@ int drm_format_plane_height(int height, uint32_t > > > format, int plane) return height / info->vsub; > > > } > > > EXPORT_SYMBOL(drm_format_plane_height); > > > + > > > +/** > > > + * drm_format_has_alpha - get whether the format embeds an alpha component > > > + * @format: pixel format (DRM_FORMAT_*) > > > + * > > > + * Returns: > > > + * true if the format embeds an alpha component, false otherwise. > > > + */ > > > +bool drm_format_has_alpha(uint32_t format) > > > +{ > > > + switch (format) { > > > + case DRM_FORMAT_ARGB4444: > > > + case DRM_FORMAT_ABGR4444: > > > + case DRM_FORMAT_RGBA4444: > > > + case DRM_FORMAT_BGRA4444: > > > + case DRM_FORMAT_ARGB1555: > > > + case DRM_FORMAT_ABGR1555: > > > + case DRM_FORMAT_RGBA5551: > > > + case DRM_FORMAT_BGRA5551: > > > + case DRM_FORMAT_ARGB8888: > > > + case DRM_FORMAT_ABGR8888: > > > + case DRM_FORMAT_RGBA8888: > > > + case DRM_FORMAT_BGRA8888: > > > + case DRM_FORMAT_ARGB2101010: > > > + case DRM_FORMAT_ABGR2101010: > > > + case DRM_FORMAT_RGBA1010102: > > > + case DRM_FORMAT_BGRA1010102: > > > + case DRM_FORMAT_AYUV: > > > + case DRM_FORMAT_XRGB8888_A8: > > > + case DRM_FORMAT_XBGR8888_A8: > > > + case DRM_FORMAT_RGBX8888_A8: > > > + case DRM_FORMAT_BGRX8888_A8: > > > + case DRM_FORMAT_RGB888_A8: > > > + case DRM_FORMAT_BGR888_A8: > > > + case DRM_FORMAT_RGB565_A8: > > > + case DRM_FORMAT_BGR565_A8: > > > + return true; > > > + > > > + default: > > > + return false; > > > + } > > > +} > > > +EXPORT_SYMBOL(drm_format_has_alpha); > > > > How about adding the information to struct drm_format_info instead ? > > drm_format_has_alpha() could then be implemented as > > > > bool drm_format_has_alpha(uint32_t format) > > { > > const struct drm_format_info *info; > > > > info = drm_format_info(format); > > return info ? info->has_alpha : false; > > } > > I considered it, and wasn't too sure about if adding more fields to > drm_format_info was ok. I can definitely do it that way. Are you going to send an updated patch with the change mentioned here. Or should I update my patch (https://patchwork.kernel.org/patch/10161023/) and change the type of '.alpha' to boolean to denote if the color format has an alpha channel or not. > > although drivers should really use the drm_framebuffer::format field directly > > in most cases, so the helper might not be needed at all. > > The drivers converted in my serie shouldn't be too hard to convert to > use drm_format_info directly, so that can be removed as well. > > Maxime > > -- > Maxime Ripard, Free Electrons > Embedded Linux and Kernel engineering > http://free-electrons.com > _______________________________________________ > dri-devel mailing list > dri-devel@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/dri-devel IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.