[PATCH v2 54/60] drm/omap: dss: Merge two disconnection helpers
Sebastian Reichel
sre at kernel.org
Mon Jun 11 11:59:53 UTC 2018
Hi,
On Sat, May 26, 2018 at 08:25:12PM +0300, Laurent Pinchart wrote:
> To simplify the pipeline disconnection handling merge the
> omapdss_device_disconnect() and omapdss_output_unset_device() functions.
> The device state check is now called for every device in the pipeline,
> extending this sanity check coverage.
>
> There is no need to return an error from omapdss_device_disconnect()
> when the check fails, as omapdss_output_unset_device() used to do, given
> that we can't prevent disconnection due to device unbinding (the return
> value of omapdss_output_unset_device() is never checked in the current
> code for that reason).
>
> Signed-off-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
> ---
Reviewed-by: Sebastian Reichel <sebastian.reichel at collabora.co.uk>
-- Sebastian
> drivers/gpu/drm/omapdrm/dss/base.c | 2 ++
> drivers/gpu/drm/omapdrm/dss/dpi.c | 1 -
> drivers/gpu/drm/omapdrm/dss/dsi.c | 1 -
> drivers/gpu/drm/omapdrm/dss/hdmi4.c | 1 -
> drivers/gpu/drm/omapdrm/dss/hdmi5.c | 1 -
> drivers/gpu/drm/omapdrm/dss/omapdss.h | 1 -
> drivers/gpu/drm/omapdrm/dss/output.c | 21 ---------------------
> drivers/gpu/drm/omapdrm/dss/sdi.c | 1 -
> drivers/gpu/drm/omapdrm/dss/venc.c | 1 -
> 9 files changed, 2 insertions(+), 28 deletions(-)
>
> diff --git a/drivers/gpu/drm/omapdrm/dss/base.c b/drivers/gpu/drm/omapdrm/dss/base.c
> index 3afb3d574a7b..fbb600d49ad2 100644
> --- a/drivers/gpu/drm/omapdrm/dss/base.c
> +++ b/drivers/gpu/drm/omapdrm/dss/base.c
> @@ -236,6 +236,8 @@ void omapdss_device_disconnect(struct omap_dss_device *src,
> src->dst = NULL;
> }
>
> + WARN_ON(dst->state != OMAP_DSS_DISPLAY_DISABLED);
> +
> if (dst->driver)
> dst->driver->disconnect(src, dst);
> else
> diff --git a/drivers/gpu/drm/omapdrm/dss/dpi.c b/drivers/gpu/drm/omapdrm/dss/dpi.c
> index 831de09770a3..4cf397c9300e 100644
> --- a/drivers/gpu/drm/omapdrm/dss/dpi.c
> +++ b/drivers/gpu/drm/omapdrm/dss/dpi.c
> @@ -633,7 +633,6 @@ static void dpi_disconnect(struct omap_dss_device *src,
> struct omap_dss_device *dst)
> {
> omapdss_device_disconnect(dst, dst->next);
> - omapdss_output_unset_device(dst);
>
> dss_mgr_disconnect(dst);
> }
> diff --git a/drivers/gpu/drm/omapdrm/dss/dsi.c b/drivers/gpu/drm/omapdrm/dss/dsi.c
> index 53a32e20c3bd..bc470baa4f5c 100644
> --- a/drivers/gpu/drm/omapdrm/dss/dsi.c
> +++ b/drivers/gpu/drm/omapdrm/dss/dsi.c
> @@ -4903,7 +4903,6 @@ static void dsi_disconnect(struct omap_dss_device *src,
> struct omap_dss_device *dst)
> {
> omapdss_device_disconnect(dst, dst->next);
> - omapdss_output_unset_device(dst);
>
> dss_mgr_disconnect(dst);
> }
> diff --git a/drivers/gpu/drm/omapdrm/dss/hdmi4.c b/drivers/gpu/drm/omapdrm/dss/hdmi4.c
> index 22f8b74f5bf5..6616530d5fe6 100644
> --- a/drivers/gpu/drm/omapdrm/dss/hdmi4.c
> +++ b/drivers/gpu/drm/omapdrm/dss/hdmi4.c
> @@ -450,7 +450,6 @@ static void hdmi_disconnect(struct omap_dss_device *src,
> struct omap_dss_device *dst)
> {
> omapdss_device_disconnect(dst, dst->next);
> - omapdss_output_unset_device(dst);
>
> dss_mgr_disconnect(dst);
> }
> diff --git a/drivers/gpu/drm/omapdrm/dss/hdmi5.c b/drivers/gpu/drm/omapdrm/dss/hdmi5.c
> index d8592d02a58d..f7e15edc05fc 100644
> --- a/drivers/gpu/drm/omapdrm/dss/hdmi5.c
> +++ b/drivers/gpu/drm/omapdrm/dss/hdmi5.c
> @@ -455,7 +455,6 @@ static void hdmi_disconnect(struct omap_dss_device *src,
> struct omap_dss_device *dst)
> {
> omapdss_device_disconnect(dst, dst->next);
> - omapdss_output_unset_device(dst);
>
> dss_mgr_disconnect(dst);
> }
> diff --git a/drivers/gpu/drm/omapdrm/dss/omapdss.h b/drivers/gpu/drm/omapdrm/dss/omapdss.h
> index 7add73a5479a..672761b5b017 100644
> --- a/drivers/gpu/drm/omapdrm/dss/omapdss.h
> +++ b/drivers/gpu/drm/omapdrm/dss/omapdss.h
> @@ -518,7 +518,6 @@ int omap_dss_get_num_overlays(void);
> #define for_each_dss_output(d) \
> while ((d = omapdss_device_get_next(d, false, true)) != NULL)
> int omapdss_output_validate(struct omap_dss_device *out);
> -int omapdss_output_unset_device(struct omap_dss_device *out);
>
> typedef void (*omap_dispc_isr_t) (void *arg, u32 mask);
> int omap_dispc_register_isr(omap_dispc_isr_t isr, void *arg, u32 mask);
> diff --git a/drivers/gpu/drm/omapdrm/dss/output.c b/drivers/gpu/drm/omapdrm/dss/output.c
> index be544dd48bf4..2da480be918d 100644
> --- a/drivers/gpu/drm/omapdrm/dss/output.c
> +++ b/drivers/gpu/drm/omapdrm/dss/output.c
> @@ -24,8 +24,6 @@
> #include "dss.h"
> #include "omapdss.h"
>
> -static DEFINE_MUTEX(output_lock);
> -
> int omapdss_output_validate(struct omap_dss_device *out)
> {
> if (out->next && out->output_type != out->next->type) {
> @@ -37,25 +35,6 @@ int omapdss_output_validate(struct omap_dss_device *out)
> }
> EXPORT_SYMBOL(omapdss_output_validate);
>
> -int omapdss_output_unset_device(struct omap_dss_device *out)
> -{
> - int r = 0;
> -
> - mutex_lock(&output_lock);
> -
> - if (out->dst->state != OMAP_DSS_DISPLAY_DISABLED) {
> - dev_err(out->dev,
> - "device %s is not disabled, cannot unset device\n",
> - out->dst->name);
> - r = -EINVAL;
> - }
> -
> - mutex_unlock(&output_lock);
> -
> - return r;
> -}
> -EXPORT_SYMBOL(omapdss_output_unset_device);
> -
> int dss_install_mgr_ops(struct dss_device *dss,
> const struct dss_mgr_ops *mgr_ops,
> struct omap_drm_private *priv)
> diff --git a/drivers/gpu/drm/omapdrm/dss/sdi.c b/drivers/gpu/drm/omapdrm/dss/sdi.c
> index 5c197688c0f9..09c10ba4946b 100644
> --- a/drivers/gpu/drm/omapdrm/dss/sdi.c
> +++ b/drivers/gpu/drm/omapdrm/dss/sdi.c
> @@ -271,7 +271,6 @@ static void sdi_disconnect(struct omap_dss_device *src,
> struct omap_dss_device *dst)
> {
> omapdss_device_disconnect(dst, dst->next);
> - omapdss_output_unset_device(dst);
>
> dss_mgr_disconnect(dst);
> }
> diff --git a/drivers/gpu/drm/omapdrm/dss/venc.c b/drivers/gpu/drm/omapdrm/dss/venc.c
> index 216b31cc5ec1..997c4aebd560 100644
> --- a/drivers/gpu/drm/omapdrm/dss/venc.c
> +++ b/drivers/gpu/drm/omapdrm/dss/venc.c
> @@ -713,7 +713,6 @@ static void venc_disconnect(struct omap_dss_device *src,
> struct omap_dss_device *dst)
> {
> omapdss_device_disconnect(dst, dst->next);
> - omapdss_output_unset_device(dst);
>
> dss_mgr_disconnect(dst);
> }
> --
> Regards,
>
> Laurent Pinchart
>
> _______________________________________________
> dri-devel mailing list
> dri-devel at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/dri-devel/attachments/20180611/b39db5cc/attachment.sig>
More information about the dri-devel
mailing list