audio-lnx: Add latest snapshot for audio drivers.
Propagate the changes based on latest snapshot
for audio kernel source tree at below cutoff of
kernel msm-4.9 -
(040750bfa78 -
"Revert "ARM: dts: msm: Add DT node for aop-qmp
clock controller on SDM845 v2"")
CRs-Fixed: 2104096
Change-Id: I0927c40b3a188dbf892e7ec4c1c7810953724929
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
diff --git a/asoc/msm-compress-q6-v2.c b/asoc/msm-compress-q6-v2.c
index 89efb90..a9f28ca 100644
--- a/asoc/msm-compress-q6-v2.c
+++ b/asoc/msm-compress-q6-v2.c
@@ -1281,6 +1281,9 @@
.step = SOFT_VOLUME_STEP,
.rampingcurve = SOFT_VOLUME_CURVE_LINEAR,
};
+ struct snd_kcontrol *kctl;
+ struct snd_ctl_elem_value kctl_elem_value;
+ uint16_t target_asm_bit_width = 0;
pr_debug("%s: stream_id %d\n", __func__, ac->stream_id);
stream_index = STREAM_ARRAY_INDEX(ac->stream_id);
@@ -1289,6 +1292,23 @@
return -EINVAL;
}
+ kctl = snd_soc_card_get_kcontrol(soc_prtd->card,
+ DSP_BIT_WIDTH_MIXER_CTL);
+ if (kctl) {
+ kctl->get(kctl, &kctl_elem_value);
+ target_asm_bit_width = kctl_elem_value.value.integer.value[0];
+ if (target_asm_bit_width > 0) {
+ pr_debug("%s enforce ASM bitwidth to %d from %d\n",
+ __func__,
+ target_asm_bit_width,
+ bits_per_sample);
+ bits_per_sample = target_asm_bit_width;
+ }
+ } else {
+ pr_info("%s: failed to get mixer ctl for %s.\n",
+ __func__, DSP_BIT_WIDTH_MIXER_CTL);
+ }
+
if ((prtd->codec_param.codec.format == SNDRV_PCM_FORMAT_S24_LE) ||
(prtd->codec_param.codec.format == SNDRV_PCM_FORMAT_S24_3LE))
bits_per_sample = 24;