[PATCH v2 16/60] drm/omap: dss: Create and use omapdss_device_is_registered()
Sebastian Reichel
sre at kernel.org
Sun Jun 10 19:04:38 UTC 2018
Hi,
On Sat, May 26, 2018 at 08:24:34PM +0300, Laurent Pinchart wrote:
> The omapdss_component_is_loaded() function test whether a component is
> loaded by checking whether it is present in the displays list or the
> outputs list. Simplify the implementation by checking for the component
> in the global omap_dss_device list.
>
> 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 | 22 +++++++++++++++++++---
> drivers/gpu/drm/omapdrm/dss/display.c | 18 ------------------
> drivers/gpu/drm/omapdrm/dss/omapdss.h | 3 ---
> drivers/gpu/drm/omapdrm/dss/output.c | 13 -------------
> 4 files changed, 19 insertions(+), 37 deletions(-)
>
> diff --git a/drivers/gpu/drm/omapdrm/dss/base.c b/drivers/gpu/drm/omapdrm/dss/base.c
> index 18b72d7c717a..63fe0a717884 100644
> --- a/drivers/gpu/drm/omapdrm/dss/base.c
> +++ b/drivers/gpu/drm/omapdrm/dss/base.c
> @@ -71,6 +71,24 @@ void omapdss_device_unregister(struct omap_dss_device *dssdev)
> mutex_unlock(&omapdss_devices_lock);
> }
>
> +static bool omapdss_device_is_registered(struct device_node *node)
> +{
> + struct omap_dss_device *dssdev;
> + bool found = false;
> +
> + mutex_lock(&omapdss_devices_lock);
> +
> + list_for_each_entry(dssdev, &omapdss_devices_list, list) {
> + if (dssdev->dev->of_node == node) {
> + found = true;
> + break;
> + }
> + }
> +
> + mutex_unlock(&omapdss_devices_lock);
> + return found;
> +}
> +
> /* -----------------------------------------------------------------------------
> * Components Handling
> */
> @@ -157,9 +175,7 @@ static bool omapdss_component_is_loaded(struct omapdss_comp_node *comp)
> {
> if (comp->dss_core_component)
> return true;
> - if (omapdss_component_is_display(comp->node))
> - return true;
> - if (omapdss_component_is_output(comp->node))
> + if (omapdss_device_is_registered(comp->node))
> return true;
>
> return false;
> diff --git a/drivers/gpu/drm/omapdrm/dss/display.c b/drivers/gpu/drm/omapdrm/dss/display.c
> index eacbbf45f737..383512c8a466 100644
> --- a/drivers/gpu/drm/omapdrm/dss/display.c
> +++ b/drivers/gpu/drm/omapdrm/dss/display.c
> @@ -72,24 +72,6 @@ void omapdss_unregister_display(struct omap_dss_device *dssdev)
> }
> EXPORT_SYMBOL(omapdss_unregister_display);
>
> -bool omapdss_component_is_display(struct device_node *node)
> -{
> - struct omap_dss_device *dssdev;
> - bool found = false;
> -
> - mutex_lock(&panel_list_mutex);
> - list_for_each_entry(dssdev, &panel_list, panel_list) {
> - if (dssdev->dev->of_node == node) {
> - found = true;
> - goto out;
> - }
> - }
> -out:
> - mutex_unlock(&panel_list_mutex);
> - return found;
> -}
> -EXPORT_SYMBOL(omapdss_component_is_display);
> -
> struct omap_dss_device *omap_dss_get_device(struct omap_dss_device *dssdev)
> {
> if (!try_module_get(dssdev->owner))
> diff --git a/drivers/gpu/drm/omapdrm/dss/omapdss.h b/drivers/gpu/drm/omapdrm/dss/omapdss.h
> index e029613509a1..1ccf0c67d308 100644
> --- a/drivers/gpu/drm/omapdrm/dss/omapdss.h
> +++ b/drivers/gpu/drm/omapdrm/dss/omapdss.h
> @@ -737,9 +737,6 @@ struct dispc_ops {
> struct dispc_device *dispc_get_dispc(struct dss_device *dss);
> const struct dispc_ops *dispc_get_ops(struct dss_device *dss);
>
> -bool omapdss_component_is_display(struct device_node *node);
> -bool omapdss_component_is_output(struct device_node *node);
> -
> bool omapdss_stack_is_ready(void);
> void omapdss_gather_components(struct device *dev);
>
> diff --git a/drivers/gpu/drm/omapdrm/dss/output.c b/drivers/gpu/drm/omapdrm/dss/output.c
> index 1a2d24906edd..7f18153a1bde 100644
> --- a/drivers/gpu/drm/omapdrm/dss/output.c
> +++ b/drivers/gpu/drm/omapdrm/dss/output.c
> @@ -109,19 +109,6 @@ void omapdss_unregister_output(struct omap_dss_device *out)
> }
> EXPORT_SYMBOL(omapdss_unregister_output);
>
> -bool omapdss_component_is_output(struct device_node *node)
> -{
> - struct omap_dss_device *out;
> -
> - list_for_each_entry(out, &output_list, output_list) {
> - if (out->dev->of_node == node)
> - return true;
> - }
> -
> - return false;
> -}
> -EXPORT_SYMBOL(omapdss_component_is_output);
> -
> struct omap_dss_device *omap_dss_get_output(enum omap_dss_output_id id)
> {
> struct omap_dss_device *out;
> --
> 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/20180610/03a8df40/attachment.sig>
More information about the dri-devel
mailing list