On Mon, Oct 09, 2023 at 03:35:56PM +0530, Sumit Gupta wrote: > Add suspend hook and a 'suspended' field in the 'struct tegra_bpmp' > to mark if BPMP is suspended. Also, add a 'flags' field in the > 'struct tegra_bpmp_message' whose 'TEGRA_BPMP_MESSAGE_RESET' bit > can be set from the Tegra MC driver to signal that the reset of BPMP > IPC channels is required before sending MRQ to the BPMP FW. > Together both the fields allow us to handle any requests that might > be sent too soon as they can cause hang during system resume. > One case where we see BPMP requests being sent before the BPMP driver > has resumed is the memory bandwidth requests which are triggered by > onlining the CPUs during system resume. The CPUs are onlined before > the BPMP has resumed and we need to reset the BPMP IPC channels to > handle these requests. > The additional check for 'flags' is done to avoid any un-intended BPMP > IPC reset if the tegra_bpmp_transfer*() API gets called during suspend > sequence after the BPMP driver is suspended. > > Fixes: f41e1442ac5b ("cpufreq: tegra194: add OPP support and set bandwidth") > Co-developed-by: Thierry Reding <treding@xxxxxxxxxx> > Signed-off-by: Thierry Reding <treding@xxxxxxxxxx> > Signed-off-by: Sumit Gupta <sumitg@xxxxxxxxxx> > --- > drivers/firmware/tegra/bpmp.c | 30 ++++++++++++++++++++++++++++++ > include/soc/tegra/bpmp.h | 6 ++++++ > 2 files changed, 36 insertions(+) Krzysztof, if you want to pick these up instead of me taking them through the Tegra tree: Acked-by: Thierry Reding <treding@xxxxxxxxxx>
Attachment:
signature.asc
Description: PGP signature