aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatt Porter <mporter@konsulko.com>2017-12-17 21:52:16 -0500
committerMatt Porter <mporter@konsulko.com>2017-12-19 08:03:55 -0500
commite0f401d30f0ef68d8de678016ac2f5f552548c4c (patch)
tree1de25ab93a95801ffdd622d2f929c4f7f0476c33
parenteb675727a6bfdee2ba7dd36644403163f9d905e2 (diff)
linux-renesas: disable DMA on hscif0
If DMA is enabled for HSCIF0, rcar-dmac generates errors and causes data corruption and frame drops with the WiLink8. Disable HSCIF0 DMA to workaround the data corruption and allow skip-free A2DP streaming. Change-Id: Iebdfa12f2568197d4e9ea97ffdd9652113be9d1d Signed-off-by: Matt Porter <mporter@konsulko.com>
-rw-r--r--meta-rcar-gen3-adas/recipes-kernel/linux/linux-renesas/0001-arm64-dts-renesas-disable-r8a7796-hscif0-dma.patch34
-rw-r--r--meta-rcar-gen3-adas/recipes-kernel/linux/linux-renesas_4.9.bbappend1
2 files changed, 35 insertions, 0 deletions
diff --git a/meta-rcar-gen3-adas/recipes-kernel/linux/linux-renesas/0001-arm64-dts-renesas-disable-r8a7796-hscif0-dma.patch b/meta-rcar-gen3-adas/recipes-kernel/linux/linux-renesas/0001-arm64-dts-renesas-disable-r8a7796-hscif0-dma.patch
new file mode 100644
index 0000000..31a66b7
--- /dev/null
+++ b/meta-rcar-gen3-adas/recipes-kernel/linux/linux-renesas/0001-arm64-dts-renesas-disable-r8a7796-hscif0-dma.patch
@@ -0,0 +1,34 @@
+From 9f2cf209ef8235f33683ca941fd0d7bdcca4078d Mon Sep 17 00:00:00 2001
+From: Matt Porter <mporter@konsulko.com>
+Date: Sun, 17 Dec 2017 21:44:41 -0500
+Subject: [PATCH] arm64: dts: renesas: disable r8a7796 hscif0 dma
+
+When streaming A2DP audio on WiLink8, DMA errors are
+seen from the rcar-dmac driver servicing hscif0. As
+a result, data corruption is seen by the UIM service
+managing the link to the Wilink8 device. This data
+corruption manifests as dropped frames and audibly as
+"skips" in the audio playback.
+
+Workaround this issue by disabling DMA for hscif0.
+
+Signed-off-by: Matt Porter <mporter@konsulko.com>
+---
+ arch/arm64/boot/dts/renesas/r8a7796.dtsi | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/arch/arm64/boot/dts/renesas/r8a7796.dtsi b/arch/arm64/boot/dts/renesas/r8a7796.dtsi
+index e3a5c25bc3da..dd97af4bdd60 100644
+--- a/arch/arm64/boot/dts/renesas/r8a7796.dtsi
++++ b/arch/arm64/boot/dts/renesas/r8a7796.dtsi
+@@ -1282,7 +1282,6 @@
+ <&scif_clk>;
+ clock-names = "fck", "brg_int", "scif_clk";
+ dmas = <&dmac1 0x31>, <&dmac1 0x30>;
+- dma-names = "tx", "rx";
+ power-domains = <&sysc R8A7796_PD_ALWAYS_ON>;
+ status = "disabled";
+ };
+--
+2.11.0
+
diff --git a/meta-rcar-gen3-adas/recipes-kernel/linux/linux-renesas_4.9.bbappend b/meta-rcar-gen3-adas/recipes-kernel/linux/linux-renesas_4.9.bbappend
index 924e309..32bf2c6 100644
--- a/meta-rcar-gen3-adas/recipes-kernel/linux/linux-renesas_4.9.bbappend
+++ b/meta-rcar-gen3-adas/recipes-kernel/linux/linux-renesas_4.9.bbappend
@@ -81,6 +81,7 @@ SRC_URI_append = " \
file://0080-dmaengine-rcar-dmac-ensure-CHCR-DE-bit-is-actually-0.patch \
file://0081-dmaengine-rcar-dmac-use-TCRB-instead-of-TCR-for-resi.patch \
file://0001-arm64-dts-renesas-preserve-drm-HDMI-connector-naming.patch \
+ file://0001-arm64-dts-renesas-disable-r8a7796-hscif0-dma.patch \
"
SRC_URI_append_r8a7797 = " \