From e0f401d30f0ef68d8de678016ac2f5f552548c4c Mon Sep 17 00:00:00 2001 From: Matt Porter Date: Sun, 17 Dec 2017 21:52:16 -0500 Subject: 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 --- ...64-dts-renesas-disable-r8a7796-hscif0-dma.patch | 34 ++++++++++++++++++++++ .../linux/linux-renesas_4.9.bbappend | 1 + 2 files changed, 35 insertions(+) create mode 100644 meta-rcar-gen3-adas/recipes-kernel/linux/linux-renesas/0001-arm64-dts-renesas-disable-r8a7796-hscif0-dma.patch 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 +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 +--- + 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 = " \ -- cgit 1.2.3-korg