diff options
author | Nicolin Chen <nicoleotsuka@gmail.com> | 2017-10-13 01:09:59 +0200 |
---|---|---|
committer | Thierry Reding <treding@nvidia.com> | 2017-11-01 15:00:06 +0100 |
commit | 1752c9ee23fb20e5bfdbedf677e91f927f2b8d80 (patch) | |
tree | 5cc03b8cc0bc03f5bedee788468b8a34be2792f5 /drivers/clk/tegra/clk-dfll.h | |
parent | clk: tegra: Fix cclk_lp divisor register (diff) | |
download | linux-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.h | 2 |
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); |