Merge "ASoC: wsa883x: enable vbat adc filter"
diff --git a/asoc/codecs/bolero/tx-macro.c b/asoc/codecs/bolero/tx-macro.c
index 158f350..7e982fa 100644
--- a/asoc/codecs/bolero/tx-macro.c
+++ b/asoc/codecs/bolero/tx-macro.c
@@ -2445,11 +2445,7 @@
ret = swrm_wcd_notify(
tx_priv->swr_ctrl_data[0].tx_swr_pdev,
SWR_REGISTER_WAKEUP, NULL);
- msm_cdc_pinctrl_set_wakeup_capable(
- tx_priv->tx_swr_gpio_p, false);
} else {
- msm_cdc_pinctrl_set_wakeup_capable(
- tx_priv->tx_swr_gpio_p, true);
ret = swrm_wcd_notify(
tx_priv->swr_ctrl_data[0].tx_swr_pdev,
SWR_DEREGISTER_WAKEUP, NULL);
@@ -2484,6 +2480,8 @@
__func__);
goto exit;
}
+ msm_cdc_pinctrl_set_wakeup_capable(
+ tx_priv->tx_swr_gpio_p, false);
}
clk_tx_ret = bolero_clk_rsc_request_clock(tx_priv->dev,
@@ -2612,6 +2610,8 @@
TX_CORE_CLK,
false);
if (tx_priv->swr_clk_users == 0) {
+ msm_cdc_pinctrl_set_wakeup_capable(
+ tx_priv->tx_swr_gpio_p, true);
ret = msm_cdc_pinctrl_select_sleep_state(
tx_priv->tx_swr_gpio_p);
if (ret < 0) {
diff --git a/asoc/codecs/bolero/va-macro.c b/asoc/codecs/bolero/va-macro.c
index 5ce2ec1..2e36995 100644
--- a/asoc/codecs/bolero/va-macro.c
+++ b/asoc/codecs/bolero/va-macro.c
@@ -388,9 +388,6 @@
dev_dbg(va_dev, "%s: event = %d, lpi_enable = %d\n",
__func__, event, va_priv->lpi_enable);
- if (!va_priv->lpi_enable)
- return ret;
-
switch (event) {
case SND_SOC_DAPM_PRE_PMU:
if (va_priv->swr_ctrl_data) {
@@ -402,12 +399,8 @@
dev_dbg(va_dev, "%s: clock switch failed\n",
__func__);
}
- msm_cdc_pinctrl_set_wakeup_capable(
- va_priv->va_swr_gpio_p, false);
break;
case SND_SOC_DAPM_POST_PMD:
- msm_cdc_pinctrl_set_wakeup_capable(
- va_priv->va_swr_gpio_p, true);
if (va_priv->swr_ctrl_data) {
clk_src = CLK_SRC_TX_RCG;
ret = swrm_wcd_notify(
@@ -441,9 +434,6 @@
dev_dbg(va_dev, "%s: event = %d, lpi_enable = %d\n",
__func__, event, va_priv->lpi_enable);
- if (!va_priv->lpi_enable)
- return ret;
-
switch (event) {
case SND_SOC_DAPM_PRE_PMU:
if (va_priv->lpass_audio_hw_vote) {
@@ -563,9 +553,12 @@
(enable ? "enable" : "disable"), va_priv->va_mclk_users);
if (enable) {
- if (va_priv->swr_clk_users == 0)
+ if (va_priv->swr_clk_users == 0) {
msm_cdc_pinctrl_select_active_state(
va_priv->va_swr_gpio_p);
+ msm_cdc_pinctrl_set_wakeup_capable(
+ va_priv->va_swr_gpio_p, false);
+ }
clk_tx_ret = bolero_clk_rsc_request_clock(va_priv->dev,
TX_CORE_CLK,
TX_CORE_CLK,
@@ -658,9 +651,12 @@
TX_CORE_CLK,
TX_CORE_CLK,
false);
- if (va_priv->swr_clk_users == 0)
+ if (va_priv->swr_clk_users == 0) {
+ msm_cdc_pinctrl_set_wakeup_capable(
+ va_priv->va_swr_gpio_p, true);
msm_cdc_pinctrl_select_sleep_state(
va_priv->va_swr_gpio_p);
+ }
}
return 0;
diff --git a/asoc/codecs/bolero/wsa-macro.c b/asoc/codecs/bolero/wsa-macro.c
index ca7391d..5ace96d 100644
--- a/asoc/codecs/bolero/wsa-macro.c
+++ b/asoc/codecs/bolero/wsa-macro.c
@@ -445,8 +445,8 @@
static const struct wsa_macro_reg_mask_val wsa_macro_spkr_default[] = {
{BOLERO_CDC_WSA_COMPANDER0_CTL3, 0x80, 0x80},
{BOLERO_CDC_WSA_COMPANDER1_CTL3, 0x80, 0x80},
- {BOLERO_CDC_WSA_COMPANDER0_CTL7, 0x01, 0x01},
- {BOLERO_CDC_WSA_COMPANDER1_CTL7, 0x01, 0x01},
+ {BOLERO_CDC_WSA_COMPANDER0_CTL7, 0x1F, 0x19},
+ {BOLERO_CDC_WSA_COMPANDER1_CTL7, 0x1F, 0x19},
{BOLERO_CDC_WSA_BOOST0_BOOST_CTL, 0x7C, 0x58},
{BOLERO_CDC_WSA_BOOST1_BOOST_CTL, 0x7C, 0x58},
};
@@ -454,8 +454,8 @@
static const struct wsa_macro_reg_mask_val wsa_macro_spkr_mode1[] = {
{BOLERO_CDC_WSA_COMPANDER0_CTL3, 0x80, 0x00},
{BOLERO_CDC_WSA_COMPANDER1_CTL3, 0x80, 0x00},
- {BOLERO_CDC_WSA_COMPANDER0_CTL7, 0x01, 0x00},
- {BOLERO_CDC_WSA_COMPANDER1_CTL7, 0x01, 0x00},
+ {BOLERO_CDC_WSA_COMPANDER0_CTL7, 0x1F, 0x18},
+ {BOLERO_CDC_WSA_COMPANDER1_CTL7, 0x1F, 0x18},
{BOLERO_CDC_WSA_BOOST0_BOOST_CTL, 0x7C, 0x44},
{BOLERO_CDC_WSA_BOOST1_BOOST_CTL, 0x7C, 0x44},
};
@@ -2744,10 +2744,10 @@
static const struct wsa_macro_reg_mask_val wsa_macro_reg_init[] = {
{BOLERO_CDC_WSA_BOOST0_BOOST_CFG1, 0x3F, 0x12},
{BOLERO_CDC_WSA_BOOST0_BOOST_CFG2, 0x1C, 0x08},
- {BOLERO_CDC_WSA_COMPANDER0_CTL7, 0x1E, 0x18},
+ {BOLERO_CDC_WSA_COMPANDER0_CTL7, 0x1E, 0x0C},
{BOLERO_CDC_WSA_BOOST1_BOOST_CFG1, 0x3F, 0x12},
{BOLERO_CDC_WSA_BOOST1_BOOST_CFG2, 0x1C, 0x08},
- {BOLERO_CDC_WSA_COMPANDER1_CTL7, 0x1E, 0x18},
+ {BOLERO_CDC_WSA_COMPANDER1_CTL7, 0x1E, 0x0C},
{BOLERO_CDC_WSA_BOOST0_BOOST_CTL, 0x70, 0x58},
{BOLERO_CDC_WSA_BOOST1_BOOST_CTL, 0x70, 0x58},
{BOLERO_CDC_WSA_RX0_RX_PATH_CFG1, 0x08, 0x08},
@@ -2758,8 +2758,6 @@
{BOLERO_CDC_WSA_TX1_SPKR_PROT_PATH_CFG0, 0x01, 0x01},
{BOLERO_CDC_WSA_TX2_SPKR_PROT_PATH_CFG0, 0x01, 0x01},
{BOLERO_CDC_WSA_TX3_SPKR_PROT_PATH_CFG0, 0x01, 0x01},
- {BOLERO_CDC_WSA_COMPANDER0_CTL3, 0x80, 0x80},
- {BOLERO_CDC_WSA_COMPANDER1_CTL3, 0x80, 0x80},
{BOLERO_CDC_WSA_COMPANDER0_CTL7, 0x01, 0x01},
{BOLERO_CDC_WSA_COMPANDER1_CTL7, 0x01, 0x01},
{BOLERO_CDC_WSA_RX0_RX_PATH_CFG0, 0x01, 0x01},
diff --git a/asoc/kona.c b/asoc/kona.c
index 5192e3e..23f5f42 100644
--- a/asoc/kona.c
+++ b/asoc/kona.c
@@ -80,8 +80,10 @@
#define ADSP_STATE_READY_TIMEOUT_MS 3000
-#define WSA8810_NAME_1 "wsa881x.20170211"
-#define WSA8810_NAME_2 "wsa881x.20170212"
+#define WSA8810_NAME_1 "wsa881x.1020170211"
+#define WSA8810_NAME_2 "wsa881x.1020170212"
+#define WSA8815_NAME_1 "wsa881x.1021170213"
+#define WSA8815_NAME_2 "wsa881x.1021170214"
#define WCN_CDC_SLIM_RX_CH_MAX 2
#define WCN_CDC_SLIM_TX_CH_MAX 2
#define WCN_CDC_SLIM_TX_CH_MAX_LITO 3
@@ -5531,6 +5533,11 @@
WSA_MACRO_SPKR_MODE_1);
wsa_macro_set_spkr_gain_offset(component,
WSA_MACRO_GAIN_OFFSET_M1P5_DB);
+ } else if (aux_comp->name != NULL && (
+ !strcmp(aux_comp->name, WSA8815_NAME_1) ||
+ !strcmp(aux_comp->name, WSA8815_NAME_2))) {
+ wsa_macro_set_spkr_mode(component,
+ WSA_MACRO_SPKR_MODE_DEFAULT);
}
}
}
diff --git a/asoc/msm-pcm-q6-v2.c b/asoc/msm-pcm-q6-v2.c
index de28f65..de8519d 100644
--- a/asoc/msm-pcm-q6-v2.c
+++ b/asoc/msm-pcm-q6-v2.c
@@ -1007,9 +1007,9 @@
xfer = size;
offset = prtd->in_frame_info[idx].offset;
pr_debug("Offset value = %d\n", offset);
- if (size == 0 || size < fbytes) {
- memset(bufptr + offset + size, 0, fbytes - size);
- size = xfer = fbytes;
+ if (size == 0 || size < prtd->pcm_count) {
+ memset(bufptr + offset + size, 0, prtd->pcm_count - size);
+ size = xfer = prtd->pcm_count;
}
if (copy_to_user(buf, bufptr+offset, xfer)) {
diff --git a/dsp/q6afe.c b/dsp/q6afe.c
index c9a5c95..58d440b 100644
--- a/dsp/q6afe.c
+++ b/dsp/q6afe.c
@@ -246,6 +246,7 @@
/* FTM spk params */
uint32_t initial_cal;
uint32_t v_vali_flag;
+ uint32_t num_spkrs;
};
struct afe_clkinfo_per_port {
@@ -2312,6 +2313,7 @@
struct afe_sp_v4_channel_v_vali_cfg *ch_v_vali_cfg;
struct afe_sp_v4_param_ex_vi_ftm_cfg *ex_vi_ftm_cfg;
struct afe_sp_v4_channel_ex_vi_ftm *ch_ex_vi_ftm_cfg;
+ uint32_t i = 0;
pr_debug("%s: Entry.. port_id %d\n", __func__, port_id);
@@ -2372,7 +2374,7 @@
v4_vi_op_mode->th_r0t0_selection_flag[SP_V2_SPKR_2] =
USE_SAFE_R0TO;
}
- afe_spk_config.v4_vi_op_mode.num_speakers = SP_V2_NUM_MAX_SPKRS;
+ afe_spk_config.v4_vi_op_mode.num_speakers = this_afe.num_spkrs;
if (afe_spk_prot_prepare(port_id, 0,
AFE_PARAM_ID_SP_V4_VI_OP_MODE_CFG,
&afe_spk_config,
@@ -2381,7 +2383,7 @@
__func__);
size = sizeof(struct afe_sp_v4_param_th_vi_r0t0_cfg) +
- (SP_V2_NUM_MAX_SPKRS * sizeof(struct afe_sp_v4_channel_r0t0));
+ (this_afe.num_spkrs * sizeof(struct afe_sp_v4_channel_r0t0));
tmp_ptr = kzalloc(size, GFP_KERNEL);
if (!tmp_ptr) {
mutex_unlock(
@@ -2395,15 +2397,13 @@
ch_r0t0_cfg =
(struct afe_sp_v4_channel_r0t0 *)(th_vi_r0t0_cfg + 1);
- th_vi_r0t0_cfg->num_speakers = SP_V2_NUM_MAX_SPKRS;
- ch_r0t0_cfg[SP_V2_SPKR_1].r0_cali_q24 =
- (uint32_t) this_afe.prot_cfg.r0[SP_V2_SPKR_1];
- ch_r0t0_cfg[SP_V2_SPKR_2].r0_cali_q24 =
- (uint32_t) this_afe.prot_cfg.r0[SP_V2_SPKR_2];
- ch_r0t0_cfg[SP_V2_SPKR_1].t0_cali_q6 =
- (uint32_t) this_afe.prot_cfg.t0[SP_V2_SPKR_1];
- ch_r0t0_cfg[SP_V2_SPKR_2].t0_cali_q6 =
- (uint32_t) this_afe.prot_cfg.t0[SP_V2_SPKR_2];
+ th_vi_r0t0_cfg->num_speakers = this_afe.num_spkrs;
+ for (i = 0; i < this_afe.num_spkrs; i++) {
+ ch_r0t0_cfg[i].r0_cali_q24 =
+ (uint32_t) this_afe.prot_cfg.r0[i];
+ ch_r0t0_cfg[i].t0_cali_q6 =
+ (uint32_t) this_afe.prot_cfg.t0[i];
+ }
if (afe_spk_prot_prepare(port_id, 0,
AFE_PARAM_ID_SP_V4_VI_R0T0_CFG,
(union afe_spkr_prot_config *)tmp_ptr, size))
@@ -2418,7 +2418,7 @@
(this_afe.vi_tx_port == port_id) &&
(this_afe.prot_cfg.sp_version >= AFE_API_VERSION_V9)) {
size = sizeof(struct afe_sp_v4_param_th_vi_ftm_cfg) +
- (SP_V2_NUM_MAX_SPKRS*sizeof(struct afe_sp_v4_channel_ftm_cfg));
+ (this_afe.num_spkrs * sizeof(struct afe_sp_v4_channel_ftm_cfg));
tmp_ptr = kzalloc(size, GFP_KERNEL);
if (!tmp_ptr) {
mutex_unlock(
@@ -2431,16 +2431,13 @@
ch_ftm_cfg =
(struct afe_sp_v4_channel_ftm_cfg *)(th_vi_ftm_cfg+1);
- th_vi_ftm_cfg->num_ch = SP_V2_NUM_MAX_SPKRS;
- ch_ftm_cfg[SP_V2_SPKR_1].wait_time_ms =
- this_afe.th_ftm_cfg.wait_time[SP_V2_SPKR_1];
- ch_ftm_cfg[SP_V2_SPKR_2].wait_time_ms =
- this_afe.th_ftm_cfg.wait_time[SP_V2_SPKR_2];
- ch_ftm_cfg[SP_V2_SPKR_1].ftm_time_ms =
- this_afe.th_ftm_cfg.ftm_time[SP_V2_SPKR_1];
- ch_ftm_cfg[SP_V2_SPKR_2].ftm_time_ms =
- this_afe.th_ftm_cfg.ftm_time[SP_V2_SPKR_2];
-
+ th_vi_ftm_cfg->num_ch = this_afe.num_spkrs;
+ for (i = 0; i < this_afe.num_spkrs; i++) {
+ ch_ftm_cfg[i].wait_time_ms =
+ this_afe.th_ftm_cfg.wait_time[i];
+ ch_ftm_cfg[i].ftm_time_ms =
+ this_afe.th_ftm_cfg.ftm_time[i];
+ }
if (afe_spk_prot_prepare(port_id, 0,
AFE_PARAM_ID_SP_V4_TH_VI_FTM_CFG,
(union afe_spkr_prot_config *)tmp_ptr, size))
@@ -2452,8 +2449,8 @@
MSM_SPKR_PROT_IN_V_VALI_MODE) &&
(this_afe.vi_tx_port == port_id)) {
size = sizeof(struct afe_sp_v4_param_th_vi_v_vali_cfg) +
- (SP_V2_NUM_MAX_SPKRS *
- sizeof(struct afe_sp_v4_channel_v_vali_cfg));
+ (this_afe.num_spkrs *
+ sizeof(struct afe_sp_v4_channel_v_vali_cfg));
tmp_ptr = kzalloc(size, GFP_KERNEL);
if (!tmp_ptr) {
mutex_unlock(
@@ -2467,16 +2464,13 @@
ch_v_vali_cfg =
(struct afe_sp_v4_channel_v_vali_cfg *)(th_vi_v_vali_cfg + 1);
- th_vi_v_vali_cfg->num_ch = SP_V2_NUM_MAX_SPKRS;
- ch_v_vali_cfg[SP_V2_SPKR_1].wait_time_ms =
- this_afe.v_vali_cfg.wait_time[SP_V2_SPKR_1];
- ch_v_vali_cfg[SP_V2_SPKR_2].wait_time_ms =
- this_afe.v_vali_cfg.wait_time[SP_V2_SPKR_2];
- ch_v_vali_cfg[SP_V2_SPKR_1].vali_time_ms =
- this_afe.v_vali_cfg.vali_time[SP_V2_SPKR_1];
- ch_v_vali_cfg[SP_V2_SPKR_2].vali_time_ms =
- this_afe.v_vali_cfg.vali_time[SP_V2_SPKR_2];
-
+ th_vi_v_vali_cfg->num_ch = this_afe.num_spkrs;
+ for (i = 0; i < this_afe.num_spkrs; i++) {
+ ch_v_vali_cfg[i].wait_time_ms =
+ this_afe.v_vali_cfg.wait_time[i];
+ ch_v_vali_cfg[i].vali_time_ms =
+ this_afe.v_vali_cfg.vali_time[i];
+ }
if (afe_spk_prot_prepare(port_id, 0,
AFE_PARAM_ID_SP_V4_TH_VI_V_VALI_CFG,
(union afe_spkr_prot_config *)tmp_ptr, size))
@@ -2492,7 +2486,7 @@
(this_afe.vi_tx_port == port_id) &&
(this_afe.prot_cfg.sp_version >= AFE_API_VERSION_V9)) {
size = sizeof(struct afe_sp_v4_param_ex_vi_ftm_cfg) +
- (SP_V2_NUM_MAX_SPKRS *
+ (this_afe.num_spkrs *
sizeof(struct afe_sp_v4_channel_ex_vi_ftm));
tmp_ptr = kzalloc(size, GFP_KERNEL);
if (!tmp_ptr) {
@@ -2514,17 +2508,14 @@
sizeof(struct afe_sp_v4_param_ex_vi_mode_cfg)))
pr_info("%s: ex vi mode cfg failed\n", __func__);
- ex_vi_ftm_cfg->num_ch = SP_V2_NUM_MAX_SPKRS;
+ ex_vi_ftm_cfg->num_ch = this_afe.num_spkrs;
- ch_ex_vi_ftm_cfg[SP_V2_SPKR_1].wait_time_ms =
- this_afe.ex_ftm_cfg.wait_time[SP_V2_SPKR_1];
- ch_ex_vi_ftm_cfg[SP_V2_SPKR_2].wait_time_ms =
- this_afe.ex_ftm_cfg.wait_time[SP_V2_SPKR_2];
- ch_ex_vi_ftm_cfg[SP_V2_SPKR_1].ftm_time_ms =
- this_afe.ex_ftm_cfg.ftm_time[SP_V2_SPKR_1];
- ch_ex_vi_ftm_cfg[SP_V2_SPKR_2].ftm_time_ms =
- this_afe.ex_ftm_cfg.ftm_time[SP_V2_SPKR_2];
-
+ for (i = 0; i < this_afe.num_spkrs; i++) {
+ ch_ex_vi_ftm_cfg[i].wait_time_ms =
+ this_afe.ex_ftm_cfg.wait_time[i];
+ ch_ex_vi_ftm_cfg[i].ftm_time_ms =
+ this_afe.ex_ftm_cfg.ftm_time[i];
+ }
if (afe_spk_prot_prepare(port_id, 0,
AFE_PARAM_ID_SP_V4_EX_VI_FTM_CFG,
(union afe_spkr_prot_config *)tmp_ptr, size))
@@ -8432,8 +8423,11 @@
* even if ramp down configuration failed it is not serious enough to
* warrant bailaing out.
*/
- if (afe_spk_ramp_dn_cfg(port_id) < 0)
- pr_err("%s: ramp down configuration failed\n", __func__);
+ if (q6core_get_avcs_api_version_per_service(
+ APRV2_IDS_SERVICE_ID_ADSP_AFE_V) < AFE_API_VERSION_V9) {
+ if (afe_spk_ramp_dn_cfg(port_id) < 0)
+ pr_err("%s: ramp down config failed\n", __func__);
+ }
stop.hdr.hdr_field = APR_HDR_FIELD(APR_MSG_TYPE_SEQ_CMD,
APR_HDR_LEN(APR_HDR_SIZE), APR_PKT_VER);
@@ -9574,6 +9568,7 @@
this_afe.v4_ch_map_cfg.chan_info[index++] = 4;
}
this_afe.v4_ch_map_cfg.num_channels = index;
+ this_afe.num_spkrs = index / 2;
pr_debug("%s no of channels: %d\n", __func__, index);
this_afe.vi_tx_port = src_port;
this_afe.vi_rx_port = dst_port;
diff --git a/dsp/q6lsm.c b/dsp/q6lsm.c
index cc57a25..857dad3 100644
--- a/dsp/q6lsm.c
+++ b/dsp/q6lsm.c
@@ -2436,6 +2436,7 @@
{
struct param_hdr_v3 param_info;
int rc = 0;
+ bool iid_supported = q6common_is_instance_id_supported();
memset(¶m_info, 0, sizeof(param_info));
@@ -2444,7 +2445,12 @@
param_info.module_id = p_info->module_id;
param_info.instance_id = p_info->instance_id;
param_info.param_id = p_info->param_id;
- param_info.param_size = p_info->param_size + sizeof(param_info);
+
+ if (iid_supported)
+ param_info.param_size = p_info->param_size + sizeof(struct param_hdr_v3);
+ else
+ param_info.param_size = p_info->param_size + sizeof(struct param_hdr_v2);
+
rc = q6lsm_get_params(client, NULL, ¶m_info);
if (rc) {
pr_err("%s: LSM_GET_CUSTOM_PARAMS failed, rc %d\n",
diff --git a/soc/swr-mstr-ctrl.c b/soc/swr-mstr-ctrl.c
index 7bf2f9a..d594a99 100644
--- a/soc/swr-mstr-ctrl.c
+++ b/soc/swr-mstr-ctrl.c
@@ -3093,7 +3093,7 @@
swrm_request_hw_vote(swrm, LPASS_AUDIO_CORE, false);
if (!hw_core_err)
swrm_request_hw_vote(swrm, LPASS_HW_CORE, false);
- if (swrm_clk_req_err)
+ if (swrm_clk_req_err || aud_core_err || hw_core_err)
pm_runtime_set_autosuspend_delay(&pdev->dev,
ERR_AUTO_SUSPEND_TIMER_VAL);
else
@@ -3123,6 +3123,10 @@
__func__, swrm->state);
dev_dbg(dev, "%s: pm_runtime: suspend state: %d\n",
__func__, swrm->state);
+ if (swrm->state == SWR_MSTR_SSR_RESET) {
+ swrm->state = SWR_MSTR_SSR;
+ return 0;
+ }
mutex_lock(&swrm->reslock);
mutex_lock(&swrm->force_down_lock);
current_state = swrm->state;
@@ -3477,6 +3481,18 @@
dev_err(swrm->dev, "%s: clock voting not zero\n",
__func__);
+ if (swrm->state == SWR_MSTR_UP ||
+ pm_runtime_autosuspend_expiration(swrm->dev)) {
+ swrm->state = SWR_MSTR_SSR_RESET;
+ dev_dbg(swrm->dev,
+ "%s:suspend swr if active at SSR up\n",
+ __func__);
+ pm_runtime_set_autosuspend_delay(swrm->dev,
+ ERR_AUTO_SUSPEND_TIMER_VAL);
+ usleep_range(50000, 50100);
+ swrm->state = SWR_MSTR_SSR;
+ }
+
mutex_lock(&swrm->devlock);
swrm->dev_up = true;
mutex_unlock(&swrm->devlock);
diff --git a/soc/swr-mstr-ctrl.h b/soc/swr-mstr-ctrl.h
index f536592..ed67f0e 100644
--- a/soc/swr-mstr-ctrl.h
+++ b/soc/swr-mstr-ctrl.h
@@ -51,6 +51,7 @@
SWR_MSTR_UP,
SWR_MSTR_DOWN,
SWR_MSTR_SSR,
+ SWR_MSTR_SSR_RESET,
};
enum swrm_pm_state {