drm/omap: dss: Functions to check components in the display/output list
authorPeter Ujfalusi <peter.ujfalusi@ti.com>
Mon, 2 May 2016 11:55:38 +0000 (14:55 +0300)
committerTomi Valkeinen <tomi.valkeinen@ti.com>
Mon, 3 Apr 2017 09:36:40 +0000 (12:36 +0300)
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>
drivers/gpu/drm/omapdrm/dss/display.c
drivers/gpu/drm/omapdrm/dss/omapdss.h
drivers/gpu/drm/omapdrm/dss/output.c

index e567ff68b216f0795c271a6adca248eac8b82c94..94c012e0584b5308bdb023f5a8d392255ebbd053 100644 (file)
@@ -132,6 +132,24 @@ 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))
index 4545f1824e66f9d5ccb73fc23deed50ca0167887..7e1feb935137177191f90f1270bd64b5b9cffb76 100644 (file)
@@ -936,4 +936,7 @@ struct dispc_ops {
 void dispc_set_ops(const struct dispc_ops *o);
 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 */
index 2b999dc48621ec64e8a9ea1a6abb4e663627b52c..655c5d73eac9ec7b2ce936182f5603d90c0d3476 100644 (file)
@@ -107,6 +107,19 @@ 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, 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;