Message ID | 1366285079-10395-1-git-send-email-sachin.kamat@linaro.org |
---|---|
State | Accepted |
Headers | show |
Hi Eduardo, Any comments on this series? If possible would like to have this in 3.10 itself as without this TMU support would be broken on exynos machines due to migration to common clock framework. On 18 April 2013 17:07, Sachin Kamat <sachin.kamat@linaro.org> wrote: > clk_{un}prepare APIs are required to migrate to common > clock framework. While at it convert to use devm_clk_get as > it removes some cleanup code. > > Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org> > Cc: Amit Daniel Kachhap <amit.daniel@samsung.com> > --- > drivers/thermal/exynos_thermal.c | 10 +++++++--- > 1 file changed, 7 insertions(+), 3 deletions(-) > > diff --git a/drivers/thermal/exynos_thermal.c b/drivers/thermal/exynos_thermal.c > index e34d842..9df96e5 100644 > --- a/drivers/thermal/exynos_thermal.c > +++ b/drivers/thermal/exynos_thermal.c > @@ -937,12 +937,16 @@ static int exynos_tmu_probe(struct platform_device *pdev) > return ret; > } > > - data->clk = clk_get(NULL, "tmu_apbif"); > + data->clk = devm_clk_get(&pdev->dev, "tmu_apbif"); > if (IS_ERR(data->clk)) { > dev_err(&pdev->dev, "Failed to get clock\n"); > return PTR_ERR(data->clk); > } > > + ret = clk_prepare(data->clk); > + if (ret) > + return ret; > + > if (pdata->type == SOC_ARCH_EXYNOS || > pdata->type == SOC_ARCH_EXYNOS4210) > data->soc = pdata->type; > @@ -994,7 +998,7 @@ static int exynos_tmu_probe(struct platform_device *pdev) > return 0; > err_clk: > platform_set_drvdata(pdev, NULL); > - clk_put(data->clk); > + clk_unprepare(data->clk); > return ret; > } > > @@ -1006,7 +1010,7 @@ static int exynos_tmu_remove(struct platform_device *pdev) > > exynos_unregister_thermal(); > > - clk_put(data->clk); > + clk_unprepare(data->clk); > > platform_set_drvdata(pdev, NULL); > > -- > 1.7.9.5 >
On 18-04-2013 07:37, Sachin Kamat wrote: > clk_{un}prepare APIs are required to migrate to common > clock framework. While at it convert to use devm_clk_get as > it removes some cleanup code. > > Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org> > Cc: Amit Daniel Kachhap <amit.daniel@samsung.com> > --- > drivers/thermal/exynos_thermal.c | 10 +++++++--- > 1 file changed, 7 insertions(+), 3 deletions(-) > > diff --git a/drivers/thermal/exynos_thermal.c b/drivers/thermal/exynos_thermal.c > index e34d842..9df96e5 100644 > --- a/drivers/thermal/exynos_thermal.c > +++ b/drivers/thermal/exynos_thermal.c > @@ -937,12 +937,16 @@ static int exynos_tmu_probe(struct platform_device *pdev) > return ret; > } > > - data->clk = clk_get(NULL, "tmu_apbif"); > + data->clk = devm_clk_get(&pdev->dev, "tmu_apbif"); Here you are also changing the sequence from clk_get(NULL, ...) to clk_get(&pdev->dev, ...). Is your platform code ready to match to your device node? > if (IS_ERR(data->clk)) { > dev_err(&pdev->dev, "Failed to get clock\n"); > return PTR_ERR(data->clk); > } > > + ret = clk_prepare(data->clk); > + if (ret) > + return ret; > + > if (pdata->type == SOC_ARCH_EXYNOS || > pdata->type == SOC_ARCH_EXYNOS4210) > data->soc = pdata->type; > @@ -994,7 +998,7 @@ static int exynos_tmu_probe(struct platform_device *pdev) > return 0; > err_clk: > platform_set_drvdata(pdev, NULL); > - clk_put(data->clk); > + clk_unprepare(data->clk); > return ret; > } > > @@ -1006,7 +1010,7 @@ static int exynos_tmu_remove(struct platform_device *pdev) > > exynos_unregister_thermal(); > > - clk_put(data->clk); > + clk_unprepare(data->clk); > > platform_set_drvdata(pdev, NULL); > >
On 22 April 2013 23:55, Eduardo Valentin <eduardo.valentin@ti.com> wrote: > On 18-04-2013 07:37, Sachin Kamat wrote: >> >> clk_{un}prepare APIs are required to migrate to common >> clock framework. While at it convert to use devm_clk_get as >> it removes some cleanup code. >> >> Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org> >> Cc: Amit Daniel Kachhap <amit.daniel@samsung.com> >> --- >> drivers/thermal/exynos_thermal.c | 10 +++++++--- >> 1 file changed, 7 insertions(+), 3 deletions(-) >> >> diff --git a/drivers/thermal/exynos_thermal.c >> b/drivers/thermal/exynos_thermal.c >> index e34d842..9df96e5 100644 >> --- a/drivers/thermal/exynos_thermal.c >> +++ b/drivers/thermal/exynos_thermal.c >> @@ -937,12 +937,16 @@ static int exynos_tmu_probe(struct platform_device >> *pdev) >> return ret; >> } >> >> - data->clk = clk_get(NULL, "tmu_apbif"); >> + data->clk = devm_clk_get(&pdev->dev, "tmu_apbif"); > > > Here you are also changing the sequence from clk_get(NULL, ...) to > clk_get(&pdev->dev, ...). Is your platform code ready to match to your > device node? Yes. This has been tested on Exynos4 and 5 DT enabled boards (Origen 4210, 4412 and Arndale).
Rui, On 22-04-2013 23:38, Sachin Kamat wrote: > On 22 April 2013 23:55, Eduardo Valentin <eduardo.valentin@ti.com> wrote: >> On 18-04-2013 07:37, Sachin Kamat wrote: >>> >>> clk_{un}prepare APIs are required to migrate to common >>> clock framework. While at it convert to use devm_clk_get as >>> it removes some cleanup code. >>> >>> Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org> >>> Cc: Amit Daniel Kachhap <amit.daniel@samsung.com> >>> --- >>> drivers/thermal/exynos_thermal.c | 10 +++++++--- >>> 1 file changed, 7 insertions(+), 3 deletions(-) >>> >>> diff --git a/drivers/thermal/exynos_thermal.c >>> b/drivers/thermal/exynos_thermal.c >>> index e34d842..9df96e5 100644 >>> --- a/drivers/thermal/exynos_thermal.c >>> +++ b/drivers/thermal/exynos_thermal.c >>> @@ -937,12 +937,16 @@ static int exynos_tmu_probe(struct platform_device >>> *pdev) >>> return ret; >>> } >>> >>> - data->clk = clk_get(NULL, "tmu_apbif"); >>> + data->clk = devm_clk_get(&pdev->dev, "tmu_apbif"); >> >> >> Here you are also changing the sequence from clk_get(NULL, ...) to >> clk_get(&pdev->dev, ...). Is your platform code ready to match to your >> device node? > > Yes. This has been tested on Exynos4 and 5 DT enabled boards (Origen > 4210, 4412 and Arndale). In this case, this patch looks fine to me. Acked-by: Eduardo Valentin <eduardo.valentin@ti.com> >
diff --git a/drivers/thermal/exynos_thermal.c b/drivers/thermal/exynos_thermal.c index e34d842..9df96e5 100644 --- a/drivers/thermal/exynos_thermal.c +++ b/drivers/thermal/exynos_thermal.c @@ -937,12 +937,16 @@ static int exynos_tmu_probe(struct platform_device *pdev) return ret; } - data->clk = clk_get(NULL, "tmu_apbif"); + data->clk = devm_clk_get(&pdev->dev, "tmu_apbif"); if (IS_ERR(data->clk)) { dev_err(&pdev->dev, "Failed to get clock\n"); return PTR_ERR(data->clk); } + ret = clk_prepare(data->clk); + if (ret) + return ret; + if (pdata->type == SOC_ARCH_EXYNOS || pdata->type == SOC_ARCH_EXYNOS4210) data->soc = pdata->type; @@ -994,7 +998,7 @@ static int exynos_tmu_probe(struct platform_device *pdev) return 0; err_clk: platform_set_drvdata(pdev, NULL); - clk_put(data->clk); + clk_unprepare(data->clk); return ret; } @@ -1006,7 +1010,7 @@ static int exynos_tmu_remove(struct platform_device *pdev) exynos_unregister_thermal(); - clk_put(data->clk); + clk_unprepare(data->clk); platform_set_drvdata(pdev, NULL);
clk_{un}prepare APIs are required to migrate to common clock framework. While at it convert to use devm_clk_get as it removes some cleanup code. Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org> Cc: Amit Daniel Kachhap <amit.daniel@samsung.com> --- drivers/thermal/exynos_thermal.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-)