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@ideasonboard.com
Reviewed-by: Sebastian Reichel sebastian.reichel@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@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel