drm/omap: dss: Functions to check components in the display/output list

The functions can be used to check a component (by it's of_node) if it is
part of the omapdss display or output list. If the component is found, it
means that the driver is loaded.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
This commit is contained in:
Peter Ujfalusi 2016-05-02 14:55:38 +03:00 committed by Tomi Valkeinen
parent be2d68c69e
commit 7c79e8d67f
3 changed files with 34 additions and 0 deletions

View File

@ -132,6 +132,24 @@ 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))

View File

@ -936,4 +936,7 @@ struct dispc_ops {
void dispc_set_ops(const struct dispc_ops *o); void dispc_set_ops(const struct dispc_ops *o);
const struct dispc_ops *dispc_get_ops(void); const struct dispc_ops *dispc_get_ops(void);
bool omapdss_component_is_display(struct device_node *node);
bool omapdss_component_is_output(struct device_node *node);
#endif /* __OMAP_DRM_DSS_H */ #endif /* __OMAP_DRM_DSS_H */

View File

@ -107,6 +107,19 @@ 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, 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;