diff options
author | Olof Johansson <olof@lixom.net> | 2012-03-13 19:08:06 -0400 |
---|---|---|
committer | Olof Johansson <olof@lixom.net> | 2012-03-13 19:08:06 -0400 |
commit | e3643b77de143c5548ec93abd8aa68f4123295ea (patch) | |
tree | 41981957bc93e8211fe55cd04b7cac47e74bc770 /drivers/video/omap2 | |
parent | 86ca5b6fef2bf1aa77a62f29d844400e4fed8dde (diff) | |
parent | 44b2cef5ae6da48523fa634230ca66107110a7dd (diff) |
Merge branch 'next/cleanup-exynos-clock' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung into next/cleanup
* 'next/cleanup-exynos-clock' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung:
ARM: EXYNOS: Add clock register addresses for EXYNOS4X12 bus devfreq driver
ARM: EXYNOS: add clock registers for exynos4x12-cpufreq
PM / devfreq: update the name of EXYNOS clock registers that were omitted
PM / devfreq: update the name of EXYNOS clock register
ARM: EXYNOS: change the prefix S5P_ to EXYNOS4_ for clock
ARM: EXYNOS: use static declaration on regarding clock
ARM: EXYNOS: replace clock.c for other new EXYNOS SoCs
(includes an update to v3.3-rc6)
Diffstat (limited to 'drivers/video/omap2')
-rw-r--r-- | drivers/video/omap2/displays/Kconfig | 2 | ||||
-rw-r--r-- | drivers/video/omap2/dss/apply.c | 6 | ||||
-rw-r--r-- | drivers/video/omap2/dss/hdmi.c | 24 | ||||
-rw-r--r-- | drivers/video/omap2/dss/ti_hdmi_4xxx_ip.c | 9 |
4 files changed, 31 insertions, 10 deletions
diff --git a/drivers/video/omap2/displays/Kconfig b/drivers/video/omap2/displays/Kconfig index 74d29b552901..408a9927be92 100644 --- a/drivers/video/omap2/displays/Kconfig +++ b/drivers/video/omap2/displays/Kconfig | |||
@@ -12,7 +12,7 @@ config PANEL_GENERIC_DPI | |||
12 | 12 | ||
13 | config PANEL_DVI | 13 | config PANEL_DVI |
14 | tristate "DVI output" | 14 | tristate "DVI output" |
15 | depends on OMAP2_DSS_DPI | 15 | depends on OMAP2_DSS_DPI && I2C |
16 | help | 16 | help |
17 | Driver for external monitors, connected via DVI. The driver uses i2c | 17 | Driver for external monitors, connected via DVI. The driver uses i2c |
18 | to read EDID information from the monitor. | 18 | to read EDID information from the monitor. |
diff --git a/drivers/video/omap2/dss/apply.c b/drivers/video/omap2/dss/apply.c index 052dc874cd3d..87b3e25294cf 100644 --- a/drivers/video/omap2/dss/apply.c +++ b/drivers/video/omap2/dss/apply.c | |||
@@ -1276,6 +1276,9 @@ int dss_ovl_enable(struct omap_overlay *ovl) | |||
1276 | 1276 | ||
1277 | spin_unlock_irqrestore(&data_lock, flags); | 1277 | spin_unlock_irqrestore(&data_lock, flags); |
1278 | 1278 | ||
1279 | /* wait for overlay to be enabled */ | ||
1280 | wait_pending_extra_info_updates(); | ||
1281 | |||
1279 | mutex_unlock(&apply_lock); | 1282 | mutex_unlock(&apply_lock); |
1280 | 1283 | ||
1281 | return 0; | 1284 | return 0; |
@@ -1313,6 +1316,9 @@ int dss_ovl_disable(struct omap_overlay *ovl) | |||
1313 | 1316 | ||
1314 | spin_unlock_irqrestore(&data_lock, flags); | 1317 | spin_unlock_irqrestore(&data_lock, flags); |
1315 | 1318 | ||
1319 | /* wait for the overlay to be disabled */ | ||
1320 | wait_pending_extra_info_updates(); | ||
1321 | |||
1316 | mutex_unlock(&apply_lock); | 1322 | mutex_unlock(&apply_lock); |
1317 | 1323 | ||
1318 | return 0; | 1324 | return 0; |
diff --git a/drivers/video/omap2/dss/hdmi.c b/drivers/video/omap2/dss/hdmi.c index d7aa3b056529..a36b934b2db4 100644 --- a/drivers/video/omap2/dss/hdmi.c +++ b/drivers/video/omap2/dss/hdmi.c | |||
@@ -165,9 +165,25 @@ static int hdmi_runtime_get(void) | |||
165 | 165 | ||
166 | DSSDBG("hdmi_runtime_get\n"); | 166 | DSSDBG("hdmi_runtime_get\n"); |
167 | 167 | ||
168 | /* | ||
169 | * HACK: Add dss_runtime_get() to ensure DSS clock domain is enabled. | ||
170 | * This should be removed later. | ||
171 | */ | ||
172 | r = dss_runtime_get(); | ||
173 | if (r < 0) | ||
174 | goto err_get_dss; | ||
175 | |||
168 | r = pm_runtime_get_sync(&hdmi.pdev->dev); | 176 | r = pm_runtime_get_sync(&hdmi.pdev->dev); |
169 | WARN_ON(r < 0); | 177 | WARN_ON(r < 0); |
170 | return r < 0 ? r : 0; | 178 | if (r < 0) |
179 | goto err_get_hdmi; | ||
180 | |||
181 | return 0; | ||
182 | |||
183 | err_get_hdmi: | ||
184 | dss_runtime_put(); | ||
185 | err_get_dss: | ||
186 | return r; | ||
171 | } | 187 | } |
172 | 188 | ||
173 | static void hdmi_runtime_put(void) | 189 | static void hdmi_runtime_put(void) |
@@ -178,6 +194,12 @@ static void hdmi_runtime_put(void) | |||
178 | 194 | ||
179 | r = pm_runtime_put_sync(&hdmi.pdev->dev); | 195 | r = pm_runtime_put_sync(&hdmi.pdev->dev); |
180 | WARN_ON(r < 0); | 196 | WARN_ON(r < 0); |
197 | |||
198 | /* | ||
199 | * HACK: This is added to complement the dss_runtime_get() call in | ||
200 | * hdmi_runtime_get(). This should be removed later. | ||
201 | */ | ||
202 | dss_runtime_put(); | ||
181 | } | 203 | } |
182 | 204 | ||
183 | int hdmi_init_display(struct omap_dss_device *dssdev) | 205 | int hdmi_init_display(struct omap_dss_device *dssdev) |
diff --git a/drivers/video/omap2/dss/ti_hdmi_4xxx_ip.c b/drivers/video/omap2/dss/ti_hdmi_4xxx_ip.c index 2d72334ca3da..6847a478b459 100644 --- a/drivers/video/omap2/dss/ti_hdmi_4xxx_ip.c +++ b/drivers/video/omap2/dss/ti_hdmi_4xxx_ip.c | |||
@@ -479,14 +479,7 @@ int ti_hdmi_4xxx_read_edid(struct hdmi_ip_data *ip_data, | |||
479 | 479 | ||
480 | bool ti_hdmi_4xxx_detect(struct hdmi_ip_data *ip_data) | 480 | bool ti_hdmi_4xxx_detect(struct hdmi_ip_data *ip_data) |
481 | { | 481 | { |
482 | int r; | 482 | return gpio_get_value(ip_data->hpd_gpio); |
483 | |||
484 | void __iomem *base = hdmi_core_sys_base(ip_data); | ||
485 | |||
486 | /* HPD */ | ||
487 | r = REG_GET(base, HDMI_CORE_SYS_SYS_STAT, 1, 1); | ||
488 | |||
489 | return r == 1; | ||
490 | } | 483 | } |
491 | 484 | ||
492 | static void hdmi_core_init(struct hdmi_core_video_config *video_cfg, | 485 | static void hdmi_core_init(struct hdmi_core_video_config *video_cfg, |