diff options
author | Conor Dooley <conor.dooley@microchip.com> | 2022-04-11 08:23:41 +0100 |
---|---|---|
committer | Stephen Boyd <sboyd@kernel.org> | 2022-04-21 19:35:07 -0700 |
commit | 37843d0f6e7a23af19a6cbe68b9503d318fe1a29 (patch) | |
tree | feebf27b86a97e15f1696b555301458a7e202097 /drivers/clk/microchip | |
parent | 3123109284176b1532874591f7c81f3837bbdc17 (diff) | |
download | linux-37843d0f6e7a23af19a6cbe68b9503d318fe1a29.tar.gz |
clk: microchip: mpfs: don't reset disabled peripherals
The current clock driver for PolarFire SoC puts the hardware behind
"periph" clocks into reset if their clock is disabled. CONFIG_PM was
recently added to the riscv defconfig and exposed issues caused by this
behaviour, where the Cadence GEM was being put into reset between its
bringup & the PHY bringup:
https://lore.kernel.org/linux-riscv/9f4b057d-1985-5fd3-65c0-f944161c7792@microchip.com/
Fix this (for now) by removing the reset from mpfs_periph_clk_disable.
Fixes: 635e5e73370e ("clk: microchip: Add driver for Microchip PolarFire SoC")
Reviewed-by: Daire McNamara <daire.mcnamara@microchip.com>
Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
Link: https://lore.kernel.org/r/20220411072340.740981-1-conor.dooley@microchip.com
Signed-off-by: Stephen Boyd <sboyd@kernel.org>
Diffstat (limited to 'drivers/clk/microchip')
-rw-r--r-- | drivers/clk/microchip/clk-mpfs.c | 4 |
1 files changed, 0 insertions, 4 deletions
diff --git a/drivers/clk/microchip/clk-mpfs.c b/drivers/clk/microchip/clk-mpfs.c index aa1561b773d6..744ef2ba2a0c 100644 --- a/drivers/clk/microchip/clk-mpfs.c +++ b/drivers/clk/microchip/clk-mpfs.c @@ -200,10 +200,6 @@ static void mpfs_periph_clk_disable(struct clk_hw *hw) spin_lock_irqsave(&mpfs_clk_lock, flags); - reg = readl_relaxed(base_addr + REG_SUBBLK_RESET_CR); - val = reg | (1u << periph->shift); - writel_relaxed(val, base_addr + REG_SUBBLK_RESET_CR); - reg = readl_relaxed(base_addr + REG_SUBBLK_CLOCK_CR); val = reg & ~(1u << periph->shift); writel_relaxed(val, base_addr + REG_SUBBLK_CLOCK_CR); |