mirror-linux/drivers/firmware
Georgi Vlaev 0eb788089d firmware: ti_sci: Fix polled mode during system suspend
[ Upstream commit b13b2c3e0e ]

Commit b9e8a7d950 ("firmware: ti_sci: Switch transport to polled
mode during system suspend") uses read_poll_timeout_atomic() macro
in ti_sci_do_xfer() to wait for completion when the system is
suspending. The break condition of the macro is set to "true" which
will cause it break immediately when evaluated, likely before the
TISCI xfer is completed, and always return 0. We want to poll here
until "done_state == true".

1) Change the break condition of read_poll_timeout_atomic() to
the bool variable "done_state".

2) The read_poll_timeout_atomic() returns 0 if the break condition
is met or -ETIMEDOUT if not. Since our break condition has changed
to "done_state", we also don't have to check for "!done_state" when
evaluating the return value.

Fixes: b9e8a7d950 ("firmware: ti_sci: Switch transport to polled mode during system suspend")

Signed-off-by: Georgi Vlaev <g-vlaev@ti.com>
Signed-off-by: Nishanth Menon <nm@ti.com>
Link: https://lore.kernel.org/r/20221021185704.181316-1-g-vlaev@ti.com
Signed-off-by: Sasha Levin <sashal@kernel.org>
2022-12-31 13:31:48 +01:00
..
arm_ffa firmware: arm_ffa: Split up ffa_ops into info, message and memory operations 2022-09-08 11:34:04 +01:00
arm_scmi firmware: arm_scmi: Fix deferred_tx_wq release on error paths 2022-11-01 11:36:20 +00:00
broadcom
cirrus firmware: cs_dsp: Add memory chunk helpers 2022-07-22 13:40:00 +01:00
efi arm64: efi: Force the use of SetVirtualAddressMap() on Altra machines 2022-11-10 23:14:14 +01:00
google firmware: coreboot: Register bus in module init 2022-11-10 18:47:53 +01:00
imx
meson
psci ARM: driver updates for 6.1 2022-10-06 11:04:57 -07:00
smccc
tegra firmware: tegra: Switch over to memdup_user() 2022-09-15 12:45:42 +02:00
xilinx firmware: xilinx: add support for sd/gem config 2022-09-20 08:33:04 -07:00
Kconfig
Makefile
arm_scpi.c
arm_sdei.c
dmi-id.c
dmi-sysfs.c
dmi_scan.c firmware: dmi: Fortify entry point length checks 2022-09-23 14:53:14 +02:00
edd.c
iscsi_ibft.c
iscsi_ibft_find.c
memmap.c
mtk-adsp-ipc.c
pcdp.c
pcdp.h
qcom_scm-legacy.c
qcom_scm-smc.c
qcom_scm.c
qcom_scm.h firmware: qcom: scm: remove unused __qcom_scm_init declaration 2022-09-13 15:14:54 -05:00
qemu_fw_cfg.c
raspberrypi.c
scpi_pm_domain.c
stratix10-rsu.c
stratix10-svc.c firmware: stratix10-svc: To support a command ATF Get Version 2022-07-14 16:55:09 +02:00
sysfb.c fbdev/vga16fb: Create EGA/VGA devices in sysfb code 2022-07-19 13:19:11 +02:00
sysfb_simplefb.c
ti_sci.c firmware: ti_sci: Fix polled mode during system suspend 2022-12-31 13:31:48 +01:00
ti_sci.h
trusted_foundations.c
turris-mox-rwtm.c