CyanogenMod/lge-kernel-msm7x27 — pull request #4 by androidmeda (2012-01-25 15:02:50+00:00)
Title: Fixes blackscreen bug when call received

msm: audio: 7x27: Fix bug by releasing spinlock in error case

Audio drivers does not release spinlock when kmalloc() fails in
post_event function. This can result in deadlock or system hang
in low memory conditions. Fix this bug by releasing the spinlock
when kmalloc fails.

Change-Id: Id6ffd5c34ac36f68cb7b490a43bdf09bb80c5b9e
CRs-Fixed: 281588
Signed-off-by: Sriranjan Srikantam

EOS buffer is not getting processed in following scenario is
encountered:
-Driver Recieves FLUSH command from apps
-Application sends EOS buffer to the driver after flush
command has completed
-NEEDS_DATA messages from DSP is Recieved by driver

In above scenario driver blocks for forever in write wait queue
and EOS buffer never gets processed.

Fix this by sending wakeup when NEEDS_DATA message is received.

CRs-Fixed: 292954, 293145
Signed-off-by: Manish Dewangan
(cherry picked from commit c729e63e1adc0b1e3b542477731e3485574150cd)

Change-Id: Iba4f7850e546d3816c31389a33984af28cca6503
Signed-off-by: Sunil Joseph