ASoc: wcd934x-dsp-cntl: notify online event after clocks are disabled
The moment the online event is notified to userspace, it may happen that the userspace might enable the WDSP. This causes race between the enabling of WDSP and SSR handling of WDSP. Change the sequence to notify online event after all SSR handling is completed. Change-Id: I3cb5d40034884cdfc35de957fab4dafd42d0697c Signed-off-by: Bhalchandra Gajare <gajare@codeaurora.org>
This commit is contained in:
parent
a49bb61510
commit
9f408076d4
1 changed files with 5 additions and 4 deletions
|
@ -763,10 +763,6 @@ static int wcd_control_handler(struct device *dev, void *priv_data,
|
|||
case WDSP_EVENT_DLOAD_FAILED:
|
||||
case WDSP_EVENT_POST_SHUTDOWN:
|
||||
|
||||
if (event == WDSP_EVENT_POST_DLOAD_CODE)
|
||||
/* Mark DSP online since code download is complete */
|
||||
wcd_cntl_change_online_state(cntl, 1);
|
||||
|
||||
/* Disable CPAR */
|
||||
wcd_cntl_cpar_ctrl(cntl, false);
|
||||
/* Disable all the clocks */
|
||||
|
@ -775,6 +771,11 @@ static int wcd_control_handler(struct device *dev, void *priv_data,
|
|||
dev_err(codec->dev,
|
||||
"%s: Failed to disable clocks, err = %d\n",
|
||||
__func__, ret);
|
||||
|
||||
if (event == WDSP_EVENT_POST_DLOAD_CODE)
|
||||
/* Mark DSP online since code download is complete */
|
||||
wcd_cntl_change_online_state(cntl, 1);
|
||||
|
||||
break;
|
||||
|
||||
case WDSP_EVENT_PRE_DLOAD_DATA:
|
||||
|
|
Loading…
Add table
Reference in a new issue