mirror of
https://github.com/rd-stuffs/msm-4.14.git
synced 2025-02-20 11:45:48 +08:00
The RPM may give back no ACK when sending a command: this means that it is locking up for some reason, or the command itself didn't get sent to it. When we get in this situation, an infinite wait for completion will lock up the device for an infinite amount of time, until the user manually reboots it with a power cut or KPDPWR+RESIN combination. For this reason, add a timeout to the completion wait (as of now, very large I'd say) to avoid indefinitely waiting and, if the timeout is reached with no ACK reply, just return a -ETIMEDOUT error, so that we will either end up recoverying from this error state or rebooting the device by panicking the kernel if subsequent retries won't work. This issue is largely seen on SMD communication and rarely on SoCs using GLINK to communicate to the RPM. Change-Id: Ifb701e767edab792d92d71fdc05a3e0edd91d766 Signed-off-by: Richard Raya <rdxzv.dev@gmail.com>