aboutsummaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorRicardo Salveti de Araujo <ricardo.salveti@canonical.com>2011-05-05 02:03:28 -0300
committerRicardo Salveti de Araujo <ricardo.salveti@canonical.com>2011-05-16 22:52:11 -0300
commit3e4bac2ebb2c84a4c819a024dd9a3ad175ecde32 (patch)
tree0a9b5f72da6936d8b9b93ee248539627bafffb23 /drivers
parent1dfd6553195352c741a50a0a0b3b5d343547c758 (diff)
downloadlinux-linaro-android-3e4bac2ebb2c84a4c819a024dd9a3ad175ecde32.tar.gz
OMAP: DSS2: adding force argument to is_detected()
Force is available from (*detect) at drm_connector_funcs, and can be used by the driver to avoid expensive, destructive operations during automated probing. Signed-off-by: Ricardo Salveti de Araujo <ricardo.salveti@canonical.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/gpu/drm/omap/omap_connector.c2
-rw-r--r--drivers/video/omap2/displays/panel-generic-dpi.c5
-rw-r--r--drivers/video/omap2/dss/display.c2
-rw-r--r--drivers/video/omap2/dss/dss.h2
-rw-r--r--drivers/video/omap2/dss/hdmi.c2
-rw-r--r--drivers/video/omap2/dss/hdmi_omap4_panel.c4
6 files changed, 9 insertions, 8 deletions
diff --git a/drivers/gpu/drm/omap/omap_connector.c b/drivers/gpu/drm/omap/omap_connector.c
index aefafd79a1f..7eaa04c3698 100644
--- a/drivers/gpu/drm/omap/omap_connector.c
+++ b/drivers/gpu/drm/omap/omap_connector.c
@@ -93,7 +93,7 @@ enum drm_connector_status omap_connector_detect(
struct omap_dss_driver *dssdrv = dssdev->driver;
enum drm_connector_status ret;
- if (dssdrv->is_detected(dssdev)) {
+ if (dssdrv->is_detected(dssdev, force)) {
ret = connector_status_connected;
} else {
ret = connector_status_disconnected;
diff --git a/drivers/video/omap2/displays/panel-generic-dpi.c b/drivers/video/omap2/displays/panel-generic-dpi.c
index e5691dd55d4..54f1884ff5b 100644
--- a/drivers/video/omap2/displays/panel-generic-dpi.c
+++ b/drivers/video/omap2/displays/panel-generic-dpi.c
@@ -438,7 +438,8 @@ out:
return -EINVAL;
}
-static bool generic_dpi_panel_is_detected(struct omap_dss_device *dssdev)
+static bool generic_dpi_panel_is_detected(struct omap_dss_device *dssdev,
+ bool force)
{
struct panel_generic_dpi_data *panel_data = get_panel_data(dssdev);
struct i2c_adapter *adapter;
@@ -446,7 +447,7 @@ static bool generic_dpi_panel_is_detected(struct omap_dss_device *dssdev)
adapter = i2c_get_adapter(panel_data->i2c_bus_num);
if (!adapter) {
- return omapdss_default_is_detected(dssdev);
+ return omapdss_default_is_detected(dssdev, force);
}
return (do_probe_ddc_edid(adapter, &out, 0, 1) == 0);
diff --git a/drivers/video/omap2/dss/display.c b/drivers/video/omap2/dss/display.c
index b1466d8d388..c909d3a8bb3 100644
--- a/drivers/video/omap2/dss/display.c
+++ b/drivers/video/omap2/dss/display.c
@@ -327,7 +327,7 @@ int omapdss_default_check_timings(struct omap_dss_device *dssdev,
}
EXPORT_SYMBOL(omapdss_default_check_timings);
-bool omapdss_default_is_detected(struct omap_dss_device *dssdev)
+bool omapdss_default_is_detected(struct omap_dss_device *dssdev, bool force)
{
if (dssdev->state == OMAP_DSS_DISPLAY_SUSPENDED) {
/* show resume info for suspended displays */
diff --git a/drivers/video/omap2/dss/dss.h b/drivers/video/omap2/dss/dss.h
index 8c32717b73c..a346c4b068b 100644
--- a/drivers/video/omap2/dss/dss.h
+++ b/drivers/video/omap2/dss/dss.h
@@ -483,7 +483,7 @@ void omapdss_hdmi_display_disable(struct omap_dss_device *dssdev);
void omapdss_hdmi_display_set_timing(struct omap_dss_device *dssdev);
int omapdss_hdmi_display_check_timing(struct omap_dss_device *dssdev,
struct omap_video_timings *timings);
-bool omapdss_hdmi_is_detected(struct omap_dss_device *dssdev);
+bool omapdss_hdmi_is_detected(struct omap_dss_device *dssdev, bool force);
int omapdss_hdmi_get_edid(struct omap_dss_device *dssdev, u8 *buf, int len);
int hdmi_panel_init(void);
void hdmi_panel_exit(void);
diff --git a/drivers/video/omap2/dss/hdmi.c b/drivers/video/omap2/dss/hdmi.c
index 13fcb99ff58..87d48ece233 100644
--- a/drivers/video/omap2/dss/hdmi.c
+++ b/drivers/video/omap2/dss/hdmi.c
@@ -1100,7 +1100,7 @@ static void hdmi_power_off(struct omap_dss_device *dssdev)
hdmi.edid_set = 0;
}
-bool omapdss_hdmi_is_detected(struct omap_dss_device *dssdev)
+bool omapdss_hdmi_is_detected(struct omap_dss_device *dssdev, bool force)
{
u32 r;
diff --git a/drivers/video/omap2/dss/hdmi_omap4_panel.c b/drivers/video/omap2/dss/hdmi_omap4_panel.c
index 9ab7f81796a..0bdca3baad4 100644
--- a/drivers/video/omap2/dss/hdmi_omap4_panel.c
+++ b/drivers/video/omap2/dss/hdmi_omap4_panel.c
@@ -143,9 +143,9 @@ err:
return r;
}
-static bool hdmi_panel_is_detected(struct omap_dss_device *dssdev)
+static bool hdmi_panel_is_detected(struct omap_dss_device *dssdev, bool force)
{
- return omapdss_hdmi_is_detected(dssdev);
+ return omapdss_hdmi_is_detected(dssdev, force);
}
static int hdmi_get_edid(struct omap_dss_device *dssdev, u8 *buf, int len)