mbox series

[0/2] Fix regulators coupling for Exynos5800

Message ID 20200529124940.10675-1-m.szyprowski@samsung.com (mailing list archive)
Headers show
Series Fix regulators coupling for Exynos5800 | expand

Message

Marek Szyprowski May 29, 2020, 12:49 p.m. UTC
Hi!

This patchset is another attempt to fix the regulator coupling on
Exynos5800/5422 SoCs. Here are links to the previous attempts:

https://lore.kernel.org/linux-samsung-soc/20191008101709.qVNy8eijBi0LynOteWFMnTg4GUwKG599n6OyYoX1Abs@z/
https://lore.kernel.org/lkml/20191017102758.8104-1-m.szyprowski@samsung.com/
https://lore.kernel.org/linux-pm/cover.1589528491.git.viresh.kumar@linaro.org/
https://lore.kernel.org/linux-pm/20200528131130.17984-1-m.szyprowski@samsung.com/

The problem is with "vdd_int" regulator coupled with "vdd_arm" on Odroid
XU3/XU4 boards family. "vdd_arm" is handled by CPUfreq. "vdd_int" is
handled by devfreq. CPUfreq initialized quite early during boot and it
starts changing OPPs and "vdd_arm" value. Sometimes CPU activity during
boot goes down and some low-frequency OPPs are selected, what in turn
causes lowering "vdd_arm". This happens before devfreq applies its
requirements on "vdd_int". Regulator balancing code reduces "vdd_arm"
voltage value, what in turn causes lowering "vdd_int" value to the lowest
possible value. This is much below the operation point of the wcore bus,
which still runs at the highest frequency.

The issue was hard to notice because in the most cases the board managed
to boot properly, even when the regulator was set to lowest value allowed
by the regulator constraints. However, it caused some random issues,
which can be observed as "Unhandled prefetch abort" or low USB stability.

Adding more and more special cases to the generic code has been rejected,
so the only way to ensure the desired behavior on Exynos5800-based SoCs 
is to make a custom regulator coupler driver.

Best regards,
Marek Szyprowski


Patch summary:

Marek Szyprowski (2):
  regulator: extract voltage balancing code to separate function
  soc: samsung: Add simple voltage coupler for Exynos5800

 arch/arm/mach-exynos/Kconfig                  |  1 +
 drivers/regulator/core.c                      | 49 ++++++++-------
 drivers/soc/samsung/Kconfig                   |  3 +
 drivers/soc/samsung/Makefile                  |  1 +
 .../soc/samsung/exynos-regulator-coupler.c    | 59 +++++++++++++++++++
 include/linux/regulator/coupler.h             |  8 +++
 6 files changed, 101 insertions(+), 20 deletions(-)
 create mode 100644 drivers/soc/samsung/exynos-regulator-coupler.c

Comments

Mark Brown May 29, 2020, 4:52 p.m. UTC | #1
On Fri, 29 May 2020 14:49:38 +0200, Marek Szyprowski wrote:
> This patchset is another attempt to fix the regulator coupling on
> Exynos5800/5422 SoCs. Here are links to the previous attempts:
> 
> https://lore.kernel.org/linux-samsung-soc/20191008101709.qVNy8eijBi0LynOteWFMnTg4GUwKG599n6OyYoX1Abs@z/
> https://lore.kernel.org/lkml/20191017102758.8104-1-m.szyprowski@samsung.com/
> https://lore.kernel.org/linux-pm/cover.1589528491.git.viresh.kumar@linaro.org/
> https://lore.kernel.org/linux-pm/20200528131130.17984-1-m.szyprowski@samsung.com/
> 
> [...]

Applied to

   https://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator.git for-next

Thanks!

[1/1] regulator: extract voltage balancing code to the separate function
      commit: 752db83a5dfd4fd3a0624b9ab440ed947fa003ca

All being well this means that it will be integrated into the linux-next
tree (usually sometime in the next 24 hours) and sent to Linus during
the next merge window (or sooner if it is a bug fix), however if
problems are discovered then the patch may be dropped or reverted.

You may get further e-mails resulting from automated or manual testing
and review of the tree, please engage with people reporting problems and
send followup patches addressing any issues that are reported if needed.

If any updates are required or you are submitting further changes they
should be sent as incremental updates against current git, existing
patches will not be replaced.

Please add any relevant lists and maintainers to the CCs when replying
to this mail.

Thanks,
Mark
Mark Brown May 29, 2020, 4:58 p.m. UTC | #2
On Fri, May 29, 2020 at 05:52:15PM +0100, Mark Brown wrote:

> [1/1] regulator: extract voltage balancing code to the separate function
>       commit: 752db83a5dfd4fd3a0624b9ab440ed947fa003ca

Let me know if you need a pull request for this - I figured it was too
late to apply the second patch before the merge window with the cross
tree stuff.
Krzysztof Kozlowski May 29, 2020, 5:33 p.m. UTC | #3
On Fri, May 29, 2020 at 05:58:27PM +0100, Mark Brown wrote:
> On Fri, May 29, 2020 at 05:52:15PM +0100, Mark Brown wrote:
> 
> > [1/1] regulator: extract voltage balancing code to the separate function
> >       commit: 752db83a5dfd4fd3a0624b9ab440ed947fa003ca
> 
> Let me know if you need a pull request for this - I figured it was too
> late to apply the second patch before the merge window with the cross
> tree stuff.

Thanks, I think it will not be needed. I'll apply the second patch after
the merge window.

Best regards,
Krzysztof