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 From fce5dbe44ce5cca232749ad06f36cc5c4f0ee2f7 Mon Sep 17 00:00:00 2001 From: Matt Porter Date: Tue, 19 Dec 2017 08:00:03 -0500 Subject: linux-renesas: blacklist btwilink module If btwilink is autoloaded on boot then the TI-ST managed by the UIM service may not start properly. This happens intermittently based on system boot timing. To fix this, add btwilink to the modprobe blacklist. btwilink is already manually loaded by the ti-uim.service. Change-Id: Id8834279c1c205c292903926bf1ceb7073f84e1e Signed-off-by: Matt Porter --- meta-rcar-gen3-adas/recipes-kernel/linux/linux-renesas_4.9.bbappend | 3 +++ 1 file changed, 3 insertions(+) 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 32bf2c6..3cadae6 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 @@ -6,6 +6,9 @@ COMPATIBLE_MACHINE_v3msk = "v3msk" BRANCH = "v4.9/rcar-3.5.9" SRCREV = "2c20c9881d53f1b5c7a3ebf55bb83ec15902d0d0" +KERNEL_MODULE_PROBECONF += "btwilink" +module_conf_btwilink = "blacklist btwilink" + SRC_URI_remove = " \ file://0001-dmaengine-rcar-dmac-ensure-CHCR-DE-bit-is-actually-0.patch \ file://0002-dmaengine-rcar-dmac-use-TCRB-instead-of-TCR-for-resi.patch \ -- cgit From 1320c5fb9eb462db4e15bfded29b3c443ebe603c Mon Sep 17 00:00:00 2001 From: Matt Porter Date: Tue, 19 Dec 2017 08:04:37 -0500 Subject: linux-firmware: add Wilink8 bluetooth init script The linux-firmware repository contains the Wilink8 firmware but not the required bluetooth initialization script that is loaded by the st_drv kim module during UIM initialization. Add the latest V4.2 release of this script from TI. Change-Id: I59109bd786e87245914891323c955ca923f02922 Signed-off-by: Matt Porter --- .../linux-firmware/linux-firmware_git.bbappend | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 meta-rcar-gen3-adas/recipes-kernel/linux-firmware/linux-firmware_git.bbappend diff --git a/meta-rcar-gen3-adas/recipes-kernel/linux-firmware/linux-firmware_git.bbappend b/meta-rcar-gen3-adas/recipes-kernel/linux-firmware/linux-firmware_git.bbappend new file mode 100644 index 0000000..c620ef4 --- /dev/null +++ b/meta-rcar-gen3-adas/recipes-kernel/linux-firmware/linux-firmware_git.bbappend @@ -0,0 +1,14 @@ +# Support additional firmware for WiLink8 modules +# +# TIInit_11.8.32.bts V4.2 is not in the linux-firmware repository. + +SRC_URI_append = " \ + https://git.ti.com/ti-bt/service-packs/blobs/raw/3acb49e97179320cb7564d202d0dde23ad7bd0a2/initscripts/TIInit_11.8.32.bts \ +" + +SRC_URI[md5sum] = "b1e142773e8ef0537b93895ebe2fcae3" +SRC_URI[sha256sum] = "962322c05857ad6b1fb81467bdfc59c125e04a6a8eaabf7f24b742ddd68c3bfa" + +do_install_append() { + install -m 644 ${WORKDIR}/TIInit_11.8.32.bts ${D}/lib/firmware/ti-connectivity/ +} -- cgit From 27fc60c85a12c07109fdd2a7e8fca3c36a837c96 Mon Sep 17 00:00:00 2001 From: Matt Porter Date: Tue, 19 Dec 2017 08:33:33 -0500 Subject: ti-bt-firmware: remove unused recipe This recipe is deprecated by the bbappend to linux-firmware which brings in the latest version of the WiLink8 bluetooth script. Remove it. Change-Id: Ied304ce9924a41ba9f4ea5969905273ef1402e9c Signed-off-by: Matt Porter --- .../ti-bt-firmware/ti-bt-firmware_git.bb | 25 ---------------------- 1 file changed, 25 deletions(-) delete mode 100644 meta-rcar-gen3-adas/recipes-bsp/ti-bt-firmware/ti-bt-firmware_git.bb diff --git a/meta-rcar-gen3-adas/recipes-bsp/ti-bt-firmware/ti-bt-firmware_git.bb b/meta-rcar-gen3-adas/recipes-bsp/ti-bt-firmware/ti-bt-firmware_git.bb deleted file mode 100644 index 3251662..0000000 --- a/meta-rcar-gen3-adas/recipes-bsp/ti-bt-firmware/ti-bt-firmware_git.bb +++ /dev/null @@ -1,25 +0,0 @@ -SUMMARY = "Bluetooth firmare files for WL18xx combo modules" -SECTION = "misc" - -LICENSE = "CLOSED" - -PE = "1" -PV = "0.0" - -SRC_URI = "git://github.com/TI-ECS/bt-firmware.git;protocol=git " -SRCREV = "169b2df5b968f0ede32ea9044859942fc220c435" - -S = "${WORKDIR}/git" - -CLEANBROKEN = "1" - -do_populate_lic[noexec] = "1" -do_compile[noexec] = "1" -do_configure[noexec] = "1" - -do_install() { - install -d ${D}/lib/firmware/ti-connectivity/ - cp *.bts ${D}/lib/firmware/ti-connectivity/ -} - -FILES_${PN} = "/lib/firmware/ti-connectivity/*" \ No newline at end of file -- cgit