Patch "ASoC: rsnd: Fix "status check failed" spam for multi-SSI" has been added to the 5.4-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    ASoC: rsnd: Fix "status check failed" spam for multi-SSI

to the 5.4-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     asoc-rsnd-fix-status-check-failed-spam-for-multi-ssi.patch
and it can be found in the queue-5.4 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 160fea7951354fe7c9020ad94065166e1308aa0c
Author: Matthias Blankertz <matthias.blankertz@xxxxxxxxxxx>
Date:   Fri Apr 17 17:30:17 2020 +0200

    ASoC: rsnd: Fix "status check failed" spam for multi-SSI
    
    [ Upstream commit 54cb6221688660670a2e430892d7f4e6370263b8 ]
    
    Fix the rsnd_ssi_stop function to skip disabling the individual SSIs of
    a multi-SSI setup, as the actual stop is performed by rsnd_ssiu_stop_gen2
    - the same logic as in rsnd_ssi_start. The attempt to disable these SSIs
    was harmless, but caused a "status check failed" message to be printed
    for every SSI in the multi-SSI setup.
    The disabling of interrupts is still performed, as they are enabled for
    all SSIs in rsnd_ssi_init, but care is taken to not accidentally set the
    EN bit for an SSI where it was not set by rsnd_ssi_start.
    
    Signed-off-by: Matthias Blankertz <matthias.blankertz@xxxxxxxxxxx>
    Acked-by: Kuninori Morimoto <kuninori.morimoto.gx@xxxxxxxxxxx>
    Link: https://lore.kernel.org/r/20200417153017.1744454-3-matthias.blankertz@xxxxxxxxxxx
    Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/sound/soc/sh/rcar/ssi.c b/sound/soc/sh/rcar/ssi.c
index 9900a4f6f4e53..4a7d3413917fc 100644
--- a/sound/soc/sh/rcar/ssi.c
+++ b/sound/soc/sh/rcar/ssi.c
@@ -594,10 +594,16 @@ static int rsnd_ssi_stop(struct rsnd_mod *mod,
 	 * Capture:  It might not receave data. Do nothing
 	 */
 	if (rsnd_io_is_play(io)) {
-		rsnd_mod_write(mod, SSICR, cr | EN);
+		rsnd_mod_write(mod, SSICR, cr | ssi->cr_en);
 		rsnd_ssi_status_check(mod, DIRQ);
 	}
 
+	/* In multi-SSI mode, stop is performed by setting ssi0129 in
+	 * SSI_CONTROL to 0 (in rsnd_ssio_stop_gen2). Do nothing here.
+	 */
+	if (rsnd_ssi_multi_slaves_runtime(io))
+		return 0;
+
 	/*
 	 * disable SSI,
 	 * and, wait idle state



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux