linux-stable/drivers/clk
Tony Lindgren 28f3429444 clk: ti: clkctrl: Fix failed to enable error with double udelay timeout
[ Upstream commit 81a41901ff ]

Commit 3d8598fb9c ("clk: ti: clkctrl: use fallback udelay approach if
timekeeping is suspended") added handling for cases when timekeeping is
suspended. But looks like we can still get occasional "failed to enable"
errors on the PM runtime resume path with udelay() returning faster than
expected.

With ti-sysc interconnect target module driver this leads into device
failure with PM runtime failing with "failed to enable" clkctrl error.

Let's fix the issue with a delay of two times the desired delay as in
often done for udelay() to account for the inaccuracy.

Fixes: 3d8598fb9c ("clk: ti: clkctrl: use fallback udelay approach if timekeeping is suspended")
Cc: Keerthy <j-keerthy@ti.com>
Cc: Tero Kristo <t-kristo@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
Link: https://lkml.kernel.org/r/20190930154001.46581-1-tony@atomide.com
Tested-by: Keerthy <j-keerthy@ti.com>
Signed-off-by: Stephen Boyd <sboyd@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2019-12-05 09:19:40 +01:00
..
actions clk: actions: Don't reference clk_init_data after registration 2019-10-07 18:56:43 +02:00
at91 clk: at91: avoid sleeping early 2019-12-05 09:19:38 +01:00
axis
axs10x
bcm treewide: devm_kzalloc() -> devm_kcalloc() 2018-06-12 16:19:22 -07:00
berlin This time we have a good set of changes to the core framework that do some 2018-06-09 12:06:24 -07:00
davinci ARM: 32-bit SoC platform updates 2018-08-23 13:44:43 -07:00
h8300
hisilicon clk: hi3660: Mark clk_gate_ufs_subsys as critical 2019-05-25 18:23:28 +02:00
imgtec clk: boston: unregister clks on failure in clk_boston_setup() 2019-11-06 13:05:26 +01:00
imx clk: imx6sl: ensure MMDC CH0 handshake is bypassed 2019-02-12 19:47:08 +01:00
ingenic clk: ingenic: Fix doc of ingenic_cgu_div_info 2019-03-23 20:10:03 +01:00
keystone clk: keystone: Enable TISCI clocks if K3_ARCH 2019-11-24 08:19:48 +01:00
loongson1
mediatek clk: mediatek: Disable tuner_en before change PLL rate 2019-05-25 18:23:29 +02:00
meson clk: meson: gxbb: let sar_adc_clk_div set the parent clock rate 2019-12-05 09:19:35 +01:00
microchip
mmp clk: mmp2: fix the clock id for sdh2_clk and sdh3_clk 2019-12-01 09:16:30 +01:00
mvebu clk: mvebu: Off by one bugs in cp110_of_clk_get() 2018-12-21 14:15:19 +01:00
mxs
nxp clk: lpc32xx: Set name of regmap_config 2018-03-19 14:35:16 -07:00
pistachio
pxa clk: pxa: export 32kHz PLL 2018-07-06 13:52:57 -07:00
qcom clk: qcom: gcc-sdm845: Use floor ops for sdcc clks 2019-10-07 18:56:59 +02:00
renesas clk: renesas: cpg-mssr: Set GENPD_FLAG_ALWAYS_ON for clock domain 2019-10-07 18:56:56 +02:00
rockchip clk: rockchip: Don't yell about bad mmc phases when getting 2019-09-19 09:09:36 +02:00
samsung clk: samsung: exynos5420: Preserve PLL configuration during suspend/resume 2019-12-05 09:19:37 +01:00
sirf clk: sirf: Don't reference clk_init_data after registration 2019-10-07 18:56:45 +02:00
socfpga clk: socfpga: stratix10: fix rate caclulationg for cnt_clks 2019-08-29 08:28:49 +02:00
spear clk: spear: fix WDT clock definition on SPEAr600 2018-04-06 13:45:34 -07:00
sprd clk: sprd: add missing kfree 2019-10-07 18:57:03 +02:00
st treewide: kzalloc() -> kcalloc() 2018-06-12 16:19:22 -07:00
sunxi clk: sunxi: Fix operator precedence in sunxi_divs_clk_setup 2019-12-05 09:19:38 +01:00
sunxi-ng clk: sunxi-ng: a80: fix the zero'ing of bits 16 and 18 2019-12-05 09:19:39 +01:00
tegra clk: tegra20: Turn EMC clock gate into divider 2019-12-01 09:17:28 +01:00
ti clk: ti: clkctrl: Fix failed to enable error with double udelay timeout 2019-12-05 09:19:40 +01:00
uniphier clk: uniphier: Fix update register for CPU-gear 2019-03-23 20:10:03 +01:00
ux500 clk: ux500: Drop AB8540/9540 support 2018-03-23 09:36:11 -07:00
versatile clk: versatile: Remove WARNs in ->round_rate() 2018-03-16 15:31:16 -07:00
x86 clk: x86: Add system specific quirk to mark clocks as critical 2019-05-08 07:21:54 +02:00
zte clk: zx296718: Don't reference clk_init_data after registration 2019-10-07 18:56:46 +02:00
zynq
clk-asm9260.c treewide: Use struct_size() for kmalloc()-family 2018-06-06 11:15:43 -07:00
clk-aspeed.c The new and exciting feature this time around is in the clk core. 2018-08-15 21:41:21 -07:00
clk-axi-clkgen.c
clk-axm5516.c
clk-bulk.c clk: bulk: silently error out on EPROBE_DEFER 2018-05-15 15:16:13 -07:00
clk-cdce706.c
clk-cdce925.c
clk-clps711x.c treewide: Use struct_size() for kmalloc()-family 2018-06-06 11:15:43 -07:00
clk-composite.c
clk-conf.c
clk-cs2000-cp.c clk: cs2000-cp: convert to SPDX identifiers 2018-08-02 13:55:00 -07:00
clk-devres.c
clk-divider.c clk: divider: read-only divider can propagate rate change 2018-03-12 15:10:26 -07:00
clk-efm32gg.c treewide: Use struct_size() for kmalloc()-family 2018-06-06 11:15:43 -07:00
clk-fixed-factor.c clk: fixed-factor: fix of_node_get-put imbalance 2018-11-27 16:13:04 +01:00
clk-fixed-rate.c clk: fixed-rate: fix of_node_get-put imbalance 2018-11-27 16:13:00 +01:00
clk-fractional-divider.c clk: fractional-divider: check parent rate only if flag is set 2019-04-05 22:33:03 +02:00
clk-gate.c
clk-gemini.c treewide: Use struct_size() for kmalloc()-family 2018-06-06 11:15:43 -07:00
clk-gpio.c clk: clk-gpio: Allow GPIO to sleep in set/get_parent 2018-03-19 13:53:08 -07:00
clk-hi655x.c
clk-highbank.c
clk-hsdk-pll.c
clk-max9485.c clk: Add driver for MAX9485 2018-07-06 13:44:06 -07:00
clk-max77686.c
clk-moxart.c
clk-multiplier.c
clk-mux.c clk: honor CLK_MUX_ROUND_CLOSEST in generic clk mux 2018-04-16 09:25:07 -07:00
clk-nomadik.c
clk-npcm7xx.c clk: npcm7xx: fix memory allocation 2018-08-28 15:12:59 -07:00
clk-nspire.c
clk-oxnas.c
clk-palmas.c
clk-pwm.c
clk-qoriq.c clk: qoriq: Fix -Wunused-const-variable 2019-10-07 18:56:40 +02:00
clk-rk808.c
clk-s2mps11.c clk: s2mps11: Add used attribute to s2mps11_dt_match 2019-09-16 08:21:45 +02:00
clk-scmi.c clk: scmi: Fix the rounding of clock rate 2018-08-02 13:43:48 -07:00
clk-scpi.c
clk-si514.c clk-si514, clk-si544: Implement prepare/unprepare/is_prepared operations 2018-06-29 10:59:40 -07:00
clk-si544.c clk-si514, clk-si544: Implement prepare/unprepare/is_prepared operations 2018-06-29 10:59:40 -07:00
clk-si570.c
clk-si5351.c
clk-si5351.h
clk-stm32f4.c clk: stm32: Add clk entry for SDMMC2 on stm32F769 2018-03-19 13:46:07 -07:00
clk-stm32h7.c treewide: Use struct_size() for kmalloc()-family 2018-06-06 11:15:43 -07:00
clk-stm32mp1.c This time we have a good set of changes to the core framework that do some 2018-06-09 12:06:24 -07:00
clk-tango4.c
clk-twl6040.c clk: clk-twl6040: Fix imprecise external abort for pdmclk 2019-03-23 20:10:03 +01:00
clk-u300.c
clk-versaclock5.c clk: vc5: Abort clock configuration without upstream clock 2019-03-05 17:58:46 +01:00
clk-vt8500.c
clk-wm831x.c
clk-xgene.c
clk.c clk: sysfs: fix invalid JSON in clk_dump 2019-03-05 17:58:46 +01:00
clk.h
clkdev.c ARM: 8778/1: clkdev: don't call __of_clk_get_by_name() unnecessarily from clk_get() 2018-08-13 16:27:52 +01:00
Kconfig clk: Add driver for MAX9485 2018-07-06 13:44:06 -07:00
Makefile clk: keystone: Enable TISCI clocks if K3_ARCH 2019-11-24 08:19:48 +01:00