Commit 9184f8d9 authored by Laurent Pinchart's avatar Laurent Pinchart Committed by Tomi Valkeinen

drm/omap: dss: Create and use omapdss_device_is_registered()

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: default avatarLaurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: default avatarSebastian Reichel <sebastian.reichel@collabora.co.uk>
Signed-off-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
parent 6a7c5a22
...@@ -71,6 +71,24 @@ void omapdss_device_unregister(struct omap_dss_device *dssdev) ...@@ -71,6 +71,24 @@ void omapdss_device_unregister(struct omap_dss_device *dssdev)
mutex_unlock(&omapdss_devices_lock); 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 * Components Handling
*/ */
...@@ -157,9 +175,7 @@ static bool omapdss_component_is_loaded(struct omapdss_comp_node *comp) ...@@ -157,9 +175,7 @@ static bool omapdss_component_is_loaded(struct omapdss_comp_node *comp)
{ {
if (comp->dss_core_component) if (comp->dss_core_component)
return true; return true;
if (omapdss_component_is_display(comp->node)) if (omapdss_device_is_registered(comp->node))
return true;
if (omapdss_component_is_output(comp->node))
return true; return true;
return false; return false;
......
...@@ -72,24 +72,6 @@ void omapdss_unregister_display(struct omap_dss_device *dssdev) ...@@ -72,24 +72,6 @@ void omapdss_unregister_display(struct omap_dss_device *dssdev)
} }
EXPORT_SYMBOL(omapdss_unregister_display); 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) struct omap_dss_device *omap_dss_get_device(struct omap_dss_device *dssdev)
{ {
if (!try_module_get(dssdev->owner)) if (!try_module_get(dssdev->owner))
......
...@@ -737,9 +737,6 @@ struct dispc_ops { ...@@ -737,9 +737,6 @@ struct dispc_ops {
struct dispc_device *dispc_get_dispc(struct dss_device *dss); struct dispc_device *dispc_get_dispc(struct dss_device *dss);
const struct dispc_ops *dispc_get_ops(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); bool omapdss_stack_is_ready(void);
void omapdss_gather_components(struct device *dev); void omapdss_gather_components(struct device *dev);
......
...@@ -109,19 +109,6 @@ void omapdss_unregister_output(struct omap_dss_device *out) ...@@ -109,19 +109,6 @@ void omapdss_unregister_output(struct omap_dss_device *out)
} }
EXPORT_SYMBOL(omapdss_unregister_output); 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 *omap_dss_get_output(enum omap_dss_output_id id)
{ {
struct omap_dss_device *out; struct omap_dss_device *out;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment