From: Laurent Pinchart <laurent.pinchart@ideasonboard.com> To: dri-devel@lists.freedesktop.org Cc: Sebastian Reichel <sre@kernel.org>, Tony Lindgren <tony@atomide.com>, Aaro Koskinen <aaro.koskinen@iki.fi>, Tomi Valkeinen <tomi.valkeinen@ti.com>, 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 [thread overview] Message-ID: <8209536.SBuD0B7HP3@avalon> (raw) In-Reply-To: <1457455195-1938-13-git-send-email-sre@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 <sre@kernel.org> > --- > 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
WARNING: multiple messages have this Message-ID (diff)
From: Laurent Pinchart <laurent.pinchart@ideasonboard.com> To: dri-devel@lists.freedesktop.org Cc: Aaro Koskinen <aaro.koskinen@iki.fi>, Tony Lindgren <tony@atomide.com>, linux-kernel@vger.kernel.org, Sebastian Reichel <sre@kernel.org>, Tomi Valkeinen <tomi.valkeinen@ti.com>, linux-omap@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 [thread overview] Message-ID: <8209536.SBuD0B7HP3@avalon> (raw) In-Reply-To: <1457455195-1938-13-git-send-email-sre@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 <sre@kernel.org> > --- > 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 _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
next prev parent reply other threads:[~2016-12-13 17:36 UTC|newest] Thread overview: 84+ messages / expand[flat|nested] mbox.gz Atom feed top 2016-03-08 16:39 [PATCH 00/23] Nokia N950 display support Sebastian Reichel 2016-03-08 16:39 ` [PATCH 01/23] ARM: dts: n9/n950: regulator configuration Sebastian Reichel 2016-03-08 16:39 ` [PATCH 02/23] ARM: dts: n950: add display support Sebastian Reichel 2016-03-17 12:14 ` Laurent Pinchart 2016-03-17 12:14 ` Laurent Pinchart 2016-03-17 17:49 ` Sebastian Reichel 2016-03-23 12:40 ` Jani Nikula 2016-03-23 12:40 ` Jani Nikula 2016-03-23 14:01 ` Sebastian Reichel 2016-03-24 10:03 ` Jani Nikula 2016-03-24 10:03 ` Jani Nikula 2016-03-24 14:26 ` Sebastian Reichel 2016-03-24 15:11 ` Jani Nikula 2016-03-24 15:11 ` Jani Nikula 2016-03-25 0:15 ` Sebastian Reichel 2016-04-12 20:51 ` Tony Lindgren 2016-06-21 11:01 ` Tony Lindgren 2016-06-24 0:30 ` Sebastian Reichel 2016-03-08 16:39 ` [PATCH 03/23] drm: omapdrm: dss: reset dsi module during initialization Sebastian Reichel 2016-05-10 12:07 ` Tomi Valkeinen 2016-05-10 12:07 ` Tomi Valkeinen 2016-03-08 16:39 ` [PATCH 04/23] drm: omapdrm: add DSI mapping Sebastian Reichel 2016-03-26 9:09 ` Laurent Pinchart 2016-03-26 9:09 ` Laurent Pinchart 2016-05-10 12:08 ` Tomi Valkeinen 2016-05-10 12:08 ` Tomi Valkeinen 2016-03-08 16:39 ` [PATCH 05/23] Revert "drm: omapdrm: Remove manual update display support" Sebastian Reichel 2016-03-08 16:39 ` [PATCH 06/23] drm: omapdrm: wait for pending operations before updating plane Sebastian Reichel 2016-03-26 9:20 ` Laurent Pinchart 2016-03-26 9:20 ` Laurent Pinchart 2016-03-26 15:52 ` Sebastian Reichel 2016-03-08 16:39 ` [PATCH 07/23] drm: omapdrm: crtc: switch pending variable to atomic bitset Sebastian Reichel 2016-03-26 16:30 ` Laurent Pinchart 2016-03-08 16:39 ` [PATCH 08/23] drm: omapdrm: crtc: add enabled bit to state Sebastian Reichel 2016-03-26 16:35 ` Laurent Pinchart 2016-03-08 16:39 ` [PATCH 09/23] drm: omapdrm: dss: method to get stallmode from lcd config Sebastian Reichel 2016-03-08 16:39 ` [PATCH 10/23] drm: omapdrm: crtc: detect manually updated displays Sebastian Reichel 2016-03-26 16:51 ` Laurent Pinchart 2016-03-08 16:39 ` [PATCH 11/23] include: video: omapdss: provide fifo threshold methods Sebastian Reichel 2016-03-26 16:44 ` Laurent Pinchart 2016-03-08 16:39 ` [PATCH 12/23] drm: omapdrm: plane: update fifo size on atomic update Sebastian Reichel 2016-12-13 17:35 ` Laurent Pinchart [this message] 2016-12-13 17:35 ` Laurent Pinchart 2016-12-14 8:43 ` Tomi Valkeinen 2016-12-14 8:43 ` Tomi Valkeinen 2016-12-14 9:10 ` Laurent Pinchart 2016-12-14 9:10 ` Laurent Pinchart 2016-12-14 9:14 ` Tomi Valkeinen 2016-12-14 9:14 ` Tomi Valkeinen 2016-12-14 14:03 ` Sebastian Reichel 2016-12-14 21:36 ` Laurent Pinchart 2016-12-15 8:40 ` Tomi Valkeinen 2016-12-15 8:40 ` Tomi Valkeinen 2016-03-08 16:39 ` [PATCH 13/23] drm: omapdrm: crtc: update plane fifos on lcd config change Sebastian Reichel 2016-03-26 17:00 ` Laurent Pinchart 2016-03-26 17:00 ` Laurent Pinchart 2016-03-08 16:39 ` [PATCH 14/23] drm: omapdrm: crtc: save framedone callback from dss Sebastian Reichel 2016-03-26 17:03 ` Laurent Pinchart 2016-03-26 17:03 ` Laurent Pinchart 2016-03-08 16:39 ` [PATCH 15/23] drm: omapdrm: crtc: add support for manual updated displays Sebastian Reichel 2016-03-08 16:39 ` [PATCH 16/23] drm: omapdrm: update manual displays on dirty ioctl Sebastian Reichel 2016-03-08 16:39 ` [PATCH 17/23] drm: omapdrm: panel-dsi-cm: add regulator support Sebastian Reichel 2016-03-08 16:39 ` [PATCH 18/23] drm: omapdrm: panel-dsi-cm: use threaded irq handler Sebastian Reichel 2016-05-10 12:19 ` Tomi Valkeinen 2016-05-10 12:19 ` Tomi Valkeinen 2016-03-08 16:39 ` [PATCH 19/23] drm: omapdrm: panel-dsi-cm: improve DT support Sebastian Reichel 2016-03-08 16:39 ` [PATCH 20/23] drm: omapdrm: panel-dsi-cm: add offset support Sebastian Reichel 2016-03-08 16:39 ` [PATCH 21/23] drm: omapdrm: panel-dsi-cm: block disable until update completed Sebastian Reichel 2016-03-08 16:39 ` [PATCH 22/23] drm: omapdrm: panel-dsi-cm: ratelimit debug output in update path Sebastian Reichel 2016-03-08 16:39 ` [PATCH 23/23] drm: omapdrm: panel-dsi-cm: provide timings methods for omapdrm Sebastian Reichel 2016-03-08 18:39 ` [PATCH 00/23] Nokia N950 display support Aaro Koskinen 2016-03-08 20:45 ` Sebastian Reichel 2016-03-09 7:10 ` Tomi Valkeinen 2016-03-09 7:10 ` Tomi Valkeinen 2016-03-09 14:33 ` Sebastian Reichel 2016-03-09 21:02 ` Aaro Koskinen 2016-03-09 16:19 ` Emil Velikov 2016-03-09 16:24 ` Tomi Valkeinen 2016-03-09 16:24 ` Tomi Valkeinen 2016-03-09 16:58 ` Emil Velikov 2016-03-09 16:58 ` Emil Velikov 2016-03-09 17:09 ` Sebastian Reichel 2016-03-28 12:34 ` Emil Velikov 2016-03-28 12:34 ` Emil Velikov
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=8209536.SBuD0B7HP3@avalon \ --to=laurent.pinchart@ideasonboard.com \ --cc=aaro.koskinen@iki.fi \ --cc=dri-devel@lists.freedesktop.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-omap@vger.kernel.org \ --cc=sre@kernel.org \ --cc=tomi.valkeinen@ti.com \ --cc=tony@atomide.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.