From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mark yao Subject: Re: [PATCH 1/2] drm/rockchip: vop: Do check if an update is pending during disable Date: Mon, 11 Apr 2016 09:15:46 +0800 Message-ID: <570AFAC2.8080907@rock-chips.com> References: <1459937686-9142-1-git-send-email-tomeu.vizoso@collabora.com> <5707043D.6060706@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: Tomeu Vizoso Cc: "linux-arm-kernel@lists.infradead.org" , "open list:ARM/Rockchip SoC..." , "linux-kernel@vger.kernel.org" , "dri-devel@lists.freedesktop.org" List-Id: linux-rockchip.vger.kernel.org T24gMjAxNuW5tDA05pyIMDjml6UgMTg6NTQsIFRvbWV1IFZpem9zbyB3cm90ZToKPiBPbiA4IEFw cmlsIDIwMTYgYXQgMDM6MDcsIE1hcmsgeWFvIDxtYXJrLnlhb0Byb2NrLWNoaXBzLmNvbT4gd3Jv dGU6Cj4+IE9uIDIwMTblubQwNOaciDA25pelIDE4OjE0LCBUb21ldSBWaXpvc28gd3JvdGU6Cj4+ Cj4+IFdoZW4gYSBwbGFuZSBpcyBiZWluZyBkaXNhYmxlZCBidXQgaXQncyBzdGlsbCBlbmFibGVk LCBkbyBjaGVjayBpZiB0aGUKPj4gcHJldmlvdXMgdXBkYXRlIGhhcyBiZWVuIGNvbXBsZXRlZCBi eSByZWFkaW5nIHlyZ2JfbXN0IGJhY2suCj4+Cj4+IE90aGVyd2lzZSwgcGVuZGluZyBwYWdlZmxp cHMgd291bGQgcmVtYWluIHBlbmRpbmcgYWZ0ZXIgYSBDUlRDIGlzCj4+IGRpc2FibGVkLgo+Pgo+ PiBTaWduZWQtb2ZmLWJ5OiBUb21ldSBWaXpvc28gPHRvbWV1LnZpem9zb0Bjb2xsYWJvcmEuY29t Pgo+PiAtLS0KPj4gICBkcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfZHJtX3ZvcC5j IHwgNSArKystLQo+PiAgIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDIgZGVsZXRp b25zKC0pCj4+Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2No aXBfZHJtX3ZvcC5jCj4+IGIvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX2RybV92 b3AuYwo+PiBpbmRleCBhOWIxZThiNWFjODUuLmY0NmIxZmQxODg3YiAxMDA2NDQKPj4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX2RybV92b3AuYwo+PiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfZHJtX3ZvcC5jCj4+IEBAIC0xMDY0LDggKzEw NjQsOSBAQCBzdGF0aWMgYm9vbCB2b3Bfd2luX3BlbmRpbmdfaXNfY29tcGxldGUoc3RydWN0IHZv cF93aW4KPj4gKnZvcF93aW4pCj4+ICAgIHN0cnVjdCB2b3BfcGxhbmVfc3RhdGUgKnN0YXRlID0g dG9fdm9wX3BsYW5lX3N0YXRlKHBsYW5lLT5zdGF0ZSk7Cj4+ICAgIGRtYV9hZGRyX3QgeXJnYl9t c3Q7Cj4+Cj4+IC0gaWYgKCFzdGF0ZS0+ZW5hYmxlKQo+PiAtIHJldHVybiBWT1BfV0lOX0dFVCh2 b3Bfd2luLT52b3AsIHZvcF93aW4tPmRhdGEsIGVuYWJsZSkgPT0gMDsKPj4gKyBpZiAoIXN0YXRl LT5lbmFibGUgJiYKPj4gKyAgICBWT1BfV0lOX0dFVCh2b3Bfd2luLT52b3AsIHZvcF93aW4tPmRh dGEsIGVuYWJsZSkgPT0gMCkKPj4gKyByZXR1cm4gdHJ1ZTsKPj4KPj4KPj4gSXQgaXMgd3Jvbmcs IHRoZSBwYXRjaCB3b3VsZCBjYXVzZSBhIGJ1Zy4KPj4KPj4gd2hlbiBzdGF0ZS0+ZW5hYmxlIGlz IDAsIGNoZWNrIHlyZ2JfbXN0ID09IHN0YXRlLT55cmdiX21zdCBhbHdheXMgYmUgdHJ1ZSwKPj4g YmVjYXVzZSBzdGF0ZS0+eXJnYl9tc3Qgbm90IHVwZGF0ZSBvbiBwbGFuZSBkaXNhYmxlZCBmdW50 aW9uLCB0aGF0IHdvdWxkCj4+IGNhdXNlIGlvbW11IGNyYXNoLgo+IFNvcnJ5LCBidXQgSSBkb24n dCB1bmRlcnN0YW5kIHdoZXJlJ3MgdGhlIGJ1ZyBhbmQgd2hhdCBjb3VsZCBjYXVzZQo+IHRoYXQg Y3Jhc2guIFdoYXQgdGhlIGV4aXN0aW5nIGNvZGUgd2FzIGRvaW5nIGlzIHNheWluZyB0aGF0IGEg cGFnZWZsaXAKPiBldmVudCBpcyBzdGlsbCBwZW5kaW5nIGlmIHdlIGhhdmUgdG9sZCB0aGUgcGxh bmUgdG8gZGlzYWJsZSBidXQgZm9yCj4gc29tZSByZWFzb24gaXQgaGFzbid0IHlldC4KPgo+IFdp dGggdGhpcyBtb2RpZmljYXRpb24sIGlmIHdlIHJlYWQgYmFjayB0aGF0IGl0J3MgYWxyZWFkeSBk aXNhYmxlZCwgd2UKPiByZXR1cm4gdHJ1ZSBhcyBiZWZvcmUuIEJ1dCBpZiB3ZSByZWFkIGJhY2sg dGhhdCBpdCBpc24ndCBkaXNhYmxlZCB5ZXQsCj4gdGhlbiB3ZSBzdGlsbCBjaGVjayB0aGUgZmIg cG9pbnRlcnMgYW5kIGNvbXBhcmUgdGhlbS4KPgo+IFRoZSBpb21tdSBtYXBwaW5nIGlzIHJlbW92 ZWQgd2hlbiB0aGUgX0NSVENfIGlzIGRpc2FibGVkLCBhbmQgd2hhdAo+IHRoaXMgc2VyaWVzIGRv ZXMgaXMgdG8gd2FpdCBmb3IgdGhlIHBlbmRpbmcgcGFnZWZsaXAgdG8gZmluaXNoIGJlZm9yZQo+ IGNvbml0bnVpbmcgd2l0aCBDUlRDIGRpc2FibGVtZW50LgoKdGhlIGlvbW11IG1hcHBpbmcgd2ls bCB1bm1hcCBhZnRlciBwbGFuZSBkaXNhYmxlZCwgd2UgbmVlZCBzdXJlIHRoYXQgdGhlIApwbGFu ZSByZWFsbHkgZGlzYWJsZWQgYmVmb3JlIHVubWFwLCBpZiBub3QsIHRoZSB1bm1hcCBtYXkgY2Fs bCBiZWZvcmUgCnBsYW5lIHJlYWxseSBkaXNhYmxlLCB2b3AgbWF5IGFjY2VzcyB1bm1hcCBhZGRy ZXNzLCB0aGVuIHdvdWxkIGdldCBpb21tdSAKcGFnZSBmYXVsdC4KCj4+IEFib3V0IHBlbmRpbmcg cGFnZWZsaXBzIHdvdWxkIHJlbWFpbiBwZW5kaW5nLCBjYW4geW91ICBkZXNjcmliZSBtb3JlIGlu Zm8KPj4gYWJvdXQgaXQ/IEkgdGhpbmsgdGhvc2UgcGVuZGluZyBwYWdlZmxpcHMgc2hvdWxkIGJl IGlnbm9yZSB3aGVuIENSVEMgaXMKPj4gZGlzYWJsZWQuCj4gV2VsbCwgcmlnaHQgbm93IGluIHJv Y2tjaGlwLWRybSBwZW5kaW5nIHBhZ2VmbGlwcyB3b24ndCBiZSBpZ25vcmVkCj4gd2hlbiBhIENS VEMgaXMgZGlzYWJsZWQsIGJ1dCB3aWxsIGJlIGRlbGl2ZXJlZCB3aGVuIGl0J3MgcmUtZW5hYmxl ZC4KPgo+IElmIHRoZXkgd291bGQgYmUgdG8gYmUgaWdub3JlZCAodW5kZXJzdGFuZGluZyB0aGF0 IGFzIGRyb3BwZWQpLCB0aGF0Cj4gd291bGQgcmVxdWlyZSBtb2RpZmljYXRpb25zIHRvIGNsaWVu dHMgc28gdGhleSBrZWVwIHRyYWNrIG9mIHdoaWNoIGZicwo+IHdlcmUgdXNlZCBpbiBhIHBhcnRp Y3VsYXIgY3J0YyBhbmQgZGVzdHJveSB0aGVtIHdoZW4gdGhlIGNydGMgaXMKPiBkaXNhYmxlZCwg YnV0IHRoYXQgd291bGQgYmUgaW5jb3JyZWN0IHdoZW4gdXNpbmcgdGhlIGk5MTUgRFJNIGRyaXZl cgo+IChJIGFsc28gYXNzdW1lIG90aGVycyBkbyB0aGUgc2FtZSkuIEdpdmVuIHRoYXQgdGhlIHBh Z2VmbGlwIGlvY3RsCj4gaXNuJ3QgZHJpdmVyLXNwZWNpZmljLCBJIHRoaW5rIHRoZXJlIGNhbm5v dCBiZSBzdWNoIGEgZGlmZmVyZW5jZSBpbgo+IGJlaGF2aW9yIGJldHdlZW4gZHJpdmVycy4KPgo+ IFdpdGggdGhlIGN1cnJlbnQgYmVoYXZpb3IgKHBlbmRpbmcgcGFnZWZsaXAgZXZlbnRzIGJlaW5n IGRlbGF5ZWQgdW50aWwKPiB0aGUgQ1JUQyBpcyBlbmFibGVkIGFnYWluKSwgY29tcG9zaXRvcnMg YW5kIG90aGVyIGNsaWVudHMgd2lsbCBiZQo+IGhvbGRpbmcgb24gdG8gdGhlIGZiIGluIHRoZSBw ZW5kaW5nIHBhZ2VmbGlwIHVudGlsIGFuIGFyYml0cmFyeSBwb2ludAo+IGluIHRoZSBmdXR1cmUg dGhhdCBtYXkgbm90IGV2ZXIgY29tZS4gVG8gbWUgdGhhdCBzb3VuZHMgbGlrZSBhIHNlcmlvdXMK PiBtb2RpZmljYXRpb24gb2YgdGhlIGFzc3VtcHRpb25zIG9uIGZiIGxpZmVjeWNsZSB0aGF0IG1p Z2h0IG5vdCBiZQo+IHdhcnJhbnRlZC4KPgo+IFNvIGluIHN1bW1hcnksIGV2ZW4gaWYgSSBoYXZl bid0IGZvdW5kIGFueSBleHBsaWNpdCBkb2N1bWVudGF0aW9uIG9uCj4gdGhpcywgSSB0aGluayB0 aGUgQUJJIGlzIHRoYXQgYW55IHBlbmRpbmcgcGFnZWZsaXBzIGFyZSB0byBiZQo+IGRlbGl2ZXJl ZCB3aGVuIHRoYXQgQ1JUQyBpcyBiZWluZyBkaXNhYmxlZCBhbmQgbm90IGxhdGVyLgoKb24gZHJp dmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX2RybV9mYi5jCgpkcm1fYXRvbWljX2hlbHBl cl9jb21taXRfcGxhbmVzKGRldiwgc3RhdGUsIHRydWUpOwpyb2NrY2hpcF9hdG9taWNfd2FpdF9m b3JfY29tcGxldGUoZGV2LCBzdGF0ZSk7CgpXZSBzZXQgYWN0aXZlX29ubHkgPSB0cnVlLCBJIHRo aW5rIHBsYW5lcyBjYW4gb25seSB1cGRhdGUgd2hlbiBjcnRjIGlzIAphY3RpdmUuIGFuZCByb2Nr Y2hpcF9hdG9taWNfd2FpdF9mb3JfY29tcGxldGUgb25seSB3YWl0IHdoZW4gY3J0YyBpcyBhY3Rp dmUuCgpUaGFua3MuCj4gVGhhbmtzLAo+Cj4gVG9tZXUKPgo+PiBUaGFua3MuCj4+Cj4+Cj4+ICAg IHlyZ2JfbXN0ID0gVk9QX1dJTl9HRVRfWVJHQkFERFIodm9wX3dpbi0+dm9wLCB2b3Bfd2luLT5k YXRhKTsKPj4KPj4KPj4KPj4gLS0KPj4g77ytYXJrIFlhbwo+Pgo+Pgo+PiBfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+PiBkcmktZGV2ZWwgbWFpbGluZyBs aXN0Cj4+IGRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPj4gaHR0cHM6Ly9saXN0cy5m cmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwKPj4KPgo+CgoKLS0gCu+8 rWFyayBZYW8KCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcK aHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK From mboxrd@z Thu Jan 1 00:00:00 1970 From: mark.yao@rock-chips.com (Mark yao) Date: Mon, 11 Apr 2016 09:15:46 +0800 Subject: [PATCH 1/2] drm/rockchip: vop: Do check if an update is pending during disable In-Reply-To: References: <1459937686-9142-1-git-send-email-tomeu.vizoso@collabora.com> <5707043D.6060706@rock-chips.com> Message-ID: <570AFAC2.8080907@rock-chips.com> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org On 2016?04?08? 18:54, Tomeu Vizoso wrote: > On 8 April 2016 at 03:07, Mark yao wrote: >> On 2016?04?06? 18:14, Tomeu Vizoso wrote: >> >> When a plane is being disabled but it's still enabled, do check if the >> previous update has been completed by reading yrgb_mst back. >> >> Otherwise, pending pageflips would remain pending after a CRTC is >> disabled. >> >> Signed-off-by: Tomeu Vizoso >> --- >> drivers/gpu/drm/rockchip/rockchip_drm_vop.c | 5 +++-- >> 1 file changed, 3 insertions(+), 2 deletions(-) >> >> diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c >> b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c >> index a9b1e8b5ac85..f46b1fd1887b 100644 >> --- a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c >> +++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c >> @@ -1064,8 +1064,9 @@ static bool vop_win_pending_is_complete(struct vop_win >> *vop_win) >> struct vop_plane_state *state = to_vop_plane_state(plane->state); >> dma_addr_t yrgb_mst; >> >> - if (!state->enable) >> - return VOP_WIN_GET(vop_win->vop, vop_win->data, enable) == 0; >> + if (!state->enable && >> + VOP_WIN_GET(vop_win->vop, vop_win->data, enable) == 0) >> + return true; >> >> >> It is wrong, the patch would cause a bug. >> >> when state->enable is 0, check yrgb_mst == state->yrgb_mst always be true, >> because state->yrgb_mst not update on plane disabled funtion, that would >> cause iommu crash. > Sorry, but I don't understand where's the bug and what could cause > that crash. What the existing code was doing is saying that a pageflip > event is still pending if we have told the plane to disable but for > some reason it hasn't yet. > > With this modification, if we read back that it's already disabled, we > return true as before. But if we read back that it isn't disabled yet, > then we still check the fb pointers and compare them. > > The iommu mapping is removed when the _CRTC_ is disabled, and what > this series does is to wait for the pending pageflip to finish before > conitnuing with CRTC disablement. the iommu mapping will unmap after plane disabled, we need sure that the plane really disabled before unmap, if not, the unmap may call before plane really disable, vop may access unmap address, then would get iommu page fault. >> About pending pageflips would remain pending, can you describe more info >> about it? I think those pending pageflips should be ignore when CRTC is >> disabled. > Well, right now in rockchip-drm pending pageflips won't be ignored > when a CRTC is disabled, but will be delivered when it's re-enabled. > > If they would be to be ignored (understanding that as dropped), that > would require modifications to clients so they keep track of which fbs > were used in a particular crtc and destroy them when the crtc is > disabled, but that would be incorrect when using the i915 DRM driver > (I also assume others do the same). Given that the pageflip ioctl > isn't driver-specific, I think there cannot be such a difference in > behavior between drivers. > > With the current behavior (pending pageflip events being delayed until > the CRTC is enabled again), compositors and other clients will be > holding on to the fb in the pending pageflip until an arbitrary point > in the future that may not ever come. To me that sounds like a serious > modification of the assumptions on fb lifecycle that might not be > warranted. > > So in summary, even if I haven't found any explicit documentation on > this, I think the ABI is that any pending pageflips are to be > delivered when that CRTC is being disabled and not later. on drivers/gpu/drm/rockchip/rockchip_drm_fb.c drm_atomic_helper_commit_planes(dev, state, true); rockchip_atomic_wait_for_complete(dev, state); We set active_only = true, I think planes can only update when crtc is active. and rockchip_atomic_wait_for_complete only wait when crtc is active. Thanks. > Thanks, > > Tomeu > >> Thanks. >> >> >> yrgb_mst = VOP_WIN_GET_YRGBADDR(vop_win->vop, vop_win->data); >> >> >> >> -- >> ?ark Yao >> >> >> _______________________________________________ >> dri-devel mailing list >> dri-devel at lists.freedesktop.org >> https://lists.freedesktop.org/mailman/listinfo/dri-devel >> > > -- ?ark Yao From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751522AbcDKBP6 (ORCPT ); Sun, 10 Apr 2016 21:15:58 -0400 Received: from regular1.263xmail.com ([211.150.99.134]:41463 "EHLO regular1.263xmail.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750783AbcDKBP5 (ORCPT ); Sun, 10 Apr 2016 21:15:57 -0400 X-263anti-spam: BIG:0;ABS:1;DNS:0;ATT:0;SPF:S;KSV:0; X-MAIL-GRAY: 0 X-MAIL-DELIVERY: 1 X-ABS-CHECKED: 1 X-SKE-CHECKED: 1 X-ADDR-CHECKED: 0 X-KSVirus-check: 0 X-RL-SENDER: mark.yao@rock-chips.com X-FST-TO: linux-arm-kernel@lists.infradead.org X-SENDER-IP: 58.22.7.114 X-LOGIN-NAME: mark.yao@rock-chips.com X-UNIQUE-TAG: X-ATTACHMENT-NUM: 0 X-DNS-TYPE: 0 Message-ID: <570AFAC2.8080907@rock-chips.com> Date: Mon, 11 Apr 2016 09:15:46 +0800 From: Mark yao User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.8.0 MIME-Version: 1.0 To: Tomeu Vizoso CC: "linux-kernel@vger.kernel.org" , "open list:ARM/Rockchip SoC..." , "dri-devel@lists.freedesktop.org" , "linux-arm-kernel@lists.infradead.org" Subject: Re: [PATCH 1/2] drm/rockchip: vop: Do check if an update is pending during disable References: <1459937686-9142-1-git-send-email-tomeu.vizoso@collabora.com> <5707043D.6060706@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 2016年04月08日 18:54, Tomeu Vizoso wrote: > On 8 April 2016 at 03:07, Mark yao wrote: >> On 2016年04月06日 18:14, Tomeu Vizoso wrote: >> >> When a plane is being disabled but it's still enabled, do check if the >> previous update has been completed by reading yrgb_mst back. >> >> Otherwise, pending pageflips would remain pending after a CRTC is >> disabled. >> >> Signed-off-by: Tomeu Vizoso >> --- >> drivers/gpu/drm/rockchip/rockchip_drm_vop.c | 5 +++-- >> 1 file changed, 3 insertions(+), 2 deletions(-) >> >> diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c >> b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c >> index a9b1e8b5ac85..f46b1fd1887b 100644 >> --- a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c >> +++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c >> @@ -1064,8 +1064,9 @@ static bool vop_win_pending_is_complete(struct vop_win >> *vop_win) >> struct vop_plane_state *state = to_vop_plane_state(plane->state); >> dma_addr_t yrgb_mst; >> >> - if (!state->enable) >> - return VOP_WIN_GET(vop_win->vop, vop_win->data, enable) == 0; >> + if (!state->enable && >> + VOP_WIN_GET(vop_win->vop, vop_win->data, enable) == 0) >> + return true; >> >> >> It is wrong, the patch would cause a bug. >> >> when state->enable is 0, check yrgb_mst == state->yrgb_mst always be true, >> because state->yrgb_mst not update on plane disabled funtion, that would >> cause iommu crash. > Sorry, but I don't understand where's the bug and what could cause > that crash. What the existing code was doing is saying that a pageflip > event is still pending if we have told the plane to disable but for > some reason it hasn't yet. > > With this modification, if we read back that it's already disabled, we > return true as before. But if we read back that it isn't disabled yet, > then we still check the fb pointers and compare them. > > The iommu mapping is removed when the _CRTC_ is disabled, and what > this series does is to wait for the pending pageflip to finish before > conitnuing with CRTC disablement. the iommu mapping will unmap after plane disabled, we need sure that the plane really disabled before unmap, if not, the unmap may call before plane really disable, vop may access unmap address, then would get iommu page fault. >> About pending pageflips would remain pending, can you describe more info >> about it? I think those pending pageflips should be ignore when CRTC is >> disabled. > Well, right now in rockchip-drm pending pageflips won't be ignored > when a CRTC is disabled, but will be delivered when it's re-enabled. > > If they would be to be ignored (understanding that as dropped), that > would require modifications to clients so they keep track of which fbs > were used in a particular crtc and destroy them when the crtc is > disabled, but that would be incorrect when using the i915 DRM driver > (I also assume others do the same). Given that the pageflip ioctl > isn't driver-specific, I think there cannot be such a difference in > behavior between drivers. > > With the current behavior (pending pageflip events being delayed until > the CRTC is enabled again), compositors and other clients will be > holding on to the fb in the pending pageflip until an arbitrary point > in the future that may not ever come. To me that sounds like a serious > modification of the assumptions on fb lifecycle that might not be > warranted. > > So in summary, even if I haven't found any explicit documentation on > this, I think the ABI is that any pending pageflips are to be > delivered when that CRTC is being disabled and not later. on drivers/gpu/drm/rockchip/rockchip_drm_fb.c drm_atomic_helper_commit_planes(dev, state, true); rockchip_atomic_wait_for_complete(dev, state); We set active_only = true, I think planes can only update when crtc is active. and rockchip_atomic_wait_for_complete only wait when crtc is active. Thanks. > Thanks, > > Tomeu > >> Thanks. >> >> >> yrgb_mst = VOP_WIN_GET_YRGBADDR(vop_win->vop, vop_win->data); >> >> >> >> -- >> Mark Yao >> >> >> _______________________________________________ >> dri-devel mailing list >> dri-devel@lists.freedesktop.org >> https://lists.freedesktop.org/mailman/listinfo/dri-devel >> > > -- Mark Yao