summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJassi Brar <jaswinder.singh@linaro.org>2011-06-22 20:40:13 +0100
committerAndy Green <andy.green@linaro.org>2011-06-22 20:40:13 +0100
commit75ed5b7bf50c936a953ba1aff11dc2a42f2c311a (patch)
treeac3c970c635c9508a68d348564fa2622a45e4ea2
parentc6a9c44935fe7ed980fefd31f1976d32977af5ec (diff)
Subject: [PATCH 08/19] 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> Signed-off-by: Jassi Brar <jaswinder.singh@linaro.org>
-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
-rw-r--r--include/video/omapdss.h4
6 files changed, 10 insertions, 9 deletions
diff --git a/drivers/video/omap2/displays/panel-generic-dpi.c b/drivers/video/omap2/displays/panel-generic-dpi.c
index f9a37324bd7..8529980bcc5 100644
--- a/drivers/video/omap2/displays/panel-generic-dpi.c
+++ b/drivers/video/omap2/displays/panel-generic-dpi.c
@@ -489,7 +489,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;
@@ -497,7 +498,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 b73f96ee066..ea921b4c538 100644
--- a/drivers/video/omap2/dss/display.c
+++ b/drivers/video/omap2/dss/display.c
@@ -341,7 +341,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 42889a1cfda..3d8752619ba 100644
--- a/drivers/video/omap2/dss/dss.h
+++ b/drivers/video/omap2/dss/dss.h
@@ -508,7 +508,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 ed7f1d55116..dd68aac0601 100644
--- a/drivers/video/omap2/dss/hdmi.c
+++ b/drivers/video/omap2/dss/hdmi.c
@@ -1196,7 +1196,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 7c787a40bb7..0bac74dc9a4 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)
diff --git a/include/video/omapdss.h b/include/video/omapdss.h
index 963a6ca3f81..7b43798c298 100644
--- a/include/video/omapdss.h
+++ b/include/video/omapdss.h
@@ -579,7 +579,7 @@ struct omap_dss_driver {
* For displays like LCD panels, this means is the display present
* on the board.
*/
- bool (*is_detected)(struct omap_dss_device *dssdev);
+ bool (*is_detected)(struct omap_dss_device *dssdev, bool force);
};
int omap_dss_register_driver(struct omap_dss_driver *);
@@ -622,7 +622,7 @@ void omapdss_default_get_timings(struct omap_dss_device *dssdev,
struct omap_video_timings *timings);
int omapdss_default_check_timings(struct omap_dss_device *dssdev,
struct omap_video_timings *timings);
-bool omapdss_default_is_detected(struct omap_dss_device *dssdev);
+bool omapdss_default_is_detected(struct omap_dss_device *dssdev, bool force);
void omapdss_default_get_resolution(struct omap_dss_device *dssdev,
u16 *xres, u16 *yres);
int omapdss_default_get_recommended_bpp(struct omap_dss_device *dssdev);