Merge "asoc: codec: Add pre ssr up event for all macros"
diff --git a/asoc/codecs/bolero/bolero-cdc.c b/asoc/codecs/bolero/bolero-cdc.c
index fea1686..38b1281 100644
--- a/asoc/codecs/bolero/bolero-cdc.c
+++ b/asoc/codecs/bolero/bolero-cdc.c
@@ -835,11 +835,19 @@
priv->component,
BOLERO_MACRO_EVT_CLK_RESET, 0x0);
}
+ trace_printk("%s: clk count reset\n", __func__);
if (priv->rsc_clk_cb)
priv->rsc_clk_cb(priv->clk_dev, BOLERO_MACRO_EVT_SSR_GFMUX_UP);
- trace_printk("%s: clk count reset\n", __func__);
+ for (macro_idx = START_MACRO; macro_idx < MAX_MACRO; macro_idx++) {
+ if (!priv->macro_params[macro_idx].event_handler)
+ continue;
+ priv->macro_params[macro_idx].event_handler(
+ priv->component,
+ BOLERO_MACRO_EVT_PRE_SSR_UP, 0x0);
+ }
+
regcache_cache_only(priv->regmap, false);
mutex_lock(&priv->clk_lock);
priv->dev_up = true;
diff --git a/asoc/codecs/bolero/bolero-cdc.h b/asoc/codecs/bolero/bolero-cdc.h
index 7528eae..5e90f27 100644
--- a/asoc/codecs/bolero/bolero-cdc.h
+++ b/asoc/codecs/bolero/bolero-cdc.h
@@ -54,6 +54,7 @@
BOLERO_MACRO_EVT_RX_COMPANDER_SOFT_RST,
BOLERO_MACRO_EVT_BCS_CLK_OFF,
BOLERO_MACRO_EVT_SSR_GFMUX_UP,
+ BOLERO_MACRO_EVT_PRE_SSR_UP,
};
enum {
diff --git a/asoc/codecs/bolero/rx-macro.c b/asoc/codecs/bolero/rx-macro.c
index c09de85..523f3c7 100644
--- a/asoc/codecs/bolero/rx-macro.c
+++ b/asoc/codecs/bolero/rx-macro.c
@@ -1389,11 +1389,7 @@
}
}
break;
- case BOLERO_MACRO_EVT_SSR_UP:
- trace_printk("%s, enter SSR up\n", __func__);
- rx_priv->dev_up = true;
- /* reset swr after ssr/pdr */
- rx_priv->reset_swr = true;
+ case BOLERO_MACRO_EVT_PRE_SSR_UP:
/* enable&disable RX_CORE_CLK to reset GFMUX reg */
ret = bolero_clk_rsc_request_clock(rx_priv->dev,
rx_priv->default_clk_id,
@@ -1406,6 +1402,12 @@
bolero_clk_rsc_request_clock(rx_priv->dev,
rx_priv->default_clk_id,
RX_CORE_CLK, false);
+ break;
+ case BOLERO_MACRO_EVT_SSR_UP:
+ trace_printk("%s, enter SSR up\n", __func__);
+ rx_priv->dev_up = true;
+ /* reset swr after ssr/pdr */
+ rx_priv->reset_swr = true;
if (rx_priv->swr_ctrl_data)
swrm_wcd_notify(
diff --git a/asoc/codecs/bolero/tx-macro.c b/asoc/codecs/bolero/tx-macro.c
index 3d6c33e..85e5e95 100644
--- a/asoc/codecs/bolero/tx-macro.c
+++ b/asoc/codecs/bolero/tx-macro.c
@@ -411,6 +411,9 @@
else
tx_priv->hs_slow_insert_complete = false;
break;
+ default:
+ pr_debug("%s Invalid Event\n", __func__);
+ break;
}
return 0;
}
diff --git a/asoc/codecs/bolero/va-macro.c b/asoc/codecs/bolero/va-macro.c
index f8aae9d..46e4543 100644
--- a/asoc/codecs/bolero/va-macro.c
+++ b/asoc/codecs/bolero/va-macro.c
@@ -299,8 +299,7 @@
"%s: va_mclk_users is non-zero still, audio SSR fail!!\n",
__func__);
break;
- case BOLERO_MACRO_EVT_SSR_UP:
- trace_printk("%s, enter SSR up\n", __func__);
+ case BOLERO_MACRO_EVT_PRE_SSR_UP:
/* enable&disable VA_CORE_CLK to reset GFMUX reg */
ret = bolero_clk_rsc_request_clock(va_priv->dev,
va_priv->default_clk_id,
@@ -313,6 +312,9 @@
bolero_clk_rsc_request_clock(va_priv->dev,
va_priv->default_clk_id,
VA_CORE_CLK, false);
+ break;
+ case BOLERO_MACRO_EVT_SSR_UP:
+ trace_printk("%s, enter SSR up\n", __func__);
/* reset swr after ssr/pdr */
va_priv->reset_swr = true;
if (va_priv->swr_ctrl_data)
diff --git a/asoc/codecs/bolero/wsa-macro.c b/asoc/codecs/bolero/wsa-macro.c
index 4a15812..858e6c2 100644
--- a/asoc/codecs/bolero/wsa-macro.c
+++ b/asoc/codecs/bolero/wsa-macro.c
@@ -1023,10 +1023,7 @@
}
}
break;
- case BOLERO_MACRO_EVT_SSR_UP:
- trace_printk("%s, enter SSR up\n", __func__);
- /* reset swr after ssr/pdr */
- wsa_priv->reset_swr = true;
+ case BOLERO_MACRO_EVT_PRE_SSR_UP:
/* enable&disable WSA_CORE_CLK to reset GFMUX reg */
ret = bolero_clk_rsc_request_clock(wsa_priv->dev,
wsa_priv->default_clk_id,
@@ -1039,6 +1036,11 @@
bolero_clk_rsc_request_clock(wsa_priv->dev,
wsa_priv->default_clk_id,
WSA_CORE_CLK, false);
+ break;
+ case BOLERO_MACRO_EVT_SSR_UP:
+ trace_printk("%s, enter SSR up\n", __func__);
+ /* reset swr after ssr/pdr */
+ wsa_priv->reset_swr = true;
if (wsa_priv->swr_ctrl_data)
swrm_wcd_notify(
wsa_priv->swr_ctrl_data[0].wsa_swr_pdev,