aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSylwester Nawrocki <s.nawrocki@samsung.com>2012-09-24 05:00:37 -0400
committerMauro Carvalho Chehab <mchehab@redhat.com>2013-01-06 06:33:34 -0500
commitcf48f56c27ecfe94fbea363db6e8e0bacbd525ed (patch)
treec6d2aab837332b754915907082c30fc7a4ac6aed
parent740ad921f8a72ed76d20c88225a2fa71e8290904 (diff)
[media] s5p-tv: Fix return value in sdo_probe() on error paths
Use proper return value test for clk_get() and devm_regulator_get() functions and propagate any errors from the clock and the regulator subsystem to the driver core. In two cases a proper error code is now returned rather than 0. Reported-by: Peter Senna Tschudin <peter.senna@gmail.com> Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
-rw-r--r--drivers/media/platform/s5p-tv/sdo_drv.c25
1 files changed, 14 insertions, 11 deletions
diff --git a/drivers/media/platform/s5p-tv/sdo_drv.c b/drivers/media/platform/s5p-tv/sdo_drv.c
index ad68bbed014e..2d1a65488f2d 100644
--- a/drivers/media/platform/s5p-tv/sdo_drv.c
+++ b/drivers/media/platform/s5p-tv/sdo_drv.c
@@ -341,47 +341,50 @@ static int __devinit sdo_probe(struct platform_device *pdev)
341 341
342 /* acquire clocks */ 342 /* acquire clocks */
343 sdev->sclk_dac = clk_get(dev, "sclk_dac"); 343 sdev->sclk_dac = clk_get(dev, "sclk_dac");
344 if (IS_ERR_OR_NULL(sdev->sclk_dac)) { 344 if (IS_ERR(sdev->sclk_dac)) {
345 dev_err(dev, "failed to get clock 'sclk_dac'\n"); 345 dev_err(dev, "failed to get clock 'sclk_dac'\n");
346 ret = -ENXIO; 346 ret = PTR_ERR(sdev->sclk_dac);
347 goto fail; 347 goto fail;
348 } 348 }
349 sdev->dac = clk_get(dev, "dac"); 349 sdev->dac = clk_get(dev, "dac");
350 if (IS_ERR_OR_NULL(sdev->dac)) { 350 if (IS_ERR(sdev->dac)) {
351 dev_err(dev, "failed to get clock 'dac'\n"); 351 dev_err(dev, "failed to get clock 'dac'\n");
352 ret = -ENXIO; 352 ret = PTR_ERR(sdev->dac);
353 goto fail_sclk_dac; 353 goto fail_sclk_dac;
354 } 354 }
355 sdev->dacphy = clk_get(dev, "dacphy"); 355 sdev->dacphy = clk_get(dev, "dacphy");
356 if (IS_ERR_OR_NULL(sdev->dacphy)) { 356 if (IS_ERR(sdev->dacphy)) {
357 dev_err(dev, "failed to get clock 'dacphy'\n"); 357 dev_err(dev, "failed to get clock 'dacphy'\n");
358 ret = -ENXIO; 358 ret = PTR_ERR(sdev->dacphy);
359 goto fail_dac; 359 goto fail_dac;
360 } 360 }
361 sclk_vpll = clk_get(dev, "sclk_vpll"); 361 sclk_vpll = clk_get(dev, "sclk_vpll");
362 if (IS_ERR_OR_NULL(sclk_vpll)) { 362 if (IS_ERR(sclk_vpll)) {
363 dev_err(dev, "failed to get clock 'sclk_vpll'\n"); 363 dev_err(dev, "failed to get clock 'sclk_vpll'\n");
364 ret = -ENXIO; 364 ret = PTR_ERR(sclk_vpll);
365 goto fail_dacphy; 365 goto fail_dacphy;
366 } 366 }
367 clk_set_parent(sdev->sclk_dac, sclk_vpll); 367 clk_set_parent(sdev->sclk_dac, sclk_vpll);
368 clk_put(sclk_vpll); 368 clk_put(sclk_vpll);
369 sdev->fout_vpll = clk_get(dev, "fout_vpll"); 369 sdev->fout_vpll = clk_get(dev, "fout_vpll");
370 if (IS_ERR_OR_NULL(sdev->fout_vpll)) { 370 if (IS_ERR(sdev->fout_vpll)) {
371 dev_err(dev, "failed to get clock 'fout_vpll'\n"); 371 dev_err(dev, "failed to get clock 'fout_vpll'\n");
372 ret = PTR_ERR(sdev->fout_vpll);
372 goto fail_dacphy; 373 goto fail_dacphy;
373 } 374 }
374 dev_info(dev, "fout_vpll.rate = %lu\n", clk_get_rate(sclk_vpll)); 375 dev_info(dev, "fout_vpll.rate = %lu\n", clk_get_rate(sclk_vpll));
375 376
376 /* acquire regulator */ 377 /* acquire regulator */
377 sdev->vdac = devm_regulator_get(dev, "vdd33a_dac"); 378 sdev->vdac = devm_regulator_get(dev, "vdd33a_dac");
378 if (IS_ERR_OR_NULL(sdev->vdac)) { 379 if (IS_ERR(sdev->vdac)) {
379 dev_err(dev, "failed to get regulator 'vdac'\n"); 380 dev_err(dev, "failed to get regulator 'vdac'\n");
381 ret = PTR_ERR(sdev->vdac);
380 goto fail_fout_vpll; 382 goto fail_fout_vpll;
381 } 383 }
382 sdev->vdet = devm_regulator_get(dev, "vdet"); 384 sdev->vdet = devm_regulator_get(dev, "vdet");
383 if (IS_ERR_OR_NULL(sdev->vdet)) { 385 if (IS_ERR(sdev->vdet)) {
384 dev_err(dev, "failed to get regulator 'vdet'\n"); 386 dev_err(dev, "failed to get regulator 'vdet'\n");
387 ret = PTR_ERR(sdev->vdet);
385 goto fail_fout_vpll; 388 goto fail_fout_vpll;
386 } 389 }
387 390