|
@@ -146,6 +146,38 @@ void dss_disable_all_devices(void)
|
|
|
bus_for_each_dev(bus, NULL, NULL, dss_disable_device);
|
|
|
}
|
|
|
|
|
|
+static LIST_HEAD(panel_list);
|
|
|
+static DEFINE_MUTEX(panel_list_mutex);
|
|
|
+static int disp_num_counter;
|
|
|
+
|
|
|
+int omapdss_register_display(struct omap_dss_device *dssdev)
|
|
|
+{
|
|
|
+ struct omap_dss_driver *drv = dssdev->driver;
|
|
|
+
|
|
|
+ snprintf(dssdev->alias, sizeof(dssdev->alias),
|
|
|
+ "display%d", disp_num_counter++);
|
|
|
+
|
|
|
+ if (drv && drv->get_resolution == NULL)
|
|
|
+ drv->get_resolution = omapdss_default_get_resolution;
|
|
|
+ if (drv && drv->get_recommended_bpp == NULL)
|
|
|
+ drv->get_recommended_bpp = omapdss_default_get_recommended_bpp;
|
|
|
+ if (drv && drv->get_timings == NULL)
|
|
|
+ drv->get_timings = omapdss_default_get_timings;
|
|
|
+
|
|
|
+ mutex_lock(&panel_list_mutex);
|
|
|
+ list_add_tail(&dssdev->panel_list, &panel_list);
|
|
|
+ mutex_unlock(&panel_list_mutex);
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+EXPORT_SYMBOL(omapdss_register_display);
|
|
|
+
|
|
|
+void omapdss_unregister_display(struct omap_dss_device *dssdev)
|
|
|
+{
|
|
|
+ mutex_lock(&panel_list_mutex);
|
|
|
+ list_del(&dssdev->panel_list);
|
|
|
+ mutex_unlock(&panel_list_mutex);
|
|
|
+}
|
|
|
+EXPORT_SYMBOL(omapdss_unregister_display);
|
|
|
|
|
|
void omap_dss_get_device(struct omap_dss_device *dssdev)
|
|
|
{
|