diff options
author | Ricardo Salveti de Araujo <ricardo.salveti@canonical.com> | 2011-05-05 02:03:28 -0300 |
---|---|---|
committer | Ricardo Salveti de Araujo <ricardo.salveti@canonical.com> | 2011-05-16 22:52:11 -0300 |
commit | 3e4bac2ebb2c84a4c819a024dd9a3ad175ecde32 (patch) | |
tree | 0a9b5f72da6936d8b9b93ee248539627bafffb23 | |
parent | 1dfd6553195352c741a50a0a0b3b5d343547c758 (diff) |
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>
-rw-r--r-- | arch/arm/plat-omap/include/plat/display.h | 4 | ||||
-rw-r--r-- | drivers/gpu/drm/omap/omap_connector.c | 2 | ||||
-rw-r--r-- | drivers/video/omap2/displays/panel-generic-dpi.c | 5 | ||||
-rw-r--r-- | drivers/video/omap2/dss/display.c | 2 | ||||
-rw-r--r-- | drivers/video/omap2/dss/dss.h | 2 | ||||
-rw-r--r-- | drivers/video/omap2/dss/hdmi.c | 2 | ||||
-rw-r--r-- | drivers/video/omap2/dss/hdmi_omap4_panel.c | 4 |
7 files changed, 11 insertions, 10 deletions
diff --git a/arch/arm/plat-omap/include/plat/display.h b/arch/arm/plat-omap/include/plat/display.h index 9f30ab8d1e1..4bb60ed18ef 100644 --- a/arch/arm/plat-omap/include/plat/display.h +++ b/arch/arm/plat-omap/include/plat/display.h @@ -530,7 +530,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 *); @@ -576,7 +576,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); 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) |