summaryrefslogtreecommitdiffstats
path: root/drivers/clk/tegra/clk-dfll.h
diff options
context:
space:
mode:
authorNicolin Chen <nicoleotsuka@gmail.com>2017-10-13 01:09:59 +0200
committerThierry Reding <treding@nvidia.com>2017-11-01 15:00:06 +0100
commit1752c9ee23fb20e5bfdbedf677e91f927f2b8d80 (patch)
tree5cc03b8cc0bc03f5bedee788468b8a34be2792f5 /drivers/clk/tegra/clk-dfll.h
parentclk: tegra: Fix cclk_lp divisor register (diff)
downloadlinux-1752c9ee23fb20e5bfdbedf677e91f927f2b8d80.tar.xz
linux-1752c9ee23fb20e5bfdbedf677e91f927f2b8d80.zip
clk: tegra: dfll: Fix drvdata overwriting issue
Both tegra124-dfll and clk-dfll are using platform_set_drvdata to set drvdata of the exact same pdev while they use different pointers for the drvdata. Once the drvdata has been overwritten by tegra124-dfll, clk-dfll will never get its td pointer as it expects. Since tegra124-dfll merely needs its soc pointer in its remove function, this patch fixes the bug by removing the overwriting in the tegra124-dfll file and letting the tegra_dfll_unregister return an soc pointer for it. Signed-off-by: Nicolin Chen <nicoleotsuka@gmail.com> Acked-By: Peter De Schrijver <pdeschrijver@nvidia.com> Signed-off-by: Thierry Reding <treding@nvidia.com>
Diffstat (limited to 'drivers/clk/tegra/clk-dfll.h')
-rw-r--r--drivers/clk/tegra/clk-dfll.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/clk/tegra/clk-dfll.h b/drivers/clk/tegra/clk-dfll.h
index ed2ad888268f..83352c8078f2 100644
--- a/drivers/clk/tegra/clk-dfll.h
+++ b/drivers/clk/tegra/clk-dfll.h
@@ -43,7 +43,7 @@ struct tegra_dfll_soc_data {
int tegra_dfll_register(struct platform_device *pdev,
struct tegra_dfll_soc_data *soc);
-int tegra_dfll_unregister(struct platform_device *pdev);
+struct tegra_dfll_soc_data *tegra_dfll_unregister(struct platform_device *pdev);
int tegra_dfll_runtime_suspend(struct device *dev);
int tegra_dfll_runtime_resume(struct device *dev);