clk: tegra: Don't deassert reset on enabling clocks
authorDmitry Osipenko <digetx@gmail.com>
Sun, 16 May 2021 16:30:40 +0000 (19:30 +0300)
committerThierry Reding <treding@nvidia.com>
Mon, 31 May 2021 13:16:46 +0000 (15:16 +0200)
commit4782c0a5dd88e3797426e08c5c437e95a3156631
tree35496e4c64a046e6631a30a22bfe4b0d95acd783
parent5d0f1c8ab10aee9934a418ddd7ec977b01ab2370
clk: tegra: Don't deassert reset on enabling clocks

The Tegra clock driver contains legacy code which deasserts hardware reset
when peripheral clocks are enabled. This behaviour comes from a pre-CCF
era of the Tegra drivers. This is unacceptable for modern kernel drivers
which use generic CCF and reset-control APIs because it breaks assumptions
of the drivers about clk/reset sequences and about reset-propagation
delays. Hence remove the awkward legacy behaviour from the clk driver.

In particular PMC driver assumes that hardware blocks remains in reset
while power domain is turning on, but the clk driver deasserts the reset
before power clamp is removed, hence breaking the driver's assumption.

Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
drivers/clk/tegra/clk-periph-gate.c
drivers/clk/tegra/clk-tegra30.c
drivers/clk/tegra/clk.h