slim_ngd: Handle possibility of ADSP idle power collapse

When slimbus on apps removes its QMI vote for slimbus on ADSP, it's
possible that ADSP may decide to do idle power collapse. During this,
slimbus HW and corresponding BAM HW will get reset.
While removing active vote from ADSP, BAM pipe for slimbus RX is
disconnected, so that it is not affected when the BAM HW on ADSP is
reset.
After sending QMI active vote to ADSP, driver checks HW state to
determine if the ADSP HW indeed was reset. If it was not reset, BAM
pipe is reconnected.
If it's deemed that the ADSP HW was reset, slimbus HW portion is
reprogrammed, communication with slimbus driver on ADSP is established
again using capability message. BAM pipe is reconnected at this time,
and slimbus is ready for use.

Change-Id: Ie0ad838e3790650f4f240fa7b78a2b8296316efd
Signed-off-by: Sagar Dharia <sdharia@codeaurora.org>
4 files changed