Commit a899d324863a3 ("slimbus: qcom-ngd-ctrl: add Sub System Restart support") made qcom-ngd-ctrl wait for ADSP to become ready before starting to do its work. Due to how the SSR notifications currently work though, if qcom-ngd-ctrl probes after ADSP boots and becomes ready, it never receives a QCOM_SSR_AFTER_POWERUP event notification and keeps waiting indefinitely, making SLIMbus never come up.
This series makes qcom_register_ssr_notifier call the notifier_call of the newly registered notifier block with the last SSR event received from the remoteproc, basically reporting the event that qcom-ngd-ctrl missed by registering late, stopping it from waiting for an event that has already happened.
I'm not sure if this approach would have any unwanted consequences in other drivers relying on SSR events however, hence I'm sending this as a RFC. This can also be considered a bug report, so if anyone has a better fix then I'd appreciate it getting applied instead of this one.
The second patch is a general fix that became necessary after the first patch, and should likely be applied anyway.
Yassine Oudjana (2): remoteproc: qcom: Report last event on SSR notifier registration slimbus: qcom-ngd-ctrl: Initialize ngd_up_work before it can be scheduled
drivers/remoteproc/qcom_common.c | 17 +++++++++++++---- drivers/slimbus/qcom-ngd-ctrl.c | 3 ++- 2 files changed, 15 insertions(+), 5 deletions(-)