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: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Sebastian Reichel <sebastian.reichel@collabora.co.uk> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
This commit is contained in:
parent
6a7c5a2200
commit
9184f8d94c
|
@ -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)
|
||||||
{
|
{
|
||||||
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)
|
||||||
}
|
}
|
||||||
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 {
|
||||||
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)
|
||||||
}
|
}
|
||||||
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;
|
||||||
|
|
Loading…
Reference in New Issue