public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH v6 0/5] mfd: tps6586x: register restart handler
@ 2023-05-09 19:02 Benjamin Bara
  2023-05-09 19:02 ` [PATCH v6 1/5] kernel/reboot: emergency_restart: set correct system_state Benjamin Bara
                   ` (4 more replies)
  0 siblings, 5 replies; 19+ messages in thread
From: Benjamin Bara @ 2023-05-09 19:02 UTC (permalink / raw)
  To: Wolfram Sang, Lee Jones, rafael.j.wysocki
  Cc: dmitry.osipenko, peterz, jonathanh, richard.leitner, treding,
	linux-kernel, linux-i2c, linux-tegra, Benjamin Bara, stable

Hi!

The Tegra20 requires an enabled VDE power domain during startup. As the
VDE is currently not used, it is disabled during runtime.
Since 8f0c714ad9be, there is a workaround for the "normal restart path"
which enables the VDE before doing PMC's warm reboot. This workaround is
not executed in the "emergency restart path", leading to a hang-up
during start.

This series implements and registers a new pmic-based restart handler
for boards with tps6586x. This cold reboot ensures that the VDE power
domain is enabled during startup on tegra20-based boards.

Since bae1d3a05a8b, i2c transfers are non-atomic while preemption is
disabled (which is e.g. done during panic()). This could lead to
warnings ("Voluntary context switch within RCU") in i2c-based restart
handlers during emergency restart. The state of preemption should be
detected by i2c_in_atomic_xfer_mode() to use atomic i2c xfer when
required. Beside the new system_state check, the check is the same as
the one pre v5.2.

v5: https://lore.kernel.org/r/20230327-tegra-pmic-reboot-v5-0-ab090e03284d@skidata.com

v6:
- drop 4/6 to abort restart on unexpected failure (suggested by Dmitry)
- 4,5: fix comments in handlers (suggested by Lee)
- 4,5: same delay for both handlers (suggested by Lee)

v5:
- introduce new 3 & 4, therefore 3 -> 5, 4 -> 6
- 3: provide dev to sys_off handler, if it is known
- 4: return NOTIFY_DONE from sys_off_notify, to avoid skipping
- 5: drop Reviewed-by from Dmitry, add poweroff timeout
- 5,6: return notifier value instead of direct errno from handler
- 5,6: use new dev field instead of passing dev as cb_data
- 5,6: increase timeout values based on error observations
- 6: skip unsupported reboot modes in restart handler

---
Benjamin Bara (5):
      kernel/reboot: emergency_restart: set correct system_state
      i2c: core: run atomic i2c xfer when !preemptible
      kernel/reboot: add device to sys_off_handler
      mfd: tps6586x: use devm-based power off handler
      mfd: tps6586x: register restart handler

 drivers/i2c/i2c-core.h |  2 +-
 drivers/mfd/tps6586x.c | 55 ++++++++++++++++++++++++++++++++++++++++++--------
 include/linux/reboot.h |  3 +++
 kernel/reboot.c        |  4 ++++
 4 files changed, 55 insertions(+), 9 deletions(-)
---
base-commit: 197b6b60ae7bc51dd0814953c562833143b292aa
change-id: 20230327-tegra-pmic-reboot-4175ff814a4b

Best regards,
-- 
Benjamin Bara <benjamin.bara@skidata.com>


^ permalink raw reply	[flat|nested] 19+ messages in thread

end of thread, other threads:[~2023-07-12  3:40 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-05-09 19:02 [PATCH v6 0/5] mfd: tps6586x: register restart handler Benjamin Bara
2023-05-09 19:02 ` [PATCH v6 1/5] kernel/reboot: emergency_restart: set correct system_state Benjamin Bara
2023-05-18 11:34   ` Dmitry Osipenko
2023-06-15  0:06   ` Nishanth Menon
2023-06-15 13:21     ` Francesco Dolcini
2023-06-15 14:39       ` Nishanth Menon
2023-05-09 19:03 ` [PATCH v6 2/5] i2c: core: run atomic i2c xfer when !preemptible Benjamin Bara
2023-05-18 11:34   ` Dmitry Osipenko
2023-06-15  0:05   ` Nishanth Menon
2023-05-09 19:03 ` [PATCH v6 3/5] kernel/reboot: add device to sys_off_handler Benjamin Bara
2023-05-18 11:39   ` Dmitry Osipenko
2023-05-09 19:03 ` [PATCH v6 4/5] mfd: tps6586x: use devm-based power off handler Benjamin Bara
2023-05-18  9:43   ` Lee Jones
2023-05-18 11:15     ` Benjamin Bara
2023-05-18 11:40   ` Dmitry Osipenko
2023-05-09 19:03 ` [PATCH v6 5/5] mfd: tps6586x: register restart handler Benjamin Bara
2023-05-18  9:44   ` Lee Jones
2023-05-18 11:48   ` Dmitry Osipenko
2023-07-12  3:40     ` Dmitry Osipenko

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox