summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSecurityBot AutoMerger <android-nexus-securitybot@system.gserviceaccount.com>2019-12-20 14:14:55 -0800
committerSecurityBot <android-nexus-securitybot@system.gserviceaccount.com>2019-12-20 14:14:56 -0800
commit6884dd32b830a51f8c7122886427e9b1c8000c25 (patch)
tree0ac0b565c583a35faccb73372bc2aa5735eeb011
parent3ab4335efed7b725b85f58bcfde465a5f0d91666 (diff)
parent4b7a91f83130ce888b0f05eaec406879ee3f4d87 (diff)
downloadmsm-extra-6884dd32b830a51f8c7122886427e9b1c8000c25.tar.gz
Merge android-msm-floral-4.14-qt-qpr2 into android-msm-floral-4.14
SBMerger: 284775313 Change-Id: Iad1462839c5c42687572b07e6e23d129b5c4a303 Signed-off-by: SecurityBot <android-nexus-securitybot@system.gserviceaccount.com>
-rw-r--r--asoc/codecs/bolero/rx-macro.c18
-rw-r--r--asoc/codecs/bolero/wsa-macro.c19
2 files changed, 29 insertions, 8 deletions
diff --git a/asoc/codecs/bolero/rx-macro.c b/asoc/codecs/bolero/rx-macro.c
index bc9eea79..c9af45b4 100644
--- a/asoc/codecs/bolero/rx-macro.c
+++ b/asoc/codecs/bolero/rx-macro.c
@@ -1765,14 +1765,23 @@ static int rx_macro_mux_put(struct snd_kcontrol *kcontrol,
dev_err(rx_dev, "%s:AIF reset already\n", __func__);
return 0;
}
+ if (aif_rst > RX_MACRO_AIF4_PB) {
+ dev_err(rx_dev, "%s: Invalid AIF reset\n", __func__);
+ return 0;
+ }
}
rx_priv->rx_port_value[widget->shift] = rx_port_value;
+ dev_dbg(rx_dev, "%s: mux input: %d, mux output: %d, aif_rst: %d\n",
+ __func__, rx_port_value, widget->shift, aif_rst);
+
switch (rx_port_value) {
case 0:
- clear_bit(widget->shift,
- &rx_priv->active_ch_mask[aif_rst]);
- rx_priv->active_ch_cnt[aif_rst]--;
+ if (rx_priv->active_ch_cnt[aif_rst]) {
+ clear_bit(widget->shift,
+ &rx_priv->active_ch_mask[aif_rst]);
+ rx_priv->active_ch_cnt[aif_rst]--;
+ }
break;
case 1:
case 2:
@@ -1784,7 +1793,8 @@ static int rx_macro_mux_put(struct snd_kcontrol *kcontrol,
break;
default:
dev_err(codec->dev,
- "%s:Invalid AIF_ID for RX_MACRO MUX\n", __func__);
+ "%s:Invalid AIF_ID for RX_MACRO MUX %d\n",
+ __func__, rx_port_value);
goto err;
}
diff --git a/asoc/codecs/bolero/wsa-macro.c b/asoc/codecs/bolero/wsa-macro.c
index ab00633a..e30872ba 100644
--- a/asoc/codecs/bolero/wsa-macro.c
+++ b/asoc/codecs/bolero/wsa-macro.c
@@ -1973,6 +1973,10 @@ static int wsa_macro_rx_mux_put(struct snd_kcontrol *kcontrol,
dev_err(wsa_dev, "%s: AIF reset already\n", __func__);
return 0;
}
+ if (aif_rst >= WSA_MACRO_RX_MAX) {
+ dev_err(wsa_dev, "%s: Invalid AIF reset\n", __func__);
+ return 0;
+ }
}
wsa_priv->rx_port_value[widget->shift] = rx_port_value;
@@ -1980,11 +1984,17 @@ static int wsa_macro_rx_mux_put(struct snd_kcontrol *kcontrol,
if (widget->shift >= WSA_MACRO_RX_MIX)
bit_input %= WSA_MACRO_RX_MIX;
+ dev_dbg(wsa_dev,
+ "%s: mux input: %d, mux output: %d, bit: %d\n",
+ __func__, rx_port_value, widget->shift, bit_input);
+
switch (rx_port_value) {
case 0:
- clear_bit(bit_input,
- &wsa_priv->active_ch_mask[aif_rst]);
- wsa_priv->active_ch_cnt[aif_rst]--;
+ if (wsa_priv->active_ch_cnt[aif_rst]) {
+ clear_bit(bit_input,
+ &wsa_priv->active_ch_mask[aif_rst]);
+ wsa_priv->active_ch_cnt[aif_rst]--;
+ }
break;
case 1:
case 2:
@@ -1994,7 +2004,8 @@ static int wsa_macro_rx_mux_put(struct snd_kcontrol *kcontrol,
break;
default:
dev_err(wsa_dev,
- "%s: Invalid AIF_ID for WSA RX MUX\n", __func__);
+ "%s: Invalid AIF_ID for WSA RX MUX %d\n",
+ __func__, rx_port_value);
return -EINVAL;
}