i2c: tegra: Remove NULL pointer check before clk_enable/disable/prepare/unprepare
clk_enable, clk_disable, clk_prepare, and clk_unprepare APIs have implementation for checking clk pointer not NULL and clock consumers can safely call these APIs without NULL pointer check. So, this patch cleans up Tegra i2c driver to remove explicit checks before these APIs. Reviewed-by: Dmitry Osipenko <digetx@gmail.com> Signed-off-by: Sowjanya Komatineni <skomatineni@nvidia.com> Signed-off-by: Wolfram Sang <wsa@kernel.org>
This commit is contained in:
Родитель
9e29420ddb
Коммит
7232f53e73
|
@ -655,21 +655,17 @@ static int __maybe_unused tegra_i2c_runtime_resume(struct device *dev)
|
||||||
if (ret)
|
if (ret)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
if (!i2c_dev->hw->has_single_clk_source) {
|
ret = clk_enable(i2c_dev->fast_clk);
|
||||||
ret = clk_enable(i2c_dev->fast_clk);
|
if (ret < 0) {
|
||||||
if (ret < 0) {
|
dev_err(i2c_dev->dev,
|
||||||
dev_err(i2c_dev->dev,
|
"Enabling fast clk failed, err %d\n", ret);
|
||||||
"Enabling fast clk failed, err %d\n", ret);
|
return ret;
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (i2c_dev->slow_clk) {
|
ret = clk_enable(i2c_dev->slow_clk);
|
||||||
ret = clk_enable(i2c_dev->slow_clk);
|
if (ret < 0) {
|
||||||
if (ret < 0) {
|
dev_err(dev, "failed to enable slow clock: %d\n", ret);
|
||||||
dev_err(dev, "failed to enable slow clock: %d\n", ret);
|
return ret;
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = clk_enable(i2c_dev->div_clk);
|
ret = clk_enable(i2c_dev->div_clk);
|
||||||
|
@ -688,12 +684,8 @@ static int __maybe_unused tegra_i2c_runtime_suspend(struct device *dev)
|
||||||
struct tegra_i2c_dev *i2c_dev = dev_get_drvdata(dev);
|
struct tegra_i2c_dev *i2c_dev = dev_get_drvdata(dev);
|
||||||
|
|
||||||
clk_disable(i2c_dev->div_clk);
|
clk_disable(i2c_dev->div_clk);
|
||||||
|
clk_disable(i2c_dev->slow_clk);
|
||||||
if (i2c_dev->slow_clk)
|
clk_disable(i2c_dev->fast_clk);
|
||||||
clk_disable(i2c_dev->slow_clk);
|
|
||||||
|
|
||||||
if (!i2c_dev->hw->has_single_clk_source)
|
|
||||||
clk_disable(i2c_dev->fast_clk);
|
|
||||||
|
|
||||||
return pinctrl_pm_select_idle_state(i2c_dev->dev);
|
return pinctrl_pm_select_idle_state(i2c_dev->dev);
|
||||||
}
|
}
|
||||||
|
@ -1716,20 +1708,16 @@ static int tegra_i2c_probe(struct platform_device *pdev)
|
||||||
|
|
||||||
platform_set_drvdata(pdev, i2c_dev);
|
platform_set_drvdata(pdev, i2c_dev);
|
||||||
|
|
||||||
if (!i2c_dev->hw->has_single_clk_source) {
|
ret = clk_prepare(i2c_dev->fast_clk);
|
||||||
ret = clk_prepare(i2c_dev->fast_clk);
|
if (ret < 0) {
|
||||||
if (ret < 0) {
|
dev_err(i2c_dev->dev, "Clock prepare failed %d\n", ret);
|
||||||
dev_err(i2c_dev->dev, "Clock prepare failed %d\n", ret);
|
return ret;
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (i2c_dev->slow_clk) {
|
ret = clk_prepare(i2c_dev->slow_clk);
|
||||||
ret = clk_prepare(i2c_dev->slow_clk);
|
if (ret < 0) {
|
||||||
if (ret < 0) {
|
dev_err(dev, "failed to prepare slow clock: %d\n", ret);
|
||||||
dev_err(dev, "failed to prepare slow clock: %d\n", ret);
|
goto unprepare_fast_clk;
|
||||||
goto unprepare_fast_clk;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (i2c_dev->bus_clk_rate > I2C_MAX_FAST_MODE_FREQ &&
|
if (i2c_dev->bus_clk_rate > I2C_MAX_FAST_MODE_FREQ &&
|
||||||
|
@ -1843,12 +1831,10 @@ unprepare_div_clk:
|
||||||
clk_unprepare(i2c_dev->div_clk);
|
clk_unprepare(i2c_dev->div_clk);
|
||||||
|
|
||||||
unprepare_slow_clk:
|
unprepare_slow_clk:
|
||||||
if (i2c_dev->is_vi)
|
clk_unprepare(i2c_dev->slow_clk);
|
||||||
clk_unprepare(i2c_dev->slow_clk);
|
|
||||||
|
|
||||||
unprepare_fast_clk:
|
unprepare_fast_clk:
|
||||||
if (!i2c_dev->hw->has_single_clk_source)
|
clk_unprepare(i2c_dev->fast_clk);
|
||||||
clk_unprepare(i2c_dev->fast_clk);
|
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
@ -1867,12 +1853,8 @@ static int tegra_i2c_remove(struct platform_device *pdev)
|
||||||
tegra_i2c_runtime_suspend(&pdev->dev);
|
tegra_i2c_runtime_suspend(&pdev->dev);
|
||||||
|
|
||||||
clk_unprepare(i2c_dev->div_clk);
|
clk_unprepare(i2c_dev->div_clk);
|
||||||
|
clk_unprepare(i2c_dev->slow_clk);
|
||||||
if (i2c_dev->slow_clk)
|
clk_unprepare(i2c_dev->fast_clk);
|
||||||
clk_unprepare(i2c_dev->slow_clk);
|
|
||||||
|
|
||||||
if (!i2c_dev->hw->has_single_clk_source)
|
|
||||||
clk_unprepare(i2c_dev->fast_clk);
|
|
||||||
|
|
||||||
tegra_i2c_release_dma(i2c_dev);
|
tegra_i2c_release_dma(i2c_dev);
|
||||||
return 0;
|
return 0;
|
||||||
|
|
Загрузка…
Ссылка в новой задаче