From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yakir Yang Subject: Re: [RFC PATCH v1 0/2] Date: Wed, 1 Jun 2016 10:54:09 +0800 Message-ID: <574E4E51.1030308@rock-chips.com> References: <1464701856-8695-1-git-send-email-ykk@rock-chips.com> <20160531143831.GK7231@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20160531143831.GK7231@phenom.ffwll.local> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: daniel.vetter@intel.com Cc: Krzysztof Kozlowski , linux-samsung-soc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-rockchip@lists.infradead.org, Mark Yao , Jingoo Han , emil.l.velikov@gmail.com, dianders@chromium.org, dri-devel@lists.freedesktop.org, tfiga@chromium.org, Thierry Reding , Dan Carpenter List-Id: linux-rockchip.vger.kernel.org SGkgRGFuaWVsLAoKT24gMDUvMzEvMjAxNiAxMDozOCBQTSwgRGFuaWVsIFZldHRlciB3cm90ZToK PiBPbiBUdWUsIE1heSAzMSwgMjAxNiBhdCAwOTozNzozNlBNICswODAwLCBZYWtpciBZYW5nIHdy b3RlOgo+PiBUaGUgZnVsbCBuYW1lIG9mIFBTUiBpcyBQYW5lbCBTZWxmIFJlZnJlc2gsIHBhbmVs IGRldmljZSBjb3VsZCByZWZyZXNoCj4+IGl0c2VsZiB3aXRoIHRoZSBoYXJkd2FyZSBmcmFtZWJ1 ZmZlciBpbiBwYW5lbCwgdGhpcyB3b3VsZCBtYWtlIGEgbG90cwo+PiBvZiBzZW5zZSB0byBzYXZl IHRoZSBwb3dlciBjb25zdW1wdGlvbi4KPj4KPj4gRm9yIGV4YW1wbGUsIHdoZW4gZGVza3RvcCBo YXZlbid0IGNoYW5nZSB0aGUgY29udGV4dCBmb3IgYSBsb25nIHRpbWUsCj4+IHRoZW4gd2UgY291 bGQgcmVmcmVzaCB0aGUgZGF0YSB0byB0aGUgaGFyZHdhcmUgZnJhbWVidWZmZXIgb2YgcGFuZWws Cj4+IGFuZCB0aGVuIGxldCBwYW5lbCBlbnRlciBpbnRvIFBTUiBtb2RlLiBBZnRlciB0aGF0IHN5 c3RlbSBjb3VsZCBwb3dlcm9mZgo+PiB0aGUgTENEQyBjb250cm9sbGVyIGFuZCBlRFAgY29udHJv bGxlciwganVzdCBsZXQgcGFuZWwgcmVmcmVzaCB0aGUgc2NyZWVuCj4+IGJ5IGl0c2VsZi4KPj4K Pj4gSXQncyBoYXJkIHRvIGRlY2lkZSB3aGVuIHBhbmVsIHNob3VsZCBlbnRlciBpbnRvIFBTUiBv ciBleGl0IGZyb20gUFNSLCBpbgo+PiB0aGlzIHRpbWUgSSBjaG9zZSB0byBsZXQgdGhlIGRybV92 YmxhbmsgZW5hYmxlL2Rpc2FibGUgZXZlbnQgZHJpdmVyIHRoZSBQU1IuCj4+Cj4+IFRoaXMgdGhy ZWFkIGlzIGJhc2VkIG9uIE1hcmsncyBSSzMzOTkgVk9QIHRocmVhZFswXSBhbmQgbXkgUkszMzk5 IGVEUAo+PiB0aHJlYWRbMV0uCj4+Cj4+IFswXTogaHR0cHM6Ly9wYXRjaHdvcmsua2VybmVsLm9y Zy9wYXRjaC84ODg2MDQxLwo+PiBbMV06IGh0dHBzOi8vcGF0Y2h3b3JrLmtlcm5lbC5vcmcvcGF0 Y2gvOTEzMjcxMy8KPiBMb29rcyBsaWtlIHlvdSBkaWRuJ3Qgd2lyZSB1cCB0aGUgZHJtX2ZyYW1l YnVmZmVyLT5mdW5jcy0+ZGlydHkgY2FsbGJhY2sKPiBmb3IgbWFudWFsIHVwbG9hZCBvZiBzaW1w bGUgY2xpZW50cyBsaWtlIGJvb3RzcGxhc2ggb3IgZmJkZXYuIEkgdGhpbmsKPiB0aGF0J3MgbmVl ZGVkLiBBdCBsZWFzdCBpdCdzIG5lZWRlZCBmb3IgZXZlcnkgb3RoZXIgbWFudWFsIHVwbG9hZCBk c2kgYW5kCj4gZWRwIHBzciBpbXBsZW1lbnRhdGlvbi4KPiAtRGFuaWVsClRoYXQncyBncmVhdCwg dGhhbmtzIGZvciB5b3VyIHJlbWluZC4gU2VlbXMgbGlrZSB1c2Vyc3BhY2Ugd2hpY2ggZG9lcwpm cm9udGJ1ZmZlciByZW5kZXJpbmcgbXVzdCBjYWxsIHRoaXMgaW9jdGwgdG8gZmx1c2ggb3V0IHRo ZSBjaGFuZ2VzIG9uCm1hbnVhbC11cGRhdGUgZGlzcGxheSBvdXRwdXRzLiBJdCdzIGhlbHBmdWwg dG8gaG9vayB0aGlzIGNhbGxiYWNrIHRvCm5vdGlmeSBlRFAgcmVmcmVzaCB0aGUgZURQIFJGQihy ZW1vdGUgZnJhbWUgYnVmZmVyKS4KCkJ1dCBJIHRoaW5rIHRoaXMgaXMgaGFyZCB0byB1c2VkIG9u IFJvY2tjaGlwIGVEUCBjb250cm9sbGVyLCBSb2NrY2hpcCBlRFAKZHJpdmVyIGp1c3QgdXNlZCB0 d28gbW9kZXMsIFNpbmsgRGV2aWNlIFBTUl9TMCAoUFNSIGluYWN0aXZlKSwgYW5kIFNpbmsKRGV2 aWNlIFBTUl9TMiAoUFNSIGFjdGl2ZSwgZGlzcGxheSBmcm9tIFJGQikuCgpJIHRoaW5rIHRoZSAi ZGlydHkiIGNhbGxiYWNrIGlzIG9ubHkgdXNlZCB3aGVuIFNpbmsgZGV2aWNlIGVudGVyIGludG8g UFNSX1MzCm1vZGUgKFBTUiBhY3RpdmUsIGNhcHR1cmUgYW5kIGRpc3BsYXkpLCBuZWVkIHRvIHVw ZGF0ZSB0aGUgcmVtb3RlIGZyYW1lCmJ1ZmZlci4gQnV0IG9uIFJvY2tjaGlwIHBsYXRmb3JtIHRo ZSBwYW5lbCB3b3VsZCBiZSB2ZXJ5IGVhc3kgdG8gbG9zZSBmcmFtZQppbiB0aGlzIFBTUiBtb2Rl LiBJJ20gY29uZnVzZWQgaW4gdGhpcyBjYXNlLCBzbyBJIGRpZG4ndCBlbmFibGUgdGhhdC4KCklm IHdlIGRpZG4ndCBlbmFibGUgdGhlIFBTUl9TMyBtb2RlLCB0aGVuIHdlIGRvbid0IG5lZWQgdG8g dXBkYXRlIHRoZSBwYW5lbApyZW1vdGUgZnJhbWUgYnVmZmVyLCBzbyB0aGlzICItPmRpcnR5IiBj YWxsYmFjayB3b3VsZCBiZSB1bnVzZWQgaW4gdGhpcyAKY2FzZS4KClRoYW5rcywKLSBZYWtpcgo+ PiAtIFlha2lyCj4+IFRoYW5rcywKPj4KPj4KPj4gWWFraXIgWWFuZyAoMik6Cj4+ICAgIGRybS9y b2NrY2hpcDogYWRkIGEgbm90aWZ5IGV2ZW50IGFib3V0IHZibGFuayBlbmFibGUvZGlzYWJsZQo+ PiAgICBkcm0vcm9ja2NoaXA6IGFuYWxvZ2l4OiBhZGQgZURQIFBTUiBmdW5jdGlvbgo+Pgo+PiAg IGRyaXZlcnMvZ3B1L2RybS9icmlkZ2UvYW5hbG9naXgvYW5hbG9naXhfZHBfY29yZS5jIHwgIDY5 ICsrKysrKysrKysrKysrCj4+ICAgZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9hbmFsb2dpeC9hbmFs b2dpeF9kcF9jb3JlLmggfCAgIDUgKwo+PiAgIGRyaXZlcnMvZ3B1L2RybS9icmlkZ2UvYW5hbG9n aXgvYW5hbG9naXhfZHBfcmVnLmMgIHwgIDU0ICsrKysrKysrKysrCj4+ICAgZHJpdmVycy9ncHUv ZHJtL2JyaWRnZS9hbmFsb2dpeC9hbmFsb2dpeF9kcF9yZWcuaCAgfCAgMjggKysrKysrCj4+ICAg ZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL01ha2VmaWxlICAgICAgICAgICAgICAgICAgfCAgIDIg Ky0KPj4gICBkcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvYW5hbG9naXhfZHAtcm9ja2NoaXAuYyAg ICB8ICA2NSArKysrKysrKysrKysrCj4+ICAgZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tj aGlwX2RybV9ub3RpZnkuYyAgICAgfCAxMDUgKysrKysrKysrKysrKysrKysrKysrCj4+ICAgZHJp dmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX2RybV9ub3RpZnkuaCAgICAgfCAgMzMgKysr KysrKwo+PiAgIGRyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9kcm1fdm9wLmMgICAg ICAgIHwgIDk2ICsrKysrKysrKysrKysrKysrKysKPj4gICBkcml2ZXJzL2dwdS9kcm0vcm9ja2No aXAvcm9ja2NoaXBfZHJtX3ZvcC5oICAgICAgICB8ICAgMyArCj4+ICAgZHJpdmVycy9ncHUvZHJt L3JvY2tjaGlwL3JvY2tjaGlwX3ZvcF9yZWcuYyAgICAgICAgfCAgIDIgKwo+PiAgIGluY2x1ZGUv ZHJtL2JyaWRnZS9hbmFsb2dpeF9kcC5oICAgICAgICAgICAgICAgICAgIHwgICAzICsKPj4gICAx MiBmaWxlcyBjaGFuZ2VkLCA0NjQgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQo+PiAgIGNy ZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfZHJtX25v dGlmeS5jCj4+ICAgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9y b2NrY2hpcF9kcm1fbm90aWZ5LmgKPj4KPj4gLS0gCj4+IDEuOS4xCj4+Cj4+CgoKX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcg bGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRl c2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757193AbcFACyW (ORCPT ); Tue, 31 May 2016 22:54:22 -0400 Received: from lucky1.263xmail.com ([211.157.147.131]:49775 "EHLO lucky1.263xmail.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750927AbcFACyU (ORCPT ); Tue, 31 May 2016 22:54:20 -0400 X-263anti-spam: KSV:0; X-MAIL-GRAY: 1 X-MAIL-DELIVERY: 0 X-KSVirus-check: 0 X-ABS-CHECKED: 4 X-ADDR-CHECKED: 0 X-RL-SENDER: ykk@rock-chips.com X-FST-TO: linux-rockchip@lists.infradead.org X-SENDER-IP: 103.29.142.67 X-LOGIN-NAME: ykk@rock-chips.com X-UNIQUE-TAG: X-ATTACHMENT-NUM: 0 X-DNS-TYPE: 0 Subject: Re: [RFC PATCH v1 0/2] References: <1464701856-8695-1-git-send-email-ykk@rock-chips.com> <20160531143831.GK7231@phenom.ffwll.local> Cc: Mark Yao , Inki Dae , Heiko Stuebner , tfiga@chromium.org, Jingoo Han , David Airlie , Thierry Reding , dianders@chromium.org, Krzysztof Kozlowski , emil.l.velikov@gmail.com, Dan Carpenter , linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-samsung-soc@vger.kernel.org, linux-rockchip@lists.infradead.org To: daniel.vetter@intel.com From: Yakir Yang Message-ID: <574E4E51.1030308@rock-chips.com> Date: Wed, 1 Jun 2016 10:54:09 +0800 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.5.1 MIME-Version: 1.0 In-Reply-To: <20160531143831.GK7231@phenom.ffwll.local> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Daniel, On 05/31/2016 10:38 PM, Daniel Vetter wrote: > On Tue, May 31, 2016 at 09:37:36PM +0800, Yakir Yang wrote: >> The full name of PSR is Panel Self Refresh, panel device could refresh >> itself with the hardware framebuffer in panel, this would make a lots >> of sense to save the power consumption. >> >> For example, when desktop haven't change the context for a long time, >> then we could refresh the data to the hardware framebuffer of panel, >> and then let panel enter into PSR mode. After that system could poweroff >> the LCDC controller and eDP controller, just let panel refresh the screen >> by itself. >> >> It's hard to decide when panel should enter into PSR or exit from PSR, in >> this time I chose to let the drm_vblank enable/disable event driver the PSR. >> >> This thread is based on Mark's RK3399 VOP thread[0] and my RK3399 eDP >> thread[1]. >> >> [0]: https://patchwork.kernel.org/patch/8886041/ >> [1]: https://patchwork.kernel.org/patch/9132713/ > Looks like you didn't wire up the drm_framebuffer->funcs->dirty callback > for manual upload of simple clients like bootsplash or fbdev. I think > that's needed. At least it's needed for every other manual upload dsi and > edp psr implementation. > -Daniel That's great, thanks for your remind. Seems like userspace which does frontbuffer rendering must call this ioctl to flush out the changes on manual-update display outputs. It's helpful to hook this callback to notify eDP refresh the eDP RFB(remote frame buffer). But I think this is hard to used on Rockchip eDP controller, Rockchip eDP driver just used two modes, Sink Device PSR_S0 (PSR inactive), and Sink Device PSR_S2 (PSR active, display from RFB). I think the "dirty" callback is only used when Sink device enter into PSR_S3 mode (PSR active, capture and display), need to update the remote frame buffer. But on Rockchip platform the panel would be very easy to lose frame in this PSR mode. I'm confused in this case, so I didn't enable that. If we didn't enable the PSR_S3 mode, then we don't need to update the panel remote frame buffer, so this "->dirty" callback would be unused in this case. Thanks, - Yakir >> - Yakir >> Thanks, >> >> >> Yakir Yang (2): >> drm/rockchip: add a notify event about vblank enable/disable >> drm/rockchip: analogix: add eDP PSR function >> >> drivers/gpu/drm/bridge/analogix/analogix_dp_core.c | 69 ++++++++++++++ >> drivers/gpu/drm/bridge/analogix/analogix_dp_core.h | 5 + >> drivers/gpu/drm/bridge/analogix/analogix_dp_reg.c | 54 +++++++++++ >> drivers/gpu/drm/bridge/analogix/analogix_dp_reg.h | 28 ++++++ >> drivers/gpu/drm/rockchip/Makefile | 2 +- >> drivers/gpu/drm/rockchip/analogix_dp-rockchip.c | 65 +++++++++++++ >> drivers/gpu/drm/rockchip/rockchip_drm_notify.c | 105 +++++++++++++++++++++ >> drivers/gpu/drm/rockchip/rockchip_drm_notify.h | 33 +++++++ >> drivers/gpu/drm/rockchip/rockchip_drm_vop.c | 96 +++++++++++++++++++ >> drivers/gpu/drm/rockchip/rockchip_drm_vop.h | 3 + >> drivers/gpu/drm/rockchip/rockchip_vop_reg.c | 2 + >> include/drm/bridge/analogix_dp.h | 3 + >> 12 files changed, 464 insertions(+), 1 deletion(-) >> create mode 100644 drivers/gpu/drm/rockchip/rockchip_drm_notify.c >> create mode 100644 drivers/gpu/drm/rockchip/rockchip_drm_notify.h >> >> -- >> 1.9.1 >> >>