From de5919ba2b4e2340c19df33038bbc793cf2f94d2 Mon Sep 17 00:00:00 2001 From: Mark Farrugia Date: Sun, 2 Dec 2018 00:24:21 +1100 Subject: [COMMUNITY] Fix SSI DMAC inaccessible via Xtensa HiFi2 ADSP firmware The upgrade of the kernel to 4.14.35 has changed the SSI interface in the RCar SoC sound driver, making it that the Xtensa HiFi2 ADSP firmware can no longer directly access the SSI DMA controller in order to route audio directly out to hardware. This seems to fix this issue, allowing the Fiberdyne DSP to fully operate again on 4.14.35 kernels. Change-Id: Id89843b0a8a65f07964027639dde68791261cab6 Signed-off-by: Mark Farrugia --- ...-rsnd-ssi-wait-maximum-5ms-for-status-che.patch | 34 ++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 meta-rcar-gen3/recipes-kernel/linux/linux-renesas/0001-Revert-ASoC-rsnd-ssi-wait-maximum-5ms-for-status-che.patch (limited to 'meta-rcar-gen3/recipes-kernel/linux/linux-renesas') diff --git a/meta-rcar-gen3/recipes-kernel/linux/linux-renesas/0001-Revert-ASoC-rsnd-ssi-wait-maximum-5ms-for-status-che.patch b/meta-rcar-gen3/recipes-kernel/linux/linux-renesas/0001-Revert-ASoC-rsnd-ssi-wait-maximum-5ms-for-status-che.patch new file mode 100644 index 0000000..521631b --- /dev/null +++ b/meta-rcar-gen3/recipes-kernel/linux/linux-renesas/0001-Revert-ASoC-rsnd-ssi-wait-maximum-5ms-for-status-che.patch @@ -0,0 +1,34 @@ +From a0e2d5ab917de4d8fce6bed4a5c87b729be30ca7 Mon Sep 17 00:00:00 2001 +From: Mark Farrugia +Date: Sat, 1 Dec 2018 23:48:49 +1100 +Subject: [PATCH] Revert: ASoC: rsnd: ssi: wait maximum 5ms for status check + +By waiting only a maximum of 5ms, we break the Renesas +ADSP firmware's ability to access the SSI directly. +This functionality is currently used by the Fiberdyne DSP. + +Since we shouldn't use udelay() for 50us +(linux/Documentation/timers/timers-howto.txt), we instead increase +the loop length to 1024*10 (5ms*10=50ms). + +Signed-off-by: Mark Farrugia +--- + sound/soc/sh/rcar/ssi.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/sound/soc/sh/rcar/ssi.c b/sound/soc/sh/rcar/ssi.c +index 9538f76f8e20..0395e33bebdd 100644 +--- a/sound/soc/sh/rcar/ssi.c ++++ b/sound/soc/sh/rcar/ssi.c +@@ -166,7 +166,7 @@ static void rsnd_ssi_status_check(struct rsnd_mod *mod, + u32 status; + int i; + +- for (i = 0; i < 1024; i++) { ++ for (i = 0; i < (10*1024); i++) { + status = rsnd_ssi_status_get(mod); + if (status & bit) + return; +-- +2.17.1 + -- cgit 1.2.3-korg