From c4aa4c176bd337a3b1e3b0f4e95a920802e8f6e7 Mon Sep 17 00:00:00 2001 From: Joseph Burt Date: Wed, 23 Sep 2020 19:55:51 +0000 Subject: [PATCH] bdw: fix SSP0 channel inversion This fixes SSP0 swapping channels after capture on BDW Signed-off-by: Joseph Burt --- src/drivers/intel/haswell/ssp.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/drivers/intel/haswell/ssp.c b/src/drivers/intel/haswell/ssp.c index f11e7bf49..17c23bad4 100644 --- a/src/drivers/intel/haswell/ssp.c +++ b/src/drivers/intel/haswell/ssp.c @@ -462,6 +462,7 @@ static void ssp_stop(struct dai *dai, int direction) ssp->state[SOF_IPC_STREAM_CAPTURE] != COMP_STATE_PREPARE) { ssp_update_bits(dai, SSCR1, SSCR1_RSRE, 0); ssp_update_bits(dai, SSCR0, SSCR0_RIM, SSCR0_RIM); + ssp_update_bits(dai, SSRSA, SSRSA_RSEN, 0); ssp->state[SOF_IPC_STREAM_CAPTURE] = COMP_STATE_PREPARE; dai_info(dai, "ssp_stop(), RX stop"); } @@ -471,6 +472,7 @@ static void ssp_stop(struct dai *dai, int direction) ssp->state[SOF_IPC_STREAM_PLAYBACK] != COMP_STATE_PREPARE) { ssp_update_bits(dai, SSCR1, SSCR1_TSRE, 0); ssp_update_bits(dai, SSCR0, SSCR0_TIM, SSCR0_TIM); + ssp_update_bits(dai, SSTSA, SSTSA_TSEN, 0); ssp->state[SOF_IPC_STREAM_PLAYBACK] = COMP_STATE_PREPARE; dai_info(dai, "ssp_stop(), TX stop"); }