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

Commit 84d85e95 authored by Fenglin Wu's avatar Fenglin Wu
Browse files

asoc: swr-haptics: close SWR data channel after stoping playing



Per HW recommendation, when stopping SWR playing, SWR_PLAY register need
to get deasserted before disconnecting SWR data channel. Hence adjust the
sequence.

Change-Id: I15f33fefc8b847c9a7f6abd627217f21f8ddee89
Signed-off-by: default avatarFenglin Wu <fenglinw@codeaurora.org>
parent e7efdae3
Loading
Loading
Loading
Loading
+6 −6
Original line number Diff line number Diff line
@@ -186,12 +186,6 @@ static int hap_enable_swr_dac_port(struct snd_soc_dapm_widget *w,
		}
		break;
	case SND_SOC_DAPM_PRE_PMD:
		swr_disconnect_port(swr_hap->swr_slave, &port_id, num_port,
				&ch_mask, &port_type);
		break;
	case SND_SOC_DAPM_POST_PMD:
		swr_slvdev_datapath_control(swr_hap->swr_slave,
				swr_hap->swr_slave->dev_num, false);
		/* stop SWR play */
		val = 0;
		rc = regmap_write(swr_hap->regmap, SWR_PLAY_REG, val);
@@ -200,6 +194,12 @@ static int hap_enable_swr_dac_port(struct snd_soc_dapm_widget *w,
					__func__, rc);
			return rc;
		}
		break;
	case SND_SOC_DAPM_POST_PMD:
		swr_disconnect_port(swr_hap->swr_slave, &port_id, num_port,
				&ch_mask, &port_type);
		swr_slvdev_datapath_control(swr_hap->swr_slave,
				swr_hap->swr_slave->dev_num, false);
		swr_device_wakeup_unvote(swr_hap->swr_slave);
		break;
	default: