From mboxrd@z Thu Jan 1 00:00:00 1970 From: Laurent Pinchart Subject: Re: [PATCH 14/23] drm: omapdrm: crtc: save framedone callback from dss Date: Sat, 26 Mar 2016 19:03 +0200 Message-ID: <37433722.f29dNjllID@avalon> References: <1457455195-1938-1-git-send-email-sre@kernel.org> <1457455195-1938-15-git-send-email-sre@kernel.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1457455195-1938-15-git-send-email-sre@kernel.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Sebastian Reichel Cc: Aaro Koskinen , Tony Lindgren , linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, Tomi Valkeinen , linux-omap@vger.kernel.org List-Id: linux-omap@vger.kernel.org SGkgU2ViYXN0aWFuLAoKVGhhbmsgeW91IGZvciB0aGUgcGF0Y2guCgpPbiBUdWVzZGF5IDA4IE1h ciAyMDE2IDE3OjM5OjQ2IFNlYmFzdGlhbiBSZWljaGVsIHdyb3RlOgo+IFNhdmUgdGhlIGZyYW1l ZG9uZSBjYWxsYmFjayBzdXBwbGllZCBieSBkc3MgZm9yIGxhdGVyCj4gdXNhZ2UuCgpXZSBhbHJl YWR5IGhhdmUgdG9vIG1hbnkgY2FsbGJhY2tzIGluIHRoZSBkcml2ZXIsIG1ha2luZyB0aGUgY29k ZSBkaWZmaWN1bHQgdG8gCnVuZGVyc3RhbmQuIFdvdWxkbid0IGl0IGJlIHBvc3NpYmxlIHRvIGNh bCBkaXJlY3RseSBmcm9tIHRoZSBvbWFwZHJtIGRyaXZlciAKaW50byB0aGUgZHNzIGNvZGUgd2l0 aG91dCB1c2luZyBjYWxsYmFja3MgPwoKPiBTaWduZWQtb2ZmLWJ5OiBTZWJhc3RpYW4gUmVpY2hl bCA8c3JlQGtlcm5lbC5vcmc+Cj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9vbWFwZHJtL29tYXBf Y3J0Yy5jIHwgMjQgKysrKysrKysrKysrKysrKysrKysrKysrCj4gIDEgZmlsZSBjaGFuZ2VkLCAy NCBpbnNlcnRpb25zKCspCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9vbWFwZHJt L29tYXBfY3J0Yy5jCj4gYi9kcml2ZXJzL2dwdS9kcm0vb21hcGRybS9vbWFwX2NydGMuYyBpbmRl eCAwOTRlODlhMmZhOTQuLjNjZTcxNDNlNWE1Zgo+IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9vbWFwZHJtL29tYXBfY3J0Yy5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL29tYXBkcm0v b21hcF9jcnRjLmMKPiBAQCAtNTcsNiArNTcsOSBAQCBzdHJ1Y3Qgb21hcF9jcnRjIHsKPiAKPiAg CXVuc2lnbmVkIGxvbmcgc3RhdGU7Cj4gIAl3YWl0X3F1ZXVlX2hlYWRfdCBwZW5kaW5nX3dhaXQ7 Cj4gKwo+ICsJdm9pZCAoKmZyYW1lZG9uZV9oYW5kbGVyKSh2b2lkICopOwo+ICsJdm9pZCAqZnJh bWVkb25lX2hhbmRsZXJfZGF0YTsKPiAgfTsKPiAKPiAgLyoKPiAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K PiAtLSBAQCAtMjYzLDYgKzI2NiwxNyBAQCBzdGF0aWMgaW50IG9tYXBfY3J0Y19kc3NfcmVnaXN0 ZXJfZnJhbWVkb25lKAo+ICAJCXN0cnVjdCBvbWFwX292ZXJsYXlfbWFuYWdlciAqbWdyLAo+ICAJ CXZvaWQgKCpoYW5kbGVyKSh2b2lkICopLCB2b2lkICpkYXRhKQo+ICB7Cj4gKwlzdHJ1Y3Qgb21h cF9jcnRjICpvbWFwX2NydGMgPSBvbWFwX2NydGNzW21nci0+aWRdOwo+ICsJc3RydWN0IGRybV9k ZXZpY2UgKmRldiA9IG9tYXBfY3J0Yy0+YmFzZS5kZXY7Cj4gKwo+ICsJaWYgKG9tYXBfY3J0Yy0+ ZnJhbWVkb25lX2hhbmRsZXIpCj4gKwkJcmV0dXJuIC1FQlVTWTsKPiArCj4gKwlkZXZfZGJnKGRl di0+ZGV2LCAicmVnaXN0ZXIgZnJhbWVkb25lICVzIiwgb21hcF9jcnRjLT5uYW1lKTsKPiArCj4g KwlvbWFwX2NydGMtPmZyYW1lZG9uZV9oYW5kbGVyID0gaGFuZGxlcjsKPiArCW9tYXBfY3J0Yy0+ ZnJhbWVkb25lX2hhbmRsZXJfZGF0YSA9IGRhdGE7Cj4gKwo+ICAJcmV0dXJuIDA7Cj4gIH0KPiAK PiBAQCAtMjcwLDYgKzI4NCwxNiBAQCBzdGF0aWMgdm9pZCBvbWFwX2NydGNfZHNzX3VucmVnaXN0 ZXJfZnJhbWVkb25lKAo+ICAJCXN0cnVjdCBvbWFwX292ZXJsYXlfbWFuYWdlciAqbWdyLAo+ICAJ CXZvaWQgKCpoYW5kbGVyKSh2b2lkICopLCB2b2lkICpkYXRhKQo+ICB7Cj4gKwlzdHJ1Y3Qgb21h cF9jcnRjICpvbWFwX2NydGMgPSBvbWFwX2NydGNzW21nci0+aWRdOwo+ICsJc3RydWN0IGRybV9k ZXZpY2UgKmRldiA9IG9tYXBfY3J0Yy0+YmFzZS5kZXY7Cj4gKwo+ICsJZGV2X2RiZyhkZXYtPmRl diwgInVucmVnaXN0ZXIgZnJhbWVkb25lICVzIiwgb21hcF9jcnRjLT5uYW1lKTsKPiArCj4gKwlX QVJOX09OKG9tYXBfY3J0Yy0+ZnJhbWVkb25lX2hhbmRsZXIgIT0gaGFuZGxlcik7Cj4gKwlXQVJO X09OKG9tYXBfY3J0Yy0+ZnJhbWVkb25lX2hhbmRsZXJfZGF0YSAhPSBkYXRhKTsKPiArCj4gKwlv bWFwX2NydGMtPmZyYW1lZG9uZV9oYW5kbGVyID0gTlVMTDsKPiArCW9tYXBfY3J0Yy0+ZnJhbWVk b25lX2hhbmRsZXJfZGF0YSA9IE5VTEw7Cj4gIH0KPiAKPiAgc3RhdGljIGNvbnN0IHN0cnVjdCBk c3NfbWdyX29wcyBtZ3Jfb3BzID0gewoKLS0gClJlZ2FyZHMsCgpMYXVyZW50IFBpbmNoYXJ0Cgpf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwg bWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0 cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755214AbcC1TSQ (ORCPT ); Mon, 28 Mar 2016 15:18:16 -0400 Received: from galahad.ideasonboard.com ([185.26.127.97]:42865 "EHLO galahad.ideasonboard.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751145AbcC1TSL (ORCPT ); Mon, 28 Mar 2016 15:18:11 -0400 From: Laurent Pinchart To: Sebastian Reichel Cc: Tony Lindgren , Aaro Koskinen , Tomi Valkeinen , David Airlie , linux-omap@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH 14/23] drm: omapdrm: crtc: save framedone callback from dss Date: Sat, 26 Mar 2016 19:03 +0200 Message-ID: <37433722.f29dNjllID@avalon> User-Agent: KMail/4.14.10 (Linux/4.1.15-gentoo-r1; KDE/4.14.16; x86_64; ; ) In-Reply-To: <1457455195-1938-15-git-send-email-sre@kernel.org> References: <1457455195-1938-1-git-send-email-sre@kernel.org> <1457455195-1938-15-git-send-email-sre@kernel.org> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Sebastian, Thank you for the patch. On Tuesday 08 Mar 2016 17:39:46 Sebastian Reichel wrote: > Save the framedone callback supplied by dss for later > usage. We already have too many callbacks in the driver, making the code difficult to understand. Wouldn't it be possible to cal directly from the omapdrm driver into the dss code without using callbacks ? > Signed-off-by: Sebastian Reichel > --- > drivers/gpu/drm/omapdrm/omap_crtc.c | 24 ++++++++++++++++++++++++ > 1 file changed, 24 insertions(+) > > diff --git a/drivers/gpu/drm/omapdrm/omap_crtc.c > b/drivers/gpu/drm/omapdrm/omap_crtc.c index 094e89a2fa94..3ce7143e5a5f > 100644 > --- a/drivers/gpu/drm/omapdrm/omap_crtc.c > +++ b/drivers/gpu/drm/omapdrm/omap_crtc.c > @@ -57,6 +57,9 @@ struct omap_crtc { > > unsigned long state; > wait_queue_head_t pending_wait; > + > + void (*framedone_handler)(void *); > + void *framedone_handler_data; > }; > > /* > --------------------------------------------------------------------------- > -- @@ -263,6 +266,17 @@ static int omap_crtc_dss_register_framedone( > struct omap_overlay_manager *mgr, > void (*handler)(void *), void *data) > { > + struct omap_crtc *omap_crtc = omap_crtcs[mgr->id]; > + struct drm_device *dev = omap_crtc->base.dev; > + > + if (omap_crtc->framedone_handler) > + return -EBUSY; > + > + dev_dbg(dev->dev, "register framedone %s", omap_crtc->name); > + > + omap_crtc->framedone_handler = handler; > + omap_crtc->framedone_handler_data = data; > + > return 0; > } > > @@ -270,6 +284,16 @@ static void omap_crtc_dss_unregister_framedone( > struct omap_overlay_manager *mgr, > void (*handler)(void *), void *data) > { > + struct omap_crtc *omap_crtc = omap_crtcs[mgr->id]; > + struct drm_device *dev = omap_crtc->base.dev; > + > + dev_dbg(dev->dev, "unregister framedone %s", omap_crtc->name); > + > + WARN_ON(omap_crtc->framedone_handler != handler); > + WARN_ON(omap_crtc->framedone_handler_data != data); > + > + omap_crtc->framedone_handler = NULL; > + omap_crtc->framedone_handler_data = NULL; > } > > static const struct dss_mgr_ops mgr_ops = { -- Regards, Laurent Pinchart