From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1750747AbdAXCy1 (ORCPT ); Mon, 23 Jan 2017 21:54:27 -0500 Received: from mail-io0-f172.google.com ([209.85.223.172]:34228 "EHLO mail-io0-f172.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750703AbdAXCyZ (ORCPT ); Mon, 23 Jan 2017 21:54:25 -0500 MIME-Version: 1.0 In-Reply-To: <1485221752.9687.2.camel@mtksdaap41> References: <1483079183-38637-1-git-send-email-bibby.hsieh@mediatek.com> <1485221752.9687.2.camel@mtksdaap41> From: Daniel Kurtz Date: Tue, 24 Jan 2017 10:54:04 +0800 X-Google-Sender-Auth: AOTv-YSzaBomB_mM0Zq1XB5LFxA Message-ID: Subject: Re: [PATCH v2] drm/mediatek: Support UYVY and YUYV format for overlay To: Bibby Hsieh Cc: David Airlie , Matthias Brugger , Daniel Vetter , dri-devel , "moderated list:ARM/Mediatek SoC support" , Yingjoe Chen , Cawa Cheng , Philipp Zabel , YT Shen , Thierry Reding , CK Hu , Mao Huang , "linux-arm-kernel@lists.infradead.org" , "linux-kernel@vger.kernel.org" , Sascha Hauer Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, Jan 24, 2017 at 9:35 AM, Bibby Hsieh wrote: > > Hi, Daniel, > > Thanks for your comment. > > On Tue, 2017-01-03 at 14:27 +0800, Daniel Kurtz wrote: > > On Fri, Dec 30, 2016 at 2:26 PM, Bibby Hsieh wrote: > > > > > > MT8173 overlay can support UYVY and YUYV format, > > > we add the format in DRM driver. > > > > > > Signed-off-by: Bibby Hsieh > > > Reviewed-by: Daniel Kurtz > > > --- > > > drivers/gpu/drm/mediatek/mtk_disp_ovl.c | 21 +++++++++++++++++++++ > > > drivers/gpu/drm/mediatek/mtk_drm_plane.c | 2 ++ > > > 2 files changed, 23 insertions(+) > > > > > > diff --git a/drivers/gpu/drm/mediatek/mtk_disp_ovl.c b/drivers/gpu/drm/mediatek/mtk_disp_ovl.c > > > index c703102..de05845 100644 > > > --- a/drivers/gpu/drm/mediatek/mtk_disp_ovl.c > > > +++ b/drivers/gpu/drm/mediatek/mtk_disp_ovl.c > > > @@ -40,10 +40,13 @@ > > > #define OVL_RDMA_MEM_GMC 0x40402020 > > > > > > #define OVL_CON_BYTE_SWAP BIT(24) > > > +#define OVL_CON_MTX_YUV_TO_RGB (6 << 16) > > > #define OVL_CON_CLRFMT_RGB565 (0 << 12) > > > #define OVL_CON_CLRFMT_RGB888 (1 << 12) > > > #define OVL_CON_CLRFMT_RGBA8888 (2 << 12) > > > #define OVL_CON_CLRFMT_ARGB8888 (3 << 12) > > > +#define OVL_CON_CLRFMT_UYVY (4 << 12) > > > +#define OVL_CON_CLRFMT_YUYV (5 << 12) > > > > Why not just add " | OVL_CON_MTX_YUV_TO_RGB" here in the definition of > > these two constants, instead of adding a helper function? > > > > > #define OVL_CON_AEN BIT(8) > > > #define OVL_CON_ALPHA 0xff > > > > > > @@ -162,6 +165,21 @@ static unsigned int ovl_fmt_convert(unsigned int fmt) > > > case DRM_FORMAT_XBGR8888: > > > case DRM_FORMAT_ABGR8888: > > > return OVL_CON_CLRFMT_RGBA8888 | OVL_CON_BYTE_SWAP; > > > + case DRM_FORMAT_UYVY: > > > + return OVL_CON_CLRFMT_UYVY; > > > + case DRM_FORMAT_YUYV: > > > + return OVL_CON_CLRFMT_YUYV; > > > + } > > > +} > How about adding " | OVL_CON_MTX_YUV_TO_RGB" after here in "return > OVL_CON_CLRFMT_UYVY" and "return OVL_CON_CLRFMT_YUYV" ?? Sounds good to me. > > > + > > > +static bool ovl_yuv_space(unsigned int fmt) > > > +{ > > > + switch (fmt) { > > > + case DRM_FORMAT_UYVY: > > > + case DRM_FORMAT_YUYV: > > > + return true; > > > + default: > > > + return false; > > > } > > > } > > > > > > @@ -183,6 +201,9 @@ static void mtk_ovl_layer_config(struct mtk_ddp_comp *comp, unsigned int idx, > > > if (idx != 0) > > > con |= OVL_CON_AEN | OVL_CON_ALPHA; > > > > > > + if (ovl_yuv_space(fmt)) > > > + con |= OVL_CON_MTX_YUV_TO_RGB; > > > + > > > writel_relaxed(con, comp->regs + DISP_REG_OVL_CON(idx)); > > > writel_relaxed(pitch, comp->regs + DISP_REG_OVL_PITCH(idx)); > > > writel_relaxed(src_size, comp->regs + DISP_REG_OVL_SRC_SIZE(idx)); > > > diff --git a/drivers/gpu/drm/mediatek/mtk_drm_plane.c b/drivers/gpu/drm/mediatek/mtk_drm_plane.c > > > index c461a23..8c02d1d 100644 > > > --- a/drivers/gpu/drm/mediatek/mtk_drm_plane.c > > > +++ b/drivers/gpu/drm/mediatek/mtk_drm_plane.c > > > @@ -28,6 +28,8 @@ > > > DRM_FORMAT_XRGB8888, > > > DRM_FORMAT_ARGB8888, > > > DRM_FORMAT_RGB565, > > > + DRM_FORMAT_UYVY, > > > + DRM_FORMAT_YUYV, > > > }; > > > > > > static void mtk_plane_reset(struct drm_plane *plane) > > > -- > > > 1.9.1 > > > > > -- > Bibby > From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Kurtz Subject: Re: [PATCH v2] drm/mediatek: Support UYVY and YUYV format for overlay Date: Tue, 24 Jan 2017 10:54:04 +0800 Message-ID: References: <1483079183-38637-1-git-send-email-bibby.hsieh@mediatek.com> <1485221752.9687.2.camel@mtksdaap41> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1485221752.9687.2.camel@mtksdaap41> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Bibby Hsieh Cc: "linux-kernel@vger.kernel.org" , Sascha Hauer , Daniel Vetter , Cawa Cheng , dri-devel , Mao Huang , "moderated list:ARM/Mediatek SoC support" , Matthias Brugger , Yingjoe Chen , "linux-arm-kernel@lists.infradead.org" List-Id: linux-mediatek@lists.infradead.org T24gVHVlLCBKYW4gMjQsIDIwMTcgYXQgOTozNSBBTSwgQmliYnkgSHNpZWggPGJpYmJ5LmhzaWVo QG1lZGlhdGVrLmNvbT4gd3JvdGU6Cj4KPiBIaSwgRGFuaWVsLAo+Cj4gVGhhbmtzIGZvciB5b3Vy IGNvbW1lbnQuCj4KPiBPbiBUdWUsIDIwMTctMDEtMDMgYXQgMTQ6MjcgKzA4MDAsIERhbmllbCBL dXJ0eiB3cm90ZToKPiA+IE9uIEZyaSwgRGVjIDMwLCAyMDE2IGF0IDI6MjYgUE0sIEJpYmJ5IEhz aWVoIDxiaWJieS5oc2llaEBtZWRpYXRlay5jb20+IHdyb3RlOgo+ID4gPgo+ID4gPiBNVDgxNzMg b3ZlcmxheSBjYW4gc3VwcG9ydCBVWVZZIGFuZCBZVVlWIGZvcm1hdCwKPiA+ID4gd2UgYWRkIHRo ZSBmb3JtYXQgaW4gRFJNIGRyaXZlci4KPiA+ID4KPiA+ID4gU2lnbmVkLW9mZi1ieTogQmliYnkg SHNpZWggPGJpYmJ5LmhzaWVoQG1lZGlhdGVrLmNvbT4KPiA+ID4gUmV2aWV3ZWQtYnk6IERhbmll bCBLdXJ0eiA8ZGprdXJ0ekBjaHJvbWl1bS5vcmc+Cj4gPiA+IC0tLQo+ID4gPiAgZHJpdmVycy9n cHUvZHJtL21lZGlhdGVrL210a19kaXNwX292bC5jICB8IDIxICsrKysrKysrKysrKysrKysrKysr Kwo+ID4gPiAgZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kcm1fcGxhbmUuYyB8ICAyICsr Cj4gPiA+ICAyIGZpbGVzIGNoYW5nZWQsIDIzIGluc2VydGlvbnMoKykKPiA+ID4KPiA+ID4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZGlzcF9vdmwuYyBiL2RyaXZl cnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZGlzcF9vdmwuYwo+ID4gPiBpbmRleCBjNzAzMTAyLi5k ZTA1ODQ1IDEwMDY0NAo+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2Rp c3Bfb3ZsLmMKPiA+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kaXNwX292 bC5jCj4gPiA+IEBAIC00MCwxMCArNDAsMTMgQEAKPiA+ID4gICNkZWZpbmUgICAgICAgIE9WTF9S RE1BX01FTV9HTUMgICAgICAgIDB4NDA0MDIwMjAKPiA+ID4KPiA+ID4gICNkZWZpbmUgT1ZMX0NP Tl9CWVRFX1NXQVAgICAgICBCSVQoMjQpCj4gPiA+ICsjZGVmaW5lIE9WTF9DT05fTVRYX1lVVl9U T19SR0IgKDYgPDwgMTYpCj4gPiA+ICAjZGVmaW5lIE9WTF9DT05fQ0xSRk1UX1JHQjU2NSAgKDAg PDwgMTIpCj4gPiA+ICAjZGVmaW5lIE9WTF9DT05fQ0xSRk1UX1JHQjg4OCAgKDEgPDwgMTIpCj4g PiA+ICAjZGVmaW5lIE9WTF9DT05fQ0xSRk1UX1JHQkE4ODg4ICAgICAgICAoMiA8PCAxMikKPiA+ ID4gICNkZWZpbmUgT1ZMX0NPTl9DTFJGTVRfQVJHQjg4ODggICAgICAgICgzIDw8IDEyKQo+ID4g PiArI2RlZmluZSBPVkxfQ09OX0NMUkZNVF9VWVZZICAgICg0IDw8IDEyKQo+ID4gPiArI2RlZmlu ZSBPVkxfQ09OX0NMUkZNVF9ZVVlWICAgICg1IDw8IDEyKQo+ID4KPiA+IFdoeSBub3QganVzdCBh ZGQgIiB8IE9WTF9DT05fTVRYX1lVVl9UT19SR0IiIGhlcmUgaW4gdGhlIGRlZmluaXRpb24gb2YK PiA+IHRoZXNlIHR3byBjb25zdGFudHMsIGluc3RlYWQgb2YgYWRkaW5nIGEgaGVscGVyIGZ1bmN0 aW9uPwo+ID4KPiA+ID4gICNkZWZpbmUgICAgICAgIE9WTF9DT05fQUVOICAgICAgICAgICAgIEJJ VCg4KQo+ID4gPiAgI2RlZmluZSAgICAgICAgT1ZMX0NPTl9BTFBIQSAgICAgICAgICAgMHhmZgo+ ID4gPgo+ID4gPiBAQCAtMTYyLDYgKzE2NSwyMSBAQCBzdGF0aWMgdW5zaWduZWQgaW50IG92bF9m bXRfY29udmVydCh1bnNpZ25lZCBpbnQgZm10KQo+ID4gPiAgICAgICAgIGNhc2UgRFJNX0ZPUk1B VF9YQkdSODg4ODoKPiA+ID4gICAgICAgICBjYXNlIERSTV9GT1JNQVRfQUJHUjg4ODg6Cj4gPiA+ ICAgICAgICAgICAgICAgICByZXR1cm4gT1ZMX0NPTl9DTFJGTVRfUkdCQTg4ODggfCBPVkxfQ09O X0JZVEVfU1dBUDsKPiA+ID4gKyAgICAgICBjYXNlIERSTV9GT1JNQVRfVVlWWToKPiA+ID4gKyAg ICAgICAgICAgICAgIHJldHVybiBPVkxfQ09OX0NMUkZNVF9VWVZZOwo+ID4gPiArICAgICAgIGNh c2UgRFJNX0ZPUk1BVF9ZVVlWOgo+ID4gPiArICAgICAgICAgICAgICAgcmV0dXJuIE9WTF9DT05f Q0xSRk1UX1lVWVY7Cj4gPiA+ICsgICAgICAgfQo+ID4gPiArfQo+IEhvdyBhYm91dCBhZGRpbmcg IiB8IE9WTF9DT05fTVRYX1lVVl9UT19SR0IiIGFmdGVyIGhlcmUgaW4gInJldHVybgo+IE9WTF9D T05fQ0xSRk1UX1VZVlkiIGFuZCAicmV0dXJuIE9WTF9DT05fQ0xSRk1UX1lVWVYiID8/CgpTb3Vu ZHMgZ29vZCB0byBtZS4KCj4gPiA+ICsKPiA+ID4gK3N0YXRpYyBib29sIG92bF95dXZfc3BhY2Uo dW5zaWduZWQgaW50IGZtdCkKPiA+ID4gK3sKPiA+ID4gKyAgICAgICBzd2l0Y2ggKGZtdCkgewo+ ID4gPiArICAgICAgIGNhc2UgRFJNX0ZPUk1BVF9VWVZZOgo+ID4gPiArICAgICAgIGNhc2UgRFJN X0ZPUk1BVF9ZVVlWOgo+ID4gPiArICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7Cj4gPiA+ICsg ICAgICAgZGVmYXVsdDoKPiA+ID4gKyAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKPiA+ID4g ICAgICAgICB9Cj4gPiA+ICB9Cj4gPiA+Cj4gPiA+IEBAIC0xODMsNiArMjAxLDkgQEAgc3RhdGlj IHZvaWQgbXRrX292bF9sYXllcl9jb25maWcoc3RydWN0IG10a19kZHBfY29tcCAqY29tcCwgdW5z aWduZWQgaW50IGlkeCwKPiA+ID4gICAgICAgICBpZiAoaWR4ICE9IDApCj4gPiA+ICAgICAgICAg ICAgICAgICBjb24gfD0gT1ZMX0NPTl9BRU4gfCBPVkxfQ09OX0FMUEhBOwo+ID4gPgo+ID4gPiAr ICAgICAgIGlmIChvdmxfeXV2X3NwYWNlKGZtdCkpCj4gPiA+ICsgICAgICAgICAgICAgICBjb24g fD0gT1ZMX0NPTl9NVFhfWVVWX1RPX1JHQjsKPiA+ID4gKwo+ID4gPiAgICAgICAgIHdyaXRlbF9y ZWxheGVkKGNvbiwgY29tcC0+cmVncyArIERJU1BfUkVHX09WTF9DT04oaWR4KSk7Cj4gPiA+ICAg ICAgICAgd3JpdGVsX3JlbGF4ZWQocGl0Y2gsIGNvbXAtPnJlZ3MgKyBESVNQX1JFR19PVkxfUElU Q0goaWR4KSk7Cj4gPiA+ICAgICAgICAgd3JpdGVsX3JlbGF4ZWQoc3JjX3NpemUsIGNvbXAtPnJl Z3MgKyBESVNQX1JFR19PVkxfU1JDX1NJWkUoaWR4KSk7Cj4gPiA+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9wbGFuZS5jIGIvZHJpdmVycy9ncHUvZHJtL21l ZGlhdGVrL210a19kcm1fcGxhbmUuYwo+ID4gPiBpbmRleCBjNDYxYTIzLi44YzAyZDFkIDEwMDY0 NAo+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9wbGFuZS5jCj4g PiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHJtX3BsYW5lLmMKPiA+ID4g QEAgLTI4LDYgKzI4LDggQEAKPiA+ID4gICAgICAgICBEUk1fRk9STUFUX1hSR0I4ODg4LAo+ID4g PiAgICAgICAgIERSTV9GT1JNQVRfQVJHQjg4ODgsCj4gPiA+ICAgICAgICAgRFJNX0ZPUk1BVF9S R0I1NjUsCj4gPiA+ICsgICAgICAgRFJNX0ZPUk1BVF9VWVZZLAo+ID4gPiArICAgICAgIERSTV9G T1JNQVRfWVVZViwKPiA+ID4gIH07Cj4gPiA+Cj4gPiA+ICBzdGF0aWMgdm9pZCBtdGtfcGxhbmVf cmVzZXQoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUpCj4gPiA+IC0tCj4gPiA+IDEuOS4xCj4gPiA+ Cj4KPiAtLQo+IEJpYmJ5Cj4KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0 b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJp LWRldmVsCg== From mboxrd@z Thu Jan 1 00:00:00 1970 From: djkurtz@chromium.org (Daniel Kurtz) Date: Tue, 24 Jan 2017 10:54:04 +0800 Subject: [PATCH v2] drm/mediatek: Support UYVY and YUYV format for overlay In-Reply-To: <1485221752.9687.2.camel@mtksdaap41> References: <1483079183-38637-1-git-send-email-bibby.hsieh@mediatek.com> <1485221752.9687.2.camel@mtksdaap41> Message-ID: To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org On Tue, Jan 24, 2017 at 9:35 AM, Bibby Hsieh wrote: > > Hi, Daniel, > > Thanks for your comment. > > On Tue, 2017-01-03 at 14:27 +0800, Daniel Kurtz wrote: > > On Fri, Dec 30, 2016 at 2:26 PM, Bibby Hsieh wrote: > > > > > > MT8173 overlay can support UYVY and YUYV format, > > > we add the format in DRM driver. > > > > > > Signed-off-by: Bibby Hsieh > > > Reviewed-by: Daniel Kurtz > > > --- > > > drivers/gpu/drm/mediatek/mtk_disp_ovl.c | 21 +++++++++++++++++++++ > > > drivers/gpu/drm/mediatek/mtk_drm_plane.c | 2 ++ > > > 2 files changed, 23 insertions(+) > > > > > > diff --git a/drivers/gpu/drm/mediatek/mtk_disp_ovl.c b/drivers/gpu/drm/mediatek/mtk_disp_ovl.c > > > index c703102..de05845 100644 > > > --- a/drivers/gpu/drm/mediatek/mtk_disp_ovl.c > > > +++ b/drivers/gpu/drm/mediatek/mtk_disp_ovl.c > > > @@ -40,10 +40,13 @@ > > > #define OVL_RDMA_MEM_GMC 0x40402020 > > > > > > #define OVL_CON_BYTE_SWAP BIT(24) > > > +#define OVL_CON_MTX_YUV_TO_RGB (6 << 16) > > > #define OVL_CON_CLRFMT_RGB565 (0 << 12) > > > #define OVL_CON_CLRFMT_RGB888 (1 << 12) > > > #define OVL_CON_CLRFMT_RGBA8888 (2 << 12) > > > #define OVL_CON_CLRFMT_ARGB8888 (3 << 12) > > > +#define OVL_CON_CLRFMT_UYVY (4 << 12) > > > +#define OVL_CON_CLRFMT_YUYV (5 << 12) > > > > Why not just add " | OVL_CON_MTX_YUV_TO_RGB" here in the definition of > > these two constants, instead of adding a helper function? > > > > > #define OVL_CON_AEN BIT(8) > > > #define OVL_CON_ALPHA 0xff > > > > > > @@ -162,6 +165,21 @@ static unsigned int ovl_fmt_convert(unsigned int fmt) > > > case DRM_FORMAT_XBGR8888: > > > case DRM_FORMAT_ABGR8888: > > > return OVL_CON_CLRFMT_RGBA8888 | OVL_CON_BYTE_SWAP; > > > + case DRM_FORMAT_UYVY: > > > + return OVL_CON_CLRFMT_UYVY; > > > + case DRM_FORMAT_YUYV: > > > + return OVL_CON_CLRFMT_YUYV; > > > + } > > > +} > How about adding " | OVL_CON_MTX_YUV_TO_RGB" after here in "return > OVL_CON_CLRFMT_UYVY" and "return OVL_CON_CLRFMT_YUYV" ?? Sounds good to me. > > > + > > > +static bool ovl_yuv_space(unsigned int fmt) > > > +{ > > > + switch (fmt) { > > > + case DRM_FORMAT_UYVY: > > > + case DRM_FORMAT_YUYV: > > > + return true; > > > + default: > > > + return false; > > > } > > > } > > > > > > @@ -183,6 +201,9 @@ static void mtk_ovl_layer_config(struct mtk_ddp_comp *comp, unsigned int idx, > > > if (idx != 0) > > > con |= OVL_CON_AEN | OVL_CON_ALPHA; > > > > > > + if (ovl_yuv_space(fmt)) > > > + con |= OVL_CON_MTX_YUV_TO_RGB; > > > + > > > writel_relaxed(con, comp->regs + DISP_REG_OVL_CON(idx)); > > > writel_relaxed(pitch, comp->regs + DISP_REG_OVL_PITCH(idx)); > > > writel_relaxed(src_size, comp->regs + DISP_REG_OVL_SRC_SIZE(idx)); > > > diff --git a/drivers/gpu/drm/mediatek/mtk_drm_plane.c b/drivers/gpu/drm/mediatek/mtk_drm_plane.c > > > index c461a23..8c02d1d 100644 > > > --- a/drivers/gpu/drm/mediatek/mtk_drm_plane.c > > > +++ b/drivers/gpu/drm/mediatek/mtk_drm_plane.c > > > @@ -28,6 +28,8 @@ > > > DRM_FORMAT_XRGB8888, > > > DRM_FORMAT_ARGB8888, > > > DRM_FORMAT_RGB565, > > > + DRM_FORMAT_UYVY, > > > + DRM_FORMAT_YUYV, > > > }; > > > > > > static void mtk_plane_reset(struct drm_plane *plane) > > > -- > > > 1.9.1 > > > > > -- > Bibby >