[REBASED on main r3(stable)from r2-stable] audio: sst: make sst driver mad workqueue...
authorOmair Mohammed Abdullah <omair.m.abdullah@intel.com>
Mon, 21 Nov 2011 10:17:03 +0000 (15:47 +0530)
committerbuildbot <buildbot@intel.com>
Fri, 23 Dec 2011 13:40:04 +0000 (05:40 -0800)
commitdd49c0e77015fa8cb141defdf482673c915ee6ce
tree5da333d74ccc2d4dbac429e2efb6d737e4a8201d
parented67c3ca113ef1041d9da9e8a51f3e6c0b0ff4eb
[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>
sound/pci/sst/intel_sst.c
sound/pci/sst/intel_sst_ipc.c
sound/pci/sst/intel_sst_stream.c