Conditional compilation for 48KHz sample rate

Change-Id: I901e83dac9e18343dad4fad9c6ebf5f58c24ebf5
libbt-hci: include bdroid_buildcfg.h from device repo

This lets device repos override some constants with their bdroid_buildcfg.h if
necessary.

This fixes Bluetooth issues (namely tethering) on endeavoru where
BTHC_USERIAL_READ_MEM_SIZE needs to be set to a higher value.

Change-Id: I8955963cdb2b34f1ba63f8160861699f7284814f
a2dp hw: adding a2dp tuning through bdroid_buildcfg.h

This adds possibility to configure a2dp tuning on an
arbitrary sysfs path and arbitrary ON/OFF values.
It's activated when a2dp is being used, and
deactivates when a2dp is stopped.
This way a device can either use an a2dp_tuning sysfs file
or cpu scaling min freq sysfs path with a target
min_freq value for elevation.

Here are two example of the two strategies of usage for
this:
bdroid_buildcfg.h - sysfs tuning file
 #define A2DP_HW_SYSFS_TUNER "/sys/devices/platform/tegra_uart.2/a2dp_tuning"
 #define A2DP_HW_SYSFS_TUNER_OFF "0"
 #define A2DP_HW_SYSFS_TUNER_ON "1"

bdroid_buildcfg.h - scaling min freq file
 #define A2DP_HW_SYSFS_TUNER "/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq"
 #define A2DP_HW_SYSFS_TUNER_OFF "0"
 #define A2DP_HW_SYSFS_TUNER_ON "204000"

Change-Id: I2cd94e626eb2a6d04a6e52ddac94fa5773eb09d8
Disable BLUETOOTH_QCOM_SW by default

 * Devices that need this can opt in, it causes problems for others.

Change-Id: I61e8714e0b3b226e4cd2b27fb2698d814746b0d9
Add I2S-PCM slave mode for SCO

 * M7 needs us to configure I2SPCM for SCO and set the voice mode.

Change-Id: I98a9528af62f9c4fef075927f00a8aafdbeb4ee3
bluedroid: Remove ALSA check on sample rate setting

 * All QC devices using the CodeAurora drivers should be using a 48KHz
   samplerate for A2DP.

Change-Id: I8cec354c5a2dde0f85f19cfee2f75501f2a2d5a3
Disable BTC by default, only WCN needs this.

Change-Id: Ib8eb49d47529203863fbe742a226a34b50766b10
Move QCOM enhanced features under QCOM_SW ifdef

Change-Id: Icff5c9c3cafb7b326ae62f85da34f613694ff140
bluedroid: set 48KHz samplerate for b-family

Change-Id: I115c385548ba88db0c0658331dbbab5e6e7d2930
buildfix for gcc 4.8

clearly gcc 4.8 is smarter than 4.7, so ignore it

Change-Id: Ia4cd6e5711c6196c00ee8a8baa9a6cb1fd4d8e52
bluetooth: Do not sleep when you have already overslept your tick

The GKI code generates ticks at a default of one tick every 10ms.
Previously, if the system overslept the tick and was late for the
next one, it would sleep for 1/10 of a tick (1ms).  This means that
if you overslept a tick by 50ms you would sleep at least 5 times
before you caught up.  Now, it will avoid sleeping and generate
the missing ticks immediately.

This hugely improves a problem on the HTC DLX where bluetooth
audio will "stutter" fairly frequently during playback.
After instrumenting this code, I could see it missing
ticks quite frequently when the display was turned off.  It was
missing them frequently by more than 30ms.  I assume, but haven't
verifed, that this is due to a sudden additional load on the phone
that is not dealt with quickly enough by the CPU governor
combined with the fact that the screen off is limited to only a
single core.

Change-Id: I4fcb736ebeb683a10fcade5ff33cfccb921f0c47