Bring up voice on apq8084 targets.

  * Includes squashed commits and pertinent parts of:

hal: load CSD library by checking number of modems
The method to get baseband through property will be deprecated.

Call ESOC API to get the number of modems within the platform.
Use the number of modems instead of baseband to decide whether
CSD library should be loaded.

Change-Id: I470616a6ce833a368783bba9442285a69491cbac

audio: rework dependency on libmdmdetect
libmdmdetect is a binary-only library, so we cannot change its API.  Instead,
make the audio HAL depend on libdetectmodem, which exports a single function,
which returns the number of modems, or -1 in the event of error. If the library
is not present, or we fail to look up the symbol, or in the event of an error,
we assume that there is no modem.

extern int32_t count_modems(void);

b/16859052 aosp-shamu has dependencies on vendor/
Change-Id: I197dc5386b13fc2cce69fd273a47298517bd8b04
Signed-off-by: Iliyan Malchev <malchev@google.com>

hal: add support for I2S based external modem.
There are specific xml files used for I2S based external modem.
Add check to load the correct xml file.

For I2S based external modem, voice sample rate can be 8k or
16k based on vocoder type. Call csd client api to get the
correct sample rate to configure voice call.

Change-Id: Ie9799336620f49a890355be74fe1830eb348cabe

hal: add DSDA support on APQ targets
-This change adds DSDA support for APQ based targets
 where external modem is used for voice calls.
-Add new CSD API to support local call hold.

hal: Add new CSD API to reduce in call device switch delay
New CSD api is added to reduce device switch delay during voice call.
This api is called before enabling the devices so that csd voice call
sequence on MDM can run in parallel with device enable configuration
on APQ.

Change-Id: I9239ff21e1c07370516d0ed668e1e94af12f9eb2

  * Verifed making voice calls through regular telephony
    and Hangouts.

Change-Id: I92755a1a050786c4807ef8d68f780d02c0f87f85
8 files changed