Merge "hal: Avoid setting wrong sample rate for headset device"
diff --git a/hal/msm8916/platform.c b/hal/msm8916/platform.c
index 9bb3ce5..164dc5a 100644
--- a/hal/msm8916/platform.c
+++ b/hal/msm8916/platform.c
@@ -6396,7 +6396,7 @@
* Handset and speaker may have diffrent backend. Check if the device is speaker or handset,
* and these devices are restricited to 48kHz.
*/
- if ((platform_get_backend_index(snd_device) == DEFAULT_CODEC_BACKEND) &&
+ if (!codec_device_supports_native_playback(usecase->devices) &&
(platform_check_backends_match(SND_DEVICE_OUT_SPEAKER, snd_device) ||
platform_check_backends_match(SND_DEVICE_OUT_HANDSET, snd_device))) {
sample_rate = CODEC_BACKEND_DEFAULT_SAMPLE_RATE;
diff --git a/hal/msm8974/platform.c b/hal/msm8974/platform.c
index a609de1..2ce1d6d 100644
--- a/hal/msm8974/platform.c
+++ b/hal/msm8974/platform.c
@@ -7370,7 +7370,9 @@
* Handset and speaker may have diffrent backend. Check if the device is speaker or handset,
* and these devices are restricited to 48kHz.
*/
- if (platform_check_backends_match(SND_DEVICE_OUT_SPEAKER, snd_device)) {
+ if (!codec_device_supports_native_playback(usecase->devices) &&
+ (platform_check_backends_match(SND_DEVICE_OUT_SPEAKER, snd_device) ||
+ platform_check_backends_match(SND_DEVICE_OUT_HANDSET, snd_device))) {
int bw = platform_get_snd_device_bit_width(SND_DEVICE_OUT_SPEAKER);
if ((-ENOSYS != bw) && (bit_width > (uint32_t)bw)) {
bit_width = (uint32_t)bw;