hal: Add support for VoWLAN feature

Add VoWLAN pcm id, usecase to enable voice
over WLAN feature.

Change-Id: I2d10ff06342bfcbef15a4769ba90deaeb4218107
hal: Add support for VoWLAN on MSM8974

Update the VoWLAN pcm id for MSM8974

CRs-fixed: 662362
Change-Id: Ia0894fa1347f05e55993af91da91272af3161f83
hal: Update EC support for HPF usecase

- Ensure reference device is set if audio is routed
to speaker/headset during HFP usecase.

Change-Id: Ia404aaa8ec8b80e9f4be14840dfef3bf9afef435
CRs-Fixed: 641513
hal: Permit device switch for primary output in a voip call

The device switch from speaker to earpiece or vice versa fails
during a QQ voip call. Currently, we use the same devices for
all usecases as that of voice/voip call and avoid switching the
same for other usecases when a voip/voice call is active. At
times, voip call has primary output which uses deep buffer path.
With current design in place, we do not permit device switch on
deep buffer path since voip call is active despite the rx on
primary output.
Do not select voip usecase devices if the output stream uses
primary output or in effect permit switching.

Change-Id: Ie61a7d7d8f27d55a393d173a724697045f66e1d6
CRs-Fixed: 685222
post_proc: Fix improper datatype of EQ preset band level value

unsigned int causes negative band level turn out to be extreme large
value, which results in EQ works abnormally due to unexpected parameter
sent.

Change-Id: I81120c604f4e9f23b25d5a45a7b0294fea63d207
CRs-Fixed: 696825
hal: Add/remove speaker protection usecase to/from global list

Audio hal maintains link list that contains all active audio/voice
usecases. When usecase is being started it shoule be be added to
list and removed when usecase is disabled.
Speaker protection usecases were not being added to the list which was
causing the speaker calibration pre-emption to fail. Change updates the
usecase list and ensures that device lock is not acquired when
calibration is being pre-empted

CRs-fixed: 688972
Change-Id: I377346243ceaaebfcf80673f367dbd8bb83d5381
hal: Speaker protection pre-emption fixes

Speaker protection module should acquire the device lock for all global
operations. This change will ensure that the pre-conditions required for
calibration will be met and if any audio/voice usecase is started when
speaker calibration is being done,speaker protection thread should
cancel the calibration.

Change-Id: I0d5fa23657161ec971e851944a0045a01d8248ea
CRs-fixed: 688972
hal: add the stream to uc_info for speaker protection enablement

Stream was null causing data abort when speaker
protection is enabled. Set it to primary_output in case
of playback and set device in case of recording.

Change-Id: I4b532ad7d76adab75e1ef0719eaba197eb3d9379