diff options
author | Matt Porter <mporter@konsulko.com> | 2017-12-17 21:52:16 -0500 |
---|---|---|
committer | Matt Porter <mporter@konsulko.com> | 2017-12-19 08:03:55 -0500 |
commit | e0f401d30f0ef68d8de678016ac2f5f552548c4c (patch) | |
tree | 1de25ab93a95801ffdd622d2f929c4f7f0476c33 | |
parent | eb675727a6bfdee2ba7dd36644403163f9d905e2 (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>
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 = " \ |