video: exynos_dp: use devm_clk_get function
A message that is not in the archive (sent off-list or not yet received): [email protected]
Jingoo Han
Acked-byQuoted 11 lines · Damien Cassou
From: Damien Cassou <[email protected]>
The
devm_clk_getfunction allocates memory that is released when a driver detaches. This patch uses this function for data that is allocated in the probe function of a platform device and is only freed in the remove function.Additionally, this patch removes a null check after
platform_get_resourcethat is redundant with the one done bydevm_request_and_ioremap.Signed-off-by Damien Cassou <[email protected]>
Thank you for sending the patch.
Best regards,
Jingoo Han
Quoted 99 lines
---
Changed subject line and descriptiondrivers/video/exynos/exynos_dp_core.c | 27 +++++++-------------------- 1 file changed, 7 insertions(+), 20 deletions(-)drivers/video/exynos/exynos_dp_core.c +7
-20@@ -872,7 +872,7 @@ static int __devinit exynos_dp_probe(struct platform_device *pdev) dp->dev = &pdev->dev; - dp->clock =clk_get (&pdev->dev,"dp" ); + dp->clock =devm_clk_get (&pdev->dev,"dp" );if (IS_ERR (dp->clock)) {dev_err (&pdev->dev,"failed to get clock\n" );return PTR_ERR (dp->clock);@@ -881,31 +881,24 @@ static int __devinit exynos_dp_probe(struct platform_device *pdev)clk_enable (dp->clock); res =platform_get_resource (pdev,IORESOURCE_MEM ,0 ); -if (!res) { -dev_err (&pdev->dev,"failed to get registers\n" ); - ret = -EINVAL ; - goto err_clock; - } dp->reg_base =devm_request_and_ioremap (&pdev->dev, res);if (!dp->reg_base) {dev_err (&pdev->dev,"failed to ioremap\n" ); - ret = -ENOMEM ; - goto err_clock; +return -ENOMEM ; } dp->irq =platform_get_irq (pdev,0 );if (!dp->irq) {dev_err (&pdev->dev,"failed to get irq\n" ); - ret = -ENODEV ; - goto err_clock; +return -ENODEV ; } ret =devm_request_irq (&pdev->dev, dp->irq, exynos_dp_irq_handler,0 ,"exynos-dp" , dp);if (ret) {dev_err (&pdev->dev,"failed to request irq\n" ); - goto err_clock; +return ret; } dp->video_info = pdata->video_info;@@ -917,7 +910,7 @@ static int __devinit exynos_dp_probe(struct platform_device *pdev) ret =exynos_dp_detect_hpd (dp);if (ret) {dev_err (&pdev->dev,"unable to detect hpd\n" ); - goto err_clock; +return ret; }exynos_dp_handle_edid (dp);@@ -926,7 +919,7 @@ static int __devinit exynos_dp_probe(struct platform_device *pdev) dp->video_info->link_rate);if (ret) {dev_err (&pdev->dev,"unable to do link train\n" ); - goto err_clock; +return ret; }exynos_dp_enable_scramble (dp,1 );@@ -940,17 +933,12 @@ static int __devinit exynos_dp_probe(struct platform_device *pdev) ret =exynos_dp_config_video (dp, dp->video_info);if (ret) {dev_err (&pdev->dev,"unable to config video\n" ); - goto err_clock; +return ret; }platform_set_drvdata (pdev, dp);return 0 ; - -err_clock: -clk_put (dp->clock); - -return ret; } static int __devexit exynos_dp_remove(struct platform_device *pdev)@@ -962,7 +950,6 @@ static int __devexit exynos_dp_remove(struct platform_device *pdev) pdata->phy_exit ();clk_disable (dp->clock); -clk_put (dp->clock);return 0 ; }
Florian Tobias Schandinat
AppliedQuoted 10 lines · Damien Cassou
From: Damien Cassou <[email protected]>
The
devm_clk_getfunction allocates memory that is released when a driver detaches. This patch uses this function for data that is allocated in the probe function of a platform device and is only freed in the remove function.Additionally, this patch removes a null check after
platform_get_resourcethat is redundant with the one done bydevm_request_and_ioremap.Signed-off-by Damien Cassou <[email protected]>
Applied.
Thanks,
Florian Tobias Schandinat
Quoted 101 lines
---
Changed subject line and descriptiondrivers/video/exynos/exynos_dp_core.c | 27 +++++++-------------------- 1 file changed, 7 insertions(+), 20 deletions(-)drivers/video/exynos/exynos_dp_core.c +7
-20@@ -872,7 +872,7 @@ static int __devinit exynos_dp_probe(struct platform_device *pdev) dp->dev = &pdev->dev; - dp->clock =clk_get (&pdev->dev,"dp" ); + dp->clock =devm_clk_get (&pdev->dev,"dp" );if (IS_ERR (dp->clock)) {dev_err (&pdev->dev,"failed to get clock\n" );return PTR_ERR (dp->clock);@@ -881,31 +881,24 @@ static int __devinit exynos_dp_probe(struct platform_device *pdev)clk_enable (dp->clock); res =platform_get_resource (pdev,IORESOURCE_MEM ,0 ); -if (!res) { -dev_err (&pdev->dev,"failed to get registers\n" ); - ret = -EINVAL ; - goto err_clock; - } dp->reg_base =devm_request_and_ioremap (&pdev->dev, res);if (!dp->reg_base) {dev_err (&pdev->dev,"failed to ioremap\n" ); - ret = -ENOMEM ; - goto err_clock; +return -ENOMEM ; } dp->irq =platform_get_irq (pdev,0 );if (!dp->irq) {dev_err (&pdev->dev,"failed to get irq\n" ); - ret = -ENODEV ; - goto err_clock; +return -ENODEV ; } ret =devm_request_irq (&pdev->dev, dp->irq, exynos_dp_irq_handler,0 ,"exynos-dp" , dp);if (ret) {dev_err (&pdev->dev,"failed to request irq\n" ); - goto err_clock; +return ret; } dp->video_info = pdata->video_info;@@ -917,7 +910,7 @@ static int __devinit exynos_dp_probe(struct platform_device *pdev) ret =exynos_dp_detect_hpd (dp);if (ret) {dev_err (&pdev->dev,"unable to detect hpd\n" ); - goto err_clock; +return ret; }exynos_dp_handle_edid (dp);@@ -926,7 +919,7 @@ static int __devinit exynos_dp_probe(struct platform_device *pdev) dp->video_info->link_rate);if (ret) {dev_err (&pdev->dev,"unable to do link train\n" ); - goto err_clock; +return ret; }exynos_dp_enable_scramble (dp,1 );@@ -940,17 +933,12 @@ static int __devinit exynos_dp_probe(struct platform_device *pdev) ret =exynos_dp_config_video (dp, dp->video_info);if (ret) {dev_err (&pdev->dev,"unable to config video\n" ); - goto err_clock; +return ret; }platform_set_drvdata (pdev, dp);return 0 ; - -err_clock: -clk_put (dp->clock); - -return ret; } static int __devexit exynos_dp_remove(struct platform_device *pdev)@@ -962,7 +950,6 @@ static int __devexit exynos_dp_remove(struct platform_device *pdev) pdata->phy_exit ();clk_disable (dp->clock); -clk_put (dp->clock);return 0 ; }