Merge "asoc: bengal: Fail SVA for fuse variant"
diff --git a/asoc/bengal.c b/asoc/bengal.c
index f2a2ece..dcdf1ed 100644
--- a/asoc/bengal.c
+++ b/asoc/bengal.c
@@ -1,6 +1,6 @@
// SPDX-License-Identifier: GPL-2.0-only
/*
- * Copyright (c) 2016-2019, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2016-2020, The Linux Foundation. All rights reserved.
*/
#include <linux/clk.h>
@@ -156,6 +156,7 @@
struct device_node *hph_en0_gpio_p; /* used by pinctrl API */
bool is_afe_config_done;
struct device_node *fsa_handle;
+ bool va_disable;
};
struct tdm_port {
@@ -261,7 +262,6 @@
};
static struct mi2s_conf mi2s_intf_conf[MI2S_MAX];
-static bool va_disable;
/* Default configuration of TDM channels */
static struct dev_config tdm_rx_cfg[TDM_INTERFACE_MAX][TDM_PORT_MAX] = {
@@ -3815,13 +3815,17 @@
int ret = 0;
struct snd_soc_pcm_runtime *rtd = substream->private_data;
struct snd_soc_dai_link *dai_link = rtd->dai_link;
+ struct snd_soc_card *card = rtd->card;
+ struct msm_asoc_mach_data *pdata = snd_soc_card_get_drvdata(card);
switch (dai_link->id) {
case MSM_BACKEND_DAI_VA_CDC_DMA_TX_0:
case MSM_BACKEND_DAI_VA_CDC_DMA_TX_1:
case MSM_BACKEND_DAI_VA_CDC_DMA_TX_2:
- if (va_disable)
- break;
+ if (pdata->va_disable) {
+ pr_debug("%s: SVA not supported\n", __func__);
+ return -EINVAL;
+ }
ret = bengal_send_island_va_config(dai_link->id);
if (ret)
pr_err("%s: send island va cfg failed, err: %d\n",
@@ -6616,7 +6620,7 @@
}
memcpy(&adsp_var_idx, buf, len);
kfree(buf);
- va_disable = adsp_var_idx;
+ pdata->va_disable = adsp_var_idx;
ret:
return 0;