From mboxrd@z Thu Jan 1 00:00:00 1970 From: Gustavo Padovan Subject: Re: [RFC PATCH v2 9/9] drm: mali-dp: Add writeback out-fence support Date: Thu, 27 Oct 2016 09:25:19 -0200 Message-ID: <20161027112519.GJ12629@joana> References: <1477472108-27222-1-git-send-email-brian.starkey@arm.com> <1477472108-27222-10-git-send-email-brian.starkey@arm.com> <20161026214357.GH12629@joana> <20161027101847.GC18708@e106950-lin.cambridge.arm.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-vk0-f67.google.com (mail-vk0-f67.google.com [209.85.213.67]) by gabe.freedesktop.org (Postfix) with ESMTPS id 700B26E9B5 for ; Thu, 27 Oct 2016 11:25:26 +0000 (UTC) Received: by mail-vk0-f67.google.com with SMTP id q126so1218512vkd.3 for ; Thu, 27 Oct 2016 04:25:26 -0700 (PDT) Content-Disposition: inline In-Reply-To: <20161027101847.GC18708@e106950-lin.cambridge.arm.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Brian Starkey Cc: linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-media@vger.kernel.org List-Id: dri-devel@lists.freedesktop.org MjAxNi0xMC0yNyBCcmlhbiBTdGFya2V5IDxicmlhbi5zdGFya2V5QGFybS5jb20+OgoKPiBPbiBX ZWQsIE9jdCAyNiwgMjAxNiBhdCAwNzo0Mzo1N1BNIC0wMjAwLCBHdXN0YXZvIFBhZG92YW4gd3Jv dGU6Cj4gPiAyMDE2LTEwLTI2IEJyaWFuIFN0YXJrZXkgPGJyaWFuLnN0YXJrZXlAYXJtLmNvbT46 Cj4gPiAKPiA+ID4gSWYgdXNlcnNwYWNlIGhhcyBhc2tlZCBmb3IgYW4gb3V0LWZlbmNlIGZvciB0 aGUgd3JpdGViYWNrLCB3ZSBhZGQgYQo+ID4gPiBmZW5jZSB0byBtYWxpZHBfbXdfam9iLCB0byBi ZSBzaWduYWxlZCB3aGVuIHRoZSB3cml0ZWJhY2sgam9iIGhhcwo+ID4gPiBjb21wbGV0ZWQuCj4g PiA+IAo+ID4gPiBTaWduZWQtb2ZmLWJ5OiBCcmlhbiBTdGFya2V5IDxicmlhbi5zdGFya2V5QGFy bS5jb20+Cj4gPiA+IC0tLQo+ID4gPiAgZHJpdmVycy9ncHUvZHJtL2FybS9tYWxpZHBfaHcuYyB8 ICAgIDUgKysrKy0KPiA+ID4gIGRyaXZlcnMvZ3B1L2RybS9hcm0vbWFsaWRwX213LmMgfCAgIDE4 ICsrKysrKysrKysrKysrKysrLQo+ID4gPiAgZHJpdmVycy9ncHUvZHJtL2FybS9tYWxpZHBfbXcu aCB8ICAgIDMgKysrCj4gPiA+ICAzIGZpbGVzIGNoYW5nZWQsIDI0IGluc2VydGlvbnMoKyksIDIg ZGVsZXRpb25zKC0pCj4gPiA+IAo+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2Fy bS9tYWxpZHBfaHcuYyBiL2RyaXZlcnMvZ3B1L2RybS9hcm0vbWFsaWRwX2h3LmMKPiA+ID4gaW5k ZXggMTY4OTU0Ny4uMzAzMjIyNiAxMDA2NDQKPiA+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2Fy bS9tYWxpZHBfaHcuYwo+ID4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYXJtL21hbGlkcF9ody5j Cj4gPiA+IEBAIC03MDcsOCArNzA3LDExIEBAIHN0YXRpYyBpcnFyZXR1cm5fdCBtYWxpZHBfc2Vf aXJxKGludCBpcnEsIHZvaWQgKmFyZykKPiA+ID4gIAkJdW5zaWduZWQgbG9uZyBpcnFmbGFnczsK PiA+ID4gIAkJLyoKPiA+ID4gIAkJICogV2UgY2FuJ3QgdW5yZWZlcmVuY2UgdGhlIGZyYW1lYnVm ZmVyIGhlcmUsIHNvIHdlIHF1ZXVlIGl0Cj4gPiA+IC0JCSAqIHVwIG9uIG91ciB0aHJlYWRlZCBo YW5kbGVyLgo+ID4gPiArCQkgKiB1cCBvbiBvdXIgdGhyZWFkZWQgaGFuZGxlci4gSG93ZXZlciwg c2lnbmFsIHRoZSBmZW5jZQo+ID4gPiArCQkgKiBhcyBzb29uIGFzIHBvc3NpYmxlCj4gPiA+ICAJ CSAqLwo+ID4gPiArCQltYWxpZHBfbXdfam9iX3NpZ25hbChkcm0sIG1hbGlkcC0+Y3VycmVudF9t dywgMCk7Cj4gPiAKPiA+IERyaXZlcnMgc2hvdWxkIG5vdCBkZWFsIHdpdGggZmVuY2VzIGRpcmVj dGx5LiBXZSBuZWVkIHNvbWUgc29ydCBvZgo+ID4gZHJtX3dyaXRlYmFja19maW5pc2hlZCgpIHRo YXQgd2lsbCBkbyB0aGUgc2lnbmFsbGluZyBmb3IgeW91Lgo+ID4gCj4gCj4gV2l0aCBhIHNpZ25h dHVyZSBsaWtlIHRoaXM/Cj4gCWRybV93cml0ZWJhY2tfZmluaXNoZWQoc3RydWN0IGRybV9jb25u ZWN0b3Jfc3RhdGUgKnN0YXRlKTsKPiAKPiBJJ2xsIGhhdmUgdG8gdGhpbmsgYWJvdXQgaG93IHRv IGFjaGlldmUgdGhhdC4gVGhlIHN0YXRlIGlzbid0Cj4gcmVmY291bnRlZCBhbmQgdGhlIGRyaXZl ciBpc24ndCBpbiBjaGFyZ2Ugb2YgaXQncyBsaWZldGltZS4gSSdtIG5vdAo+IHN1cmUgaG93L3do ZXJlIHRvIGVuc3VyZSB0aGUgc3RhdGUgZG9lc24ndCBnZXQgZGVzdHJveWVkIGJlZm9yZSBpdHMK PiBiZWVuIHNpZ25hbGVkLgoKTWF5YmUgd2Ugc2hvdWxkIGRvIHNvbWV0aGluZyBzaW1pbGFyIHRv IHRoZSBjcnRjIHZibGFuayBoYW5kbGVycyBhbmQKZXZlbiBoaWRlIHRoZSBjb25uZWN0b3Jfc3Rh dGUuIFRob3NlIGhlbHBlcnMgb25seSB0YWtlIHRoZSBjcnRjLgpUaGV5IGFyZSBhYmxlIHRvIGhv bGQgcmVmIHRvIHRoZSBldmVudCBhcyB3ZWxsLgoKR3VzdGF2bwpfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1k ZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcv bWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from mail-vk0-f67.google.com ([209.85.213.67]:33404 "EHLO mail-vk0-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755700AbcJ0Oqf (ORCPT ); Thu, 27 Oct 2016 10:46:35 -0400 Date: Thu, 27 Oct 2016 09:25:19 -0200 From: Gustavo Padovan To: Brian Starkey Cc: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, linux-media@vger.kernel.org Subject: Re: [RFC PATCH v2 9/9] drm: mali-dp: Add writeback out-fence support Message-ID: <20161027112519.GJ12629@joana> References: <1477472108-27222-1-git-send-email-brian.starkey@arm.com> <1477472108-27222-10-git-send-email-brian.starkey@arm.com> <20161026214357.GH12629@joana> <20161027101847.GC18708@e106950-lin.cambridge.arm.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20161027101847.GC18708@e106950-lin.cambridge.arm.com> Sender: linux-media-owner@vger.kernel.org List-ID: 2016-10-27 Brian Starkey : > On Wed, Oct 26, 2016 at 07:43:57PM -0200, Gustavo Padovan wrote: > > 2016-10-26 Brian Starkey : > > > > > If userspace has asked for an out-fence for the writeback, we add a > > > fence to malidp_mw_job, to be signaled when the writeback job has > > > completed. > > > > > > Signed-off-by: Brian Starkey > > > --- > > > drivers/gpu/drm/arm/malidp_hw.c | 5 ++++- > > > drivers/gpu/drm/arm/malidp_mw.c | 18 +++++++++++++++++- > > > drivers/gpu/drm/arm/malidp_mw.h | 3 +++ > > > 3 files changed, 24 insertions(+), 2 deletions(-) > > > > > > diff --git a/drivers/gpu/drm/arm/malidp_hw.c b/drivers/gpu/drm/arm/malidp_hw.c > > > index 1689547..3032226 100644 > > > --- a/drivers/gpu/drm/arm/malidp_hw.c > > > +++ b/drivers/gpu/drm/arm/malidp_hw.c > > > @@ -707,8 +707,11 @@ static irqreturn_t malidp_se_irq(int irq, void *arg) > > > unsigned long irqflags; > > > /* > > > * We can't unreference the framebuffer here, so we queue it > > > - * up on our threaded handler. > > > + * up on our threaded handler. However, signal the fence > > > + * as soon as possible > > > */ > > > + malidp_mw_job_signal(drm, malidp->current_mw, 0); > > > > Drivers should not deal with fences directly. We need some sort of > > drm_writeback_finished() that will do the signalling for you. > > > > With a signature like this? > drm_writeback_finished(struct drm_connector_state *state); > > I'll have to think about how to achieve that. The state isn't > refcounted and the driver isn't in charge of it's lifetime. I'm not > sure how/where to ensure the state doesn't get destroyed before its > been signaled. Maybe we should do something similar to the crtc vblank handlers and even hide the connector_state. Those helpers only take the crtc. They are able to hold ref to the event as well. Gustavo