diff options
Diffstat (limited to 'drivers/gpu/drm/shmobile')
-rw-r--r-- | drivers/gpu/drm/shmobile/shmob_drm_crtc.c | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/drivers/gpu/drm/shmobile/shmob_drm_crtc.c b/drivers/gpu/drm/shmobile/shmob_drm_crtc.c index 562f9a401cf6..0428076f1ce8 100644 --- a/drivers/gpu/drm/shmobile/shmob_drm_crtc.c +++ b/drivers/gpu/drm/shmobile/shmob_drm_crtc.c | |||
@@ -37,14 +37,21 @@ | |||
37 | * Clock management | 37 | * Clock management |
38 | */ | 38 | */ |
39 | 39 | ||
40 | static void shmob_drm_clk_on(struct shmob_drm_device *sdev) | 40 | static int shmob_drm_clk_on(struct shmob_drm_device *sdev) |
41 | { | 41 | { |
42 | if (sdev->clock) | 42 | int ret; |
43 | clk_prepare_enable(sdev->clock); | 43 | |
44 | if (sdev->clock) { | ||
45 | ret = clk_prepare_enable(sdev->clock); | ||
46 | if (ret < 0) | ||
47 | return ret; | ||
48 | } | ||
44 | #if 0 | 49 | #if 0 |
45 | if (sdev->meram_dev && sdev->meram_dev->pdev) | 50 | if (sdev->meram_dev && sdev->meram_dev->pdev) |
46 | pm_runtime_get_sync(&sdev->meram_dev->pdev->dev); | 51 | pm_runtime_get_sync(&sdev->meram_dev->pdev->dev); |
47 | #endif | 52 | #endif |
53 | |||
54 | return 0; | ||
48 | } | 55 | } |
49 | 56 | ||
50 | static void shmob_drm_clk_off(struct shmob_drm_device *sdev) | 57 | static void shmob_drm_clk_off(struct shmob_drm_device *sdev) |
@@ -161,6 +168,7 @@ static void shmob_drm_crtc_start(struct shmob_drm_crtc *scrtc) | |||
161 | struct drm_device *dev = sdev->ddev; | 168 | struct drm_device *dev = sdev->ddev; |
162 | struct drm_plane *plane; | 169 | struct drm_plane *plane; |
163 | u32 value; | 170 | u32 value; |
171 | int ret; | ||
164 | 172 | ||
165 | if (scrtc->started) | 173 | if (scrtc->started) |
166 | return; | 174 | return; |
@@ -170,7 +178,9 @@ static void shmob_drm_crtc_start(struct shmob_drm_crtc *scrtc) | |||
170 | return; | 178 | return; |
171 | 179 | ||
172 | /* Enable clocks before accessing the hardware. */ | 180 | /* Enable clocks before accessing the hardware. */ |
173 | shmob_drm_clk_on(sdev); | 181 | ret = shmob_drm_clk_on(sdev); |
182 | if (ret < 0) | ||
183 | return; | ||
174 | 184 | ||
175 | /* Reset and enable the LCDC. */ | 185 | /* Reset and enable the LCDC. */ |
176 | lcdc_write(sdev, LDCNT2R, lcdc_read(sdev, LDCNT2R) | LDCNT2R_BR); | 186 | lcdc_write(sdev, LDCNT2R, lcdc_read(sdev, LDCNT2R) | LDCNT2R_BR); |