From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mark yao Subject: Re: [PATCH v2 5/5] drm/rockchip: default enable win2/3 area0 bit Date: Fri, 03 Jul 2015 16:19:11 +0800 Message-ID: <5596457F.5090601@rock-chips.com> References: <1435313249-4549-1-git-send-email-mark.yao@rock-chips.com> <1435313432-4923-1-git-send-email-mark.yao@rock-chips.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Tomasz Figa Cc: xw@rock-chips.com, zwl@rock-chips.com, "linux-kernel@vger.kernel.org" , "open list:ARM/Rockchip SoC..." , dri-devel , dkm@rock-chips.com, sandy.huang@rock-chips.com, "linux-arm-kernel@lists.infradead.org" List-Id: linux-rockchip.vger.kernel.org T24gMjAxNeW5tDA35pyIMDPml6UgMTY6MDIsIFRvbWFzeiBGaWdhIHdyb3RlOgo+IEhpIE1hcmss Cj4KPiBQbGVhc2Ugc2VlIG15IGNvbW1lbnRzIGlubGluZS4KPgo+IE9uIEZyaSwgSnVuIDI2LCAy MDE1IGF0IDc6MTAgUE0sIE1hcmsgWWFvIDxtYXJrLnlhb0Byb2NrLWNoaXBzLmNvbT4gd3JvdGU6 Cj4+IFdpbjIvMyBzdXBwb3J0IDQgYXJlYSBkaXNwbGF5LCBidXQgbm93IGhhdm4ndCBmb3VuZCBh IHN1aXRhYmxlCj4+IHdheSB0byB1c2UgaXQsIGFuZCBpdCBlbmFibGUgYnkgd2luIGdhdGUgYW5k IGFyZWEgZ2F0ZSwKPj4gc28gZGVmYXVsdCBlbmFibGUgYXJlYTAgZ2F0ZSwgc28gdGhhdCBpdHMg YmVoYXZpb3VyIGp1c3QgbGlrZSBhCj4+IHdpbi4KPiBTbyBJIGFzc3VtZSB0aGlzIG1lYW5zIHRo YXQgY3VycmVudGx5LCB3aXRob3V0IHRob3NlIGJpdHMgc2V0LCB3aW4yCj4gYW5kIHdpbjMgZG8g bm90IHdvcms/IFRoaXMgd291bGQgbWFrZSB0aGlzIHBhdGNoIGEgZml4IG1heWJlIGV2ZW4gd2l0 aAo+IGEgcG90ZW50aWFsIGJhY2twb3J0YWJpbGl0eS4KClllcywgd2l0aG91dCB0aGlzIHBhdGNo LCBhbGwgd2luMi8zIGFyZWEgZ2F0ZSBkZWZhdWx0IGRpc2FibGVkLgp2b3BfdXBkYXRlX3BsYW5l X2V2ZW50IGNhbGwgd2luIGVuYWJsZSBvbmx5IGVuYWJsZSB0aGUgd2luIGdhdGUuCgo+Cj4+IFNp Z25lZC1vZmYtYnk6IE1hcmsgWWFvIDxtYXJrLnlhb0Byb2NrLWNoaXBzLmNvbT4KPj4gLS0tCj4+ IENoYW5nZXMgaW4gdjI6IE5vbmUKPj4KPj4gICBkcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9j a2NoaXBfZHJtX3ZvcC5jIHwgICAgNiArKysrKysKPj4gICAxIGZpbGUgY2hhbmdlZCwgNiBpbnNl cnRpb25zKCspCj4+Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9j a2NoaXBfZHJtX3ZvcC5jIGIvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX2RybV92 b3AuYwo+PiBpbmRleCA0MDEwN2JiLi5lMDAxZDI2IDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfZHJtX3ZvcC5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9yb2NrY2hpcC9yb2NrY2hpcF9kcm1fdm9wLmMKPj4gQEAgLTMzNyw2ICszMzcsMTIgQEAgc3Rh dGljIGNvbnN0IHN0cnVjdCB2b3BfcmVnX2RhdGEgdm9wX2luaXRfcmVnX3RhYmxlW10gPSB7Cj4+ ICAgICAgICAgIHtEU1BfQ1RSTDAsIDB4MDAwMDAwMDB9LAo+PiAgICAgICAgICB7V0lOMF9DVFJM MCwgMHgwMDAwMDA4MH0sCj4+ICAgICAgICAgIHtXSU4xX0NUUkwwLCAweDAwMDAwMDgwfSwKPj4g KyAgICAgICAvKgo+PiArICAgICAgICAqIFRvZG86IHdpbjIvMyBzdXBwb3J0IGFyZWEgZnVuYywg YnV0IG5vdyBoYXZuJ3QgZm91bmQgYSBzdWl0YWJsZQo+PiArICAgICAgICAqIHdheSB0byB1c2Ug aXQsIHNvIGRlZmF1bHQgZW5hYmxlIGFyZWEwIGFzIGEgd2luIGRpc3BsYXkuCj4gVE9ETzogV2lu Mi8zIHN1cHBvcnQgbXVsdGlwbGUgYXJlYSBmdW5jdGlvbiwgYnV0IHdlIGhhdmVuJ3QgZm91bmQK PiBhIHN1aXRhYmxlIHdheSB0byB1c2UgaXQgeWV0LCBzbyBsZXQncyBqdXN0IHVzZSB0aGVtIGFz IG90aGVyIHdpbmRvd3MKPiB3aXRoIG9ubHkgYXJlYSAwIGVuYWJsZWQuCj4KPj4gKyAgICAgICAg Ki8KPj4gKyAgICAgICB7V0lOMl9DVFJMMCwgMHgwMDAwMDAxMH0sCj4+ICsgICAgICAge1dJTjNf Q1RSTDAsIDB4MDAwMDAwMTB9LAo+IEFueXdheSwgaXMgaXQgZW5vdWdoIHRvIHByb2dyYW0gdGhv c2UgcmVnaXN0ZXJzIG9uZSB0aW1lIGluCj4gdm9wX2luaXRpYWwoKT8gV29uJ3QgdGhleSBnZXQg Y2xlYXJlZCB3aGVuIFZPUCBpcyBwb3dlciBjeWNsZWQsIGUuZy4KPiBpbiBjYXNlIG9mIERQTVMg b2ZmIGFuZCBvbj8gTWF5YmUgaW5zdGVhZCB0aGlzIGNvdWxkIGJlIGRvbmUgaW4KPiB2b3BfdXBk YXRlX3BsYW5lX2V2ZW50KCkgZm9yIHdpbmRvd3MgdGhhdCBuZWVkIGl0PwpUaGVyZSBhcmUgdHdv IGdhdGUgZm9yIFdpbjIvMywKYXQgVk9QX1dJTjNfQ1RSTDA6CiAgICAgICAgIGJpdFswXSwgIndp bjNfZW4iCiAgICAgICAgICAgICB0aGlzIGdhdGluZyBhbGwgdGhlIGFyZWEuCgogICAgICAgICBi aXRbNF0sIHdpbjNfbXN0MF9lbgogICAgICAgICBiaXRbNV0sIHdpbjNfbXN0MV9lbgogICAgICAg ICBiaXRbNl0sIHdpbjNfbXN0Ml9lbgogICAgICAgICBiaXRbN10sIHdpbjNfbXN0M19lbgogICAg ICAgICAgICAgdGhvc2UgZ2F0ZSBlYWNoIGFyZWEuCgpUaGlzIHBhdGNoIGRlZmF1bHQgZW5hYmxl IHdpbjNfbXN0MF9lbiwgc28gY29udHJvbCBiaXRbMF0id2luM19lbiIgdGhhdCAKY2F0IHBvd2Vy IG9uL29mZiB0aGlzIHdpbmRvdy4KCnZvcF91cGRhdGVfcGxhbmVfZXZlbnQoKS8gdm9wX2Rpc2Fi bGVfcGxhbmUoKSBvbmx5IGNhbiBjb250cm9sIGJpdFswXSJ3aW4zX2VuIi4KCgpTbyB0aGlzIHBh dGNoIGlzIGVub3VnaCB0byBlbmFibGUgd2luZG93Mi8zIGFyZWEgMC4KCgo+IEJlc3QgcmVnYXJk cywKPiBUb21hc3oKCi0tIArvvK1hcmsKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5m cmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3Rp bmZvL2RyaS1kZXZlbAo= From mboxrd@z Thu Jan 1 00:00:00 1970 From: mark.yao@rock-chips.com (Mark yao) Date: Fri, 03 Jul 2015 16:19:11 +0800 Subject: [PATCH v2 5/5] drm/rockchip: default enable win2/3 area0 bit In-Reply-To: References: <1435313249-4549-1-git-send-email-mark.yao@rock-chips.com> <1435313432-4923-1-git-send-email-mark.yao@rock-chips.com> Message-ID: <5596457F.5090601@rock-chips.com> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org On 2015?07?03? 16:02, Tomasz Figa wrote: > Hi Mark, > > Please see my comments inline. > > On Fri, Jun 26, 2015 at 7:10 PM, Mark Yao wrote: >> Win2/3 support 4 area display, but now havn't found a suitable >> way to use it, and it enable by win gate and area gate, >> so default enable area0 gate, so that its behaviour just like a >> win. > So I assume this means that currently, without those bits set, win2 > and win3 do not work? This would make this patch a fix maybe even with > a potential backportability. Yes, without this patch, all win2/3 area gate default disabled. vop_update_plane_event call win enable only enable the win gate. > >> Signed-off-by: Mark Yao >> --- >> Changes in v2: None >> >> drivers/gpu/drm/rockchip/rockchip_drm_vop.c | 6 ++++++ >> 1 file changed, 6 insertions(+) >> >> diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c >> index 40107bb..e001d26 100644 >> --- a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c >> +++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c >> @@ -337,6 +337,12 @@ static const struct vop_reg_data vop_init_reg_table[] = { >> {DSP_CTRL0, 0x00000000}, >> {WIN0_CTRL0, 0x00000080}, >> {WIN1_CTRL0, 0x00000080}, >> + /* >> + * Todo: win2/3 support area func, but now havn't found a suitable >> + * way to use it, so default enable area0 as a win display. > TODO: Win2/3 support multiple area function, but we haven't found > a suitable way to use it yet, so let's just use them as other windows > with only area 0 enabled. > >> + */ >> + {WIN2_CTRL0, 0x00000010}, >> + {WIN3_CTRL0, 0x00000010}, > Anyway, is it enough to program those registers one time in > vop_initial()? Won't they get cleared when VOP is power cycled, e.g. > in case of DPMS off and on? Maybe instead this could be done in > vop_update_plane_event() for windows that need it? There are two gate for Win2/3, at VOP_WIN3_CTRL0: bit[0], "win3_en" this gating all the area. bit[4], win3_mst0_en bit[5], win3_mst1_en bit[6], win3_mst2_en bit[7], win3_mst3_en those gate each area. This patch default enable win3_mst0_en, so control bit[0]"win3_en" that cat power on/off this window. vop_update_plane_event()/ vop_disable_plane() only can control bit[0]"win3_en". So this patch is enough to enable window2/3 area 0. > Best regards, > Tomasz -- ?ark From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754850AbbGCITz (ORCPT ); Fri, 3 Jul 2015 04:19:55 -0400 Received: from regular1.263xmail.com ([211.150.99.139]:53291 "EHLO regular1.263xmail.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754843AbbGCITe (ORCPT ); Fri, 3 Jul 2015 04:19:34 -0400 X-263anti-spam: KSV:0; X-MAIL-GRAY: 0 X-MAIL-DELIVERY: 1 X-KSVirus-check: 0 X-ABS-CHECKED: 4 X-ADDR-CHECKED: 0 X-RL-SENDER: mark.yao@rock-chips.com X-FST-TO: tfiga@chromium.org X-SENDER-IP: 58.22.7.114 X-LOGIN-NAME: mark.yao@rock-chips.com X-UNIQUE-TAG: <7ffcfd8e218520792fd3572e1ab1d82b> X-ATTACHMENT-NUM: 0 X-DNS-TYPE: 0 Message-ID: <5596457F.5090601@rock-chips.com> Date: Fri, 03 Jul 2015 16:19:11 +0800 From: Mark yao User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.2.0 MIME-Version: 1.0 To: Tomasz Figa CC: dri-devel , David Airlie , Heiko Stuebner , Daniel Kurtz , Philipp Zabel , Daniel Vetter , Rob Clark , "linux-arm-kernel@lists.infradead.org" , "open list:ARM/Rockchip SoC..." , "linux-kernel@vger.kernel.org" , sandy.huang@rock-chips.com, dkm@rock-chips.com, zwl@rock-chips.com, xw@rock-chips.com Subject: Re: [PATCH v2 5/5] drm/rockchip: default enable win2/3 area0 bit References: <1435313249-4549-1-git-send-email-mark.yao@rock-chips.com> <1435313432-4923-1-git-send-email-mark.yao@rock-chips.com> In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 2015年07月03日 16:02, Tomasz Figa wrote: > Hi Mark, > > Please see my comments inline. > > On Fri, Jun 26, 2015 at 7:10 PM, Mark Yao wrote: >> Win2/3 support 4 area display, but now havn't found a suitable >> way to use it, and it enable by win gate and area gate, >> so default enable area0 gate, so that its behaviour just like a >> win. > So I assume this means that currently, without those bits set, win2 > and win3 do not work? This would make this patch a fix maybe even with > a potential backportability. Yes, without this patch, all win2/3 area gate default disabled. vop_update_plane_event call win enable only enable the win gate. > >> Signed-off-by: Mark Yao >> --- >> Changes in v2: None >> >> drivers/gpu/drm/rockchip/rockchip_drm_vop.c | 6 ++++++ >> 1 file changed, 6 insertions(+) >> >> diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c >> index 40107bb..e001d26 100644 >> --- a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c >> +++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c >> @@ -337,6 +337,12 @@ static const struct vop_reg_data vop_init_reg_table[] = { >> {DSP_CTRL0, 0x00000000}, >> {WIN0_CTRL0, 0x00000080}, >> {WIN1_CTRL0, 0x00000080}, >> + /* >> + * Todo: win2/3 support area func, but now havn't found a suitable >> + * way to use it, so default enable area0 as a win display. > TODO: Win2/3 support multiple area function, but we haven't found > a suitable way to use it yet, so let's just use them as other windows > with only area 0 enabled. > >> + */ >> + {WIN2_CTRL0, 0x00000010}, >> + {WIN3_CTRL0, 0x00000010}, > Anyway, is it enough to program those registers one time in > vop_initial()? Won't they get cleared when VOP is power cycled, e.g. > in case of DPMS off and on? Maybe instead this could be done in > vop_update_plane_event() for windows that need it? There are two gate for Win2/3, at VOP_WIN3_CTRL0: bit[0], "win3_en" this gating all the area. bit[4], win3_mst0_en bit[5], win3_mst1_en bit[6], win3_mst2_en bit[7], win3_mst3_en those gate each area. This patch default enable win3_mst0_en, so control bit[0]"win3_en" that cat power on/off this window. vop_update_plane_event()/ vop_disable_plane() only can control bit[0]"win3_en". So this patch is enough to enable window2/3 area 0. > Best regards, > Tomasz -- Mark