Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2560c685 authored by Xiaoyu Ye's avatar Xiaoyu Ye Committed by Gerrit - the friendly Code Review server
Browse files

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: default avatarBhalchandra Gajare <gajare@codeaurora.org>
Signed-off-by: default avatarXiaoyu Ye <benyxy@codeaurora.org>
parent 1996ec83
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -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,10 @@ 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: