From mboxrd@z Thu Jan 1 00:00:00 1970 From: Laurent Pinchart Subject: Re: [PATCH 12/23] drm: omapdrm: plane: update fifo size on atomic update Date: Tue, 13 Dec 2016 19:35:48 +0200 Message-ID: <8209536.SBuD0B7HP3@avalon> References: <1457455195-1938-1-git-send-email-sre@kernel.org> <1457455195-1938-13-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-13-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: dri-devel@lists.freedesktop.org Cc: Aaro Koskinen , Tony Lindgren , linux-kernel@vger.kernel.org, Sebastian Reichel , Tomi Valkeinen , linux-omap@vger.kernel.org List-Id: linux-omap@vger.kernel.org SGkgU2ViYXN0aWFuLAoKVGhhbmsgeW91IGZvciB0aGUgcGF0Y2guCgpPbiBUdWVzZGF5IDA4IE1h ciAyMDE2IDE3OjM5OjQ0IFNlYmFzdGlhbiBSZWljaGVsIHdyb3RlOgo+IFRoaXMgaXMgYSB3b3Jr YXJvdW5kIGZvciBhIGhhcmR3YXJlIGJ1ZyBvY2N1cmluZwo+IG9uIE9NQVAzIHdpdGggbWFudWFs bHkgdXBkYXRlZCBwYW5lbHMuCgpDb3VsZCB5b3UgcGxlYXNlIGV4cGxhaW4gd2hhdCB0aGUgYnVn IGlzIGFuZCBob3cgdGhlIHdvcmthcm91bmQgb3BlcmF0ZXMgPyBEbyAKeW91IGhhdmUgYSByZWZl cmVuY2UgdG8gYW4gZXJyYXRhIGRvY3VtZW50ID8KCj4gU2lnbmVkLW9mZi1CeTogU2ViYXN0aWFu IFJlaWNoZWwgPHNyZUBrZXJuZWwub3JnPgo+IC0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vb21hcGRy bS9vbWFwX2Rydi5oICAgfCAgMSArCj4gIGRyaXZlcnMvZ3B1L2RybS9vbWFwZHJtL29tYXBfcGxh bmUuYyB8IDIzICsrKysrKysrKysrKysrKysrKysrKysrCj4gIDIgZmlsZXMgY2hhbmdlZCwgMjQg aW5zZXJ0aW9ucygrKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vb21hcGRybS9v bWFwX2Rydi5oCj4gYi9kcml2ZXJzL2dwdS9kcm0vb21hcGRybS9vbWFwX2Rydi5oIGluZGV4IDcx ZTJjMjI4NGI4Ni4uM2FiNDkxOWFmZjRiCj4gMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L29tYXBkcm0vb21hcF9kcnYuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9vbWFwZHJtL29tYXBf ZHJ2LmgKPiBAQCAtMTYxLDYgKzE2MSw3IEBAIHN0cnVjdCBkcm1fcGxhbmUgKm9tYXBfcGxhbmVf aW5pdChzdHJ1Y3QgZHJtX2RldmljZQo+ICpkZXYsIGludCBpZCwgZW51bSBkcm1fcGxhbmVfdHlw ZSB0eXBlKTsKPiAgdm9pZCBvbWFwX3BsYW5lX2luc3RhbGxfcHJvcGVydGllcyhzdHJ1Y3QgZHJt X3BsYW5lICpwbGFuZSwKPiAgCQlzdHJ1Y3QgZHJtX21vZGVfb2JqZWN0ICpvYmopOwo+ICt2b2lk IG9tYXBfcGxhbmVfdXBkYXRlX2ZpZm8oc3RydWN0IGRybV9wbGFuZSAqcGxhbmUpOwo+IAo+ICBz dHJ1Y3QgZHJtX2VuY29kZXIgKm9tYXBfZW5jb2Rlcl9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYsCj4gIAkJc3RydWN0IG9tYXBfZHNzX2RldmljZSAqZHNzZGV2KTsKPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL29tYXBkcm0vb21hcF9wbGFuZS5jCj4gYi9kcml2ZXJzL2dwdS9kcm0v b21hcGRybS9vbWFwX3BsYW5lLmMgaW5kZXggZDc1YjE5N2VmZjQ2Li4wMTQ3ZTQxNjE0MGMKPiAx MDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vb21hcGRybS9vbWFwX3BsYW5lLmMKPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vb21hcGRybS9vbWFwX3BsYW5lLmMKPiBAQCAtNzUsNiArNzUsMjgg QEAgc3RhdGljIHZvaWQgb21hcF9wbGFuZV9jbGVhbnVwX2ZiKHN0cnVjdCBkcm1fcGxhbmUKPiAq cGxhbmUsIG9tYXBfZnJhbWVidWZmZXJfdW5waW4ob2xkX3N0YXRlLT5mYik7Cj4gIH0KPiAKPiAr dm9pZCBvbWFwX3BsYW5lX3VwZGF0ZV9maWZvKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lKQo+ICt7 Cj4gKwlzdHJ1Y3Qgb21hcF9wbGFuZSAqb21hcF9wbGFuZSA9IHRvX29tYXBfcGxhbmUocGxhbmUp Owo+ICsJc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqc3RhdGUgPSBwbGFuZS0+c3RhdGU7Cj4gKwlz dHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gcGxhbmUtPmRldjsKPiArCWJvb2wgdXNlX2ZpZm9fbWVy Z2UgPSBmYWxzZTsKPiArCXUzMiBmaWZvX2xvdywgZmlmb19oaWdoOwo+ICsJYm9vbCB1c2VfbWFu dWFsX3VwZGF0ZTsKPiArCj4gKwlpZiAoIWRpc3BjX292bF9lbmFibGVkKG9tYXBfcGxhbmUtPmlk KSkKPiArCQlyZXR1cm47CgpHaXZlbiB0aGF0IHRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIHJpZ2h0 IGFmdGVyIGRpc3BjX292bF9lbmFibGUob21hcF9wbGFuZS0KPmlkLCB0cnVlKSwgY2FuIHRoaXMg Y29uZGl0aW9uIGJlIHRydWUgPwoKPiArCXVzZV9tYW51YWxfdXBkYXRlID0gb21hcF9jcnRjX2lz X21hbnVhbF91cGRhdGVkKHN0YXRlLT5jcnRjKTsKPiArCj4gKwlkaXNwY19vdmxfY29tcHV0ZV9m aWZvX3RocmVzaG9sZHMob21hcF9wbGFuZS0+aWQsICZmaWZvX2xvdywgCiZmaWZvX2hpZ2gsCj4g KwkJCXVzZV9maWZvX21lcmdlLCB1c2VfbWFudWFsX3VwZGF0ZSk7CgpZb3UgY2FuIHJlbW92ZSB0 aGUgdXNlX2ZpZm9fbWVyZ2UgdmFyaWFibGUgYW5kIHNldCB0aGUgYXJndW1lbnQgdG8gZmFsc2Ug CmRpcmVjdGx5LgoKPiArCj4gKwlkZXZfZGJnKGRldi0+ZGV2LCAidXBkYXRlIGZpZm86ICVkICVk IiwgZmlmb19sb3csIGZpZm9faGlnaCk7CgpUaGUgdHdvIHZhcmlhYmxlcyBhcmUgdW5zaWduZWQs IHlvdSBzaG91bGQgdXNlICV1LgoKPiArCWRpc3BjX292bF9zZXRfZmlmb190aHJlc2hvbGQob21h cF9wbGFuZS0+aWQsIGZpZm9fbG93LCBmaWZvX2hpZ2gpOwoKT24gYSBzaWRlIG5vdGUsIHNob3Vs ZG4ndCB0aGUgZGlzcGNfb3ZsX2NvbXB1dGVfZmlmb190aHJlc2hvbGRzKCkgYW5kIApkaXNwY19v dmxfc2V0X2ZpZm9fdGhyZXNob2xkKCkgZnVuY3Rpb25zIGJlIG1lcmdlZCBpbnRvIGEgc2luZ2xl IG9uZSBhcyAKdGhleSdyZSBhbHdheXMgY2FsbGVkIHRvZ2V0aGVyID8KCj4gK30KPiArCj4gIHN0 YXRpYyB2b2lkIG9tYXBfcGxhbmVfYXRvbWljX3VwZGF0ZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFu ZSwKPiAgCQkJCSAgICAgc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqb2xkX3N0YXRlKQo+ICB7Cj4g QEAgLTE0MSw2ICsxNjMsNyBAQCBzdGF0aWMgdm9pZCBvbWFwX3BsYW5lX2F0b21pY191cGRhdGUo c3RydWN0IGRybV9wbGFuZQo+ICpwbGFuZSwgfQo+IAo+ICAJZGlzcGNfb3ZsX2VuYWJsZShvbWFw X3BsYW5lLT5pZCwgdHJ1ZSk7Cj4gKwlvbWFwX3BsYW5lX3VwZGF0ZV9maWZvKHBsYW5lKTsKPiAg fQo+IAo+ICBzdGF0aWMgdm9pZCBvbWFwX3BsYW5lX2F0b21pY19kaXNhYmxlKHN0cnVjdCBkcm1f cGxhbmUgKnBsYW5lLAoKLS0gClJlZ2FyZHMsCgpMYXVyZW50IFBpbmNoYXJ0CgpfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBs aXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVz a3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S934990AbcLMRgv (ORCPT ); Tue, 13 Dec 2016 12:36:51 -0500 Received: from galahad.ideasonboard.com ([185.26.127.97]:40959 "EHLO galahad.ideasonboard.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753343AbcLMRfQ (ORCPT ); Tue, 13 Dec 2016 12:35:16 -0500 From: Laurent Pinchart To: dri-devel@lists.freedesktop.org Cc: Sebastian Reichel , Tony Lindgren , Aaro Koskinen , Tomi Valkeinen , linux-omap@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH 12/23] drm: omapdrm: plane: update fifo size on atomic update Date: Tue, 13 Dec 2016 19:35:48 +0200 Message-ID: <8209536.SBuD0B7HP3@avalon> User-Agent: KMail/4.14.10 (Linux/4.8.6-gentoo; KDE/4.14.24; x86_64; ; ) In-Reply-To: <1457455195-1938-13-git-send-email-sre@kernel.org> References: <1457455195-1938-1-git-send-email-sre@kernel.org> <1457455195-1938-13-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:44 Sebastian Reichel wrote: > This is a workaround for a hardware bug occuring > on OMAP3 with manually updated panels. Could you please explain what the bug is and how the workaround operates ? Do you have a reference to an errata document ? > Signed-off-By: Sebastian Reichel > --- > drivers/gpu/drm/omapdrm/omap_drv.h | 1 + > drivers/gpu/drm/omapdrm/omap_plane.c | 23 +++++++++++++++++++++++ > 2 files changed, 24 insertions(+) > > diff --git a/drivers/gpu/drm/omapdrm/omap_drv.h > b/drivers/gpu/drm/omapdrm/omap_drv.h index 71e2c2284b86..3ab4919aff4b > 100644 > --- a/drivers/gpu/drm/omapdrm/omap_drv.h > +++ b/drivers/gpu/drm/omapdrm/omap_drv.h > @@ -161,6 +161,7 @@ struct drm_plane *omap_plane_init(struct drm_device > *dev, int id, enum drm_plane_type type); > void omap_plane_install_properties(struct drm_plane *plane, > struct drm_mode_object *obj); > +void omap_plane_update_fifo(struct drm_plane *plane); > > struct drm_encoder *omap_encoder_init(struct drm_device *dev, > struct omap_dss_device *dssdev); > diff --git a/drivers/gpu/drm/omapdrm/omap_plane.c > b/drivers/gpu/drm/omapdrm/omap_plane.c index d75b197eff46..0147e416140c > 100644 > --- a/drivers/gpu/drm/omapdrm/omap_plane.c > +++ b/drivers/gpu/drm/omapdrm/omap_plane.c > @@ -75,6 +75,28 @@ static void omap_plane_cleanup_fb(struct drm_plane > *plane, omap_framebuffer_unpin(old_state->fb); > } > > +void omap_plane_update_fifo(struct drm_plane *plane) > +{ > + struct omap_plane *omap_plane = to_omap_plane(plane); > + struct drm_plane_state *state = plane->state; > + struct drm_device *dev = plane->dev; > + bool use_fifo_merge = false; > + u32 fifo_low, fifo_high; > + bool use_manual_update; > + > + if (!dispc_ovl_enabled(omap_plane->id)) > + return; Given that this function is called right after dispc_ovl_enable(omap_plane- >id, true), can this condition be true ? > + use_manual_update = omap_crtc_is_manual_updated(state->crtc); > + > + dispc_ovl_compute_fifo_thresholds(omap_plane->id, &fifo_low, &fifo_high, > + use_fifo_merge, use_manual_update); You can remove the use_fifo_merge variable and set the argument to false directly. > + > + dev_dbg(dev->dev, "update fifo: %d %d", fifo_low, fifo_high); The two variables are unsigned, you should use %u. > + dispc_ovl_set_fifo_threshold(omap_plane->id, fifo_low, fifo_high); On a side note, shouldn't the dispc_ovl_compute_fifo_thresholds() and dispc_ovl_set_fifo_threshold() functions be merged into a single one as they're always called together ? > +} > + > static void omap_plane_atomic_update(struct drm_plane *plane, > struct drm_plane_state *old_state) > { > @@ -141,6 +163,7 @@ static void omap_plane_atomic_update(struct drm_plane > *plane, } > > dispc_ovl_enable(omap_plane->id, true); > + omap_plane_update_fifo(plane); > } > > static void omap_plane_atomic_disable(struct drm_plane *plane, -- Regards, Laurent Pinchart