aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/platform/s5p-tv
diff options
context:
space:
mode:
authorMateusz Krawczuk <m.krawczuk@partner.samsung.com>2013-09-21 10:00:48 -0400
committerMauro Carvalho Chehab <mchehab@redhat.com>2013-12-04 12:48:08 -0500
commita889c11519b425dce284c6233cfb4629f519ccac (patch)
tree23cd01ba829f5327012569a877b505b023136dd5 /drivers/media/platform/s5p-tv
parent0495d405f319171ac1cb6276019fc49a382fa295 (diff)
[media] s5p-tv: sdo: Prepare for common clock framework
Replace clk_enable() by clock_enable_prepare() and clk_disable() with clk_disable_unprepare(). clk_{prepare/unprepare} calls are required by common clock framework and this driver was missed while converting all users of the Samsung original clocks driver to its new implementation based on the common clock API. Signed-off-by: Mateusz Krawczuk <m.krawczuk@partner.samsung.com> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com> [s.nawrocki@samsung.com: edited commit description] Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media/platform/s5p-tv')
-rw-r--r--drivers/media/platform/s5p-tv/sdo_drv.c20
1 files changed, 12 insertions, 8 deletions
diff --git a/drivers/media/platform/s5p-tv/sdo_drv.c b/drivers/media/platform/s5p-tv/sdo_drv.c
index fbc6d7ae7297..5a7c3796f22e 100644
--- a/drivers/media/platform/s5p-tv/sdo_drv.c
+++ b/drivers/media/platform/s5p-tv/sdo_drv.c
@@ -208,9 +208,9 @@ static int sdo_streamon(struct sdo_device *sdev)
208 clk_get_rate(sdev->fout_vpll)); 208 clk_get_rate(sdev->fout_vpll));
209 /* enable clock in SDO */ 209 /* enable clock in SDO */
210 sdo_write_mask(sdev, SDO_CLKCON, ~0, SDO_TVOUT_CLOCK_ON); 210 sdo_write_mask(sdev, SDO_CLKCON, ~0, SDO_TVOUT_CLOCK_ON);
211 ret = clk_enable(sdev->dacphy); 211 ret = clk_prepare_enable(sdev->dacphy);
212 if (ret < 0) { 212 if (ret < 0) {
213 dev_err(sdev->dev, "clk_enable(dacphy) failed\n"); 213 dev_err(sdev->dev, "clk_prepare_enable(dacphy) failed\n");
214 goto fail; 214 goto fail;
215 } 215 }
216 /* enable DAC */ 216 /* enable DAC */
@@ -229,7 +229,7 @@ static int sdo_streamoff(struct sdo_device *sdev)
229 int tries; 229 int tries;
230 230
231 sdo_write_mask(sdev, SDO_DAC, 0, SDO_POWER_ON_DAC); 231 sdo_write_mask(sdev, SDO_DAC, 0, SDO_POWER_ON_DAC);
232 clk_disable(sdev->dacphy); 232 clk_disable_unprepare(sdev->dacphy);
233 sdo_write_mask(sdev, SDO_CLKCON, 0, SDO_TVOUT_CLOCK_ON); 233 sdo_write_mask(sdev, SDO_CLKCON, 0, SDO_TVOUT_CLOCK_ON);
234 for (tries = 100; tries; --tries) { 234 for (tries = 100; tries; --tries) {
235 if (sdo_read(sdev, SDO_CLKCON) & SDO_TVOUT_CLOCK_READY) 235 if (sdo_read(sdev, SDO_CLKCON) & SDO_TVOUT_CLOCK_READY)
@@ -273,7 +273,7 @@ static int sdo_runtime_suspend(struct device *dev)
273 dev_info(dev, "suspend\n"); 273 dev_info(dev, "suspend\n");
274 regulator_disable(sdev->vdet); 274 regulator_disable(sdev->vdet);
275 regulator_disable(sdev->vdac); 275 regulator_disable(sdev->vdac);
276 clk_disable(sdev->sclk_dac); 276 clk_disable_unprepare(sdev->sclk_dac);
277 return 0; 277 return 0;
278} 278}
279 279
@@ -285,7 +285,7 @@ static int sdo_runtime_resume(struct device *dev)
285 285
286 dev_info(dev, "resume\n"); 286 dev_info(dev, "resume\n");
287 287
288 ret = clk_enable(sdev->sclk_dac); 288 ret = clk_prepare_enable(sdev->sclk_dac);
289 if (ret < 0) 289 if (ret < 0)
290 return ret; 290 return ret;
291 291
@@ -318,7 +318,7 @@ static int sdo_runtime_resume(struct device *dev)
318vdac_r_dis: 318vdac_r_dis:
319 regulator_disable(sdev->vdac); 319 regulator_disable(sdev->vdac);
320dac_clk_dis: 320dac_clk_dis:
321 clk_disable(sdev->sclk_dac); 321 clk_disable_unprepare(sdev->sclk_dac);
322 return ret; 322 return ret;
323} 323}
324 324
@@ -424,7 +424,11 @@ static int sdo_probe(struct platform_device *pdev)
424 } 424 }
425 425
426 /* enable gate for dac clock, because mixer uses it */ 426 /* enable gate for dac clock, because mixer uses it */
427 clk_enable(sdev->dac); 427 ret = clk_prepare_enable(sdev->dac);
428 if (ret < 0) {
429 dev_err(dev, "clk_prepare_enable(dac) failed\n");
430 goto fail_fout_vpll;
431 }
428 432
429 /* configure power management */ 433 /* configure power management */
430 pm_runtime_enable(dev); 434 pm_runtime_enable(dev);
@@ -463,7 +467,7 @@ static int sdo_remove(struct platform_device *pdev)
463 struct sdo_device *sdev = sd_to_sdev(sd); 467 struct sdo_device *sdev = sd_to_sdev(sd);
464 468
465 pm_runtime_disable(&pdev->dev); 469 pm_runtime_disable(&pdev->dev);
466 clk_disable(sdev->dac); 470 clk_disable_unprepare(sdev->dac);
467 clk_put(sdev->fout_vpll); 471 clk_put(sdev->fout_vpll);
468 clk_put(sdev->dacphy); 472 clk_put(sdev->dacphy);
469 clk_put(sdev->dac); 473 clk_put(sdev->dac);