[REBASED on main r3(stable)from r2-stable] audio: sst: make sst driver mad workqueue single threaded
BZ: 17975
Driver IPC handling had various issues
Makes the sst driver mad workqueue single threaded. Multiple workqueue tasks in
a single threaded workqueue will not run in parallel.
FW state should be set as soon as possible while freeing stream so that later
messages are ignored.
Drop IPC uses ctrl_blk not data_blk, so setting the ctrl_blk to on.
Adds locking to checking and changing of stream states in free_stream and
drop_stream to prevent a race condition.
Added missing block condition to firmware context save.
Change-Id: I117e413b593094a629bb3e29ab9aa75c4f4fe233
old-Change-Id: Ia4e4dbd33b32882ada369ae5a9ce9cce5f6900f6
Signed-off-by: Omair Mohammed Abdullah <omair.m.abdullah@intel.com>
Reviewed-on: http://android.intel.com:8080/29524
Reviewed-by: M, Arulselvan <arulselvan.m@intel.com>
Tested-by: M, Arulselvan <arulselvan.m@intel.com>
Reviewed-by: buildbot <buildbot@intel.com>
Tested-by: buildbot <buildbot@intel.com>