diff options
Diffstat (limited to 'drivers/video/omap2/dss/hdmi.c')
| -rw-r--r-- | drivers/video/omap2/dss/hdmi.c | 24 |
1 files changed, 23 insertions, 1 deletions
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) |
