diff --git a/packages/linux/package.mk b/packages/linux/package.mk index ae68ff9faa..e183e6cb1f 100644 --- a/packages/linux/package.mk +++ b/packages/linux/package.mk @@ -16,8 +16,8 @@ PKG_PATCH_DIRS="${LINUX}" case "${LINUX}" in amlogic) - PKG_VERSION="f00712e27083550be3031099b7697925533a6e01" # 5.15.5 - PKG_SHA256="d1d06b7d0b2b23099f17b18559680821f39275e245d6be3d48a4867e0a7076c7" + PKG_VERSION="2585cf9dfaaddf00b069673f27bb3f8530e2039c" # 5.16-rc5 + PKG_SHA256="07df650e8d06ac5cd0fed6b0d3b6e17e8f8a8caa8403d43ee069ad5655b998e3" PKG_URL="https://github.com/torvalds/linux/archive/${PKG_VERSION}.tar.gz" PKG_SOURCE_NAME="linux-${LINUX}-${PKG_VERSION}.tar.gz" ;; diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0001-HACK-set-meson-gx-cma-pool-to-896MB.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0001-HACK-set-meson-gx-cma-pool-to-896MB.patch index 008f023f9f..6e659e7364 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0001-HACK-set-meson-gx-cma-pool-to-896MB.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0001-HACK-set-meson-gx-cma-pool-to-896MB.patch @@ -1,7 +1,7 @@ -From 6441a37be7b5f73b21f575afc9414066e7c5dbf2 Mon Sep 17 00:00:00 2001 +From f7ccc39d5ee3dddc37497b9dea516cd421e807c5 Mon Sep 17 00:00:00 2001 From: chewitt Date: Sat, 13 Apr 2019 05:41:51 +0000 -Subject: [PATCH 01/60] HACK: set meson-gx cma pool to 896MB +Subject: [PATCH 01/71] HACK: set meson-gx cma pool to 896MB This change sets the CMA pool to a larger 896MB! value for vdec use diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0002-HACK-set-meson-g12-cma-pool-to-896MB.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0002-HACK-set-meson-g12-cma-pool-to-896MB.patch index a3be95fba4..2a76ee1af1 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0002-HACK-set-meson-g12-cma-pool-to-896MB.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0002-HACK-set-meson-g12-cma-pool-to-896MB.patch @@ -1,7 +1,7 @@ -From 92cf54f0adfc83fb83e9f7564027b84f32ddd401 Mon Sep 17 00:00:00 2001 +From ad1c014ceb8cfe665df0739d1a7b38a5740db964 Mon Sep 17 00:00:00 2001 From: chewitt Date: Wed, 14 Aug 2019 19:58:14 +0000 -Subject: [PATCH 02/60] HACK: set meson-g12 cma pool to 896MB +Subject: [PATCH 02/71] HACK: set meson-g12 cma pool to 896MB This change sets the CMA pool to a larger 896MB! value for vdec use diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0003-HACK-arm64-fix-Kodi-sysinfo-CPU-information.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0003-HACK-arm64-fix-Kodi-sysinfo-CPU-information.patch index d2ff54514c..a6bf9351d3 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0003-HACK-arm64-fix-Kodi-sysinfo-CPU-information.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0003-HACK-arm64-fix-Kodi-sysinfo-CPU-information.patch @@ -1,7 +1,7 @@ -From 3d98fa9b2f696f13eaa1baf1d6fa7f6f2ea31287 Mon Sep 17 00:00:00 2001 +From 5a3bd9e778637bd48aaabdf4f976879aba2c7e95 Mon Sep 17 00:00:00 2001 From: chewitt Date: Sat, 13 Apr 2019 05:45:18 +0000 -Subject: [PATCH 03/60] HACK: arm64: fix Kodi sysinfo CPU information +Subject: [PATCH 03/71] HACK: arm64: fix Kodi sysinfo CPU information This allows the CPU information to show in the Kodi sysinfo screen, e.g. @@ -13,10 +13,10 @@ Signed-off-by: Christian Hewitt 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/arch/arm64/kernel/cpuinfo.c b/arch/arm64/kernel/cpuinfo.c -index 87731fea5e41..322fec5320e3 100644 +index 6e27b759056a..4c3110aed4ea 100644 --- a/arch/arm64/kernel/cpuinfo.c +++ b/arch/arm64/kernel/cpuinfo.c -@@ -148,8 +148,7 @@ static int c_show(struct seq_file *m, void *v) +@@ -149,8 +149,7 @@ static int c_show(struct seq_file *m, void *v) * "processor". Give glibc what it expects. */ seq_printf(m, "processor\t: %d\n", i); diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0004-HACK-arm64-dts-meson-gx-add-ATF-BL32-reserved-memory.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0004-HACK-arm64-dts-meson-gx-add-ATF-BL32-reserved-memory.patch index eb2e7c8e1f..de57063d1e 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0004-HACK-arm64-dts-meson-gx-add-ATF-BL32-reserved-memory.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0004-HACK-arm64-dts-meson-gx-add-ATF-BL32-reserved-memory.patch @@ -1,7 +1,7 @@ -From 796ed17addc9f7c7ab713b0d33fa7429ead84589 Mon Sep 17 00:00:00 2001 +From 2c40387638d3c79e0d48d8bb169e8b147a0d9b76 Mon Sep 17 00:00:00 2001 From: kszaq Date: Sat, 6 Jul 2019 07:54:44 +0000 -Subject: [PATCH 04/60] HACK: arm64: dts: meson-gx: add ATF BL32 reserved +Subject: [PATCH 04/71] HACK: arm64: dts: meson-gx: add ATF BL32 reserved memory region Vendor firmware/uboot has an additional reserved region for BL32 trusted diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0005-HACK-arm64-meson-add-Amlogic-Meson-GX-PM-Suspend.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0005-HACK-arm64-meson-add-Amlogic-Meson-GX-PM-Suspend.patch index 413f5824a4..708b7646eb 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0005-HACK-arm64-meson-add-Amlogic-Meson-GX-PM-Suspend.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0005-HACK-arm64-meson-add-Amlogic-Meson-GX-PM-Suspend.patch @@ -1,7 +1,7 @@ -From 8cb8fc73cc2f53b73300037edfe81c9f9f6d5f4e Mon Sep 17 00:00:00 2001 +From 0a8ff502eb685541fbadfd80a1a3e0736f668257 Mon Sep 17 00:00:00 2001 From: Neil Armstrong Date: Thu, 3 Nov 2016 15:29:23 +0100 -Subject: [PATCH 05/60] HACK: arm64: meson: add Amlogic Meson GX PM Suspend +Subject: [PATCH 05/71] HACK: arm64: meson: add Amlogic Meson GX PM Suspend The Amlogic Meson GX SoCs uses a non-standard argument to the PSCI CPU_SUSPEND call to enter system suspend. diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0006-HACK-arm64-dts-meson-add-support-for-GX-PM-and-Virtu.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0006-HACK-arm64-dts-meson-add-support-for-GX-PM-and-Virtu.patch index bf71a29853..582de4eda3 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0006-HACK-arm64-dts-meson-add-support-for-GX-PM-and-Virtu.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0006-HACK-arm64-dts-meson-add-support-for-GX-PM-and-Virtu.patch @@ -1,7 +1,7 @@ -From f84b9abfe184af1bedf58c7492430b68cc6a0ac2 Mon Sep 17 00:00:00 2001 +From 75d4afb43eb64994d9d1855a5d716a392626d36f Mon Sep 17 00:00:00 2001 From: Neil Armstrong Date: Thu, 3 Nov 2016 15:29:25 +0100 -Subject: [PATCH 06/60] HACK: arm64: dts: meson: add support for GX PM and +Subject: [PATCH 06/71] HACK: arm64: dts: meson: add support for GX PM and Virtual RTC Signed-off-by: Neil Armstrong diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0007-HACK-arm64-dts-meson-add-rtc-vrtc-aliases-to-Khadas-.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0007-HACK-arm64-dts-meson-add-rtc-vrtc-aliases-to-Khadas-.patch index f90f7f5684..2b0f3563ac 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0007-HACK-arm64-dts-meson-add-rtc-vrtc-aliases-to-Khadas-.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0007-HACK-arm64-dts-meson-add-rtc-vrtc-aliases-to-Khadas-.patch @@ -1,7 +1,7 @@ -From 16e0395a999865b4450e46f3d53df3ed3ea7c023 Mon Sep 17 00:00:00 2001 +From fb9688326b950679aff07eb1b056e25be47dd792 Mon Sep 17 00:00:00 2001 From: Christian Hewitt Date: Thu, 21 Jan 2021 01:35:36 +0000 -Subject: [PATCH 07/60] HACK: arm64: dts: meson: add rtc/vrtc aliases to Khadas +Subject: [PATCH 07/71] HACK: arm64: dts: meson: add rtc/vrtc aliases to Khadas VIM Add aliases to ensure the vrtc time (which normally proves first) is /dev/rtc1 diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0008-HACK-arm64-dts-meson-add-rtc-vrtc-aliases-to-Khadas-.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0008-HACK-arm64-dts-meson-add-rtc-vrtc-aliases-to-Khadas-.patch index 9ad8eeb37c..d0fbe06cb5 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0008-HACK-arm64-dts-meson-add-rtc-vrtc-aliases-to-Khadas-.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0008-HACK-arm64-dts-meson-add-rtc-vrtc-aliases-to-Khadas-.patch @@ -1,7 +1,7 @@ -From c8d74b62cbf8c0f7c1cd331607540660a0e4d830 Mon Sep 17 00:00:00 2001 +From 0b718ec6c8dd53a26708ad6c4a3032343c0880b1 Mon Sep 17 00:00:00 2001 From: Christian Hewitt Date: Sat, 6 Nov 2021 13:01:08 +0000 -Subject: [PATCH 08/60] HACK: arm64: dts: meson: add rtc/vrtc aliases to Khadas +Subject: [PATCH 08/71] HACK: arm64: dts: meson: add rtc/vrtc aliases to Khadas VIM2 Add aliases to ensure the vrtc time (which normally proves first) is /dev/rtc1 diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0009-HACK-arm64-dts-meson-add-rtc-vrtc-aliases-to-Minix-N.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0009-HACK-arm64-dts-meson-add-rtc-vrtc-aliases-to-Minix-N.patch index 33999e8421..9dbcf33d44 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0009-HACK-arm64-dts-meson-add-rtc-vrtc-aliases-to-Minix-N.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0009-HACK-arm64-dts-meson-add-rtc-vrtc-aliases-to-Minix-N.patch @@ -1,7 +1,7 @@ -From e2a996cefcd8feaa1ebd986b3f811571c7649293 Mon Sep 17 00:00:00 2001 +From 04c6b6fff46ad34e580157a93bb062fad03fb75b Mon Sep 17 00:00:00 2001 From: Christian Hewitt Date: Mon, 1 Feb 2021 19:27:40 +0000 -Subject: [PATCH 09/60] HACK: arm64: dts: meson: add rtc/vrtc aliases to Minix +Subject: [PATCH 09/71] HACK: arm64: dts: meson: add rtc/vrtc aliases to Minix NEO U9-H Add node aliases to prevent meson-vrtc from claiming /dev/rtc0 diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0060-HACK-arm64-dts-amlogic-remove-opps-below-1GHz-for-g1.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0010-HACK-arm64-dts-meson-remove-opps-below-1GHz-for-g12-.patch similarity index 96% rename from projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0060-HACK-arm64-dts-amlogic-remove-opps-below-1GHz-for-g1.patch rename to projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0010-HACK-arm64-dts-meson-remove-opps-below-1GHz-for-g12-.patch index cb7f2d549e..69c2e2b274 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0060-HACK-arm64-dts-amlogic-remove-opps-below-1GHz-for-g1.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0010-HACK-arm64-dts-meson-remove-opps-below-1GHz-for-g12-.patch @@ -1,7 +1,7 @@ -From 0dd3d24b886da5098bb8048a53d182dd086c6f30 Mon Sep 17 00:00:00 2001 +From 1fdc01532d51293d191d698a0c96313b0c1036d8 Mon Sep 17 00:00:00 2001 From: Christian Hewitt Date: Thu, 25 Nov 2021 11:31:43 +0000 -Subject: [PATCH 60/60] HACK: arm64: dts: amlogic: remove opps below 1GHz for +Subject: [PATCH 10/71] HACK: arm64: dts: meson: remove opps below 1GHz for g12/sm1 This seems to workaround or hide occurrences of CPU stalls and other diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0011-FROMGIT-dt-bindings-arm-amlogic-add-support-for-Radx.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0011-FROMGIT-dt-bindings-arm-amlogic-add-support-for-Radx.patch deleted file mode 100644 index 548ee034a4..0000000000 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0011-FROMGIT-dt-bindings-arm-amlogic-add-support-for-Radx.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 92f35a36faa4dbcf0e562566a1f4a4a2deb615ca Mon Sep 17 00:00:00 2001 -From: Christian Hewitt -Date: Sat, 16 May 2020 07:04:58 +0000 -Subject: [PATCH 11/60] FROMGIT: dt-bindings: arm: amlogic: add support for - Radxa Zero - -Radxa Zero is a small form-factor SBC with an Amlogic S905Y2 chip. - -Signed-off-by: Christian Hewitt -Acked-by: Rob Herring ---- - Documentation/devicetree/bindings/arm/amlogic.yaml | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/Documentation/devicetree/bindings/arm/amlogic.yaml b/Documentation/devicetree/bindings/arm/amlogic.yaml -index 6423377710ee..67dccdd9a5a4 100644 ---- a/Documentation/devicetree/bindings/arm/amlogic.yaml -+++ b/Documentation/devicetree/bindings/arm/amlogic.yaml -@@ -141,6 +141,7 @@ properties: - - enum: - - amediatech,x96-max - - amlogic,u200 -+ - radxa,zero - - seirobotics,sei510 - - const: amlogic,g12a - --- -2.17.1 - diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0010-HACK-of-partial-revert-of-fdt.c-changes.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0011-HACK-of-partial-revert-of-fdt.c-changes.patch similarity index 85% rename from projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0010-HACK-of-partial-revert-of-fdt.c-changes.patch rename to projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0011-HACK-of-partial-revert-of-fdt.c-changes.patch index 9b42c34f41..5a694f1349 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0010-HACK-of-partial-revert-of-fdt.c-changes.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0011-HACK-of-partial-revert-of-fdt.c-changes.patch @@ -1,7 +1,7 @@ -From aaab5272187b1650776371c4381ea1373d818d1a Mon Sep 17 00:00:00 2001 +From eb5b75515a748fe33d7bfaff278c43c6fee4f3b9 Mon Sep 17 00:00:00 2001 From: Stefan Agner Date: Wed, 15 Sep 2021 05:00:45 +0000 -Subject: [PATCH 10/60] HACK: of: partial revert of fdt.c changes +Subject: [PATCH 11/71] HACK: of: partial revert of fdt.c changes This resolves reports similar to the below which are present in dmesg since Linux 5.10; which are also causing crashes in some distros: @@ -14,7 +14,7 @@ Signed-off-by: Christian Hewitt 1 file changed, 7 deletions(-) diff --git a/drivers/of/fdt.c b/drivers/of/fdt.c -index 4546572af24b..cf5c100cc5d4 100644 +index bdca35284ceb..674d12e37e65 100644 --- a/drivers/of/fdt.c +++ b/drivers/of/fdt.c @@ -480,13 +480,6 @@ static int __init early_init_dt_reserve_memory_arch(phys_addr_t base, diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0012-FROMGIT-arm64-dts-amlogic-add-support-for-Radxa-Zero.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0012-FROMGIT-arm64-dts-amlogic-add-support-for-Radxa-Zero.patch deleted file mode 100644 index a73905054c..0000000000 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0012-FROMGIT-arm64-dts-amlogic-add-support-for-Radxa-Zero.patch +++ /dev/null @@ -1,453 +0,0 @@ -From be960f16c8f919f083ebf6a1727d23da2b4690d2 Mon Sep 17 00:00:00 2001 -From: Christian Hewitt -Date: Fri, 6 Aug 2021 12:16:10 +0000 -Subject: [PATCH 12/60] FROMGIT: arm64: dts: amlogic: add support for Radxa - Zero - -Radxa Zero is a small form factor SBC based on the Amlogic S905Y2 -chipset that ships in a number of RAM/eMMC configurations: - -Boards with 512MB/1GB LPDDR4 RAM have no eMMC storage and BCM43436 -wireless (2.4GHz b/g/n) while 2GB/4GB boards have 8/16/32/64/128GB -eMMC storage and BCM4345 wireless (2.4/5GHz a/b/g/n/ac). - -- Amlogic S905Y2 quad-core Cortex-A53 -- Mali G31-MP2 GPU -- HDMI 2.1 output (micro) -- 1x USB 2.0 port - Type C (OTG) -- 1x USB 3.0 port - Type C (Host) -- 1x micro SD Card slot -- 40 Pin GPIO header - -Signed-off-by: Christian Hewitt ---- - arch/arm64/boot/dts/amlogic/Makefile | 1 + - .../dts/amlogic/meson-g12a-radxa-zero.dts | 405 ++++++++++++++++++ - 2 files changed, 406 insertions(+) - create mode 100644 arch/arm64/boot/dts/amlogic/meson-g12a-radxa-zero.dts - -diff --git a/arch/arm64/boot/dts/amlogic/Makefile b/arch/arm64/boot/dts/amlogic/Makefile -index faa0a79a34f5..be308361e2f1 100644 ---- a/arch/arm64/boot/dts/amlogic/Makefile -+++ b/arch/arm64/boot/dts/amlogic/Makefile -@@ -1,5 +1,6 @@ - # SPDX-License-Identifier: GPL-2.0 - dtb-$(CONFIG_ARCH_MESON) += meson-axg-s400.dtb -+dtb-$(CONFIG_ARCH_MESON) += meson-g12a-radxa-zero.dtb - dtb-$(CONFIG_ARCH_MESON) += meson-g12a-sei510.dtb - dtb-$(CONFIG_ARCH_MESON) += meson-g12a-u200.dtb - dtb-$(CONFIG_ARCH_MESON) += meson-g12a-x96-max.dtb -diff --git a/arch/arm64/boot/dts/amlogic/meson-g12a-radxa-zero.dts b/arch/arm64/boot/dts/amlogic/meson-g12a-radxa-zero.dts -new file mode 100644 -index 000000000000..e3bb6df42ff3 ---- /dev/null -+++ b/arch/arm64/boot/dts/amlogic/meson-g12a-radxa-zero.dts -@@ -0,0 +1,405 @@ -+// SPDX-License-Identifier: (GPL-2.0+ OR MIT) -+/* -+ * Copyright (c) 2018 BayLibre SAS. All rights reserved. -+ */ -+ -+/dts-v1/; -+ -+#include "meson-g12a.dtsi" -+#include -+#include -+ -+/ { -+ compatible = "radxa,zero", "amlogic,g12a"; -+ model = "Radxa Zero"; -+ -+ aliases { -+ serial0 = &uart_AO; -+ }; -+ -+ chosen { -+ stdout-path = "serial0:115200n8"; -+ }; -+ -+ memory@0 { -+ device_type = "memory"; -+ reg = <0x0 0x0 0x0 0x40000000>; -+ }; -+ -+ cvbs-connector { -+ status = "disabled"; -+ compatible = "composite-video-connector"; -+ -+ port { -+ cvbs_connector_in: endpoint { -+ remote-endpoint = <&cvbs_vdac_out>; -+ }; -+ }; -+ }; -+ -+ hdmi-connector { -+ compatible = "hdmi-connector"; -+ type = "a"; -+ -+ port { -+ hdmi_connector_in: endpoint { -+ remote-endpoint = <&hdmi_tx_tmds_out>; -+ }; -+ }; -+ }; -+ -+ emmc_pwrseq: emmc-pwrseq { -+ compatible = "mmc-pwrseq-emmc"; -+ reset-gpios = <&gpio BOOT_12 GPIO_ACTIVE_LOW>; -+ }; -+ -+ sdio_pwrseq: sdio-pwrseq { -+ compatible = "mmc-pwrseq-simple"; -+ reset-gpios = <&gpio GPIOX_6 GPIO_ACTIVE_LOW>; -+ clocks = <&wifi32k>; -+ clock-names = "ext_clock"; -+ }; -+ -+ ao_5v: regulator-ao_5v { -+ compatible = "regulator-fixed"; -+ regulator-name = "AO_5V"; -+ regulator-min-microvolt = <5000000>; -+ regulator-max-microvolt = <5000000>; -+ regulator-always-on; -+ }; -+ -+ vcc_1v8: regulator-vcc_1v8 { -+ compatible = "regulator-fixed"; -+ regulator-name = "VCC_1V8"; -+ regulator-min-microvolt = <1800000>; -+ regulator-max-microvolt = <1800000>; -+ vin-supply = <&vcc_3v3>; -+ regulator-always-on; -+ }; -+ -+ vcc_3v3: regulator-vcc_3v3 { -+ compatible = "regulator-fixed"; -+ regulator-name = "VCC_3V3"; -+ regulator-min-microvolt = <3300000>; -+ regulator-max-microvolt = <3300000>; -+ vin-supply = <&vddao_3v3>; -+ regulator-always-on; -+ }; -+ -+ hdmi_pw: regulator-hdmi_pw { -+ compatible = "regulator-fixed"; -+ regulator-name = "HDMI_PW"; -+ regulator-min-microvolt = <5000000>; -+ regulator-max-microvolt = <5000000>; -+ vin-supply = <&ao_5v>; -+ regulator-always-on; -+ }; -+ -+ vddao_1v8: regulator-vddao_1v8 { -+ compatible = "regulator-fixed"; -+ regulator-name = "VDDAO_1V8"; -+ regulator-min-microvolt = <1800000>; -+ regulator-max-microvolt = <1800000>; -+ vin-supply = <&vddao_3v3>; -+ regulator-always-on; -+ }; -+ -+ vddao_3v3: regulator-vddao_3v3 { -+ compatible = "regulator-fixed"; -+ regulator-name = "VDDAO_3V3"; -+ regulator-min-microvolt = <3300000>; -+ regulator-max-microvolt = <3300000>; -+ vin-supply = <&ao_5v>; -+ regulator-always-on; -+ }; -+ -+ vddcpu: regulator-vddcpu { -+ compatible = "pwm-regulator"; -+ -+ regulator-name = "VDDCPU"; -+ regulator-min-microvolt = <721000>; -+ regulator-max-microvolt = <1022000>; -+ -+ vin-supply = <&ao_5v>; -+ -+ pwms = <&pwm_AO_cd 1 1250 0>; -+ pwm-dutycycle-range = <100 0>; -+ -+ regulator-boot-on; -+ regulator-always-on; -+ }; -+ -+ sound { -+ compatible = "amlogic,axg-sound-card"; -+ model = "RADXA-ZERO"; -+ audio-aux-devs = <&tdmout_b>; -+ audio-routing = "TDMOUT_B IN 0", "FRDDR_A OUT 1", -+ "TDMOUT_B IN 1", "FRDDR_B OUT 1", -+ "TDMOUT_B IN 2", "FRDDR_C OUT 1", -+ "TDM_B Playback", "TDMOUT_B OUT"; -+ -+ assigned-clocks = <&clkc CLKID_MPLL2>, -+ <&clkc CLKID_MPLL0>, -+ <&clkc CLKID_MPLL1>; -+ assigned-clock-parents = <0>, <0>, <0>; -+ assigned-clock-rates = <294912000>, -+ <270950400>, -+ <393216000>; -+ status = "okay"; -+ -+ dai-link-0 { -+ sound-dai = <&frddr_a>; -+ }; -+ -+ dai-link-1 { -+ sound-dai = <&frddr_b>; -+ }; -+ -+ dai-link-2 { -+ sound-dai = <&frddr_c>; -+ }; -+ -+ /* 8ch hdmi interface */ -+ dai-link-3 { -+ sound-dai = <&tdmif_b>; -+ dai-format = "i2s"; -+ dai-tdm-slot-tx-mask-0 = <1 1>; -+ dai-tdm-slot-tx-mask-1 = <1 1>; -+ dai-tdm-slot-tx-mask-2 = <1 1>; -+ dai-tdm-slot-tx-mask-3 = <1 1>; -+ mclk-fs = <256>; -+ -+ codec { -+ sound-dai = <&tohdmitx TOHDMITX_I2S_IN_B>; -+ }; -+ }; -+ -+ dai-link-4 { -+ sound-dai = <&tohdmitx TOHDMITX_I2S_OUT>; -+ -+ codec { -+ sound-dai = <&hdmi_tx>; -+ }; -+ }; -+ }; -+ -+ wifi32k: wifi32k { -+ compatible = "pwm-clock"; -+ #clock-cells = <0>; -+ clock-frequency = <32768>; -+ pwms = <&pwm_ef 0 30518 0>; /* PWM_E at 32.768KHz */ -+ }; -+}; -+ -+&arb { -+ status = "okay"; -+}; -+ -+&cec_AO { -+ pinctrl-0 = <&cec_ao_a_h_pins>; -+ pinctrl-names = "default"; -+ status = "disabled"; -+ hdmi-phandle = <&hdmi_tx>; -+}; -+ -+&cecb_AO { -+ pinctrl-0 = <&cec_ao_b_h_pins>; -+ pinctrl-names = "default"; -+ status = "okay"; -+ hdmi-phandle = <&hdmi_tx>; -+}; -+ -+&clkc_audio { -+ status = "okay"; -+}; -+ -+&cpu0 { -+ cpu-supply = <&vddcpu>; -+ operating-points-v2 = <&cpu_opp_table>; -+ clocks = <&clkc CLKID_CPU_CLK>; -+ clock-latency = <50000>; -+}; -+ -+&cpu1 { -+ cpu-supply = <&vddcpu>; -+ operating-points-v2 = <&cpu_opp_table>; -+ clocks = <&clkc CLKID_CPU_CLK>; -+ clock-latency = <50000>; -+}; -+ -+&cpu2 { -+ cpu-supply = <&vddcpu>; -+ operating-points-v2 = <&cpu_opp_table>; -+ clocks = <&clkc CLKID_CPU_CLK>; -+ clock-latency = <50000>; -+}; -+ -+&cpu3 { -+ cpu-supply = <&vddcpu>; -+ operating-points-v2 = <&cpu_opp_table>; -+ clocks = <&clkc CLKID_CPU_CLK>; -+ clock-latency = <50000>; -+}; -+ -+&cvbs_vdac_port { -+ cvbs_vdac_out: endpoint { -+ remote-endpoint = <&cvbs_connector_in>; -+ }; -+}; -+ -+&frddr_a { -+ status = "okay"; -+}; -+ -+&frddr_b { -+ status = "okay"; -+}; -+ -+&frddr_c { -+ status = "okay"; -+}; -+ -+&hdmi_tx { -+ status = "okay"; -+ pinctrl-0 = <&hdmitx_hpd_pins>, <&hdmitx_ddc_pins>; -+ pinctrl-names = "default"; -+ hdmi-supply = <&hdmi_pw>; -+}; -+ -+&hdmi_tx_tmds_port { -+ hdmi_tx_tmds_out: endpoint { -+ remote-endpoint = <&hdmi_connector_in>; -+ }; -+}; -+ -+&ir { -+ status = "disabled"; -+ pinctrl-0 = <&remote_input_ao_pins>; -+ pinctrl-names = "default"; -+}; -+ -+&pwm_AO_cd { -+ pinctrl-0 = <&pwm_ao_d_e_pins>; -+ pinctrl-names = "default"; -+ clocks = <&xtal>; -+ clock-names = "clkin1"; -+ status = "okay"; -+}; -+ -+&pwm_ef { -+ status = "okay"; -+ pinctrl-0 = <&pwm_e_pins>; -+ pinctrl-names = "default"; -+ clocks = <&xtal>; -+ clock-names = "clkin0"; -+}; -+ -+&saradc { -+ status = "okay"; -+ vref-supply = <&vddao_1v8>; -+}; -+ -+/* SDIO */ -+&sd_emmc_a { -+ status = "okay"; -+ pinctrl-0 = <&sdio_pins>; -+ pinctrl-1 = <&sdio_clk_gate_pins>; -+ pinctrl-names = "default", "clk-gate"; -+ #address-cells = <1>; -+ #size-cells = <0>; -+ -+ bus-width = <4>; -+ cap-sd-highspeed; -+ sd-uhs-sdr50; -+ max-frequency = <100000000>; -+ -+ non-removable; -+ disable-wp; -+ -+ /* WiFi firmware requires power to be kept while in suspend */ -+ keep-power-in-suspend; -+ -+ mmc-pwrseq = <&sdio_pwrseq>; -+ -+ vmmc-supply = <&vddao_3v3>; -+ vqmmc-supply = <&vddao_1v8>; -+ -+ brcmf: wifi@1 { -+ reg = <1>; -+ compatible = "brcm,bcm4329-fmac"; -+ }; -+}; -+ -+/* SD card */ -+&sd_emmc_b { -+ status = "okay"; -+ pinctrl-0 = <&sdcard_c_pins>; -+ pinctrl-1 = <&sdcard_clk_gate_c_pins>; -+ pinctrl-names = "default", "clk-gate"; -+ -+ bus-width = <4>; -+ cap-sd-highspeed; -+ max-frequency = <100000000>; -+ disable-wp; -+ -+ cd-gpios = <&gpio GPIOC_6 GPIO_ACTIVE_LOW>; -+ vmmc-supply = <&vddao_3v3>; -+ vqmmc-supply = <&vddao_3v3>; -+}; -+ -+/* eMMC */ -+&sd_emmc_c { -+ status = "okay"; -+ pinctrl-0 = <&emmc_ctrl_pins>, <&emmc_data_8b_pins>, <&emmc_ds_pins>; -+ pinctrl-1 = <&emmc_clk_gate_pins>; -+ pinctrl-names = "default", "clk-gate"; -+ -+ bus-width = <8>; -+ cap-mmc-highspeed; -+ mmc-ddr-1_8v; -+ mmc-hs200-1_8v; -+ max-frequency = <200000000>; -+ disable-wp; -+ -+ mmc-pwrseq = <&emmc_pwrseq>; -+ vmmc-supply = <&vcc_3v3>; -+ vqmmc-supply = <&vcc_1v8>; -+}; -+ -+&tdmif_b { -+ status = "okay"; -+}; -+ -+&tdmout_b { -+ status = "okay"; -+}; -+ -+&tohdmitx { -+ status = "okay"; -+}; -+ -+&uart_A { -+ status = "okay"; -+ pinctrl-0 = <&uart_a_pins>, <&uart_a_cts_rts_pins>; -+ pinctrl-names = "default"; -+ uart-has-rtscts; -+ -+ bluetooth { -+ compatible = "brcm,bcm43438-bt"; -+ shutdown-gpios = <&gpio GPIOX_17 GPIO_ACTIVE_HIGH>; -+ max-speed = <2000000>; -+ clocks = <&wifi32k>; -+ clock-names = "lpo"; -+ }; -+}; -+ -+&uart_AO { -+ status = "okay"; -+ pinctrl-0 = <&uart_ao_a_pins>; -+ pinctrl-names = "default"; -+}; -+ -+&usb { -+ status = "okay"; -+ dr_mode = "host"; -+}; --- -2.17.1 - diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0014-FROMGIT-arm64-dts-meson-sm1-odroid-add-cec-nodes.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0012-FROMGIT-arm64-dts-meson-sm1-odroid-add-cec-nodes.patch similarity index 88% rename from projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0014-FROMGIT-arm64-dts-meson-sm1-odroid-add-cec-nodes.patch rename to projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0012-FROMGIT-arm64-dts-meson-sm1-odroid-add-cec-nodes.patch index f467a6783f..931900e7e0 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0014-FROMGIT-arm64-dts-meson-sm1-odroid-add-cec-nodes.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0012-FROMGIT-arm64-dts-meson-sm1-odroid-add-cec-nodes.patch @@ -1,7 +1,7 @@ -From c59abdc476c8dd424ce2731ef5602a2d5dde6ee7 Mon Sep 17 00:00:00 2001 +From b0374f9e8fd2adbe151cbfcf7344177b0f933a1f Mon Sep 17 00:00:00 2001 From: Dmitry Shmidt Date: Fri, 8 Oct 2021 03:54:31 +0000 -Subject: [PATCH 14/60] FROMGIT: arm64: dts: meson-sm1-odroid: add cec nodes +Subject: [PATCH 12/71] FROMGIT: arm64: dts: meson-sm1-odroid: add cec nodes Enable CEC in same way it is done for other meson odroid devices diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0013-FROMGIT-arm64-dts-amlogic-meson-g12-Fix-thermal-zone.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0013-FROMGIT-arm64-dts-amlogic-meson-g12-Fix-thermal-zone.patch new file mode 100644 index 0000000000..c4022e6414 --- /dev/null +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0013-FROMGIT-arm64-dts-amlogic-meson-g12-Fix-thermal-zone.patch @@ -0,0 +1,150 @@ +From 2fe5f23b604ad1e33f6d3d81e0cb43b600864694 Mon Sep 17 00:00:00 2001 +From: Alexander Stein +Date: Fri, 26 Nov 2021 15:46:30 +0000 +Subject: [PATCH 13/71] FROMGIT: arm64: dts: amlogic: meson-g12: Fix + thermal-zones indent + +This node is currently at /soc/thermal-zones, but the later introduced +bindings in commit 1202a442a31f ("dt-bindings: thermal: Add yaml bindings +for thermal zones") put this at /thermal-zones. +Fix dtb_check warning by moving the thermal-zones node to / + +Signed-off-by: Alexander Stein +Reviewed-by: Neil Armstrong +Signed-off-by: Neil Armstrong +Link: https://lore.kernel.org/r/20211026182813.900775-1-alexander.stein@mailbox.org +--- + .../boot/dts/amlogic/meson-g12-common.dtsi | 110 +++++++++--------- + 1 file changed, 55 insertions(+), 55 deletions(-) + +diff --git a/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi b/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi +index 93022e53c0db..524188b3344c 100644 +--- a/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi ++++ b/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi +@@ -159,61 +159,6 @@ + status = "disabled"; + }; + +- thermal-zones { +- cpu_thermal: cpu-thermal { +- polling-delay = <1000>; +- polling-delay-passive = <100>; +- thermal-sensors = <&cpu_temp>; +- +- trips { +- cpu_passive: cpu-passive { +- temperature = <85000>; /* millicelsius */ +- hysteresis = <2000>; /* millicelsius */ +- type = "passive"; +- }; +- +- cpu_hot: cpu-hot { +- temperature = <95000>; /* millicelsius */ +- hysteresis = <2000>; /* millicelsius */ +- type = "hot"; +- }; +- +- cpu_critical: cpu-critical { +- temperature = <110000>; /* millicelsius */ +- hysteresis = <2000>; /* millicelsius */ +- type = "critical"; +- }; +- }; +- }; +- +- ddr_thermal: ddr-thermal { +- polling-delay = <1000>; +- polling-delay-passive = <100>; +- thermal-sensors = <&ddr_temp>; +- +- trips { +- ddr_passive: ddr-passive { +- temperature = <85000>; /* millicelsius */ +- hysteresis = <2000>; /* millicelsius */ +- type = "passive"; +- }; +- +- ddr_critical: ddr-critical { +- temperature = <110000>; /* millicelsius */ +- hysteresis = <2000>; /* millicelsius */ +- type = "critical"; +- }; +- }; +- +- cooling-maps { +- map { +- trip = <&ddr_passive>; +- cooling-device = <&mali THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; +- }; +- }; +- }; +- }; +- + ethmac: ethernet@ff3f0000 { + compatible = "amlogic,meson-g12a-dwmac", + "snps,dwmac-3.70a", +@@ -2415,6 +2360,61 @@ + }; + }; + ++ thermal-zones { ++ cpu_thermal: cpu-thermal { ++ polling-delay = <1000>; ++ polling-delay-passive = <100>; ++ thermal-sensors = <&cpu_temp>; ++ ++ trips { ++ cpu_passive: cpu-passive { ++ temperature = <85000>; /* millicelsius */ ++ hysteresis = <2000>; /* millicelsius */ ++ type = "passive"; ++ }; ++ ++ cpu_hot: cpu-hot { ++ temperature = <95000>; /* millicelsius */ ++ hysteresis = <2000>; /* millicelsius */ ++ type = "hot"; ++ }; ++ ++ cpu_critical: cpu-critical { ++ temperature = <110000>; /* millicelsius */ ++ hysteresis = <2000>; /* millicelsius */ ++ type = "critical"; ++ }; ++ }; ++ }; ++ ++ ddr_thermal: ddr-thermal { ++ polling-delay = <1000>; ++ polling-delay-passive = <100>; ++ thermal-sensors = <&ddr_temp>; ++ ++ trips { ++ ddr_passive: ddr-passive { ++ temperature = <85000>; /* millicelsius */ ++ hysteresis = <2000>; /* millicelsius */ ++ type = "passive"; ++ }; ++ ++ ddr_critical: ddr-critical { ++ temperature = <110000>; /* millicelsius */ ++ hysteresis = <2000>; /* millicelsius */ ++ type = "critical"; ++ }; ++ }; ++ ++ cooling-maps { ++ map { ++ trip = <&ddr_passive>; ++ cooling-device = <&mali THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; ++ }; ++ }; ++ }; ++ }; ++ + timer { + compatible = "arm,armv8-timer"; + interrupts = -Date: Fri, 15 May 2020 08:13:00 +0000 -Subject: [PATCH 13/60] FROMGIT: arm64: dts: meson: add audio playback to - rbox-pro - -Add initial support limited to HDMI i2s and SPDIF (LPCM). - -Signed-off-by: Christian Hewitt ---- - .../boot/dts/amlogic/meson-gxm-rbox-pro.dts | 61 +++++++++++++++++++ - 1 file changed, 61 insertions(+) - -diff --git a/arch/arm64/boot/dts/amlogic/meson-gxm-rbox-pro.dts b/arch/arm64/boot/dts/amlogic/meson-gxm-rbox-pro.dts -index dde7cfe12cff..50137aafab10 100644 ---- a/arch/arm64/boot/dts/amlogic/meson-gxm-rbox-pro.dts -+++ b/arch/arm64/boot/dts/amlogic/meson-gxm-rbox-pro.dts -@@ -14,6 +14,7 @@ - /dts-v1/; - - #include "meson-gxm.dtsi" -+#include - - / { - compatible = "kingnovel,r-box-pro", "amlogic,s912", "amlogic,meson-gxm"; -@@ -33,6 +34,13 @@ - reg = <0x0 0x0 0x0 0x80000000>; /* 2 GiB or 3 GiB */ - }; - -+ spdif_dit: audio-codec-0 { -+ #sound-dai-cells = <0>; -+ compatible = "linux,spdif-dit"; -+ status = "okay"; -+ sound-name-prefix = "DIT"; -+ }; -+ - leds { - compatible = "gpio-leds"; - -@@ -90,6 +98,59 @@ - clocks = <&wifi32k>; - clock-names = "ext_clock"; - }; -+ -+ sound { -+ compatible = "amlogic,gx-sound-card"; -+ model = "RBOX-PRO"; -+ assigned-clocks = <&clkc CLKID_MPLL0>, -+ <&clkc CLKID_MPLL1>, -+ <&clkc CLKID_MPLL2>; -+ assigned-clock-parents = <0>, <0>, <0>; -+ assigned-clock-rates = <294912000>, -+ <270950400>, -+ <393216000>; -+ status = "okay"; -+ -+ dai-link-0 { -+ sound-dai = <&aiu AIU_CPU CPU_I2S_FIFO>; -+ }; -+ -+ dai-link-1 { -+ sound-dai = <&aiu AIU_CPU CPU_SPDIF_FIFO>; -+ }; -+ -+ dai-link-2 { -+ sound-dai = <&aiu AIU_CPU CPU_I2S_ENCODER>; -+ dai-format = "i2s"; -+ mclk-fs = <256>; -+ -+ codec-0 { -+ sound-dai = <&aiu AIU_HDMI CTRL_I2S>; -+ }; -+ }; -+ -+ dai-link-3 { -+ sound-dai = <&aiu AIU_CPU CPU_SPDIF_ENCODER>; -+ -+ codec-0 { -+ sound-dai = <&spdif_dit>; -+ }; -+ }; -+ -+ dai-link-4 { -+ sound-dai = <&aiu AIU_HDMI CTRL_OUT>; -+ -+ codec-0 { -+ sound-dai = <&hdmi_tx>; -+ }; -+ }; -+ }; -+}; -+ -+&aiu { -+ status = "okay"; -+ pinctrl-0 = <&spdif_out_h_pins>; -+ pinctrl-names = "default"; - }; - - ðmac { --- -2.17.1 - diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0014-FROMGIT-arm64-dts-amlogic-meson-g12-Fix-GPU-operatin.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0014-FROMGIT-arm64-dts-amlogic-meson-g12-Fix-GPU-operatin.patch new file mode 100644 index 0000000000..c054a479f6 --- /dev/null +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0014-FROMGIT-arm64-dts-amlogic-meson-g12-Fix-GPU-operatin.patch @@ -0,0 +1,38 @@ +From 94bb0ba0af551c23c20896d7f37f96b2c8419f19 Mon Sep 17 00:00:00 2001 +From: Alexander Stein +Date: Fri, 26 Nov 2021 15:47:31 +0000 +Subject: [PATCH 14/71] FROMGIT: arm64: dts: amlogic: meson-g12: Fix GPU + operating point table node name + +Starting with commit 94274f20f6bf ("dt-bindings: opp: Convert to DT +schema") the opp node name has a mandatory pattern. This change +fixes the dtbs_check warning: +gpu-opp-table: $nodename:0: 'gpu-opp-table' does not match +'^opp-table(-[a-z0-9]+)?$' +Put the 'gpu' part at the end to match the pattern. + +Fixes: 916a0edc43f0 ("arm64: dts: amlogic: meson-g12: add the Mali OPP table and use DVFS") +Reviewed-by: Neil Armstrong +Signed-off-by: Alexander Stein +Signed-off-by: Neil Armstrong +Link: https://lore.kernel.org/r/20211026182813.900775-2-alexander.stein@mailbox.org +--- + arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi b/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi +index 524188b3344c..4f4c8e7d79d2 100644 +--- a/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi ++++ b/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi +@@ -58,7 +58,7 @@ + secure-monitor = <&sm>; + }; + +- gpu_opp_table: gpu-opp-table { ++ gpu_opp_table: opp-table-gpu { + compatible = "operating-points-v2"; + + opp-124999998 { +-- +2.17.1 + diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0015-FROMGIT-arm64-dts-amlogic-Fix-SPI-NOR-flash-node-nam.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0015-FROMGIT-arm64-dts-amlogic-Fix-SPI-NOR-flash-node-nam.patch new file mode 100644 index 0000000000..8a46c4c34d --- /dev/null +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0015-FROMGIT-arm64-dts-amlogic-Fix-SPI-NOR-flash-node-nam.patch @@ -0,0 +1,34 @@ +From 5370462c68a417ae491feca72209682932cbe319 Mon Sep 17 00:00:00 2001 +From: Alexander Stein +Date: Fri, 26 Nov 2021 15:48:22 +0000 +Subject: [PATCH 15/71] FROMGIT: arm64: dts: amlogic: Fix SPI NOR flash node + name for ODROID N2/N2+ + +Fix the schema warning: "spi-flash@0: $nodename:0: 'spi-flash@0' does + not match '^flash(@.*)?$'" from jedec,spi-nor.yaml + +Fixes: a084eaf3096c ("arm64: dts: meson-g12b-odroid-n2: add SPIFC controller node") +Reviewed-by: Neil Armstrong +Signed-off-by: Alexander Stein +Signed-off-by: Neil Armstrong +Link: https://lore.kernel.org/r/20211026182813.900775-3-alexander.stein@mailbox.org +--- + arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi b/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi +index e8a00a2f8812..3e968b244191 100644 +--- a/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi ++++ b/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi +@@ -609,7 +609,7 @@ + pinctrl-0 = <&nor_pins>; + pinctrl-names = "default"; + +- mx25u64: spi-flash@0 { ++ mx25u64: flash@0 { + #address-cells = <1>; + #size-cells = <1>; + compatible = "mxicy,mx25u6435f", "jedec,spi-nor"; +-- +2.17.1 + diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0015-FROMGIT-arm64-dts-meson-gxbb-wetek-fix-HDMI-in-early.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0016-FROMGIT-arm64-dts-meson-gxbb-wetek-fix-HDMI-in-early.patch similarity index 90% rename from projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0015-FROMGIT-arm64-dts-meson-gxbb-wetek-fix-HDMI-in-early.patch rename to projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0016-FROMGIT-arm64-dts-meson-gxbb-wetek-fix-HDMI-in-early.patch index c425046ad9..f9ea2d7483 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0015-FROMGIT-arm64-dts-meson-gxbb-wetek-fix-HDMI-in-early.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0016-FROMGIT-arm64-dts-meson-gxbb-wetek-fix-HDMI-in-early.patch @@ -1,7 +1,7 @@ -From 6065e3208d647aebec8a3fb7b1986b1b8d8fdd83 Mon Sep 17 00:00:00 2001 +From d8199982b9d87e42a00a67fbff827087047b0e5d Mon Sep 17 00:00:00 2001 From: Christian Hewitt Date: Tue, 12 Oct 2021 04:47:14 +0000 -Subject: [PATCH 15/60] FROMGIT: arm64: dts: meson-gxbb-wetek: fix HDMI in +Subject: [PATCH 16/71] FROMGIT: arm64: dts: meson-gxbb-wetek: fix HDMI in early boot Mark the VDDIO_AO18 regulator always-on and set hdmi-supply for the hdmi_tx diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0016-FROMGIT-arm64-dts-meson-gxbb-wetek-fix-missing-GPIO-.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0017-FROMGIT-arm64-dts-meson-gxbb-wetek-fix-missing-GPIO-.patch similarity index 88% rename from projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0016-FROMGIT-arm64-dts-meson-gxbb-wetek-fix-missing-GPIO-.patch rename to projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0017-FROMGIT-arm64-dts-meson-gxbb-wetek-fix-missing-GPIO-.patch index 1927ef4b98..f6c2d4a062 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0016-FROMGIT-arm64-dts-meson-gxbb-wetek-fix-missing-GPIO-.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0017-FROMGIT-arm64-dts-meson-gxbb-wetek-fix-missing-GPIO-.patch @@ -1,7 +1,7 @@ -From aaa7ab225b8b3f5a58baecf1d4522d893e9f8db5 Mon Sep 17 00:00:00 2001 +From cd6b35fda299a2983153cd8758af452765e7be66 Mon Sep 17 00:00:00 2001 From: Christian Hewitt Date: Tue, 12 Oct 2021 05:13:06 +0000 -Subject: [PATCH 16/60] FROMGIT: arm64: dts: meson-gxbb-wetek: fix missing GPIO +Subject: [PATCH 17/71] FROMGIT: arm64: dts: meson-gxbb-wetek: fix missing GPIO binding The absence of this binding appears to be harmless in Linux but it breaks diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0017-FROMGIT-arm64-dts-meson-gxbb-wetek-use-updated-LED-b.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0018-FROMGIT-arm64-dts-meson-gxbb-wetek-use-updated-LED-b.patch similarity index 89% rename from projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0017-FROMGIT-arm64-dts-meson-gxbb-wetek-use-updated-LED-b.patch rename to projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0018-FROMGIT-arm64-dts-meson-gxbb-wetek-use-updated-LED-b.patch index 07ac1dab35..439d5716c8 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0017-FROMGIT-arm64-dts-meson-gxbb-wetek-use-updated-LED-b.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0018-FROMGIT-arm64-dts-meson-gxbb-wetek-use-updated-LED-b.patch @@ -1,7 +1,7 @@ -From 8e92a8d45aecb19c6bcfe569cf238f0f476b293f Mon Sep 17 00:00:00 2001 +From 774d975dac28f9b83ef449f82eabd91fca862240 Mon Sep 17 00:00:00 2001 From: Christian Hewitt Date: Tue, 12 Oct 2021 04:58:38 +0000 -Subject: [PATCH 17/60] FROMGIT: arm64: dts: meson-gxbb-wetek: use updated LED +Subject: [PATCH 18/71] FROMGIT: arm64: dts: meson-gxbb-wetek: use updated LED bindings Update the dts to use the newer style of LED bindings. diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0018-FROMGIT-soc-amlogic-meson-gx-socinfo-Add-S905Y2-ID-f.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0018-FROMGIT-soc-amlogic-meson-gx-socinfo-Add-S905Y2-ID-f.patch deleted file mode 100644 index 2ba7fe6e25..0000000000 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0018-FROMGIT-soc-amlogic-meson-gx-socinfo-Add-S905Y2-ID-f.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 4b278c3214195ee59c936ff082a66a6593d1004b Mon Sep 17 00:00:00 2001 -From: Christian Hewitt -Date: Fri, 20 Aug 2021 01:17:54 +0000 -Subject: [PATCH 18/60] FROMGIT: soc: amlogic: meson-gx-socinfo: Add S905Y2 ID - for Radxa Zero - -Add the SOC ID for the S905Y2 used in the Radxa Zero. Before/After: - -[ 0.321650] soc soc0: Amlogic Meson G12A (Unknown) Revision 28:b (30:2) Detected -[ 0.318533] soc soc0: Amlogic Meson G12A (S905Y2) Revision 28:b (30:2) Detected - -Signed-off-by: Christian Hewitt ---- - drivers/soc/amlogic/meson-gx-socinfo.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/drivers/soc/amlogic/meson-gx-socinfo.c b/drivers/soc/amlogic/meson-gx-socinfo.c -index 6f54bd832c8b..165f7548401b 100644 ---- a/drivers/soc/amlogic/meson-gx-socinfo.c -+++ b/drivers/soc/amlogic/meson-gx-socinfo.c -@@ -65,6 +65,7 @@ static const struct meson_gx_package_id { - { "A113X", 0x25, 0x37, 0xff }, - { "A113D", 0x25, 0x22, 0xff }, - { "S905D2", 0x28, 0x10, 0xf0 }, -+ { "S905Y2", 0x28, 0x30, 0xf0 }, - { "S905X2", 0x28, 0x40, 0xf0 }, - { "A311D", 0x29, 0x10, 0xf0 }, - { "S922X", 0x29, 0x40, 0xf0 }, --- -2.17.1 - diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0019-FROMGIT-arm64-dts-meson-p241-add-vcc_5v-regulator.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0019-FROMGIT-arm64-dts-meson-p241-add-vcc_5v-regulator.patch new file mode 100644 index 0000000000..fe5890913d --- /dev/null +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0019-FROMGIT-arm64-dts-meson-p241-add-vcc_5v-regulator.patch @@ -0,0 +1,53 @@ +From 5772ac3d4d2eb52cd9051d3a79f36ec587d08a91 Mon Sep 17 00:00:00 2001 +From: Jerome Brunet +Date: Tue, 30 Nov 2021 14:08:06 +0000 +Subject: [PATCH 19/71] FROMGIT: arm64: dts: meson: p241: add vcc_5v regulator + +Add the VCC_5V regulator, which feeds the HDMI, USB and audio amplifier. + +Signed-off-by: Jerome Brunet +Reviewed-by: Neil Armstrong +Signed-off-by: Neil Armstrong +Link: https://lore.kernel.org/r/20211130100159.214489-2-jbrunet@baylibre.com +--- + .../arm64/boot/dts/amlogic/meson-gxl-s805x-p241.dts | 13 +++++++++++++ + 1 file changed, 13 insertions(+) + +diff --git a/arch/arm64/boot/dts/amlogic/meson-gxl-s805x-p241.dts b/arch/arm64/boot/dts/amlogic/meson-gxl-s805x-p241.dts +index eb7f5a3fefd4..9d0684a8264b 100644 +--- a/arch/arm64/boot/dts/amlogic/meson-gxl-s805x-p241.dts ++++ b/arch/arm64/boot/dts/amlogic/meson-gxl-s805x-p241.dts +@@ -84,6 +84,14 @@ + regulator-max-microvolt = <3300000>; + }; + ++ vcc_5v: regulator-vcc-5v { ++ compatible = "regulator-fixed"; ++ regulator-name = "VCC_5V"; ++ regulator-min-microvolt = <5000000>; ++ regulator-max-microvolt = <5000000>; ++ }; ++ ++ + emmc_pwrseq: emmc-pwrseq { + compatible = "mmc-pwrseq-emmc"; + reset-gpios = <&gpio BOOT_9 GPIO_ACTIVE_LOW>; +@@ -136,6 +144,7 @@ + status = "okay"; + pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>; + pinctrl-names = "default"; ++ hdmi-supply = <&vcc_5v>; + }; + + &hdmi_tx_tmds_port { +@@ -220,3 +229,7 @@ + status = "okay"; + dr_mode = "host"; + }; ++ ++&usb2_phy0 { ++ phy-supply = <&vcc_5v>; ++}; +-- +2.17.1 + diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0019-FROMGIT-soc-amlogic-canvas-Make-use-of-the-helper-fu.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0019-FROMGIT-soc-amlogic-canvas-Make-use-of-the-helper-fu.patch deleted file mode 100644 index 3967f96df5..0000000000 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0019-FROMGIT-soc-amlogic-canvas-Make-use-of-the-helper-fu.patch +++ /dev/null @@ -1,43 +0,0 @@ -From 3ca769d11ba14c46f2bc52fe633dc878c8d6f288 Mon Sep 17 00:00:00 2001 -From: Cai Huoqing -Date: Tue, 14 Sep 2021 15:10:02 +0000 -Subject: [PATCH 19/60] FROMGIT: soc: amlogic: canvas: Make use of the helper - function devm_platform_ioremap_resource() - -Use the devm_platform_ioremap_resource() helper instead of -calling platform_get_resource() and devm_ioremap_resource() -separately - -Signed-off-by: Cai Huoqing -Reviewed-by: Neil Armstrong -Signed-off-by: Neil Armstrong -Link: https://lore.kernel.org/r/20210908071544.603-1-caihuoqing@baidu.com ---- - drivers/soc/amlogic/meson-canvas.c | 4 +--- - 1 file changed, 1 insertion(+), 3 deletions(-) - -diff --git a/drivers/soc/amlogic/meson-canvas.c b/drivers/soc/amlogic/meson-canvas.c -index d0329ad170d1..383b0cfc584e 100644 ---- a/drivers/soc/amlogic/meson-canvas.c -+++ b/drivers/soc/amlogic/meson-canvas.c -@@ -168,7 +168,6 @@ EXPORT_SYMBOL_GPL(meson_canvas_free); - - static int meson_canvas_probe(struct platform_device *pdev) - { -- struct resource *res; - struct meson_canvas *canvas; - struct device *dev = &pdev->dev; - -@@ -176,8 +175,7 @@ static int meson_canvas_probe(struct platform_device *pdev) - if (!canvas) - return -ENOMEM; - -- res = platform_get_resource(pdev, IORESOURCE_MEM, 0); -- canvas->reg_base = devm_ioremap_resource(dev, res); -+ canvas->reg_base = devm_platform_ioremap_resource(pdev, 0); - if (IS_ERR(canvas->reg_base)) - return PTR_ERR(canvas->reg_base); - --- -2.17.1 - diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0020-FROMGIT-arm64-dts-meson-p241-add-sound-support.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0020-FROMGIT-arm64-dts-meson-p241-add-sound-support.patch new file mode 100644 index 0000000000..d6e6fdbe14 --- /dev/null +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0020-FROMGIT-arm64-dts-meson-p241-add-sound-support.patch @@ -0,0 +1,114 @@ +From 7421ba1c742ed81077d147b65995b4c3c0c06ea9 Mon Sep 17 00:00:00 2001 +From: Jerome Brunet +Date: Tue, 30 Nov 2021 14:08:53 +0000 +Subject: [PATCH 20/71] FROMGIT: arm64: dts: meson: p241: add sound support + +Add the p241 sound card support. This board can play audio through HDMI +and the internal DAC. + +Signed-off-by: Jerome Brunet +Reviewed-by: Neil Armstrong +Signed-off-by: Neil Armstrong +Link: https://lore.kernel.org/r/20211130100159.214489-3-jbrunet@baylibre.com +--- + .../boot/dts/amlogic/meson-gxl-s805x-p241.dts | 70 +++++++++++++++++++ + 1 file changed, 70 insertions(+) + +diff --git a/arch/arm64/boot/dts/amlogic/meson-gxl-s805x-p241.dts b/arch/arm64/boot/dts/amlogic/meson-gxl-s805x-p241.dts +index 9d0684a8264b..ff906becd2ab 100644 +--- a/arch/arm64/boot/dts/amlogic/meson-gxl-s805x-p241.dts ++++ b/arch/arm64/boot/dts/amlogic/meson-gxl-s805x-p241.dts +@@ -8,6 +8,7 @@ + /dts-v1/; + + #include ++#include + + #include "meson-gxl-s805x.dtsi" + +@@ -21,6 +22,13 @@ + ethernet0 = ðmac; + }; + ++ au2: analog-amplifier { ++ compatible = "simple-audio-amplifier"; ++ sound-name-prefix = "AU2"; ++ VCC-supply = <&vcc_5v>; ++ enable-gpios = <&gpio GPIOH_5 GPIO_ACTIVE_HIGH>; ++ }; ++ + chosen { + stdout-path = "serial0:115200n8"; + }; +@@ -110,6 +118,68 @@ + clocks = <&wifi32k>; + clock-names = "ext_clock"; + }; ++ ++ sound { ++ compatible = "amlogic,gx-sound-card"; ++ model = "GXL-P241"; ++ audio-aux-devs = <&au2>; ++ audio-widgets = "Line", "Lineout"; ++ audio-routing = "AU2 INL", "ACODEC LOLN", ++ "AU2 INR", "ACODEC LORN", ++ "Lineout", "AU2 OUTL", ++ "Lineout", "AU2 OUTR"; ++ assigned-clocks = <&clkc CLKID_MPLL0>, ++ <&clkc CLKID_MPLL1>, ++ <&clkc CLKID_MPLL2>; ++ assigned-clock-parents = <0>, <0>, <0>; ++ assigned-clock-rates = <294912000>, ++ <270950400>, ++ <393216000>; ++ status = "okay"; ++ ++ dai-link-0 { ++ sound-dai = <&aiu AIU_CPU CPU_I2S_FIFO>; ++ }; ++ ++ dai-link-1 { ++ sound-dai = <&aiu AIU_CPU CPU_I2S_ENCODER>; ++ dai-format = "i2s"; ++ mclk-fs = <256>; ++ ++ codec-0 { ++ sound-dai = <&aiu AIU_HDMI CTRL_I2S>; ++ }; ++ ++ codec-1 { ++ sound-dai = <&aiu AIU_ACODEC CTRL_I2S>; ++ }; ++ }; ++ ++ dai-link-2 { ++ sound-dai = <&aiu AIU_HDMI CTRL_OUT>; ++ ++ codec-0 { ++ sound-dai = <&hdmi_tx>; ++ }; ++ }; ++ ++ dai-link-3 { ++ sound-dai = <&aiu AIU_ACODEC CTRL_OUT>; ++ ++ codec-0 { ++ sound-dai = <&acodec>; ++ }; ++ }; ++ }; ++}; ++ ++&acodec { ++ AVDD-supply = <&vddio_ao18>; ++ status = "okay"; ++}; ++ ++&aiu { ++ status = "okay"; + }; + + &cec_AO { +-- +2.17.1 + diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0020-FROMGIT-soc-amlogic-meson-clk-measure-Make-use-of-th.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0020-FROMGIT-soc-amlogic-meson-clk-measure-Make-use-of-th.patch deleted file mode 100644 index e780a48305..0000000000 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0020-FROMGIT-soc-amlogic-meson-clk-measure-Make-use-of-th.patch +++ /dev/null @@ -1,43 +0,0 @@ -From 14f405c0277266c8f09203813c93f2eb2d8be1b5 Mon Sep 17 00:00:00 2001 -From: Cai Huoqing -Date: Tue, 14 Sep 2021 15:10:45 +0000 -Subject: [PATCH 20/60] FROMGIT: soc: amlogic: meson-clk-measure: Make use of - the helper function devm_platform_ioremap_resource() - -Use the devm_platform_ioremap_resource() helper instead of -calling platform_get_resource() and devm_ioremap_resource() -separately - -Signed-off-by: Cai Huoqing -Reviewed-by: Neil Armstrong -Signed-off-by: Neil Armstrong -Link: https://lore.kernel.org/r/20210908071544.603-2-caihuoqing@baidu.com ---- - drivers/soc/amlogic/meson-clk-measure.c | 4 +--- - 1 file changed, 1 insertion(+), 3 deletions(-) - -diff --git a/drivers/soc/amlogic/meson-clk-measure.c b/drivers/soc/amlogic/meson-clk-measure.c -index 6dd190270123..3f3039600357 100644 ---- a/drivers/soc/amlogic/meson-clk-measure.c -+++ b/drivers/soc/amlogic/meson-clk-measure.c -@@ -606,7 +606,6 @@ static int meson_msr_probe(struct platform_device *pdev) - { - const struct meson_msr_id *match_data; - struct meson_msr *priv; -- struct resource *res; - struct dentry *root, *clks; - void __iomem *base; - int i; -@@ -624,8 +623,7 @@ static int meson_msr_probe(struct platform_device *pdev) - - memcpy(priv->msr_table, match_data, sizeof(priv->msr_table)); - -- res = platform_get_resource(pdev, IORESOURCE_MEM, 0); -- base = devm_ioremap_resource(&pdev->dev, res); -+ base = devm_platform_ioremap_resource(pdev, 0); - if (IS_ERR(base)) - return PTR_ERR(base); - --- -2.17.1 - diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0021-FROMGIT-ASoC-meson-implement-driver_name-for-snd_soc.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0021-FROMGIT-ASoC-meson-implement-driver_name-for-snd_soc.patch deleted file mode 100644 index b28a8891ef..0000000000 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0021-FROMGIT-ASoC-meson-implement-driver_name-for-snd_soc.patch +++ /dev/null @@ -1,30 +0,0 @@ -From d74a4ec6a83b29c7706fe072b933b30b76c38b57 Mon Sep 17 00:00:00 2001 -From: Christian Hewitt -Date: Tue, 12 Oct 2021 11:19:54 +0000 -Subject: [PATCH 21/60] FROMGIT: ASoC: meson: implement driver_name for - snd_soc_card in meson-card-utils - -Implement driver_name to provide an alternative to card_name for userspace -configuration of Amlogic audio cards. - -Suggested-by: Matthias Reichl -Signed-off-by: Christian Hewitt ---- - sound/soc/meson/meson-card-utils.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/sound/soc/meson/meson-card-utils.c b/sound/soc/meson/meson-card-utils.c -index 415cc0046e4b..29b0174f4b5c 100644 ---- a/sound/soc/meson/meson-card-utils.c -+++ b/sound/soc/meson/meson-card-utils.c -@@ -302,6 +302,7 @@ int meson_card_probe(struct platform_device *pdev) - - priv->card.owner = THIS_MODULE; - priv->card.dev = dev; -+ priv->card.driver_name = dev->driver->name; - priv->match_data = data; - - ret = snd_soc_of_parse_card_name(&priv->card, "model"); --- -2.17.1 - diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0025-FROMLIST-v2-clk-meson-gxbb-Fix-the-SDM_EN-bit-for-MP.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0021-FROMGIT-clk-meson-gxbb-Fix-the-SDM_EN-bit-for-MPLL0-.patch similarity index 96% rename from projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0025-FROMLIST-v2-clk-meson-gxbb-Fix-the-SDM_EN-bit-for-MP.patch rename to projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0021-FROMGIT-clk-meson-gxbb-Fix-the-SDM_EN-bit-for-MPLL0-.patch index 9c860224c4..dff0823b4d 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0025-FROMLIST-v2-clk-meson-gxbb-Fix-the-SDM_EN-bit-for-MP.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0021-FROMGIT-clk-meson-gxbb-Fix-the-SDM_EN-bit-for-MPLL0-.patch @@ -1,8 +1,8 @@ -From 1918f1f5e7e8ddefa517d945b7dac6cdc73ef17d Mon Sep 17 00:00:00 2001 +From 879077d4975581151203ff7be708243fa80e6c73 Mon Sep 17 00:00:00 2001 From: Martin Blumenstingl Date: Sat, 16 Oct 2021 13:45:35 +0000 -Subject: [PATCH 25/60] FROMLIST(v2): clk: meson: gxbb: Fix the SDM_EN bit for - MPLL0 on GXBB +Subject: [PATCH 21/71] FROMGIT: clk: meson: gxbb: Fix the SDM_EN bit for MPLL0 + on GXBB There are reports that 48kHz audio does not work on his WeTek Play 2 (which uses a GXBB SoC), while 44.1kHz audio works fine on the same diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0022-FROMGIT-ath10k-Fix-the-MTU-size-on-QCA9377-SDIO.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0022-FROMGIT-ath10k-Fix-the-MTU-size-on-QCA9377-SDIO.patch new file mode 100644 index 0000000000..0086f2574d --- /dev/null +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0022-FROMGIT-ath10k-Fix-the-MTU-size-on-QCA9377-SDIO.patch @@ -0,0 +1,706 @@ +From 9a0730311c90afef97e77a5f71d335db2c6d563a Mon Sep 17 00:00:00 2001 +From: Fabio Estevam +Date: Wed, 24 Nov 2021 13:20:05 +0000 +Subject: [PATCH 22/71] FROMGIT: ath10k: Fix the MTU size on QCA9377 SDIO + +On an imx6dl-pico-pi board with a QCA9377 SDIO chip, simply trying to +connect via ssh to another machine causes: + +[ 55.824159] ath10k_sdio mmc1:0001:1: failed to transmit packet, dropping: -12 +[ 55.832169] ath10k_sdio mmc1:0001:1: failed to submit frame: -12 +[ 55.838529] ath10k_sdio mmc1:0001:1: failed to push frame: -12 +[ 55.905863] ath10k_sdio mmc1:0001:1: failed to transmit packet, dropping: -12 +[ 55.913650] ath10k_sdio mmc1:0001:1: failed to submit frame: -12 +[ 55.919887] ath10k_sdio mmc1:0001:1: failed to push frame: -12 + +leading to an ssh connection failure. + +One user inspected the size of frames on Wireshark and reported +the followig: + +"I was able to narrow the issue down to the mtu. If I set the mtu for +the wlan0 device to 1486 instead of 1500, the issue does not happen. + +The size of frames that I see on Wireshark is exactly 1500 after +setting it to 1486." + +Clearing the HI_ACS_FLAGS_ALT_DATA_CREDIT_SIZE avoids the problem and +the ssh command works successfully after that. + +Introduce a 'credit_size_workaround' field to ath10k_hw_params for +the QCA9377 SDIO, so that the HI_ACS_FLAGS_ALT_DATA_CREDIT_SIZE +is not set in this case. + +Tested with QCA9377 SDIO with firmware WLAN.TF.1.1.1-00061-QCATFSWPZ-1. + +Fixes: 2f918ea98606 ("ath10k: enable alt data of TX path for sdio") +Signed-off-by: Fabio Estevam +Signed-off-by: Kalle Valo +--- + .../boot/dts/amlogic/meson-sm1-ac2xx.ok.dtsi | 375 ++++++++++++++++++ + .../dts/amlogic/meson-sm1-x96-air-100.ok.dts | 106 +++++ + drivers/net/wireless/ath/ath10k/core.c | 19 +- + drivers/net/wireless/ath/ath10k/hw.h | 3 + + 4 files changed, 502 insertions(+), 1 deletion(-) + create mode 100644 arch/arm64/boot/dts/amlogic/meson-sm1-ac2xx.ok.dtsi + create mode 100644 arch/arm64/boot/dts/amlogic/meson-sm1-x96-air-100.ok.dts + +diff --git a/arch/arm64/boot/dts/amlogic/meson-sm1-ac2xx.ok.dtsi b/arch/arm64/boot/dts/amlogic/meson-sm1-ac2xx.ok.dtsi +new file mode 100644 +index 000000000000..034959bcff00 +--- /dev/null ++++ b/arch/arm64/boot/dts/amlogic/meson-sm1-ac2xx.ok.dtsi +@@ -0,0 +1,375 @@ ++// SPDX-License-Identifier: (GPL-2.0+ OR MIT) ++/* ++ * Copyright (c) 2019 BayLibre SAS. All rights reserved. ++ * Copyright (c) 2020 Christian Hewitt ++ * ++ * AC200/AC202 = S905D3 ++ * AC213/AC214 = S905X3 ++ * ++ */ ++ ++#include "meson-sm1.dtsi" ++#include ++#include ++#include ++#include ++ ++/ { ++ aliases { ++ serial0 = &uart_AO; ++ ethernet0 = ðmac; ++ }; ++ ++ chosen { ++ stdout-path = "serial0:115200n8"; ++ }; ++ ++ emmc_pwrseq: emmc-pwrseq { ++ compatible = "mmc-pwrseq-emmc"; ++ reset-gpios = <&gpio BOOT_12 GPIO_ACTIVE_LOW>; ++ }; ++ ++ hdmi-connector { ++ compatible = "hdmi-connector"; ++ type = "a"; ++ ++ port { ++ hdmi_connector_in: endpoint { ++ remote-endpoint = <&hdmi_tx_tmds_out>; ++ }; ++ }; ++ }; ++ ++ memory@0 { ++ device_type = "memory"; ++ reg = <0x0 0x0 0x0 0x40000000>; ++ }; ++ ++ ao_5v: regulator-ao_5v { ++ compatible = "regulator-fixed"; ++ regulator-name = "AO_5V"; ++ regulator-min-microvolt = <5000000>; ++ regulator-max-microvolt = <5000000>; ++ vin-supply = <&dc_in>; ++ regulator-always-on; ++ }; ++ ++ dc_in: regulator-dc_in { ++ compatible = "regulator-fixed"; ++ regulator-name = "DC_IN"; ++ regulator-min-microvolt = <5000000>; ++ regulator-max-microvolt = <5000000>; ++ regulator-always-on; ++ }; ++ ++ emmc_1v8: regulator-emmc_1v8 { ++ compatible = "regulator-fixed"; ++ regulator-name = "EMMC_1V8"; ++ regulator-min-microvolt = <1800000>; ++ regulator-max-microvolt = <1800000>; ++ vin-supply = <&vddao_3v3>; ++ regulator-always-on; ++ }; ++ ++ vddao_3v3: regulator-vddao_3v3 { ++ compatible = "regulator-fixed"; ++ regulator-name = "VDDAO_3V3"; ++ regulator-min-microvolt = <3300000>; ++ regulator-max-microvolt = <3300000>; ++ vin-supply = <&dc_in>; ++ regulator-always-on; ++ }; ++ ++ vddcpu: regulator-vddcpu { ++ /* ++ * SY8120B1ABC DC/DC Regulator. ++ */ ++ compatible = "pwm-regulator"; ++ ++ regulator-name = "VDDCPU"; ++ regulator-min-microvolt = <690000>; ++ regulator-max-microvolt = <1050000>; ++ ++ vin-supply = <&dc_in>; ++ ++ pwms = <&pwm_AO_cd 1 1500 0>; ++ pwm-dutycycle-range = <100 0>; ++ ++ regulator-boot-on; ++ regulator-always-on; ++ }; ++ ++ vddio_ao1v8: regulator-vddio_ao1v8 { ++ compatible = "regulator-fixed"; ++ regulator-name = "VDDIO_AO1V8"; ++ regulator-min-microvolt = <1800000>; ++ regulator-max-microvolt = <1800000>; ++ vin-supply = <&vddao_3v3>; ++ regulator-always-on; ++ }; ++ ++ sdio_pwrseq: sdio-pwrseq { ++ compatible = "mmc-pwrseq-simple"; ++ reset-gpios = <&gpio GPIOX_6 GPIO_ACTIVE_LOW>; ++ clocks = <&wifi32k>; ++ clock-names = "ext_clock"; ++ }; ++ ++ sound { ++ compatible = "amlogic,axg-sound-card"; ++ model = "SM1-X96-AIR"; ++ audio-aux-devs = <&tdmout_b>; ++ audio-routing = "TDMOUT_B IN 0", "FRDDR_A OUT 1", ++ "TDMOUT_B IN 1", "FRDDR_B OUT 1", ++ "TDMOUT_B IN 2", "FRDDR_C OUT 1", ++ "TDM_B Playback", "TDMOUT_B OUT"; ++ ++ assigned-clocks = <&clkc CLKID_MPLL2>, ++ <&clkc CLKID_MPLL0>, ++ <&clkc CLKID_MPLL1>; ++ assigned-clock-parents = <0>, <0>, <0>; ++ assigned-clock-rates = <294912000>, ++ <270950400>, ++ <393216000>; ++ status = "okay"; ++ ++ dai-link-0 { ++ sound-dai = <&frddr_a>; ++ }; ++ ++ dai-link-1 { ++ sound-dai = <&frddr_b>; ++ }; ++ ++ dai-link-2 { ++ sound-dai = <&frddr_c>; ++ }; ++ ++ /* 8ch hdmi interface */ ++ dai-link-3 { ++ sound-dai = <&tdmif_b>; ++ dai-format = "i2s"; ++ dai-tdm-slot-tx-mask-0 = <1 1>; ++ dai-tdm-slot-tx-mask-1 = <1 1>; ++ dai-tdm-slot-tx-mask-2 = <1 1>; ++ dai-tdm-slot-tx-mask-3 = <1 1>; ++ mclk-fs = <256>; ++ ++ codec { ++ sound-dai = <&tohdmitx TOHDMITX_I2S_IN_B>; ++ }; ++ }; ++ ++ /* hdmi glue */ ++ dai-link-4 { ++ sound-dai = <&tohdmitx TOHDMITX_I2S_OUT>; ++ ++ codec { ++ sound-dai = <&hdmi_tx>; ++ }; ++ }; ++ }; ++ ++ wifi32k: wifi32k { ++ compatible = "pwm-clock"; ++ #clock-cells = <0>; ++ clock-frequency = <32768>; ++ pwms = <&pwm_ef 0 30518 0>; /* PWM_E at 32.768KHz */ ++ }; ++}; ++ ++&arb { ++ status = "okay"; ++}; ++ ++&cec_AO { ++ pinctrl-0 = <&cec_ao_a_h_pins>; ++ pinctrl-names = "default"; ++ status = "disabled"; ++ hdmi-phandle = <&hdmi_tx>; ++}; ++ ++&cecb_AO { ++ pinctrl-0 = <&cec_ao_b_h_pins>; ++ pinctrl-names = "default"; ++ status = "okay"; ++ hdmi-phandle = <&hdmi_tx>; ++}; ++ ++&clkc_audio { ++ status = "okay"; ++}; ++ ++&cpu0 { ++ cpu-supply = <&vddcpu>; ++ operating-points-v2 = <&cpu_opp_table>; ++ clocks = <&clkc CLKID_CPU_CLK>; ++ clock-latency = <50000>; ++}; ++ ++&cpu1 { ++ cpu-supply = <&vddcpu>; ++ operating-points-v2 = <&cpu_opp_table>; ++ clocks = <&clkc CLKID_CPU1_CLK>; ++ clock-latency = <50000>; ++}; ++ ++&cpu2 { ++ cpu-supply = <&vddcpu>; ++ operating-points-v2 = <&cpu_opp_table>; ++ clocks = <&clkc CLKID_CPU2_CLK>; ++ clock-latency = <50000>; ++}; ++ ++&cpu3 { ++ cpu-supply = <&vddcpu>; ++ operating-points-v2 = <&cpu_opp_table>; ++ clocks = <&clkc CLKID_CPU3_CLK>; ++ clock-latency = <50000>; ++}; ++ ++&frddr_a { ++ status = "okay"; ++}; ++ ++&frddr_b { ++ status = "okay"; ++}; ++ ++&frddr_c { ++ status = "okay"; ++}; ++ ++&hdmi_tx { ++ status = "okay"; ++ pinctrl-0 = <&hdmitx_hpd_pins>, <&hdmitx_ddc_pins>; ++ pinctrl-names = "default"; ++}; ++ ++&hdmi_tx_tmds_port { ++ hdmi_tx_tmds_out: endpoint { ++ remote-endpoint = <&hdmi_connector_in>; ++ }; ++}; ++ ++&ir { ++ status = "okay"; ++ pinctrl-0 = <&remote_input_ao_pins>; ++ pinctrl-names = "default"; ++ linux,rc-map-name = "rc-beelink-gs1"; ++}; ++ ++&pwm_AO_ab { ++ status = "okay"; ++ pinctrl-0 = <&pwm_ao_a_pins>; ++ pinctrl-names = "default"; ++ clocks = <&xtal>; ++ clock-names = "clkin0"; ++}; ++ ++&pwm_AO_cd { ++ pinctrl-0 = <&pwm_ao_d_e_pins>; ++ pinctrl-names = "default"; ++ clocks = <&xtal>; ++ clock-names = "clkin1"; ++ status = "okay"; ++}; ++ ++&pwm_ef { ++ status = "okay"; ++ pinctrl-0 = <&pwm_e_pins>; ++ pinctrl-names = "default"; ++ clocks = <&xtal>; ++ clock-names = "clkin0"; ++}; ++ ++&saradc { ++ status = "okay"; ++ vref-supply = <&vddio_ao1v8>; ++}; ++ ++&sd_emmc_a { ++ status = "okay"; ++ pinctrl-0 = <&sdio_pins>; ++ pinctrl-1 = <&sdio_clk_gate_pins>; ++ pinctrl-names = "default", "clk-gate"; ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ bus-width = <4>; ++ cap-sd-highspeed; ++ sd-uhs-sdr50; ++ max-frequency = <35000000>; ++ ++ non-removable; ++ disable-wp; ++ ++ /* WiFi firmware requires power to be kept while in suspend */ ++ keep-power-in-suspend; ++ ++ mmc-pwrseq = <&sdio_pwrseq>; ++ ++ vmmc-supply = <&vddao_3v3>; ++ vqmmc-supply = <&vddio_ao1v8>; ++}; ++ ++/* SD card */ ++&sd_emmc_b { ++ status = "okay"; ++ pinctrl-0 = <&sdcard_c_pins>; ++ pinctrl-1 = <&sdcard_clk_gate_c_pins>; ++ pinctrl-names = "default", "clk-gate"; ++ ++ bus-width = <4>; ++ cap-sd-highspeed; ++ max-frequency = <35000000>; ++ disable-wp; ++ ++ cd-gpios = <&gpio GPIOC_6 GPIO_ACTIVE_LOW>; ++ vmmc-supply = <&vddao_3v3>; ++ vqmmc-supply = <&vddao_3v3>; ++}; ++ ++/* eMMC */ ++&sd_emmc_c { ++ status = "okay"; ++ pinctrl-0 = <&emmc_ctrl_pins>, <&emmc_data_8b_pins>, <&emmc_ds_pins>; ++ pinctrl-1 = <&emmc_clk_gate_pins>; ++ pinctrl-names = "default", "clk-gate"; ++ ++ bus-width = <8>; ++ cap-mmc-highspeed; ++ mmc-ddr-1_8v; ++ mmc-hs200-1_8v; ++ max-frequency = <200000000>; ++ non-removable; ++ disable-wp; ++ ++ mmc-pwrseq = <&emmc_pwrseq>; ++ vmmc-supply = <&vddao_3v3>; ++ vqmmc-supply = <&emmc_1v8>; ++}; ++ ++&tdmif_b { ++ status = "okay"; ++}; ++ ++&tdmout_b { ++ status = "okay"; ++}; ++ ++&tohdmitx { ++ status = "okay"; ++}; ++ ++&uart_AO { ++ status = "okay"; ++ pinctrl-0 = <&uart_ao_a_pins>; ++ pinctrl-names = "default"; ++}; ++ ++&usb { ++ status = "okay"; ++ dr_mode = "otg"; ++}; ++ +diff --git a/arch/arm64/boot/dts/amlogic/meson-sm1-x96-air-100.ok.dts b/arch/arm64/boot/dts/amlogic/meson-sm1-x96-air-100.ok.dts +new file mode 100644 +index 000000000000..7899c93b9910 +--- /dev/null ++++ b/arch/arm64/boot/dts/amlogic/meson-sm1-x96-air-100.ok.dts +@@ -0,0 +1,106 @@ ++// SPDX-License-Identifier: (GPL-2.0+ OR MIT) ++/* ++ * Copyright (c) 2019 BayLibre SAS. All rights reserved. ++ * Copyright (c) 2020 Christian Hewitt ++ */ ++ ++/dts-v1/; ++ ++#include "meson-sm1-ac2xx.dtsi" ++ ++/ { ++ compatible = "amediatech,x96-air-2g", "amlogic,sm1"; ++ model = "Shenzhen Amediatech Technology Co., Ltd X96 Air"; ++ ++ aliases { ++ ethernet1 = &rtl8189ftv; ++ }; ++ ++ sound { ++ compatible = "amlogic,axg-sound-card"; ++ model = "SM1-X96-AIR"; ++ audio-aux-devs = <&tdmout_b>; ++ audio-routing = "TDMOUT_B IN 0", "FRDDR_A OUT 1", ++ "TDMOUT_B IN 1", "FRDDR_B OUT 1", ++ "TDMOUT_B IN 2", "FRDDR_C OUT 1", ++ "TDM_B Playback", "TDMOUT_B OUT"; ++ ++ assigned-clocks = <&clkc CLKID_MPLL2>, ++ <&clkc CLKID_MPLL0>, ++ <&clkc CLKID_MPLL1>; ++ assigned-clock-parents = <0>, <0>, <0>; ++ assigned-clock-rates = <294912000>, ++ <270950400>, ++ <393216000>; ++ status = "okay"; ++ ++ dai-link-0 { ++ sound-dai = <&frddr_a>; ++ }; ++ ++ dai-link-1 { ++ sound-dai = <&frddr_b>; ++ }; ++ ++ dai-link-2 { ++ sound-dai = <&frddr_c>; ++ }; ++ ++ /* 8ch hdmi interface */ ++ dai-link-3 { ++ sound-dai = <&tdmif_b>; ++ dai-format = "i2s"; ++ dai-tdm-slot-tx-mask-0 = <1 1>; ++ dai-tdm-slot-tx-mask-1 = <1 1>; ++ dai-tdm-slot-tx-mask-2 = <1 1>; ++ dai-tdm-slot-tx-mask-3 = <1 1>; ++ mclk-fs = <256>; ++ ++ codec { ++ sound-dai = <&tohdmitx TOHDMITX_I2S_IN_B>; ++ }; ++ }; ++ ++ /* hdmi glue */ ++ dai-link-4 { ++ sound-dai = <&tohdmitx TOHDMITX_I2S_OUT>; ++ ++ codec { ++ sound-dai = <&hdmi_tx>; ++ }; ++ }; ++ }; ++}; ++ ++ðmac { ++ status = "okay"; ++ phy-handle = <&internal_ephy>; ++ phy-mode = "rmii"; ++}; ++ ++&sd_emmc_a { ++ rtl8189ftv: sdio_wifi@1 { ++ reg = <1>; ++ }; ++}; ++ ++&uart_A { ++ status = "okay"; ++ pinctrl-0 = <&uart_a_pins>, <&uart_a_cts_rts_pins>; ++ pinctrl-names = "default"; ++ uart-has-rtscts; ++ ++ bluetooth { ++ compatible = "realtek,rtl8822cs-bt"; ++ interrupt-parent = <&gpio_intc>; ++ interrupts = <95 IRQ_TYPE_LEVEL_HIGH>; ++ interrupt-names = "host-wakeup"; ++ shutdown-gpios = <&gpio GPIOX_17 GPIO_ACTIVE_HIGH>; ++ max-speed = <2000000>; ++ clocks = <&wifi32k>; ++ clock-names = "lpo"; ++ vbat-supply = <&vddao_3v3>; ++ vddio-supply = <&vddio_ao1v8>; ++ }; ++}; ++ +diff --git a/drivers/net/wireless/ath/ath10k/core.c b/drivers/net/wireless/ath/ath10k/core.c +index 5935e0973d14..5e3b4d10c1a9 100644 +--- a/drivers/net/wireless/ath/ath10k/core.c ++++ b/drivers/net/wireless/ath/ath10k/core.c +@@ -89,6 +89,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = { + .rri_on_ddr = false, + .hw_filter_reset_required = true, + .fw_diag_ce_download = false, ++ .credit_size_workaround = false, + .tx_stats_over_pktlog = true, + .dynamic_sar_support = false, + }, +@@ -124,6 +125,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = { + .rri_on_ddr = false, + .hw_filter_reset_required = true, + .fw_diag_ce_download = false, ++ .credit_size_workaround = false, + .tx_stats_over_pktlog = true, + .dynamic_sar_support = false, + }, +@@ -160,6 +162,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = { + .rri_on_ddr = false, + .hw_filter_reset_required = true, + .fw_diag_ce_download = false, ++ .credit_size_workaround = false, + .tx_stats_over_pktlog = false, + .dynamic_sar_support = false, + }, +@@ -190,6 +193,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = { + .num_wds_entries = 0x20, + .uart_pin_workaround = true, + .tx_stats_over_pktlog = false, ++ .credit_size_workaround = false, + .bmi_large_size_download = true, + .supports_peer_stats_info = true, + .dynamic_sar_support = true, +@@ -226,6 +230,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = { + .rri_on_ddr = false, + .hw_filter_reset_required = true, + .fw_diag_ce_download = false, ++ .credit_size_workaround = false, + .tx_stats_over_pktlog = false, + .dynamic_sar_support = false, + }, +@@ -261,6 +266,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = { + .rri_on_ddr = false, + .hw_filter_reset_required = true, + .fw_diag_ce_download = false, ++ .credit_size_workaround = false, + .tx_stats_over_pktlog = false, + .dynamic_sar_support = false, + }, +@@ -296,6 +302,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = { + .rri_on_ddr = false, + .hw_filter_reset_required = true, + .fw_diag_ce_download = false, ++ .credit_size_workaround = false, + .tx_stats_over_pktlog = false, + .dynamic_sar_support = false, + }, +@@ -334,6 +341,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = { + .rri_on_ddr = false, + .hw_filter_reset_required = true, + .fw_diag_ce_download = true, ++ .credit_size_workaround = false, + .tx_stats_over_pktlog = false, + .supports_peer_stats_info = true, + .dynamic_sar_support = true, +@@ -376,6 +384,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = { + .rri_on_ddr = false, + .hw_filter_reset_required = true, + .fw_diag_ce_download = false, ++ .credit_size_workaround = false, + .tx_stats_over_pktlog = false, + .dynamic_sar_support = false, + }, +@@ -424,6 +433,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = { + .rri_on_ddr = false, + .hw_filter_reset_required = true, + .fw_diag_ce_download = false, ++ .credit_size_workaround = false, + .tx_stats_over_pktlog = false, + .dynamic_sar_support = false, + }, +@@ -469,6 +479,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = { + .rri_on_ddr = false, + .hw_filter_reset_required = true, + .fw_diag_ce_download = false, ++ .credit_size_workaround = false, + .tx_stats_over_pktlog = false, + .dynamic_sar_support = false, + }, +@@ -504,6 +515,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = { + .rri_on_ddr = false, + .hw_filter_reset_required = true, + .fw_diag_ce_download = false, ++ .credit_size_workaround = false, + .tx_stats_over_pktlog = false, + .dynamic_sar_support = false, + }, +@@ -541,6 +553,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = { + .rri_on_ddr = false, + .hw_filter_reset_required = true, + .fw_diag_ce_download = true, ++ .credit_size_workaround = false, + .tx_stats_over_pktlog = false, + .dynamic_sar_support = false, + }, +@@ -570,6 +583,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = { + .ast_skid_limit = 0x10, + .num_wds_entries = 0x20, + .uart_pin_workaround = true, ++ .credit_size_workaround = true, + .dynamic_sar_support = false, + }, + { +@@ -611,6 +625,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = { + .rri_on_ddr = false, + .hw_filter_reset_required = true, + .fw_diag_ce_download = false, ++ .credit_size_workaround = false, + .tx_stats_over_pktlog = false, + .dynamic_sar_support = false, + }, +@@ -639,6 +654,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = { + .rri_on_ddr = true, + .hw_filter_reset_required = false, + .fw_diag_ce_download = false, ++ .credit_size_workaround = false, + .tx_stats_over_pktlog = false, + .dynamic_sar_support = true, + }, +@@ -714,6 +730,7 @@ static void ath10k_send_suspend_complete(struct ath10k *ar) + + static int ath10k_init_sdio(struct ath10k *ar, enum ath10k_firmware_mode mode) + { ++ bool mtu_workaround = ar->hw_params.credit_size_workaround; + int ret; + u32 param = 0; + +@@ -731,7 +748,7 @@ static int ath10k_init_sdio(struct ath10k *ar, enum ath10k_firmware_mode mode) + + param |= HI_ACS_FLAGS_SDIO_REDUCE_TX_COMPL_SET; + +- if (mode == ATH10K_FIRMWARE_MODE_NORMAL) ++ if (mode == ATH10K_FIRMWARE_MODE_NORMAL && !mtu_workaround) + param |= HI_ACS_FLAGS_ALT_DATA_CREDIT_SIZE; + else + param &= ~HI_ACS_FLAGS_ALT_DATA_CREDIT_SIZE; +diff --git a/drivers/net/wireless/ath/ath10k/hw.h b/drivers/net/wireless/ath/ath10k/hw.h +index 6b03c7787e36..591ef7416b61 100644 +--- a/drivers/net/wireless/ath/ath10k/hw.h ++++ b/drivers/net/wireless/ath/ath10k/hw.h +@@ -618,6 +618,9 @@ struct ath10k_hw_params { + */ + bool uart_pin_workaround; + ++ /* Workaround for the credit size calculation */ ++ bool credit_size_workaround; ++ + /* tx stats support over pktlog */ + bool tx_stats_over_pktlog; + +-- +2.17.1 + diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0022-FROMGIT-media-v4l2-core-fix-VIDIOC_DQEVENT-handling-.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0022-FROMGIT-media-v4l2-core-fix-VIDIOC_DQEVENT-handling-.patch deleted file mode 100644 index 36cbfd8876..0000000000 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0022-FROMGIT-media-v4l2-core-fix-VIDIOC_DQEVENT-handling-.patch +++ /dev/null @@ -1,133 +0,0 @@ -From e25b25780778b016152db20e138f1944ab55fe19 Mon Sep 17 00:00:00 2001 -From: Arnd Bergmann -Date: Sun, 21 Nov 2021 19:53:25 +0000 -Subject: [PATCH 22/60] FROMGIT: media: v4l2-core: fix VIDIOC_DQEVENT handling - on non-x86 - -My previous bugfix addressed an API inconsistency found by syzbot, -and it correctly fixed the issue on x86-64 machines, which now behave -correctly for both native and compat tasks. - -Unfortunately, John found that the patch broke compat mode on all other -architectures, as they can no longer rely on the VIDIOC_DQEVENT_TIME32 -code from the native handler as a fallback in the compat code. - -The best way I can see for addressing this is to generalize the -VIDIOC_DQEVENT32_TIME32 code from x86 and use that for all architectures, -leaving only the VIDIOC_DQEVENT32 variant as x86 specific. The original -code was trying to be clever and use the same conversion helper for native -32-bit code and compat mode, but that turned out to be too obscure so -even I missed that bit I had introduced myself when I made the fix. - -Fixes: c344f07aa1b4 ("media: v4l2-core: ignore native time32 ioctls on 64-bit") -Reported-by: John Stultz -Signed-off-by: Arnd Bergmann ---- - drivers/media/v4l2-core/v4l2-compat-ioctl32.c | 41 ++++++++----------- - 1 file changed, 17 insertions(+), 24 deletions(-) - -diff --git a/drivers/media/v4l2-core/v4l2-compat-ioctl32.c b/drivers/media/v4l2-core/v4l2-compat-ioctl32.c -index 47aff3b19742..80aaf07b16f2 100644 ---- a/drivers/media/v4l2-core/v4l2-compat-ioctl32.c -+++ b/drivers/media/v4l2-core/v4l2-compat-ioctl32.c -@@ -744,10 +744,6 @@ static int put_v4l2_ext_controls32(struct v4l2_ext_controls *p64, - /* - * x86 is the only compat architecture with different struct alignment - * between 32-bit and 64-bit tasks. -- * -- * On all other architectures, v4l2_event32 and v4l2_event32_time32 are -- * the same as v4l2_event and v4l2_event_time32, so we can use the native -- * handlers, converting v4l2_event to v4l2_event_time32 if necessary. - */ - struct v4l2_event32 { - __u32 type; -@@ -765,21 +761,6 @@ struct v4l2_event32 { - __u32 reserved[8]; - }; - --#ifdef CONFIG_COMPAT_32BIT_TIME --struct v4l2_event32_time32 { -- __u32 type; -- union { -- compat_s64 value64; -- __u8 data[64]; -- } u; -- __u32 pending; -- __u32 sequence; -- struct old_timespec32 timestamp; -- __u32 id; -- __u32 reserved[8]; --}; --#endif -- - static int put_v4l2_event32(struct v4l2_event *p64, - struct v4l2_event32 __user *p32) - { -@@ -795,7 +776,22 @@ static int put_v4l2_event32(struct v4l2_event *p64, - return 0; - } - -+#endif -+ - #ifdef CONFIG_COMPAT_32BIT_TIME -+struct v4l2_event32_time32 { -+ __u32 type; -+ union { -+ compat_s64 value64; -+ __u8 data[64]; -+ } u; -+ __u32 pending; -+ __u32 sequence; -+ struct old_timespec32 timestamp; -+ __u32 id; -+ __u32 reserved[8]; -+}; -+ - static int put_v4l2_event32_time32(struct v4l2_event *p64, - struct v4l2_event32_time32 __user *p32) - { -@@ -811,7 +807,6 @@ static int put_v4l2_event32_time32(struct v4l2_event *p64, - return 0; - } - #endif --#endif - - struct v4l2_edid32 { - __u32 pad; -@@ -873,9 +868,7 @@ static int put_v4l2_edid32(struct v4l2_edid *p64, - #define VIDIOC_QUERYBUF32_TIME32 _IOWR('V', 9, struct v4l2_buffer32_time32) - #define VIDIOC_QBUF32_TIME32 _IOWR('V', 15, struct v4l2_buffer32_time32) - #define VIDIOC_DQBUF32_TIME32 _IOWR('V', 17, struct v4l2_buffer32_time32) --#ifdef CONFIG_X86_64 - #define VIDIOC_DQEVENT32_TIME32 _IOR ('V', 89, struct v4l2_event32_time32) --#endif - #define VIDIOC_PREPARE_BUF32_TIME32 _IOWR('V', 93, struct v4l2_buffer32_time32) - #endif - -@@ -929,10 +922,10 @@ unsigned int v4l2_compat_translate_cmd(unsigned int cmd) - #ifdef CONFIG_X86_64 - case VIDIOC_DQEVENT32: - return VIDIOC_DQEVENT; -+#endif - #ifdef CONFIG_COMPAT_32BIT_TIME - case VIDIOC_DQEVENT32_TIME32: - return VIDIOC_DQEVENT; --#endif - #endif - } - return cmd; -@@ -1025,10 +1018,10 @@ int v4l2_compat_put_user(void __user *arg, void *parg, unsigned int cmd) - #ifdef CONFIG_X86_64 - case VIDIOC_DQEVENT32: - return put_v4l2_event32(parg, arg); -+#endif - #ifdef CONFIG_COMPAT_32BIT_TIME - case VIDIOC_DQEVENT32_TIME32: - return put_v4l2_event32_time32(parg, arg); --#endif - #endif - } - return 0; --- -2.17.1 - diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0026-FROMLIST-RFCv1-ASoC-meson-aiu-Fix-HDMI-codec-control.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0023-FROMLIST-v1-ASoC-meson-aiu-Fix-HDMI-codec-control-se.patch similarity index 98% rename from projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0026-FROMLIST-RFCv1-ASoC-meson-aiu-Fix-HDMI-codec-control.patch rename to projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0023-FROMLIST-v1-ASoC-meson-aiu-Fix-HDMI-codec-control-se.patch index afa55d5baf..8a42b61de4 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0026-FROMLIST-RFCv1-ASoC-meson-aiu-Fix-HDMI-codec-control.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0023-FROMLIST-v1-ASoC-meson-aiu-Fix-HDMI-codec-control-se.patch @@ -1,8 +1,8 @@ -From 672fdfb31b8d41b0bc70ef8a42b917d566141fb4 Mon Sep 17 00:00:00 2001 +From 2aff51a9d669d46e2d440953cce4716bd3ec07ac Mon Sep 17 00:00:00 2001 From: Martin Blumenstingl Date: Sun, 3 Oct 2021 05:35:48 +0000 -Subject: [PATCH 26/60] FROMLIST(RFCv1): ASoC: meson: aiu: Fix HDMI codec - control selection +Subject: [PATCH 23/71] FROMLIST(v1): ASoC: meson: aiu: Fix HDMI codec control + selection The HDMI controllers on Amlogic Meson SoCs which use the AIU audio-controller have two different audio format inputs: diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0023-FROMLIST-v1-arm64-dts-meson-g12b-odroid-n2-add-5v-re.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0023-FROMLIST-v1-arm64-dts-meson-g12b-odroid-n2-add-5v-re.patch deleted file mode 100644 index 55711531ac..0000000000 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0023-FROMLIST-v1-arm64-dts-meson-g12b-odroid-n2-add-5v-re.patch +++ /dev/null @@ -1,37 +0,0 @@ -From 8625017fb7c5f6e6547f075272574125e66e2259 Mon Sep 17 00:00:00 2001 -From: Anand Moon -Date: Wed, 22 Sep 2021 05:55:57 +0000 -Subject: [PATCH 23/60] FROMLIST(v1): arm64: dts: meson-g12b-odroid-n2: add 5v - regulator gpio - -As described in the Odroid-n2 & Odroid-n2-plus schematics, -the 5V regulator is controlled by GPIOH_8 and in Open Drain -since this GPIO doesn't support Push-Pull. - -Fixes: c35f6dc5c377 ("arm64: dts: meson: Add minimal support for Odroid-N2") -Fixes: ef599f5f3e10 ("arm64: dts: meson: convert ODROID-N2 to dtsi") - -Acked-by: Neil Armstrong -Signed-off-by: Anand Moon -Signed-off-by: Neil Armstrong -Link: https://lore.kernel.org/r/20210920204739.950-1-linux.amoon@gmail.com ---- - arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi b/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi -index 4f33820aba1f..e8a00a2f8812 100644 ---- a/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi -+++ b/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi -@@ -99,6 +99,8 @@ - regulator-max-microvolt = <5000000>; - regulator-always-on; - vin-supply = <&main_12v>; -+ gpio = <&gpio GPIOH_8 GPIO_OPEN_DRAIN>; -+ enable-active-high; - }; - - vcc_1v8: regulator-vcc_1v8 { --- -2.17.1 - diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0024-FROMLIST-v1-ASoC-meson-aiu-fifo-Add-missing-dma_coer.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0024-FROMLIST-v1-ASoC-meson-aiu-fifo-Add-missing-dma_coer.patch new file mode 100644 index 0000000000..bcbb583abc --- /dev/null +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0024-FROMLIST-v1-ASoC-meson-aiu-fifo-Add-missing-dma_coer.patch @@ -0,0 +1,43 @@ +From ef16ab5f71fa35fc0ccbc1d866d456300b5b1092 Mon Sep 17 00:00:00 2001 +From: Martin Blumenstingl +Date: Sun, 5 Dec 2021 19:34:24 +0000 +Subject: [PATCH 24/71] FROMLIST(v1): ASoC: meson: aiu: fifo: Add missing + dma_coerce_mask_and_coherent() + +The FIFO registers which take an DMA-able address are only 32-bit wide +on AIU. Add dma_coerce_mask_and_coherent() to make the DMA core aware of +this limitation. + +Fixes: 6ae9ca9ce986bf ("ASoC: meson: aiu: add i2s and spdif support") +Signed-off-by: Martin Blumenstingl +--- + sound/soc/meson/aiu-fifo.c | 6 ++++++ + 1 file changed, 6 insertions(+) + +diff --git a/sound/soc/meson/aiu-fifo.c b/sound/soc/meson/aiu-fifo.c +index 4ad23267cace..d67ff4cdabd5 100644 +--- a/sound/soc/meson/aiu-fifo.c ++++ b/sound/soc/meson/aiu-fifo.c +@@ -5,6 +5,7 @@ + + #include + #include ++#include + #include + #include + #include +@@ -179,6 +180,11 @@ int aiu_fifo_pcm_new(struct snd_soc_pcm_runtime *rtd, + struct snd_card *card = rtd->card->snd_card; + struct aiu_fifo *fifo = dai->playback_dma_data; + size_t size = fifo->pcm->buffer_bytes_max; ++ int ret; ++ ++ ret = dma_coerce_mask_and_coherent(card->dev, DMA_BIT_MASK(32)); ++ if (ret) ++ return ret; + + snd_pcm_set_managed_buffer_all(rtd->pcm, SNDRV_DMA_TYPE_DEV, + card->dev, size, size); +-- +2.17.1 + diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0024-FROMLIST-v1-hwrng-meson-Improve-error-handling-for-c.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0024-FROMLIST-v1-hwrng-meson-Improve-error-handling-for-c.patch deleted file mode 100644 index c7e32dc8d4..0000000000 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0024-FROMLIST-v1-hwrng-meson-Improve-error-handling-for-c.patch +++ /dev/null @@ -1,42 +0,0 @@ -From 557ca56ff23234e2cd8fce4d3aa1c752bedded9e Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Uwe=20Kleine-K=C3=B6nig?= -Date: Mon, 20 Sep 2021 09:44:05 +0200 -Subject: [PATCH 24/60] FROMLIST(v1): hwrng: meson - Improve error handling for - core clock -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - --ENOENT (ie. "there is no clock") is fine to ignore for an optional -clock, other values are not supposed to be ignored and should be -escalated to the caller (e.g. -EPROBE_DEFER). Ignore -ENOENT by using -devm_clk_get_optional(). - -While touching this code also add an error message for the fatal errors. - -Signed-off-by: Uwe Kleine-König -Reviewed-by: Neil Armstrong ---- - drivers/char/hw_random/meson-rng.c | 5 +++-- - 1 file changed, 3 insertions(+), 2 deletions(-) - -diff --git a/drivers/char/hw_random/meson-rng.c b/drivers/char/hw_random/meson-rng.c -index e446236e81f2..8bb30282ca46 100644 ---- a/drivers/char/hw_random/meson-rng.c -+++ b/drivers/char/hw_random/meson-rng.c -@@ -54,9 +54,10 @@ static int meson_rng_probe(struct platform_device *pdev) - if (IS_ERR(data->base)) - return PTR_ERR(data->base); - -- data->core_clk = devm_clk_get(dev, "core"); -+ data->core_clk = devm_clk_get_optional(dev, "core"); - if (IS_ERR(data->core_clk)) -- data->core_clk = NULL; -+ return dev_err_probe(dev, PTR_ERR(data->core_clk), -+ "Failed to get core clock\n"); - - if (data->core_clk) { - ret = clk_prepare_enable(data->core_clk); --- -2.17.1 - diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0025-FROMLIST-v1-ASoC-meson-aiu-Move-AIU_I2S_MISC-hold-se.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0025-FROMLIST-v1-ASoC-meson-aiu-Move-AIU_I2S_MISC-hold-se.patch new file mode 100644 index 0000000000..0bb495b53e --- /dev/null +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0025-FROMLIST-v1-ASoC-meson-aiu-Move-AIU_I2S_MISC-hold-se.patch @@ -0,0 +1,139 @@ +From 9d074170f9183c0d56a6f165d06b98cc6a1a6400 Mon Sep 17 00:00:00 2001 +From: Martin Blumenstingl +Date: Sun, 5 Dec 2021 02:33:33 +0000 +Subject: [PATCH 25/71] FROMLIST(v1): ASoC: meson: aiu: Move AIU_I2S_MISC hold + setting to aiu-fifo-i2s + +The out-of-tree vendor driver uses the following approach to set the +AIU_I2S_MISC register: +1) write AIU_MEM_I2S_START_PTR and AIU_MEM_I2S_RD_PTR +2) configure AIU_I2S_MUTE_SWAP[15:0] +3) write AIU_MEM_I2S_END_PTR +4) set AIU_I2S_MISC[2] to 1 (documented as: "put I2S interface in hold + mode") +5) set AIU_I2S_MISC[4] to 1 (depending on the driver revision it always + stays at 1 while for older drivers this bit is unset in step 4) +6) set AIU_I2S_MISC[2] to 0 +7) write AIU_MEM_I2S_MASKS +8) toggle AIU_MEM_I2S_CONTROL[0] +9) toggle AIU_MEM_I2S_BUF_CNTL[0] + +Additional testing shows that when AIU_I2S_MISC[2] is set to 1 then no +interrupts are generated anymore. The way this bit is managed by the +vendor driver as well as not getting any interrupts can mean that it's +related to the FIFO and not the encoder. + +Move setting the AIU_I2S_MISC[2] bit to aiu_fifo_i2s_hw_params() so it +closer resembles the flow in the vendor kernel. While here also +configure AIU_I2S_MISC[4] (documented as: "force each audio data to +left or right according to the bit attached with the audio data") +similar to how the vendor driver does this. This fixes the infamous and +long-standing "machine gun noise" issue (a buffer underrun issue). + +Fixes: 6ae9ca9ce986bf ("ASoC: meson: aiu: add i2s and spdif support") +Reported-by: Christian Hewitt +Reported-by: Geraldo Nascimento +Signed-off-by: Martin Blumenstingl +--- + sound/soc/meson/aiu-encoder-i2s.c | 33 ------------------------------- + sound/soc/meson/aiu-fifo-i2s.c | 12 +++++++++++ + 2 files changed, 12 insertions(+), 33 deletions(-) + +diff --git a/sound/soc/meson/aiu-encoder-i2s.c b/sound/soc/meson/aiu-encoder-i2s.c +index f8378066d448..88637deb2d7a 100644 +--- a/sound/soc/meson/aiu-encoder-i2s.c ++++ b/sound/soc/meson/aiu-encoder-i2s.c +@@ -18,7 +18,6 @@ + #define AIU_RST_SOFT_I2S_FAST BIT(0) + + #define AIU_I2S_DAC_CFG_MSB_FIRST BIT(2) +-#define AIU_I2S_MISC_HOLD_EN BIT(2) + #define AIU_CLK_CTRL_I2S_DIV_EN BIT(0) + #define AIU_CLK_CTRL_I2S_DIV GENMASK(3, 2) + #define AIU_CLK_CTRL_AOCLK_INVERT BIT(6) +@@ -35,37 +34,6 @@ static void aiu_encoder_i2s_divider_enable(struct snd_soc_component *component, + enable ? AIU_CLK_CTRL_I2S_DIV_EN : 0); + } + +-static void aiu_encoder_i2s_hold(struct snd_soc_component *component, +- bool enable) +-{ +- snd_soc_component_update_bits(component, AIU_I2S_MISC, +- AIU_I2S_MISC_HOLD_EN, +- enable ? AIU_I2S_MISC_HOLD_EN : 0); +-} +- +-static int aiu_encoder_i2s_trigger(struct snd_pcm_substream *substream, int cmd, +- struct snd_soc_dai *dai) +-{ +- struct snd_soc_component *component = dai->component; +- +- switch (cmd) { +- case SNDRV_PCM_TRIGGER_START: +- case SNDRV_PCM_TRIGGER_RESUME: +- case SNDRV_PCM_TRIGGER_PAUSE_RELEASE: +- aiu_encoder_i2s_hold(component, false); +- return 0; +- +- case SNDRV_PCM_TRIGGER_STOP: +- case SNDRV_PCM_TRIGGER_SUSPEND: +- case SNDRV_PCM_TRIGGER_PAUSE_PUSH: +- aiu_encoder_i2s_hold(component, true); +- return 0; +- +- default: +- return -EINVAL; +- } +-} +- + static int aiu_encoder_i2s_setup_desc(struct snd_soc_component *component, + struct snd_pcm_hw_params *params) + { +@@ -347,7 +315,6 @@ static void aiu_encoder_i2s_shutdown(struct snd_pcm_substream *substream, + } + + const struct snd_soc_dai_ops aiu_encoder_i2s_dai_ops = { +- .trigger = aiu_encoder_i2s_trigger, + .hw_params = aiu_encoder_i2s_hw_params, + .hw_free = aiu_encoder_i2s_hw_free, + .set_fmt = aiu_encoder_i2s_set_fmt, +diff --git a/sound/soc/meson/aiu-fifo-i2s.c b/sound/soc/meson/aiu-fifo-i2s.c +index 2388a2d0b3a6..d0a1090d6465 100644 +--- a/sound/soc/meson/aiu-fifo-i2s.c ++++ b/sound/soc/meson/aiu-fifo-i2s.c +@@ -20,6 +20,8 @@ + #define AIU_MEM_I2S_CONTROL_MODE_16BIT BIT(6) + #define AIU_MEM_I2S_BUF_CNTL_INIT BIT(0) + #define AIU_RST_SOFT_I2S_FAST BIT(0) ++#define AIU_I2S_MISC_HOLD_EN BIT(2) ++#define AIU_I2S_MISC_FORCE_LEFT_RIGHT BIT(4) + + #define AIU_FIFO_I2S_BLOCK 256 + +@@ -90,6 +92,10 @@ static int aiu_fifo_i2s_hw_params(struct snd_pcm_substream *substream, + unsigned int val; + int ret; + ++ snd_soc_component_update_bits(component, AIU_I2S_MISC, ++ AIU_I2S_MISC_HOLD_EN, ++ AIU_I2S_MISC_HOLD_EN); ++ + ret = aiu_fifo_hw_params(substream, params, dai); + if (ret) + return ret; +@@ -117,6 +123,12 @@ static int aiu_fifo_i2s_hw_params(struct snd_pcm_substream *substream, + snd_soc_component_update_bits(component, AIU_MEM_I2S_MASKS, + AIU_MEM_I2S_MASKS_IRQ_BLOCK, val); + ++ snd_soc_component_update_bits(component, AIU_I2S_MISC, ++ AIU_I2S_MISC_FORCE_LEFT_RIGHT, ++ AIU_I2S_MISC_FORCE_LEFT_RIGHT); ++ snd_soc_component_update_bits(component, AIU_I2S_MISC, ++ AIU_I2S_MISC_HOLD_EN, 0); ++ + return 0; + } + +-- +2.17.1 + diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0026-FROMLIST-v1-arm64-dts-meson-make-dts-use-gpio-fan-ma.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0026-FROMLIST-v1-arm64-dts-meson-make-dts-use-gpio-fan-ma.patch new file mode 100644 index 0000000000..40d0c7dc9c --- /dev/null +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0026-FROMLIST-v1-arm64-dts-meson-make-dts-use-gpio-fan-ma.patch @@ -0,0 +1,39 @@ +From d814ae9808603b9f9c336c87e0df45f8570f2d3d Mon Sep 17 00:00:00 2001 +From: David Heidelberg +Date: Sat, 27 Nov 2021 07:23:35 +0000 +Subject: [PATCH 26/71] FROMLIST(v1): arm64: dts: meson: make dts use gpio-fan + matrix instead of array + +No functional changes. + +Adjust to comply with dt-schema requirements +and make possible to validate values. + +Signed-off-by: David Heidelberg +--- + arch/arm64/boot/dts/amlogic/meson-gxm-khadas-vim2.dts | 9 +++++---- + 1 file changed, 5 insertions(+), 4 deletions(-) + +diff --git a/arch/arm64/boot/dts/amlogic/meson-gxm-khadas-vim2.dts b/arch/arm64/boot/dts/amlogic/meson-gxm-khadas-vim2.dts +index 9c26d7489d2a..c5e3b5587135 100644 +--- a/arch/arm64/boot/dts/amlogic/meson-gxm-khadas-vim2.dts ++++ b/arch/arm64/boot/dts/amlogic/meson-gxm-khadas-vim2.dts +@@ -54,10 +54,11 @@ + gpios = <&gpio GPIODV_14 GPIO_ACTIVE_HIGH + &gpio GPIODV_15 GPIO_ACTIVE_HIGH>; + /* Dummy RPM values since fan is optional */ +- gpio-fan,speed-map = <0 0 +- 1 1 +- 2 2 +- 3 3>; ++ gpio-fan,speed-map = ++ <0 0>, ++ <1 1>, ++ <2 2>, ++ <3 3>; + #cooling-cells = <2>; + }; + +-- +2.17.1 + diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0027-FROMLIST-v1-ASoC-meson-axg-card-make-links-nonatomic.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0027-FROMLIST-v1-ASoC-meson-axg-card-make-links-nonatomic.patch deleted file mode 100644 index 995e3cdf22..0000000000 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0027-FROMLIST-v1-ASoC-meson-axg-card-make-links-nonatomic.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 30c6fc86c9027949f04928cc5e7fb2b5bfcf721a Mon Sep 17 00:00:00 2001 -From: Jerome Brunet -Date: Wed, 20 Oct 2021 20:03:05 +0000 -Subject: [PATCH 27/60] FROMLIST(v1): ASoC: meson: axg-card: make links - nonatomic - -Non atomic operations need to be performed in the trigger callback -of the TDM interfaces. Those are BEs but what matters is the nonatomic -flag of the FE in the DPCM context. Just set nonatomic for everything so, -at least, it is clear. - -Signed-off-by: Jerome Brunet ---- - sound/soc/meson/axg-card.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/sound/soc/meson/axg-card.c b/sound/soc/meson/axg-card.c -index 2b77010c2c5c..cbbaa55d92a6 100644 ---- a/sound/soc/meson/axg-card.c -+++ b/sound/soc/meson/axg-card.c -@@ -320,6 +320,7 @@ static int axg_card_add_link(struct snd_soc_card *card, struct device_node *np, - - dai_link->cpus = cpu; - dai_link->num_cpus = 1; -+ dai_link->nonatomic = true; - - ret = meson_card_parse_dai(card, np, &dai_link->cpus->of_node, - &dai_link->cpus->dai_name); --- -2.17.1 - diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0027-FROMLIST-v1-pwm-meson-Drop-always-false-check-from-..patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0027-FROMLIST-v1-pwm-meson-Drop-always-false-check-from-..patch new file mode 100644 index 0000000000..77a0ef7dec --- /dev/null +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0027-FROMLIST-v1-pwm-meson-Drop-always-false-check-from-..patch @@ -0,0 +1,44 @@ +From 6a53f5161b04f4079faafe3e2c7f07a5e806a743 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Uwe=20Kleine-K=C3=B6nig?= +Date: Sat, 27 Nov 2021 07:29:18 +0000 +Subject: [PATCH 27/71] FROMLIST(v1): pwm: meson: Drop always false check from + .request() +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +In .request() pwm_get_chip_data() returns NULL always since commit +e926b12c611c ("pwm: Clear chip_data in pwm_put()"). (And if it didn't +returning 0 would be wrong because then .request() wouldn't reenable +the clk which the other driver code depends on.) + +Signed-off-by: Uwe Kleine-König +--- + drivers/pwm/pwm-meson.c | 8 +------- + 1 file changed, 1 insertion(+), 7 deletions(-) + +diff --git a/drivers/pwm/pwm-meson.c b/drivers/pwm/pwm-meson.c +index 3cf3bcf5ddfc..be3c806b57e4 100644 +--- a/drivers/pwm/pwm-meson.c ++++ b/drivers/pwm/pwm-meson.c +@@ -120,16 +120,10 @@ static inline struct meson_pwm *to_meson_pwm(struct pwm_chip *chip) + static int meson_pwm_request(struct pwm_chip *chip, struct pwm_device *pwm) + { + struct meson_pwm *meson = to_meson_pwm(chip); +- struct meson_pwm_channel *channel; ++ struct meson_pwm_channel *channel = &meson->channels[pwm->hwpwm]; + struct device *dev = chip->dev; + int err; + +- channel = pwm_get_chip_data(pwm); +- if (channel) +- return 0; +- +- channel = &meson->channels[pwm->hwpwm]; +- + if (channel->clk_parent) { + err = clk_set_parent(channel->clk, channel->clk_parent); + if (err < 0) { +-- +2.17.1 + diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0028-FROMLIST-v1-ASoC-meson-axg-tdm-interface-manage-form.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0028-FROMLIST-v1-ASoC-meson-axg-tdm-interface-manage-form.patch deleted file mode 100644 index a960fd0d26..0000000000 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0028-FROMLIST-v1-ASoC-meson-axg-tdm-interface-manage-form.patch +++ /dev/null @@ -1,77 +0,0 @@ -From 17c65fae4e17678468e7eb0c6107914adad7852f Mon Sep 17 00:00:00 2001 -From: Jerome Brunet -Date: Wed, 20 Oct 2021 20:03:57 +0000 -Subject: [PATCH 28/60] FROMLIST(v1): ASoC: meson: axg-tdm-interface: manage - formatters in trigger - -So far, the formatters have been reset/enabled using the .prepare() -callback. This was done in this callback because walking the formatters use -a mutex so it could not be done in .trigger(), which is atomic by default. - -It turns out there is a problem on capture path of the AXG series. -The FIFO may get out of sync with the TDM decoder if the IP are not enabled -in a specific order. The FIFO must be enabled before the formatter starts -producing data. IOW, we must deal with FE before the BE. The .prepare() -callback is called on the BEs before the FE so it is not OK for the AXG. - -The .trigger() callback order can be configured, and it deals with the FE -before the BEs by default. To solve our problem, we just need to start and -stop the formatters from the .trigger() callback. It is OK do so now that -the links have been made 'nonatomic' in the card driver. - -Signed-off-by: Jerome Brunet ---- - sound/soc/meson/axg-tdm-interface.c | 26 +++++++++++++++++++++----- - 1 file changed, 21 insertions(+), 5 deletions(-) - -diff --git a/sound/soc/meson/axg-tdm-interface.c b/sound/soc/meson/axg-tdm-interface.c -index 87cac440b369..db077773af7a 100644 ---- a/sound/soc/meson/axg-tdm-interface.c -+++ b/sound/soc/meson/axg-tdm-interface.c -@@ -351,13 +351,29 @@ static int axg_tdm_iface_hw_free(struct snd_pcm_substream *substream, - return 0; - } - --static int axg_tdm_iface_prepare(struct snd_pcm_substream *substream, -+static int axg_tdm_iface_trigger(struct snd_pcm_substream *substream, -+ int cmd, - struct snd_soc_dai *dai) - { -- struct axg_tdm_stream *ts = snd_soc_dai_get_dma_data(dai, substream); -+ struct axg_tdm_stream *ts = -+ snd_soc_dai_get_dma_data(dai, substream); -+ -+ switch (cmd) { -+ case SNDRV_PCM_TRIGGER_START: -+ case SNDRV_PCM_TRIGGER_RESUME: -+ case SNDRV_PCM_TRIGGER_PAUSE_RELEASE: -+ axg_tdm_stream_start(ts); -+ break; -+ case SNDRV_PCM_TRIGGER_SUSPEND: -+ case SNDRV_PCM_TRIGGER_PAUSE_PUSH: -+ case SNDRV_PCM_TRIGGER_STOP: -+ axg_tdm_stream_stop(ts); -+ break; -+ default: -+ return -EINVAL; -+ } - -- /* Force all attached formatters to update */ -- return axg_tdm_stream_reset(ts); -+ return 0; - } - - static int axg_tdm_iface_remove_dai(struct snd_soc_dai *dai) -@@ -397,8 +413,8 @@ static const struct snd_soc_dai_ops axg_tdm_iface_ops = { - .set_fmt = axg_tdm_iface_set_fmt, - .startup = axg_tdm_iface_startup, - .hw_params = axg_tdm_iface_hw_params, -- .prepare = axg_tdm_iface_prepare, - .hw_free = axg_tdm_iface_hw_free, -+ .trigger = axg_tdm_iface_trigger, - }; - - /* TDM Backend DAIs */ --- -2.17.1 - diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0028-FROMLIST-v1-pwm-meson-Drop-useless-check-for-channel.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0028-FROMLIST-v1-pwm-meson-Drop-useless-check-for-channel.patch new file mode 100644 index 0000000000..280d99455f --- /dev/null +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0028-FROMLIST-v1-pwm-meson-Drop-useless-check-for-channel.patch @@ -0,0 +1,35 @@ +From 3264849b3829771aa04104a99e6cf901a4ee8053 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Uwe=20Kleine-K=C3=B6nig?= +Date: Sat, 27 Nov 2021 07:30:03 +0000 +Subject: [PATCH 28/71] FROMLIST(v1): pwm: meson: Drop useless check for + channel data being NULL +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +In meson_pwm_free() the function pwm_get_chip_data() always returns a +non-NULL pointer because it's only called when the request callback +succeeded and this callback calls pwm_set_chip_data() in this case. + +Signed-off-by: Uwe Kleine-König +--- + drivers/pwm/pwm-meson.c | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +diff --git a/drivers/pwm/pwm-meson.c b/drivers/pwm/pwm-meson.c +index be3c806b57e4..1fbe54a2abfe 100644 +--- a/drivers/pwm/pwm-meson.c ++++ b/drivers/pwm/pwm-meson.c +@@ -148,8 +148,7 @@ static void meson_pwm_free(struct pwm_chip *chip, struct pwm_device *pwm) + { + struct meson_pwm_channel *channel = pwm_get_chip_data(pwm); + +- if (channel) +- clk_disable_unprepare(channel->clk); ++ clk_disable_unprepare(channel->clk); + } + + static int meson_pwm_calc(struct meson_pwm *meson, struct pwm_device *pwm, +-- +2.17.1 + diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0029-FROMLIST-v1-pwm-meson-Simplify-duplicated-per-channe.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0029-FROMLIST-v1-pwm-meson-Simplify-duplicated-per-channe.patch new file mode 100644 index 0000000000..f3e2001284 --- /dev/null +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0029-FROMLIST-v1-pwm-meson-Simplify-duplicated-per-channe.patch @@ -0,0 +1,70 @@ +From c796aad314bc6363997e02e15c3430e5f586d4bf Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Uwe=20Kleine-K=C3=B6nig?= +Date: Sat, 27 Nov 2021 07:31:03 +0000 +Subject: [PATCH 29/71] FROMLIST(v1): pwm: meson: Simplify duplicated + per-channel tracking +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +The driver tracks per-channel data via struct pwm_device::chip_data and +struct meson_pwm::channels[]. The latter holds the actual data, the former +is only a pointer to the latter. So simplify by using struct +meson_pwm::channels[] consistently. + +Signed-off-by: Uwe Kleine-König +--- + drivers/pwm/pwm-meson.c | 11 ++++++----- + 1 file changed, 6 insertions(+), 5 deletions(-) + +diff --git a/drivers/pwm/pwm-meson.c b/drivers/pwm/pwm-meson.c +index 1fbe54a2abfe..908e314c7c00 100644 +--- a/drivers/pwm/pwm-meson.c ++++ b/drivers/pwm/pwm-meson.c +@@ -141,12 +141,13 @@ static int meson_pwm_request(struct pwm_chip *chip, struct pwm_device *pwm) + return err; + } + +- return pwm_set_chip_data(pwm, channel); ++ return 0; + } + + static void meson_pwm_free(struct pwm_chip *chip, struct pwm_device *pwm) + { +- struct meson_pwm_channel *channel = pwm_get_chip_data(pwm); ++ struct meson_pwm *meson = to_meson_pwm(chip); ++ struct meson_pwm_channel *channel = &meson->channels[pwm->hwpwm]; + + clk_disable_unprepare(channel->clk); + } +@@ -154,7 +155,7 @@ static void meson_pwm_free(struct pwm_chip *chip, struct pwm_device *pwm) + static int meson_pwm_calc(struct meson_pwm *meson, struct pwm_device *pwm, + const struct pwm_state *state) + { +- struct meson_pwm_channel *channel = pwm_get_chip_data(pwm); ++ struct meson_pwm_channel *channel = &meson->channels[pwm->hwpwm]; + unsigned int duty, period, pre_div, cnt, duty_cnt; + unsigned long fin_freq; + +@@ -217,7 +218,7 @@ static int meson_pwm_calc(struct meson_pwm *meson, struct pwm_device *pwm, + + static void meson_pwm_enable(struct meson_pwm *meson, struct pwm_device *pwm) + { +- struct meson_pwm_channel *channel = pwm_get_chip_data(pwm); ++ struct meson_pwm_channel *channel = &meson->channels[pwm->hwpwm]; + struct meson_pwm_channel_data *channel_data; + unsigned long flags; + u32 value; +@@ -260,8 +261,8 @@ static void meson_pwm_disable(struct meson_pwm *meson, struct pwm_device *pwm) + static int meson_pwm_apply(struct pwm_chip *chip, struct pwm_device *pwm, + const struct pwm_state *state) + { +- struct meson_pwm_channel *channel = pwm_get_chip_data(pwm); + struct meson_pwm *meson = to_meson_pwm(chip); ++ struct meson_pwm_channel *channel = &meson->channels[pwm->hwpwm]; + int err = 0; + + if (!state) +-- +2.17.1 + diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0030-FROMLIST-v1-pwm-meson-Drop-always-false-check-from-..patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0030-FROMLIST-v1-pwm-meson-Drop-always-false-check-from-..patch new file mode 100644 index 0000000000..9b9e5d1576 --- /dev/null +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0030-FROMLIST-v1-pwm-meson-Drop-always-false-check-from-..patch @@ -0,0 +1,34 @@ +From 84006909a914eb189bcff27e5566f78affd7da46 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Uwe=20Kleine-K=C3=B6nig?= +Date: Sat, 27 Nov 2021 07:32:18 +0000 +Subject: [PATCH 30/71] FROMLIST(v1): pwm: meson: Drop always false check from + .apply() +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +The pwm core only calls the apply callback with a valid state pointer, +so don't repeat this check already done in the core. + +Signed-off-by: Uwe Kleine-König +--- + drivers/pwm/pwm-meson.c | 3 --- + 1 file changed, 3 deletions(-) + +diff --git a/drivers/pwm/pwm-meson.c b/drivers/pwm/pwm-meson.c +index 908e314c7c00..57112f438c6d 100644 +--- a/drivers/pwm/pwm-meson.c ++++ b/drivers/pwm/pwm-meson.c +@@ -265,9 +265,6 @@ static int meson_pwm_apply(struct pwm_chip *chip, struct pwm_device *pwm, + struct meson_pwm_channel *channel = &meson->channels[pwm->hwpwm]; + int err = 0; + +- if (!state) +- return -EINVAL; +- + if (!state->enabled) { + if (state->polarity == PWM_POLARITY_INVERSED) { + /* +-- +2.17.1 + diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0031-FROMLIST-v1-drm-connector-Add-define-for-HDMI-1.4-Ma.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0031-FROMLIST-v1-drm-connector-Add-define-for-HDMI-1.4-Ma.patch new file mode 100644 index 0000000000..e75cd2f944 --- /dev/null +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0031-FROMLIST-v1-drm-connector-Add-define-for-HDMI-1.4-Ma.patch @@ -0,0 +1,93 @@ +From b44918f1bf3acbd64c4a25f033350a17740551e1 Mon Sep 17 00:00:00 2001 +From: Maxime Ripard +Date: Sat, 27 Nov 2021 07:26:47 +0000 +Subject: [PATCH 31/71] FROMLIST(v1): drm/connector: Add define for HDMI 1.4 + Maximum Pixel Rate + +A lot of drivers open-code the HDMI 1.4 maximum pixel rate in their +driver to test whether the resolutions are supported or if the +scrambling needs to be enabled. + +Let's create a common define for everyone to use it. + +Signed-off-by: Maxime Ripard +--- + drivers/gpu/drm/bridge/synopsys/dw-hdmi.c | 4 ++-- + drivers/gpu/drm/drm_edid.c | 2 +- + drivers/gpu/drm/meson/meson_dw_hdmi.c | 4 ++-- + include/drm/drm_connector.h | 2 ++ + 4 files changed, 7 insertions(+), 5 deletions(-) + +diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c +index f08d0fded61f..2081f1e443ae 100644 +--- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c ++++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c +@@ -46,7 +46,7 @@ + /* DW-HDMI Controller >= 0x200a are at least compliant with SCDC version 1 */ + #define SCDC_MIN_SOURCE_VERSION 0x1 + +-#define HDMI14_MAX_TMDSCLK 340000000 ++#define HDMI14_MAX_TMDSCLK (DRM_HDMI_14_MAX_TMDS_CLK_KHZ * 1000) + + enum hdmi_datamap { + RGB444_8B = 0x01, +@@ -1264,7 +1264,7 @@ static bool dw_hdmi_support_scdc(struct dw_hdmi *hdmi, + * for low rates is not supported either + */ + if (!display->hdmi.scdc.scrambling.low_rates && +- display->max_tmds_clock <= 340000) ++ display->max_tmds_clock <= DRM_HDMI_14_MAX_TMDS_CLK_KHZ) + return false; + + return true; +diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c +index 12893e7be89b..4d3473b2f72f 100644 +--- a/drivers/gpu/drm/drm_edid.c ++++ b/drivers/gpu/drm/drm_edid.c +@@ -4975,7 +4975,7 @@ static void drm_parse_hdmi_forum_vsdb(struct drm_connector *connector, + u32 max_tmds_clock = hf_vsdb[5] * 5000; + struct drm_scdc *scdc = &hdmi->scdc; + +- if (max_tmds_clock > 340000) { ++ if (max_tmds_clock > DRM_HDMI_14_MAX_TMDS_CLK_KHZ) { + display->max_tmds_clock = max_tmds_clock; + DRM_DEBUG_KMS("HF-VSDB: max TMDS clock %d kHz\n", + display->max_tmds_clock); +diff --git a/drivers/gpu/drm/meson/meson_dw_hdmi.c b/drivers/gpu/drm/meson/meson_dw_hdmi.c +index 0afbd1e70bfc..8078667aea0e 100644 +--- a/drivers/gpu/drm/meson/meson_dw_hdmi.c ++++ b/drivers/gpu/drm/meson/meson_dw_hdmi.c +@@ -434,7 +434,7 @@ static int dw_hdmi_phy_init(struct dw_hdmi *hdmi, void *data, + readl_relaxed(priv->io_base + _REG(VPU_HDMI_SETTING)); + + DRM_DEBUG_DRIVER("\"%s\" div%d\n", mode->name, +- mode->clock > 340000 ? 40 : 10); ++ mode->clock > DRM_HDMI_14_MAX_TMDS_CLK_KHZ ? 40 : 10); + + /* Enable clocks */ + regmap_update_bits(priv->hhi, HHI_HDMI_CLK_CNTL, 0xffff, 0x100); +@@ -457,7 +457,7 @@ static int dw_hdmi_phy_init(struct dw_hdmi *hdmi, void *data, + dw_hdmi->data->top_write(dw_hdmi, HDMITX_TOP_BIST_CNTL, BIT(12)); + + /* TMDS pattern setup */ +- if (mode->clock > 340000 && ++ if (mode->clock > DRM_HDMI_14_MAX_TMDS_CLK_KHZ && + dw_hdmi->output_bus_fmt == MEDIA_BUS_FMT_YUV8_1X24) { + dw_hdmi->data->top_write(dw_hdmi, HDMITX_TOP_TMDS_CLK_PTTN_01, + 0); +diff --git a/include/drm/drm_connector.h b/include/drm/drm_connector.h +index 379746d3266f..09f462d3e8fa 100644 +--- a/include/drm/drm_connector.h ++++ b/include/drm/drm_connector.h +@@ -258,6 +258,8 @@ struct drm_hdmi_info { + struct drm_hdmi_dsc_cap dsc_cap; + }; + ++#define DRM_HDMI_14_MAX_TMDS_CLK_KHZ (340 * 1000) ++ + /** + * enum drm_link_status - connector's link_status property value + * +-- +2.17.1 + diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0032-FROMLIST-v1-watchdog-meson_gxbb_wdt-remove-watchdog_.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0032-FROMLIST-v1-watchdog-meson_gxbb_wdt-remove-watchdog_.patch new file mode 100644 index 0000000000..5e5325455a --- /dev/null +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0032-FROMLIST-v1-watchdog-meson_gxbb_wdt-remove-watchdog_.patch @@ -0,0 +1,36 @@ +From cf3c77bd72ec22e3aff26d3ee8e8ad52ba54e733 Mon Sep 17 00:00:00 2001 +From: Artem Lapkin +Date: Sat, 27 Nov 2021 07:36:59 +0000 +Subject: [PATCH 32/71] FROMLIST(v1): watchdog: meson_gxbb_wdt: remove + watchdog_stop_on_reboot() + +The Meson platform still has some hardware drivers problems for some +configurations which can freeze devices on shutdown/reboot. + +Remove watchdog_stop_on_reboot() to catch this situation and ensure that +the reboot happens anyway. Users who still want to stop the watchdog on +reboot can still do so using the watchdog.stop_on_reboot=1 module +parameter. + +https://lore.kernel.org/linux-watchdog/20210729072308.1908904-1-art@khadas.com/T/#t + +Signed-off-by: Artem Lapkin +--- + drivers/watchdog/meson_gxbb_wdt.c | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/drivers/watchdog/meson_gxbb_wdt.c b/drivers/watchdog/meson_gxbb_wdt.c +index 945f5e65db57..d3c9e2f6e63b 100644 +--- a/drivers/watchdog/meson_gxbb_wdt.c ++++ b/drivers/watchdog/meson_gxbb_wdt.c +@@ -198,7 +198,6 @@ static int meson_gxbb_wdt_probe(struct platform_device *pdev) + + meson_gxbb_wdt_set_timeout(&data->wdt_dev, data->wdt_dev.timeout); + +- watchdog_stop_on_reboot(&data->wdt_dev); + return devm_watchdog_register_device(dev, &data->wdt_dev); + } + +-- +2.17.1 + diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0046-arm64-dts-meson-add-common-SM1-ac2xx-dtsi.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0033-FROMLIST-v1-arm64-dts-meson-add-common-SM1-ac2xx-dts.patch similarity index 89% rename from projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0046-arm64-dts-meson-add-common-SM1-ac2xx-dtsi.patch rename to projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0033-FROMLIST-v1-arm64-dts-meson-add-common-SM1-ac2xx-dts.patch index c6d0a6311b..e243826512 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0046-arm64-dts-meson-add-common-SM1-ac2xx-dtsi.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0033-FROMLIST-v1-arm64-dts-meson-add-common-SM1-ac2xx-dts.patch @@ -1,7 +1,8 @@ -From 00c422fab52c36c4a76ba4f480d887960191db6a Mon Sep 17 00:00:00 2001 +From 53e48359e0382879afa5c4b0d63e389779e12e83 Mon Sep 17 00:00:00 2001 From: Christian Hewitt Date: Wed, 24 Jun 2020 12:41:46 +0000 -Subject: [PATCH 46/60] arm64: dts: meson: add common SM1 ac2xx dtsi +Subject: [PATCH 33/71] FROMLIST(v1): arm64: dts: meson: add common SM1 ac2xx + dtsi Add a common dtsi for Android STB devices based on the Amlogic S905X3 (AC213/AC214) and S905D3 (AC201/AC202) reference designs. The dtsi is @@ -9,24 +10,10 @@ loosely based on the existing SEI610 device-tree. Signed-off-by: Christian Hewitt --- - .../devicetree/bindings/arm/amlogic.yaml | 2 + .../boot/dts/amlogic/meson-sm1-ac2xx.dtsi | 300 ++++++++++++++++++ - 2 files changed, 302 insertions(+) + 1 file changed, 300 insertions(+) create mode 100644 arch/arm64/boot/dts/amlogic/meson-sm1-ac2xx.dtsi -diff --git a/Documentation/devicetree/bindings/arm/amlogic.yaml b/Documentation/devicetree/bindings/arm/amlogic.yaml -index 67dccdd9a5a4..61aebbb3090e 100644 ---- a/Documentation/devicetree/bindings/arm/amlogic.yaml -+++ b/Documentation/devicetree/bindings/arm/amlogic.yaml -@@ -168,6 +168,8 @@ properties: - - description: Boards with the Amlogic Meson SM1 S905X3/D3/Y3 SoC - items: - - enum: -+ - amediatech,x96-air-100 -+ - amediatech,x96-air-1000 - - bananapi,bpi-m5 - - hardkernel,odroid-c4 - - hardkernel,odroid-hc4 diff --git a/arch/arm64/boot/dts/amlogic/meson-sm1-ac2xx.dtsi b/arch/arm64/boot/dts/amlogic/meson-sm1-ac2xx.dtsi new file mode 100644 index 000000000000..46a34731f7e2 diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0034-FROMLIST-v1-dt-bindings-arm-amlogic-add-X96-AIR-bind.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0034-FROMLIST-v1-dt-bindings-arm-amlogic-add-X96-AIR-bind.patch new file mode 100644 index 0000000000..c077d6c450 --- /dev/null +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0034-FROMLIST-v1-dt-bindings-arm-amlogic-add-X96-AIR-bind.patch @@ -0,0 +1,32 @@ +From 70f1885edac68b9b87c7a84939d55736f97d630d Mon Sep 17 00:00:00 2001 +From: Christian Hewitt +Date: Mon, 18 May 2020 23:23:40 +0000 +Subject: [PATCH 34/71] FROMLIST(v1): dt-bindings: arm: amlogic: add X96-AIR + bindings + +Add board bindings for the Amediatech X96-AIR STB which ships with +model variants distiguished by Ethernet configuration: models using +internal 10/100 PHY have a -100 suffix, while models using external +Gigabit PHY have a -1000 suffix. + +Signed-off-by: Christian Hewitt +--- + Documentation/devicetree/bindings/arm/amlogic.yaml | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/Documentation/devicetree/bindings/arm/amlogic.yaml b/Documentation/devicetree/bindings/arm/amlogic.yaml +index 36081734f720..e9ab0ffe8be7 100644 +--- a/Documentation/devicetree/bindings/arm/amlogic.yaml ++++ b/Documentation/devicetree/bindings/arm/amlogic.yaml +@@ -170,6 +170,8 @@ properties: + - description: Boards with the Amlogic Meson SM1 S905X3/D3/Y3 SoC + items: + - enum: ++ - amediatech,x96-air-100 ++ - amediatech,x96-air-1000 + - bananapi,bpi-m5 + - hardkernel,odroid-c4 + - hardkernel,odroid-hc4 +-- +2.17.1 + diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0047-arm64-dts-meson-add-initial-device-trees-for-X96-AIR.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0035-FROMLIST-v1-arm64-dts-meson-add-initial-device-trees.patch similarity index 86% rename from projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0047-arm64-dts-meson-add-initial-device-trees-for-X96-AIR.patch rename to projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0035-FROMLIST-v1-arm64-dts-meson-add-initial-device-trees.patch index 0e4ea457c7..20a5b93159 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0047-arm64-dts-meson-add-initial-device-trees-for-X96-AIR.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0035-FROMLIST-v1-arm64-dts-meson-add-initial-device-trees.patch @@ -1,7 +1,8 @@ -From 2efcc5d41cecfba052a80c8645e17bebd6bb849e Mon Sep 17 00:00:00 2001 +From 8fd19097221a773829b88f77ed1a9b0c3ee15cbb Mon Sep 17 00:00:00 2001 From: Christian Hewitt Date: Wed, 24 Jun 2020 15:04:10 +0000 -Subject: [PATCH 47/60] arm64: dts: meson: add initial device-trees for X96-AIR +Subject: [PATCH 35/71] FROMLIST(v1): arm64: dts: meson: add initial + device-trees for X96-AIR MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -29,32 +30,18 @@ and with -1000 suffix supports models with Gigabit Ethernet. Signed-off-by: Christian Hewitt --- - .../devicetree/bindings/arm/amlogic.yaml | 2 + arch/arm64/boot/dts/amlogic/Makefile | 2 + .../dts/amlogic/meson-sm1-x96-air-100.dts | 112 +++++++++++++++ .../dts/amlogic/meson-sm1-x96-air-1000.dts | 133 ++++++++++++++++++ - 4 files changed, 249 insertions(+) + 3 files changed, 247 insertions(+) create mode 100644 arch/arm64/boot/dts/amlogic/meson-sm1-x96-air-100.dts create mode 100644 arch/arm64/boot/dts/amlogic/meson-sm1-x96-air-1000.dts -diff --git a/Documentation/devicetree/bindings/arm/amlogic.yaml b/Documentation/devicetree/bindings/arm/amlogic.yaml -index 61aebbb3090e..172ed028e686 100644 ---- a/Documentation/devicetree/bindings/arm/amlogic.yaml -+++ b/Documentation/devicetree/bindings/arm/amlogic.yaml -@@ -171,6 +171,8 @@ properties: - - amediatech,x96-air-100 - - amediatech,x96-air-1000 - - bananapi,bpi-m5 -+ - cyx,a95xf3-air-100 -+ - cyx,a95xf3-air-1000 - - hardkernel,odroid-c4 - - hardkernel,odroid-hc4 - - khadas,vim3l diff --git a/arch/arm64/boot/dts/amlogic/Makefile b/arch/arm64/boot/dts/amlogic/Makefile -index be308361e2f1..69f7d5fd29ea 100644 +index 5148cd9e5146..a0c1a7fbae57 100644 --- a/arch/arm64/boot/dts/amlogic/Makefile +++ b/arch/arm64/boot/dts/amlogic/Makefile -@@ -54,4 +54,6 @@ dtb-$(CONFIG_ARCH_MESON) += meson-sm1-khadas-vim3l.dtb +@@ -56,4 +56,6 @@ dtb-$(CONFIG_ARCH_MESON) += meson-sm1-khadas-vim3l.dtb dtb-$(CONFIG_ARCH_MESON) += meson-sm1-odroid-c4.dtb dtb-$(CONFIG_ARCH_MESON) += meson-sm1-odroid-hc4.dtb dtb-$(CONFIG_ARCH_MESON) += meson-sm1-sei610.dtb @@ -63,7 +50,7 @@ index be308361e2f1..69f7d5fd29ea 100644 dtb-$(CONFIG_ARCH_MESON) += meson-a1-ad401.dtb diff --git a/arch/arm64/boot/dts/amlogic/meson-sm1-x96-air-100.dts b/arch/arm64/boot/dts/amlogic/meson-sm1-x96-air-100.dts new file mode 100644 -index 000000000000..54a765c1948b +index 000000000000..d9e5bc98a46a --- /dev/null +++ b/arch/arm64/boot/dts/amlogic/meson-sm1-x96-air-100.dts @@ -0,0 +1,112 @@ @@ -147,9 +134,9 @@ index 000000000000..54a765c1948b +}; + +ðmac { -+ status = "okay"; -+ phy-handle = <&internal_ephy>; -+ phy-mode = "rmii"; ++ status = "okay"; ++ phy-handle = <&internal_ephy>; ++ phy-mode = "rmii"; +}; + +&frddr_a { diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0036-FROMLIST-v1-dt-bindings-vendor-prefixes-add-cyx-pref.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0036-FROMLIST-v1-dt-bindings-vendor-prefixes-add-cyx-pref.patch new file mode 100644 index 0000000000..464ee3a7b9 --- /dev/null +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0036-FROMLIST-v1-dt-bindings-vendor-prefixes-add-cyx-pref.patch @@ -0,0 +1,30 @@ +From 2ca8292f3d20489223bed83d3bc16b5e76cfd9cd Mon Sep 17 00:00:00 2001 +From: Christian Hewitt +Date: Tue, 30 Nov 2021 05:00:45 +0000 +Subject: [PATCH 36/71] FROMLIST(v1): dt-bindings: vendor-prefixes: add cyx + prefix + +Shenzhen CYX Industrial Co., Ltd are a manufacturer of Android +Set-Top Box devices. + +Signed-off-by: Christian Hewitt +--- + Documentation/devicetree/bindings/vendor-prefixes.yaml | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/Documentation/devicetree/bindings/vendor-prefixes.yaml b/Documentation/devicetree/bindings/vendor-prefixes.yaml +index 66d6432fd781..f1b4afb2876a 100644 +--- a/Documentation/devicetree/bindings/vendor-prefixes.yaml ++++ b/Documentation/devicetree/bindings/vendor-prefixes.yaml +@@ -279,6 +279,8 @@ patternProperties: + description: CUI Devices + "^cypress,.*": + description: Cypress Semiconductor Corporation ++ "^cyx,.*": ++ description: Shenzhen CYX Industrial Co., Ltd + "^cznic,.*": + description: CZ.NIC, z.s.p.o. + "^dallas,.*": +-- +2.17.1 + diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0037-FROMLIST-v1-dt-bindings-arm-amlogic-add-A95XF3-AIR-b.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0037-FROMLIST-v1-dt-bindings-arm-amlogic-add-A95XF3-AIR-b.patch new file mode 100644 index 0000000000..49325a066a --- /dev/null +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0037-FROMLIST-v1-dt-bindings-arm-amlogic-add-A95XF3-AIR-b.patch @@ -0,0 +1,32 @@ +From 281384b1d2535b236a093d115bdf8361a419880f Mon Sep 17 00:00:00 2001 +From: Christian Hewitt +Date: Mon, 29 Jun 2020 15:54:45 +0000 +Subject: [PATCH 37/71] FROMLIST(v1): dt-bindings: arm: amlogic: add A95XF3-AIR + bindings + +Add board bindings for the CYX A95XF3-AIR set-top box which ships +with model variants distiguished by Ethernet configuration: models +using internal 10/100 PHY have a -100 suffix, while models using +external Gigabit PHY have a -1000 suffix. + +Signed-off-by: Christian Hewitt +--- + Documentation/devicetree/bindings/arm/amlogic.yaml | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/Documentation/devicetree/bindings/arm/amlogic.yaml b/Documentation/devicetree/bindings/arm/amlogic.yaml +index e9ab0ffe8be7..1dc793eb35f4 100644 +--- a/Documentation/devicetree/bindings/arm/amlogic.yaml ++++ b/Documentation/devicetree/bindings/arm/amlogic.yaml +@@ -173,6 +173,8 @@ properties: + - amediatech,x96-air-100 + - amediatech,x96-air-1000 + - bananapi,bpi-m5 ++ - cyx,a95xf3-air-100 ++ - cyx,a95xf3-air-1000 + - hardkernel,odroid-c4 + - hardkernel,odroid-hc4 + - khadas,vim3l +-- +2.17.1 + diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0048-arm64-dts-meson-add-initial-device-trees-for-A95XF3-.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0038-FROMLIST-v1-arm64-dts-meson-add-initial-device-trees.patch similarity index 94% rename from projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0048-arm64-dts-meson-add-initial-device-trees-for-A95XF3-.patch rename to projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0038-FROMLIST-v1-arm64-dts-meson-add-initial-device-trees.patch index 64dc047fca..1e2b898502 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0048-arm64-dts-meson-add-initial-device-trees-for-A95XF3-.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0038-FROMLIST-v1-arm64-dts-meson-add-initial-device-trees.patch @@ -1,8 +1,8 @@ -From 3c5414373037e6ecdafe87fecb97e2b083517f63 Mon Sep 17 00:00:00 2001 +From 5a8f5aa9f84d506c7b4174bc606c6ca4ee3a6904 Mon Sep 17 00:00:00 2001 From: Christian Hewitt Date: Wed, 3 Jun 2020 18:03:22 +0000 -Subject: [PATCH 48/60] arm64: dts: meson: add initial device-trees for - A95XF3-AIR +Subject: [PATCH 38/71] FROMLIST(v1): arm64: dts: meson: add initial + device-trees for A95XF3-AIR MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -38,10 +38,10 @@ Signed-off-by: Christian Hewitt create mode 100644 arch/arm64/boot/dts/amlogic/meson-sm1-a95xf3-air-1000.dts diff --git a/arch/arm64/boot/dts/amlogic/Makefile b/arch/arm64/boot/dts/amlogic/Makefile -index 69f7d5fd29ea..111425d59da0 100644 +index a0c1a7fbae57..e198d17f2ea8 100644 --- a/arch/arm64/boot/dts/amlogic/Makefile +++ b/arch/arm64/boot/dts/amlogic/Makefile -@@ -49,6 +49,8 @@ dtb-$(CONFIG_ARCH_MESON) += meson-gxm-rbox-pro.dtb +@@ -51,6 +51,8 @@ dtb-$(CONFIG_ARCH_MESON) += meson-gxm-rbox-pro.dtb dtb-$(CONFIG_ARCH_MESON) += meson-gxm-s912-libretech-pc.dtb dtb-$(CONFIG_ARCH_MESON) += meson-gxm-vega-s96.dtb dtb-$(CONFIG_ARCH_MESON) += meson-gxm-wetek-core2.dtb @@ -52,7 +52,7 @@ index 69f7d5fd29ea..111425d59da0 100644 dtb-$(CONFIG_ARCH_MESON) += meson-sm1-odroid-c4.dtb diff --git a/arch/arm64/boot/dts/amlogic/meson-sm1-a95xf3-air-100.dts b/arch/arm64/boot/dts/amlogic/meson-sm1-a95xf3-air-100.dts new file mode 100644 -index 000000000000..1d3820c4a2f5 +index 000000000000..5158cc40485e --- /dev/null +++ b/arch/arm64/boot/dts/amlogic/meson-sm1-a95xf3-air-100.dts @@ -0,0 +1,108 @@ @@ -136,9 +136,9 @@ index 000000000000..1d3820c4a2f5 +}; + +ðmac { -+ status = "okay"; -+ phy-handle = <&internal_ephy>; -+ phy-mode = "rmii"; ++ status = "okay"; ++ phy-handle = <&internal_ephy>; ++ phy-mode = "rmii"; +}; + +&frddr_a { diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0049-dt-bindings-vendor-prefixes-add-haochuangyi-prefix.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0039-FROMLIST-v1-dt-bindings-vendor-prefixes-add-haochuan.patch similarity index 78% rename from projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0049-dt-bindings-vendor-prefixes-add-haochuangyi-prefix.patch rename to projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0039-FROMLIST-v1-dt-bindings-vendor-prefixes-add-haochuan.patch index 86c058103f..0c68eac7ae 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0049-dt-bindings-vendor-prefixes-add-haochuangyi-prefix.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0039-FROMLIST-v1-dt-bindings-vendor-prefixes-add-haochuan.patch @@ -1,7 +1,8 @@ -From 97716a8c52bb002a8ec1e1e1814f6ad752a32940 Mon Sep 17 00:00:00 2001 +From 7a4bea19df5da8fe19a7e6c09f8480325399dc81 Mon Sep 17 00:00:00 2001 From: Christian Hewitt Date: Tue, 12 Jan 2021 17:24:07 +0000 -Subject: [PATCH 49/60] dt-bindings: vendor-prefixes: add haochuangyi prefix +Subject: [PATCH 39/71] FROMLIST(v1): dt-bindings: vendor-prefixes: add + haochuangyi prefix Shenzhen Haochuangyi Technology Co.,Ltd are a manufcaturer of Android Set-Top Box devices. @@ -12,10 +13,10 @@ Signed-off-by: Christian Hewitt 1 file changed, 2 insertions(+) diff --git a/Documentation/devicetree/bindings/vendor-prefixes.yaml b/Documentation/devicetree/bindings/vendor-prefixes.yaml -index a867f7102c35..fc3e9205946f 100644 +index f1b4afb2876a..52ff63248892 100644 --- a/Documentation/devicetree/bindings/vendor-prefixes.yaml +++ b/Documentation/devicetree/bindings/vendor-prefixes.yaml -@@ -471,6 +471,8 @@ patternProperties: +@@ -483,6 +483,8 @@ patternProperties: deprecated: true "^hannstar,.*": description: HannStar Display Corporation diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0050-dt-bindings-arm-amlogic-add-H96-Max-bindings.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0040-FROMLIST-v1-dt-bindings-arm-amlogic-add-H96-Max-bind.patch similarity index 78% rename from projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0050-dt-bindings-arm-amlogic-add-H96-Max-bindings.patch rename to projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0040-FROMLIST-v1-dt-bindings-arm-amlogic-add-H96-Max-bind.patch index c64abd3d81..7770f4cfc4 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0050-dt-bindings-arm-amlogic-add-H96-Max-bindings.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0040-FROMLIST-v1-dt-bindings-arm-amlogic-add-H96-Max-bind.patch @@ -1,7 +1,8 @@ -From 242a6ff12de0a23a10cd96f20882b1717ee76b57 Mon Sep 17 00:00:00 2001 +From ba5fc3ea8be0a54ec98766dd0f0a073d0c5eea8a Mon Sep 17 00:00:00 2001 From: Christian Hewitt Date: Tue, 12 Jan 2021 17:25:33 +0000 -Subject: [PATCH 50/60] dt-bindings: arm: amlogic: add H96-Max bindings +Subject: [PATCH 40/71] FROMLIST(v1): dt-bindings: arm: amlogic: add H96-Max + bindings Add the board binding for the Haochuangyi H96-Max STB device. @@ -11,10 +12,10 @@ Signed-off-by: Christian Hewitt 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/arm/amlogic.yaml b/Documentation/devicetree/bindings/arm/amlogic.yaml -index 172ed028e686..903ab1796c07 100644 +index 1dc793eb35f4..1e792feecc69 100644 --- a/Documentation/devicetree/bindings/arm/amlogic.yaml +++ b/Documentation/devicetree/bindings/arm/amlogic.yaml -@@ -175,6 +175,7 @@ properties: +@@ -177,6 +177,7 @@ properties: - cyx,a95xf3-air-1000 - hardkernel,odroid-c4 - hardkernel,odroid-hc4 diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0051-arm64-dts-meson-add-initial-device-tree-for-H96-Max.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0041-FROMLIST-v1-arm64-dts-meson-add-initial-device-tree-.patch similarity index 94% rename from projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0051-arm64-dts-meson-add-initial-device-tree-for-H96-Max.patch rename to projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0041-FROMLIST-v1-arm64-dts-meson-add-initial-device-tree-.patch index 1640b7154a..a7622af84a 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0051-arm64-dts-meson-add-initial-device-tree-for-H96-Max.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0041-FROMLIST-v1-arm64-dts-meson-add-initial-device-tree-.patch @@ -1,7 +1,8 @@ -From ba87086b3333005e2a1b1a6b1b9552b0f598d7eb Mon Sep 17 00:00:00 2001 +From 1a2bf7ec89e3bdd444dabdb2a0ad95deeed0dae4 Mon Sep 17 00:00:00 2001 From: Christian Hewitt Date: Tue, 12 Jan 2021 17:26:42 +0000 -Subject: [PATCH 51/60] arm64: dts: meson: add initial device-tree for H96-Max +Subject: [PATCH 41/71] FROMLIST(v1): arm64: dts: meson: add initial + device-tree for H96-Max The Haochuangyi H96-Max is based on the Amlogic S905X3 reference design with the following specs: @@ -29,10 +30,10 @@ Signed-off-by: Christian Hewitt create mode 100644 arch/arm64/boot/dts/amlogic/meson-sm1-h96-max.dts diff --git a/arch/arm64/boot/dts/amlogic/Makefile b/arch/arm64/boot/dts/amlogic/Makefile -index 111425d59da0..60a12b6d560a 100644 +index e198d17f2ea8..2d7cbebba35a 100644 --- a/arch/arm64/boot/dts/amlogic/Makefile +++ b/arch/arm64/boot/dts/amlogic/Makefile -@@ -52,6 +52,7 @@ dtb-$(CONFIG_ARCH_MESON) += meson-gxm-wetek-core2.dtb +@@ -54,6 +54,7 @@ dtb-$(CONFIG_ARCH_MESON) += meson-gxm-wetek-core2.dtb dtb-$(CONFIG_ARCH_MESON) += meson-sm1-a95xf3-air-100.dtb dtb-$(CONFIG_ARCH_MESON) += meson-sm1-a95xf3-air-1000.dtb dtb-$(CONFIG_ARCH_MESON) += meson-sm1-bananapi-m5.dtb diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0042-FROMLIST-v4-phy-amlogic-phy-meson-gxl-usb2-fix-share.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0042-FROMLIST-v4-phy-amlogic-phy-meson-gxl-usb2-fix-share.patch new file mode 100644 index 0000000000..b44d73f924 --- /dev/null +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0042-FROMLIST-v4-phy-amlogic-phy-meson-gxl-usb2-fix-share.patch @@ -0,0 +1,36 @@ +From 99dd1222b8bff38d88de9b98264292aa65c43753 Mon Sep 17 00:00:00 2001 +From: Amjad Ouled-Ameur +Date: Mon, 6 Dec 2021 04:25:36 +0000 +Subject: [PATCH 42/71] FROMLIST(v4): phy: amlogic: phy-meson-gxl-usb2: fix + shared reset controller use + +Use reset_control_rearm() call if an error occurs in case +phy_meson_gxl_usb2_init() fails after reset() has been called ; or in case +phy_meson_gxl_usb2_exit() is called i.e the resource is no longer used +and the reset line may be triggered again by other devices. + +reset_control_rearm() keeps use of triggered_count sane in the reset +framework. Therefore, use of reset_control_reset() on shared reset line +should be balanced with reset_control_rearm(). + +Signed-off-by: Amjad Ouled-Ameur +Reported-by: Jerome Brunet +--- + drivers/phy/amlogic/phy-meson-gxl-usb2.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/drivers/phy/amlogic/phy-meson-gxl-usb2.c b/drivers/phy/amlogic/phy-meson-gxl-usb2.c +index 2b3c0d730f20..d2f56075dc57 100644 +--- a/drivers/phy/amlogic/phy-meson-gxl-usb2.c ++++ b/drivers/phy/amlogic/phy-meson-gxl-usb2.c +@@ -125,6 +125,7 @@ static int phy_meson_gxl_usb2_exit(struct phy *phy) + struct phy_meson_gxl_usb2_priv *priv = phy_get_drvdata(phy); + + clk_disable_unprepare(priv->clk); ++ reset_control_rearm(priv->reset); + + return 0; + } +-- +2.17.1 + diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0042-WIP-ASoC-meson-aiu-encoder-spdif-implement-the-.mute.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0042-WIP-ASoC-meson-aiu-encoder-spdif-implement-the-.mute.patch deleted file mode 100644 index 0c9e215479..0000000000 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0042-WIP-ASoC-meson-aiu-encoder-spdif-implement-the-.mute.patch +++ /dev/null @@ -1,60 +0,0 @@ -From a4af329ff09bb610bb7206f629589a2b98d04f29 Mon Sep 17 00:00:00 2001 -From: Martin Blumenstingl -Date: Wed, 23 Dec 2020 02:45:27 +0100 -Subject: [PATCH 42/60] WIP: ASoC: meson: aiu: encoder-spdif: implement the - .mute_stream callback - -Implement the .mute_stream callback based on code from the vendor -driver. - -Signed-off-by: Martin Blumenstingl ---- - sound/soc/meson/aiu-encoder-spdif.c | 21 +++++++++++++++++++++ - 1 file changed, 21 insertions(+) - -diff --git a/sound/soc/meson/aiu-encoder-spdif.c b/sound/soc/meson/aiu-encoder-spdif.c -index de850913975f..5c42a784cee4 100644 ---- a/sound/soc/meson/aiu-encoder-spdif.c -+++ b/sound/soc/meson/aiu-encoder-spdif.c -@@ -19,6 +19,8 @@ - #define AIU_958_MISC_U_FROM_STREAM BIT(12) - #define AIU_958_MISC_FORCE_LR BIT(13) - #define AIU_958_CTRL_HOLD_EN BIT(0) -+#define AIU_958_CTRL_MUTE_RIGHT_SPEAKER BIT(3) -+#define AIU_958_CTRL_MUTE_LEFT_SPEAKER BIT(4) - #define AIU_CLK_CTRL_958_DIV_EN BIT(1) - #define AIU_CLK_CTRL_958_DIV GENMASK(5, 4) - #define AIU_CLK_CTRL_958_DIV_MORE BIT(12) -@@ -200,10 +202,29 @@ static void aiu_encoder_spdif_shutdown(struct snd_pcm_substream *substream, - clk_bulk_disable_unprepare(aiu->spdif.clk_num, aiu->spdif.clks); - } - -+static int aiu_encoder_spdif_mute_stream(struct snd_soc_dai *dai, int mute, -+ int stream) -+{ -+ struct snd_soc_component *component = dai->component; -+ u32 value = 0; -+ -+ if (mute) -+ value = AIU_958_CTRL_MUTE_RIGHT_SPEAKER | -+ AIU_958_CTRL_MUTE_LEFT_SPEAKER; -+ -+ snd_soc_component_update_bits(component, AIU_958_CTRL, -+ AIU_958_CTRL_MUTE_RIGHT_SPEAKER | -+ AIU_958_CTRL_MUTE_LEFT_SPEAKER, -+ value); -+ -+ return 0; -+} -+ - const struct snd_soc_dai_ops aiu_encoder_spdif_dai_ops = { - .trigger = aiu_encoder_spdif_trigger, - .hw_params = aiu_encoder_spdif_hw_params, - .hw_free = aiu_encoder_spdif_hw_free, - .startup = aiu_encoder_spdif_startup, - .shutdown = aiu_encoder_spdif_shutdown, -+ .mute_stream = aiu_encoder_spdif_mute_stream, - }; --- -2.17.1 - diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0043-FROMLIST-v4-phy-amlogic-meson8b-usb2-Use-dev_err_pro.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0043-FROMLIST-v4-phy-amlogic-meson8b-usb2-Use-dev_err_pro.patch new file mode 100644 index 0000000000..d9f808746f --- /dev/null +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0043-FROMLIST-v4-phy-amlogic-meson8b-usb2-Use-dev_err_pro.patch @@ -0,0 +1,34 @@ +From 3ef02f4bce0f0035941d37005cc3a8a57e36c217 Mon Sep 17 00:00:00 2001 +From: Amjad Ouled-Ameur +Date: Mon, 6 Dec 2021 04:26:22 +0000 +Subject: [PATCH 43/71] FROMLIST(v4): phy: amlogic: meson8b-usb2: Use + dev_err_probe() + +Use the existing dev_err_probe() helper instead of open-coding the same +operation. + +Signed-off-by: Amjad Ouled-Ameur +Reported-by: Martin Blumenstingl +--- + drivers/phy/amlogic/phy-meson8b-usb2.c | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/drivers/phy/amlogic/phy-meson8b-usb2.c b/drivers/phy/amlogic/phy-meson8b-usb2.c +index cf10bed40528..77e7e9b1428c 100644 +--- a/drivers/phy/amlogic/phy-meson8b-usb2.c ++++ b/drivers/phy/amlogic/phy-meson8b-usb2.c +@@ -265,8 +265,9 @@ static int phy_meson8b_usb2_probe(struct platform_device *pdev) + return PTR_ERR(priv->clk_usb); + + priv->reset = devm_reset_control_get_optional_shared(&pdev->dev, NULL); +- if (PTR_ERR(priv->reset) == -EPROBE_DEFER) +- return PTR_ERR(priv->reset); ++ if (IS_ERR(priv->reset)) ++ return dev_err_probe(&pdev->dev, PTR_ERR(priv->reset), ++ "Failed to get the reset line"); + + priv->dr_mode = of_usb_get_dr_mode_by_phy(pdev->dev.of_node, -1); + if (priv->dr_mode == USB_DR_MODE_UNKNOWN) { +-- +2.17.1 + diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0043-WIP-ASoC-meson-aiu-encoder-i2s-implement-the-.mute_s.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0043-WIP-ASoC-meson-aiu-encoder-i2s-implement-the-.mute_s.patch deleted file mode 100644 index 8303cfda70..0000000000 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0043-WIP-ASoC-meson-aiu-encoder-i2s-implement-the-.mute_s.patch +++ /dev/null @@ -1,69 +0,0 @@ -From b3ddc4fc78ab0ff9e01958408c8c1b2a40633ebf Mon Sep 17 00:00:00 2001 -From: Martin Blumenstingl -Date: Wed, 23 Dec 2020 02:46:54 +0100 -Subject: [PATCH 43/60] WIP: ASoC: meson: aiu: encoder-i2s: implement the - .mute_stream callback - -Implement the .mute_stream callback based on the code from the vendor -driver. - -Signed-off-by: Martin Blumenstingl ---- - sound/soc/meson/aiu-encoder-i2s.c | 15 +++++++++++++++ - sound/soc/meson/aiu.h | 1 + - 2 files changed, 16 insertions(+) - -diff --git a/sound/soc/meson/aiu-encoder-i2s.c b/sound/soc/meson/aiu-encoder-i2s.c -index f8378066d448..ba3dac987112 100644 ---- a/sound/soc/meson/aiu-encoder-i2s.c -+++ b/sound/soc/meson/aiu-encoder-i2s.c -@@ -27,6 +27,8 @@ - #define AIU_CLK_CTRL_MORE_I2S_DIV GENMASK(5, 0) - #define AIU_CODEC_DAC_LRCLK_CTRL_DIV GENMASK(11, 0) - -+#define AIU_I2S_MUTE_SWAP_MUTE GENMASK(15, 8) -+ - static void aiu_encoder_i2s_divider_enable(struct snd_soc_component *component, - bool enable) - { -@@ -346,6 +348,18 @@ static void aiu_encoder_i2s_shutdown(struct snd_pcm_substream *substream, - clk_bulk_disable_unprepare(aiu->i2s.clk_num, aiu->i2s.clks); - } - -+static int aiu_encoder_i2s_mute_stream(struct snd_soc_dai *dai, int mute, -+ int stream) -+{ -+ struct snd_soc_component *component = dai->component; -+ -+ snd_soc_component_update_bits(component, AIU_I2S_MUTE_SWAP, -+ AIU_I2S_MUTE_SWAP_MUTE, -+ mute ? AIU_I2S_MUTE_SWAP_MUTE : 0); -+ -+ return 0; -+} -+ - const struct snd_soc_dai_ops aiu_encoder_i2s_dai_ops = { - .trigger = aiu_encoder_i2s_trigger, - .hw_params = aiu_encoder_i2s_hw_params, -@@ -354,5 +368,6 @@ const struct snd_soc_dai_ops aiu_encoder_i2s_dai_ops = { - .set_sysclk = aiu_encoder_i2s_set_sysclk, - .startup = aiu_encoder_i2s_startup, - .shutdown = aiu_encoder_i2s_shutdown, -+ .mute_stream = aiu_encoder_i2s_mute_stream, - }; - -diff --git a/sound/soc/meson/aiu.h b/sound/soc/meson/aiu.h -index 393b6c2307e4..7884c50f244d 100644 ---- a/sound/soc/meson/aiu.h -+++ b/sound/soc/meson/aiu.h -@@ -66,6 +66,7 @@ extern const struct snd_soc_dai_ops aiu_encoder_spdif_dai_ops; - #define AIU_958_CHSTAT_L0 0x020 - #define AIU_958_CHSTAT_L1 0x024 - #define AIU_958_CTRL 0x028 -+#define AIU_I2S_MUTE_SWAP 0x030 - #define AIU_I2S_SOURCE_DESC 0x034 - #define AIU_I2S_DAC_CFG 0x040 - #define AIU_I2S_SYNC 0x044 --- -2.17.1 - diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0044-FROMLIST-v4-phy-amlogic-meson8b-usb2-fix-shared-rese.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0044-FROMLIST-v4-phy-amlogic-meson8b-usb2-fix-shared-rese.patch new file mode 100644 index 0000000000..7d3726229d --- /dev/null +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0044-FROMLIST-v4-phy-amlogic-meson8b-usb2-fix-shared-rese.patch @@ -0,0 +1,60 @@ +From b0a1060c2eb88bd8f4b3958193658024b01fedb7 Mon Sep 17 00:00:00 2001 +From: Amjad Ouled-Ameur +Date: Mon, 6 Dec 2021 04:27:13 +0000 +Subject: [PATCH 44/71] FROMLIST(v4): phy: amlogic: meson8b-usb2: fix shared + reset control use + +Use reset_control_rearm() call if an error occurs in case +phy_meson8b_usb2_power_on() fails after reset() has been called, or in +case phy_meson8b_usb2_power_off() is called i.e the resource is no longer +used and the reset line may be triggered again by other devices. + +reset_control_rearm() keeps use of triggered_count sane in the reset +framework, use of reset_control_reset() on shared reset line should +be balanced with reset_control_rearm(). + +Signed-off-by: Amjad Ouled-Ameur +Reported-by: Jerome Brunet +--- + drivers/phy/amlogic/phy-meson8b-usb2.c | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/drivers/phy/amlogic/phy-meson8b-usb2.c b/drivers/phy/amlogic/phy-meson8b-usb2.c +index 77e7e9b1428c..dd96763911b8 100644 +--- a/drivers/phy/amlogic/phy-meson8b-usb2.c ++++ b/drivers/phy/amlogic/phy-meson8b-usb2.c +@@ -154,6 +154,7 @@ static int phy_meson8b_usb2_power_on(struct phy *phy) + ret = clk_prepare_enable(priv->clk_usb_general); + if (ret) { + dev_err(&phy->dev, "Failed to enable USB general clock\n"); ++ reset_control_rearm(priv->reset); + return ret; + } + +@@ -161,6 +162,7 @@ static int phy_meson8b_usb2_power_on(struct phy *phy) + if (ret) { + dev_err(&phy->dev, "Failed to enable USB DDR clock\n"); + clk_disable_unprepare(priv->clk_usb_general); ++ reset_control_rearm(priv->reset); + return ret; + } + +@@ -199,6 +201,7 @@ static int phy_meson8b_usb2_power_on(struct phy *phy) + dev_warn(&phy->dev, "USB ID detect failed!\n"); + clk_disable_unprepare(priv->clk_usb); + clk_disable_unprepare(priv->clk_usb_general); ++ reset_control_rearm(priv->reset); + return -EINVAL; + } + } +@@ -218,6 +221,7 @@ static int phy_meson8b_usb2_power_off(struct phy *phy) + + clk_disable_unprepare(priv->clk_usb); + clk_disable_unprepare(priv->clk_usb_general); ++ reset_control_rearm(priv->reset); + + /* power off the PHY by putting it into reset mode */ + regmap_update_bits(priv->regmap, REG_CTRL, REG_CTRL_POWER_ON_RESET, +-- +2.17.1 + diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0045-FROMLIST-v3-media-meson-vdec-potential-dereference-o.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0045-FROMLIST-v3-media-meson-vdec-potential-dereference-o.patch new file mode 100644 index 0000000000..2c2fff1a6d --- /dev/null +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0045-FROMLIST-v3-media-meson-vdec-potential-dereference-o.patch @@ -0,0 +1,95 @@ +From ae8697e818bc8d9c3fcb73270f063cad77c9d18f Mon Sep 17 00:00:00 2001 +From: Jiasheng Jiang +Date: Wed, 15 Dec 2021 03:49:15 +0000 +Subject: [PATCH 45/71] FROMLIST(v3): media: meson: vdec: potential dereference + of null pointer + +In amvdec_add_ts(), there is a dereference of kzalloc(), which could lead +to a NULL pointer dereference on failure of kzalloc(). + +Fix this bug by adding a NULL check of new_ts. + +This bug was found by a static analyzer[1]. + +Builds with CONFIG_VIDEO_MESON_VDEC=m show no new warnings, +and our static analyzer no longer warns about this code. + +Fixes: 876f123b8956 ("media: meson: vdec: bring up to compliance") +Signed-off-by: Zhou Qingyang +--- + drivers/staging/media/meson/vdec/esparser.c | 11 ++++++++++- + drivers/staging/media/meson/vdec/vdec_helpers.c | 8 ++++++-- + drivers/staging/media/meson/vdec/vdec_helpers.h | 2 +- + 3 files changed, 17 insertions(+), 4 deletions(-) + +diff --git a/drivers/staging/media/meson/vdec/esparser.c b/drivers/staging/media/meson/vdec/esparser.c +index db7022707ff8..819fb937d1a8 100644 +--- a/drivers/staging/media/meson/vdec/esparser.c ++++ b/drivers/staging/media/meson/vdec/esparser.c +@@ -328,9 +328,18 @@ esparser_queue(struct amvdec_session *sess, struct vb2_v4l2_buffer *vbuf) + + offset = esparser_get_offset(sess); + +- amvdec_add_ts(sess, vb->timestamp, vbuf->timecode, offset, vbuf->flags); ++ ret = amvdec_add_ts(sess, vb->timestamp, vbuf->timecode, offset, vbuf->flags); ++ if (!ret) { ++ v4l2_m2m_buf_done(vbuf, VB2_BUF_STATE_ERROR); ++ return ret; ++ } ++ + dev_dbg(core->dev, "esparser: ts = %llu pld_size = %u offset = %08X flags = %08X\n", + vb->timestamp, payload_size, offset, vbuf->flags); ++ if (ret) { ++ v4l2_m2m_buf_done(vbuf, VB2_BUF_STATE_ERROR); ++ return ret; ++ } + + vbuf->flags = 0; + vbuf->field = V4L2_FIELD_NONE; +diff --git a/drivers/staging/media/meson/vdec/vdec_helpers.c b/drivers/staging/media/meson/vdec/vdec_helpers.c +index b9125c295d1d..06fd66539797 100644 +--- a/drivers/staging/media/meson/vdec/vdec_helpers.c ++++ b/drivers/staging/media/meson/vdec/vdec_helpers.c +@@ -227,13 +227,16 @@ int amvdec_set_canvases(struct amvdec_session *sess, + } + EXPORT_SYMBOL_GPL(amvdec_set_canvases); + +-void amvdec_add_ts(struct amvdec_session *sess, u64 ts, +- struct v4l2_timecode tc, u32 offset, u32 vbuf_flags) ++int amvdec_add_ts(struct amvdec_session *sess, u64 ts, ++ struct v4l2_timecode tc, u32 offset, u32 vbuf_flags) + { + struct amvdec_timestamp *new_ts; + unsigned long flags; + + new_ts = kzalloc(sizeof(*new_ts), GFP_KERNEL); ++ if (!new_ts) ++ return -ENOMEM; ++ + new_ts->ts = ts; + new_ts->tc = tc; + new_ts->offset = offset; +@@ -242,6 +245,7 @@ void amvdec_add_ts(struct amvdec_session *sess, u64 ts, + spin_lock_irqsave(&sess->ts_spinlock, flags); + list_add_tail(&new_ts->list, &sess->timestamps); + spin_unlock_irqrestore(&sess->ts_spinlock, flags); ++ return 0; + } + EXPORT_SYMBOL_GPL(amvdec_add_ts); + +diff --git a/drivers/staging/media/meson/vdec/vdec_helpers.h b/drivers/staging/media/meson/vdec/vdec_helpers.h +index 88137d15aa3a..2c569cf62b7b 100644 +--- a/drivers/staging/media/meson/vdec/vdec_helpers.h ++++ b/drivers/staging/media/meson/vdec/vdec_helpers.h +@@ -56,7 +56,7 @@ void amvdec_dst_buf_done_offset(struct amvdec_session *sess, + * @offset: offset in the VIFIFO where the associated packet was written + * @flags: the vb2_v4l2_buffer flags + */ +-void amvdec_add_ts(struct amvdec_session *sess, u64 ts, ++int amvdec_add_ts(struct amvdec_session *sess, u64 ts, + struct v4l2_timecode tc, u32 offset, u32 flags); + void amvdec_remove_ts(struct amvdec_session *sess, u64 ts); + +-- +2.17.1 + diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0046-FROMLIST-v2-media-v4l2-mem2mem-Apply-DST_QUEUE_OFF_B.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0046-FROMLIST-v2-media-v4l2-mem2mem-Apply-DST_QUEUE_OFF_B.patch new file mode 100644 index 0000000000..05739bea5e --- /dev/null +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0046-FROMLIST-v2-media-v4l2-mem2mem-Apply-DST_QUEUE_OFF_B.patch @@ -0,0 +1,127 @@ +From 3162a580bd5c99642c29b3050705cf5c6b4e48b4 Mon Sep 17 00:00:00 2001 +From: Chen-Yu Tsai +Date: Wed, 15 Dec 2021 03:51:07 +0000 +Subject: [PATCH 46/71] FROMLIST(v2): media: v4l2-mem2mem: Apply + DST_QUEUE_OFF_BASE on MMAP buffers across ioctls + +DST_QUEUE_OFF_BASE is applied to offset/mem_offset on MMAP capture buffers +only for the VIDIOC_QUERYBUF ioctl, while the userspace fields (including +offset/mem_offset) are filled in for VIDIOC_{QUERY,PREPARE,Q,DQ}BUF +ioctls. This leads to differences in the values presented to userspace. +If userspace attempts to mmap the capture buffer directly using values +from DQBUF, it will fail. + +Move the code that applies the magic offset into a helper, and call +that helper from all four ioctl entry points. + +Fixes: 7f98639def42 ("V4L/DVB: add memory-to-memory device helper framework for videobuf") +Fixes: 908a0d7c588e ("[media] v4l: mem2mem: port to videobuf2") +Signed-off-by: Chen-Yu Tsai +--- + drivers/media/v4l2-core/v4l2-mem2mem.c | 53 ++++++++++++++++++++------ + 1 file changed, 41 insertions(+), 12 deletions(-) + +diff --git a/drivers/media/v4l2-core/v4l2-mem2mem.c b/drivers/media/v4l2-core/v4l2-mem2mem.c +index e7f4bf5bc8dd..67582d788b9b 100644 +--- a/drivers/media/v4l2-core/v4l2-mem2mem.c ++++ b/drivers/media/v4l2-core/v4l2-mem2mem.c +@@ -585,19 +585,14 @@ int v4l2_m2m_reqbufs(struct file *file, struct v4l2_m2m_ctx *m2m_ctx, + } + EXPORT_SYMBOL_GPL(v4l2_m2m_reqbufs); + +-int v4l2_m2m_querybuf(struct file *file, struct v4l2_m2m_ctx *m2m_ctx, +- struct v4l2_buffer *buf) ++static void v4l2_m2m_adjust_mem_offset(struct vb2_queue *vq, ++ struct v4l2_buffer *buf) + { +- struct vb2_queue *vq; +- int ret = 0; +- unsigned int i; +- +- vq = v4l2_m2m_get_vq(m2m_ctx, buf->type); +- ret = vb2_querybuf(vq, buf); +- + /* Adjust MMAP memory offsets for the CAPTURE queue */ + if (buf->memory == V4L2_MEMORY_MMAP && V4L2_TYPE_IS_CAPTURE(vq->type)) { + if (V4L2_TYPE_IS_MULTIPLANAR(vq->type)) { ++ unsigned int i; ++ + for (i = 0; i < buf->length; ++i) + buf->m.planes[i].m.mem_offset + += DST_QUEUE_OFF_BASE; +@@ -605,8 +600,23 @@ int v4l2_m2m_querybuf(struct file *file, struct v4l2_m2m_ctx *m2m_ctx, + buf->m.offset += DST_QUEUE_OFF_BASE; + } + } ++} + +- return ret; ++int v4l2_m2m_querybuf(struct file *file, struct v4l2_m2m_ctx *m2m_ctx, ++ struct v4l2_buffer *buf) ++{ ++ struct vb2_queue *vq; ++ int ret = 0; ++ ++ vq = v4l2_m2m_get_vq(m2m_ctx, buf->type); ++ ret = vb2_querybuf(vq, buf); ++ if (ret) ++ return ret; ++ ++ /* Adjust MMAP memory offsets for the CAPTURE queue */ ++ v4l2_m2m_adjust_mem_offset(vq, buf); ++ ++ return 0; + } + EXPORT_SYMBOL_GPL(v4l2_m2m_querybuf); + +@@ -763,6 +773,9 @@ int v4l2_m2m_qbuf(struct file *file, struct v4l2_m2m_ctx *m2m_ctx, + if (ret) + return ret; + ++ /* Adjust MMAP memory offsets for the CAPTURE queue */ ++ v4l2_m2m_adjust_mem_offset(vq, buf); ++ + /* + * If the capture queue is streaming, but streaming hasn't started + * on the device, but was asked to stop, mark the previously queued +@@ -784,9 +797,17 @@ int v4l2_m2m_dqbuf(struct file *file, struct v4l2_m2m_ctx *m2m_ctx, + struct v4l2_buffer *buf) + { + struct vb2_queue *vq; ++ int ret; + + vq = v4l2_m2m_get_vq(m2m_ctx, buf->type); +- return vb2_dqbuf(vq, buf, file->f_flags & O_NONBLOCK); ++ ret = vb2_dqbuf(vq, buf, file->f_flags & O_NONBLOCK); ++ if (ret) ++ return ret; ++ ++ /* Adjust MMAP memory offsets for the CAPTURE queue */ ++ v4l2_m2m_adjust_mem_offset(vq, buf); ++ ++ return 0; + } + EXPORT_SYMBOL_GPL(v4l2_m2m_dqbuf); + +@@ -795,9 +816,17 @@ int v4l2_m2m_prepare_buf(struct file *file, struct v4l2_m2m_ctx *m2m_ctx, + { + struct video_device *vdev = video_devdata(file); + struct vb2_queue *vq; ++ int ret; + + vq = v4l2_m2m_get_vq(m2m_ctx, buf->type); +- return vb2_prepare_buf(vq, vdev->v4l2_dev->mdev, buf); ++ ret = vb2_prepare_buf(vq, vdev->v4l2_dev->mdev, buf); ++ if (ret) ++ return ret; ++ ++ /* Adjust MMAP memory offsets for the CAPTURE queue */ ++ v4l2_m2m_adjust_mem_offset(vq, buf); ++ ++ return 0; + } + EXPORT_SYMBOL_GPL(v4l2_m2m_prepare_buf); + +-- +2.17.1 + diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0047-FROMLIST-v1-arm64-dts-meson-sm1-add-spdifin-spdifout.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0047-FROMLIST-v1-arm64-dts-meson-sm1-add-spdifin-spdifout.patch new file mode 100644 index 0000000000..aba9a378a1 --- /dev/null +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0047-FROMLIST-v1-arm64-dts-meson-sm1-add-spdifin-spdifout.patch @@ -0,0 +1,54 @@ +From 764514f817de4e7b5053cea6b17983ed37cc7989 Mon Sep 17 00:00:00 2001 +From: Artem Lapkin +Date: Thu, 16 Dec 2021 16:10:58 +0000 +Subject: [PATCH 47/71] FROMLIST(v1): arm64: dts: meson-sm1: add spdifin + spdifout nodes + +Add spdifin spdifout nodes for Amlogic SM1 SoCs. + +Signed-off-by: Artem Lapkin +--- + arch/arm64/boot/dts/amlogic/meson-sm1.dtsi | 27 ++++++++++++++++++++++ + 1 file changed, 27 insertions(+) + +diff --git a/arch/arm64/boot/dts/amlogic/meson-sm1.dtsi b/arch/arm64/boot/dts/amlogic/meson-sm1.dtsi +index 78bdbd2ccc9d..a685dabde5d3 100644 +--- a/arch/arm64/boot/dts/amlogic/meson-sm1.dtsi ++++ b/arch/arm64/boot/dts/amlogic/meson-sm1.dtsi +@@ -336,6 +336,33 @@ + status = "disabled"; + }; + ++ spdifin: audio-controller@400 { ++ compatible = "amlogic,g12a-spdifin", ++ "amlogic,axg-spdifin"; ++ reg = <0x0 0x400 0x0 0x30>; ++ #sound-dai-cells = <0>; ++ sound-name-prefix = "SPDIFIN"; ++ interrupts = ; ++ clocks = <&clkc_audio AUD_CLKID_SPDIFIN>, ++ <&clkc_audio AUD_CLKID_SPDIFIN_CLK>; ++ clock-names = "pclk", "refclk"; ++ resets = <&clkc_audio AUD_RESET_SPDIFIN>; ++ status = "disabled"; ++ }; ++ ++ spdifout: audio-controller@480 { ++ compatible = "amlogic,g12a-spdifout", ++ "amlogic,axg-spdifout"; ++ reg = <0x0 0x480 0x0 0x50>; ++ #sound-dai-cells = <0>; ++ sound-name-prefix = "SPDIFOUT"; ++ clocks = <&clkc_audio AUD_CLKID_SPDIFOUT>, ++ <&clkc_audio AUD_CLKID_SPDIFOUT_CLK>; ++ clock-names = "pclk", "mclk"; ++ resets = <&clkc_audio AUD_RESET_SPDIFOUT>; ++ status = "disabled"; ++ }; ++ + tdmout_a: audio-controller@500 { + compatible = "amlogic,sm1-tdmout"; + reg = <0x0 0x500 0x0 0x40>; +-- +2.17.1 + diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0029-WIP-mmc-meson-gx-mmc-set-core-clock-phase-to-270-deg.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0048-WIP-mmc-meson-gx-mmc-set-core-clock-phase-to-270-deg.patch similarity index 92% rename from projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0029-WIP-mmc-meson-gx-mmc-set-core-clock-phase-to-270-deg.patch rename to projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0048-WIP-mmc-meson-gx-mmc-set-core-clock-phase-to-270-deg.patch index b33bb88b7a..6a334a9734 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0029-WIP-mmc-meson-gx-mmc-set-core-clock-phase-to-270-deg.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0048-WIP-mmc-meson-gx-mmc-set-core-clock-phase-to-270-deg.patch @@ -1,8 +1,8 @@ -From 87f2074b73cf0d82a3cc77e0cba3761ea893b6b6 Mon Sep 17 00:00:00 2001 +From 0ef0caa00235a6236a4ee1cd064fca9ba229d915 Mon Sep 17 00:00:00 2001 From: Neil Armstrong Date: Thu, 14 Jan 2021 17:43:02 +0100 -Subject: [PATCH 29/60] WIP: mmc: meson-gx-mmc: set core clock phase to 270 - degres for AXG compatible controllers +Subject: [PATCH 48/71] WIP: mmc: meson-gx-mmc: set core clock phase to 270 + degrees for AXG compatible controllers Signed-off-by: Neil Armstrong --- diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0030-WIP-drivers-meson-vdec-remove-redundant-if-statement.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0049-WIP-drivers-meson-vdec-remove-redundant-if-statement.patch similarity index 85% rename from projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0030-WIP-drivers-meson-vdec-remove-redundant-if-statement.patch rename to projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0049-WIP-drivers-meson-vdec-remove-redundant-if-statement.patch index 41c23b6fca..bd0a8e397e 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0030-WIP-drivers-meson-vdec-remove-redundant-if-statement.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0049-WIP-drivers-meson-vdec-remove-redundant-if-statement.patch @@ -1,7 +1,7 @@ -From 8009e7c2cdf4f88da111c80c84b7d71f37527c6c Mon Sep 17 00:00:00 2001 +From b612444848dc9b27d7d5711f2119b20012369993 Mon Sep 17 00:00:00 2001 From: benjamin545 Date: Thu, 15 Jul 2021 14:32:33 -0400 -Subject: [PATCH 30/60] WIP: drivers: meson: vdec: remove redundant if +Subject: [PATCH 49/71] WIP: drivers: meson: vdec: remove redundant if statement checking if sess->fmt_out->pixfmt is V4L2_PIX_FMT_VP9 was already done @@ -11,7 +11,7 @@ as a condition to enter the if statement where this additional check is performe 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/drivers/staging/media/meson/vdec/esparser.c b/drivers/staging/media/meson/vdec/esparser.c -index db7022707ff8..e18334e57fc0 100644 +index 819fb937d1a8..c3ac015a5d01 100644 --- a/drivers/staging/media/meson/vdec/esparser.c +++ b/drivers/staging/media/meson/vdec/esparser.c @@ -314,8 +314,7 @@ esparser_queue(struct amvdec_session *sess, struct vb2_v4l2_buffer *vbuf) diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0031-WIP-drivers-meson-vdec-improve-mmu-and-fbc-handling-.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0050-WIP-drivers-meson-vdec-improve-mmu-and-fbc-handling-.patch similarity index 97% rename from projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0031-WIP-drivers-meson-vdec-improve-mmu-and-fbc-handling-.patch rename to projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0050-WIP-drivers-meson-vdec-improve-mmu-and-fbc-handling-.patch index 8770665acd..87a82f45d6 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0031-WIP-drivers-meson-vdec-improve-mmu-and-fbc-handling-.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0050-WIP-drivers-meson-vdec-improve-mmu-and-fbc-handling-.patch @@ -1,7 +1,7 @@ -From 1de7b27fc9e3a46e2e2566c0b5435e1acd050d32 Mon Sep 17 00:00:00 2001 +From 9aadefbc5dbb36f611bb762d5cab862a96ee769a Mon Sep 17 00:00:00 2001 From: benjamin545 Date: Thu, 15 Jul 2021 16:32:39 -0400 -Subject: [PATCH 31/60] WIP: drivers: meson: vdec: improve mmu and fbc handling +Subject: [PATCH 50/71] WIP: drivers: meson: vdec: improve mmu and fbc handling and add 10 bit handling --- @@ -429,7 +429,7 @@ index 897f5d7a6aad..bfc312ec2a56 100644 /* No frame is actually processed */ vp9->cur_frame = NULL; diff --git a/drivers/staging/media/meson/vdec/esparser.c b/drivers/staging/media/meson/vdec/esparser.c -index e18334e57fc0..610a92b9f6f2 100644 +index c3ac015a5d01..8275ef5c6e4b 100644 --- a/drivers/staging/media/meson/vdec/esparser.c +++ b/drivers/staging/media/meson/vdec/esparser.c @@ -319,6 +319,7 @@ esparser_queue(struct amvdec_session *sess, struct vb2_v4l2_buffer *vbuf) @@ -441,10 +441,10 @@ index e18334e57fc0..610a92b9f6f2 100644 return -EAGAIN; } diff --git a/drivers/staging/media/meson/vdec/vdec.h b/drivers/staging/media/meson/vdec/vdec.h -index f95445ac0658..e3e4af73447a 100644 +index 0906b8fb5cc6..a48170fe4cff 100644 --- a/drivers/staging/media/meson/vdec/vdec.h +++ b/drivers/staging/media/meson/vdec/vdec.h -@@ -234,6 +234,7 @@ struct amvdec_session { +@@ -244,6 +244,7 @@ struct amvdec_session { u32 width; u32 height; u32 colorspace; @@ -453,7 +453,7 @@ index f95445ac0658..e3e4af73447a 100644 u8 quantization; u8 xfer_func; diff --git a/drivers/staging/media/meson/vdec/vdec_helpers.c b/drivers/staging/media/meson/vdec/vdec_helpers.c -index b9125c295d1d..bae69b55baf3 100644 +index 06fd66539797..6a889915d5da 100644 --- a/drivers/staging/media/meson/vdec/vdec_helpers.c +++ b/drivers/staging/media/meson/vdec/vdec_helpers.c @@ -50,32 +50,40 @@ void amvdec_write_parser(struct amvdec_core *core, u32 reg, u32 val) @@ -507,7 +507,7 @@ index b9125c295d1d..bae69b55baf3 100644 static int canvas_alloc(struct amvdec_session *sess, u8 *canvas_id) { -@@ -436,7 +444,7 @@ void amvdec_set_par_from_dar(struct amvdec_session *sess, +@@ -440,7 +448,7 @@ void amvdec_set_par_from_dar(struct amvdec_session *sess, EXPORT_SYMBOL_GPL(amvdec_set_par_from_dar); void amvdec_src_change(struct amvdec_session *sess, u32 width, @@ -516,7 +516,7 @@ index b9125c295d1d..bae69b55baf3 100644 { static const struct v4l2_event ev = { .type = V4L2_EVENT_SOURCE_CHANGE, -@@ -444,25 +452,27 @@ void amvdec_src_change(struct amvdec_session *sess, u32 width, +@@ -448,25 +456,27 @@ void amvdec_src_change(struct amvdec_session *sess, u32 width, v4l2_ctrl_s_ctrl(sess->ctrl_min_buf_capture, dpb_size); @@ -552,7 +552,7 @@ index b9125c295d1d..bae69b55baf3 100644 } EXPORT_SYMBOL_GPL(amvdec_src_change); diff --git a/drivers/staging/media/meson/vdec/vdec_helpers.h b/drivers/staging/media/meson/vdec/vdec_helpers.h -index cfaed52ab526..e574c4349759 100644 +index 2c569cf62b7b..74cc47ad2045 100644 --- a/drivers/staging/media/meson/vdec/vdec_helpers.h +++ b/drivers/staging/media/meson/vdec/vdec_helpers.h @@ -27,9 +27,10 @@ void amvdec_clear_dos_bits(struct amvdec_core *core, u32 reg, u32 val); @@ -569,7 +569,7 @@ index cfaed52ab526..e574c4349759 100644 /** * amvdec_dst_buf_done_idx() - Signal that a buffer is done decoding -@@ -76,9 +77,10 @@ void amvdec_set_par_from_dar(struct amvdec_session *sess, +@@ -77,9 +78,10 @@ void amvdec_set_par_from_dar(struct amvdec_session *sess, * @width: picture width detected by the hardware * @height: picture height detected by the hardware * @dpb_size: Decoded Picture Buffer size (= amount of buffers for decoding) diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0032-WIP-drivers-meson-vdec-add-hevc-decode-codec.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0051-WIP-drivers-meson-vdec-add-HEVC-decode-codec.patch similarity index 99% rename from projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0032-WIP-drivers-meson-vdec-add-hevc-decode-codec.patch rename to projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0051-WIP-drivers-meson-vdec-add-HEVC-decode-codec.patch index 46eba3c038..3c281ce48f 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0032-WIP-drivers-meson-vdec-add-hevc-decode-codec.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0051-WIP-drivers-meson-vdec-add-HEVC-decode-codec.patch @@ -1,7 +1,7 @@ -From f7dc4a36a0a2cefdc9f40ba440ef29d8c4b142a0 Mon Sep 17 00:00:00 2001 +From 9e20aa5ee7c5007812da1d09d67b99405b62b40e Mon Sep 17 00:00:00 2001 From: benjamin545 Date: Thu, 15 Jul 2021 17:08:42 -0400 -Subject: [PATCH 32/60] WIP: drivers: meson: vdec: add hevc decode codec +Subject: [PATCH 51/71] WIP: drivers: meson: vdec: add HEVC decode codec --- drivers/staging/media/meson/vdec/Makefile | 2 +- @@ -1492,7 +1492,7 @@ index 000000000000..f2f9b2464df1 + +#endif diff --git a/drivers/staging/media/meson/vdec/esparser.c b/drivers/staging/media/meson/vdec/esparser.c -index 610a92b9f6f2..9b6034936d32 100644 +index 8275ef5c6e4b..b62918529717 100644 --- a/drivers/staging/media/meson/vdec/esparser.c +++ b/drivers/staging/media/meson/vdec/esparser.c @@ -309,7 +309,7 @@ esparser_queue(struct amvdec_session *sess, struct vb2_v4l2_buffer *vbuf) diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0033-WIP-drivers-meson-vdec-add-handling-to-HEVC-decoder-.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0052-WIP-drivers-meson-vdec-add-handling-to-HEVC-decoder-.patch similarity index 97% rename from projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0033-WIP-drivers-meson-vdec-add-handling-to-HEVC-decoder-.patch rename to projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0052-WIP-drivers-meson-vdec-add-handling-to-HEVC-decoder-.patch index 01c310cecf..85c16e0356 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0033-WIP-drivers-meson-vdec-add-handling-to-HEVC-decoder-.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0052-WIP-drivers-meson-vdec-add-handling-to-HEVC-decoder-.patch @@ -1,7 +1,7 @@ -From afb9610594bffe6728a10c63c6d4999a1ab1529b Mon Sep 17 00:00:00 2001 +From f4c37db01b342c684de191a20e1c8afa3266d751 Mon Sep 17 00:00:00 2001 From: benjamin545 Date: Mon, 2 Aug 2021 15:18:40 -0400 -Subject: [PATCH 33/60] WIP: drivers: meson: vdec: add handling to HEVC decoder +Subject: [PATCH 52/71] WIP: drivers: meson: vdec: add handling to HEVC decoder to show frames when ready ..rather than when no longer referenced diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0034-WIP-drivers-meson-vdec-add-HEVC-support-to-GXBB.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0053-WIP-drivers-meson-vdec-add-HEVC-support-to-GXBB.patch similarity index 90% rename from projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0034-WIP-drivers-meson-vdec-add-HEVC-support-to-GXBB.patch rename to projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0053-WIP-drivers-meson-vdec-add-HEVC-support-to-GXBB.patch index f4a8e0cb79..fde247e56e 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0034-WIP-drivers-meson-vdec-add-HEVC-support-to-GXBB.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0053-WIP-drivers-meson-vdec-add-HEVC-support-to-GXBB.patch @@ -1,7 +1,7 @@ -From e4ac25d2996360ae77fcd685f0f5bbbb17635c18 Mon Sep 17 00:00:00 2001 +From d915bafab29f182dfe9fe45ca5ffaaddc5dbedfa Mon Sep 17 00:00:00 2001 From: Christian Hewitt Date: Sun, 21 Nov 2021 19:12:07 +0000 -Subject: [PATCH 34/60] WIP: drivers: meson: vdec: add HEVC support to GXBB +Subject: [PATCH 53/71] WIP: drivers: meson: vdec: add HEVC support to GXBB It's not clear whether the GXL firmware is the same one used with GXBB but let's try it and see! diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0035-WIP-drivers-meson-vdec-check-if-parser-has-really-pa.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0054-WIP-drivers-meson-vdec-check-if-parser-has-really-pa.patch similarity index 87% rename from projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0035-WIP-drivers-meson-vdec-check-if-parser-has-really-pa.patch rename to projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0054-WIP-drivers-meson-vdec-check-if-parser-has-really-pa.patch index d2e48d79ac..1e0c8c0cb2 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0035-WIP-drivers-meson-vdec-check-if-parser-has-really-pa.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0054-WIP-drivers-meson-vdec-check-if-parser-has-really-pa.patch @@ -1,7 +1,7 @@ -From 04190a885f16165acba6c1de28f50ac8d8d4d616 Mon Sep 17 00:00:00 2001 +From 08f6973cd4a767180f630d93553983eacfd8b09c Mon Sep 17 00:00:00 2001 From: Neil Armstrong Date: Mon, 22 Nov 2021 09:15:21 +0000 -Subject: [PATCH 35/60] WIP: drivers: meson: vdec: check if parser has really +Subject: [PATCH 54/71] WIP: drivers: meson: vdec: check if parser has really parser before marking input buffer as error Signed-off-by: Neil Armstrong @@ -10,7 +10,7 @@ Signed-off-by: Neil Armstrong 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/drivers/staging/media/meson/vdec/esparser.c b/drivers/staging/media/meson/vdec/esparser.c -index 9b6034936d32..bb9480f0a70c 100644 +index b62918529717..a689ccebc1b5 100644 --- a/drivers/staging/media/meson/vdec/esparser.c +++ b/drivers/staging/media/meson/vdec/esparser.c @@ -300,6 +300,7 @@ esparser_queue(struct amvdec_session *sess, struct vb2_v4l2_buffer *vbuf) @@ -21,7 +21,7 @@ index 9b6034936d32..bb9480f0a70c 100644 /* * When max ref frame is held by VP9, this should be -= 3 to prevent a -@@ -349,15 +350,20 @@ esparser_queue(struct amvdec_session *sess, struct vb2_v4l2_buffer *vbuf) +@@ -358,15 +359,20 @@ esparser_queue(struct amvdec_session *sess, struct vb2_v4l2_buffer *vbuf) } pad_size = esparser_pad_start_code(core, vb, payload_size); diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0036-WIP-arm64-dts-amlogic-radxa-zero-add-support-for-the.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0055-WIP-arm64-dts-amlogic-radxa-zero-add-support-for-the.patch similarity index 94% rename from projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0036-WIP-arm64-dts-amlogic-radxa-zero-add-support-for-the.patch rename to projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0055-WIP-arm64-dts-amlogic-radxa-zero-add-support-for-the.patch index 0de65900b8..c9286bb4b9 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0036-WIP-arm64-dts-amlogic-radxa-zero-add-support-for-the.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0055-WIP-arm64-dts-amlogic-radxa-zero-add-support-for-the.patch @@ -1,7 +1,7 @@ -From 6dcf2f9273f30e6f9e6222d3e01087908b84caad Mon Sep 17 00:00:00 2001 +From 4a092331686e14cae768b6082bfa63a7e54c0063 Mon Sep 17 00:00:00 2001 From: Christian Hewitt Date: Tue, 17 Aug 2021 16:16:43 +0000 -Subject: [PATCH 36/60] WIP: arm64: dts: amlogic: radxa-zero: add support for +Subject: [PATCH 55/71] WIP: arm64: dts: amlogic: radxa-zero: add support for the usb type-c controller Radxa Zero uses an FUSB302 type-c controller, so lets enable it. diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0037-WIP-arm64-dts-meson-add-audio-playback-to-p201.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0056-WIP-arm64-dts-meson-add-audio-playback-to-p201.patch similarity index 92% rename from projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0037-WIP-arm64-dts-meson-add-audio-playback-to-p201.patch rename to projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0056-WIP-arm64-dts-meson-add-audio-playback-to-p201.patch index 44f348965d..cab118480d 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0037-WIP-arm64-dts-meson-add-audio-playback-to-p201.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0056-WIP-arm64-dts-meson-add-audio-playback-to-p201.patch @@ -1,7 +1,7 @@ -From dc121392d96a65e226ba87e7105c462c90f3232d Mon Sep 17 00:00:00 2001 +From ef98e21cc6c14bf89d277a67fa9f64b212fbe0f8 Mon Sep 17 00:00:00 2001 From: Christian Hewitt Date: Fri, 15 May 2020 07:52:47 +0000 -Subject: [PATCH 37/60] WIP: arm64: dts: meson: add audio playback to p201 +Subject: [PATCH 56/71] WIP: arm64: dts: meson: add audio playback to p201 Add initial audio support limited to HDMI i2s. diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0057-TEST-new-registers.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0057-TEST-new-registers.patch deleted file mode 100644 index b33d652c4f..0000000000 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0057-TEST-new-registers.patch +++ /dev/null @@ -1,44 +0,0 @@ -From de35bb96122893c0d7eaea9de949cff3cb87ad24 Mon Sep 17 00:00:00 2001 -From: Christian Hewitt -Date: Thu, 4 Nov 2021 02:08:38 +0000 -Subject: [PATCH 57/60] TEST: new registers - -Signed-off-by: Christian Hewitt ---- - sound/soc/meson/aiu-encoder-i2s.c | 12 ++++++++++-- - 1 file changed, 10 insertions(+), 2 deletions(-) - -diff --git a/sound/soc/meson/aiu-encoder-i2s.c b/sound/soc/meson/aiu-encoder-i2s.c -index ba3dac987112..eeff716c1b8d 100644 ---- a/sound/soc/meson/aiu-encoder-i2s.c -+++ b/sound/soc/meson/aiu-encoder-i2s.c -@@ -19,6 +19,7 @@ - - #define AIU_I2S_DAC_CFG_MSB_FIRST BIT(2) - #define AIU_I2S_MISC_HOLD_EN BIT(2) -+#define AIU_I2S_MISC_FORCE_LEFT_RIGHT BIT(4) - #define AIU_CLK_CTRL_I2S_DIV_EN BIT(0) - #define AIU_CLK_CTRL_I2S_DIV GENMASK(3, 2) - #define AIU_CLK_CTRL_AOCLK_INVERT BIT(6) -@@ -40,9 +41,16 @@ static void aiu_encoder_i2s_divider_enable(struct snd_soc_component *component, - static void aiu_encoder_i2s_hold(struct snd_soc_component *component, - bool enable) - { -+ unsigned int value; -+ -+ if (enable) -+ value = AIU_I2S_MISC_HOLD_EN; -+ else -+ value = AIU_I2S_MISC_FORCE_LEFT_RIGHT; -+ - snd_soc_component_update_bits(component, AIU_I2S_MISC, -- AIU_I2S_MISC_HOLD_EN, -- enable ? AIU_I2S_MISC_HOLD_EN : 0); -+ AIU_I2S_MISC_HOLD_EN | -+ AIU_I2S_MISC_FORCE_LEFT_RIGHT, value); - } - - static int aiu_encoder_i2s_trigger(struct snd_pcm_substream *substream, int cmd, --- -2.17.1 - diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0038-WIP-arm64-dts-meson-add-audio-playback-to-p200.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0057-WIP-arm64-dts-meson-add-audio-playback-to-p200.patch similarity index 94% rename from projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0038-WIP-arm64-dts-meson-add-audio-playback-to-p200.patch rename to projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0057-WIP-arm64-dts-meson-add-audio-playback-to-p200.patch index 5c7a6dc1de..584d49800b 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0038-WIP-arm64-dts-meson-add-audio-playback-to-p200.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0057-WIP-arm64-dts-meson-add-audio-playback-to-p200.patch @@ -1,7 +1,7 @@ -From 09c0826a05c34391894102abf3dbe925daa9e97a Mon Sep 17 00:00:00 2001 +From e44724a5c9a208771e719437055dd378f0d74cd6 Mon Sep 17 00:00:00 2001 From: Christian Hewitt Date: Fri, 15 May 2020 07:56:15 +0000 -Subject: [PATCH 38/60] WIP: arm64: dts: meson: add audio playback to p200 +Subject: [PATCH 57/71] WIP: arm64: dts: meson: add audio playback to p200 Add initial support limited to HDMI i2s and SPDIF (LPCM). diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0058-FROMLIST-v2-ath10k-Fix-the-MTU-size-on-QCA9377-SDIO.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0058-FROMLIST-v2-ath10k-Fix-the-MTU-size-on-QCA9377-SDIO.patch deleted file mode 100644 index 59b2c0df42..0000000000 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0058-FROMLIST-v2-ath10k-Fix-the-MTU-size-on-QCA9377-SDIO.patch +++ /dev/null @@ -1,80 +0,0 @@ -From 783c76adcf53f7e47cd2a974fafbc2835d070579 Mon Sep 17 00:00:00 2001 -From: Fabio Estevam -Date: Wed, 24 Nov 2021 13:20:05 +0000 -Subject: [PATCH 58/60] FROMLIST(v2): ath10k: Fix the MTU size on QCA9377 SDIO - -On an imx6dl-pico-pi board with a QCA9377 SDIO chip, simply trying to -connect via ssh to another machine causes: - -[ 55.824159] ath10k_sdio mmc1:0001:1: failed to transmit packet, dropping: -12 -[ 55.832169] ath10k_sdio mmc1:0001:1: failed to submit frame: -12 -[ 55.838529] ath10k_sdio mmc1:0001:1: failed to push frame: -12 -[ 55.905863] ath10k_sdio mmc1:0001:1: failed to transmit packet, dropping: -12 -[ 55.913650] ath10k_sdio mmc1:0001:1: failed to submit frame: -12 -[ 55.919887] ath10k_sdio mmc1:0001:1: failed to push frame: -12 - -, leading to an ssh connection failure. - -One user inspected the size of frames on Wireshark and reported -the followig: - -"I was able to narrow the issue down to the mtu. If I set the mtu for -the wlan0 device to 1486 instead of 1500, the issue does not happen. - -The size of frames that I see on Wireshark is exactly 1500 after -setting it to 1486." - -Clearing the HI_ACS_FLAGS_ALT_DATA_CREDIT_SIZE avoids the problem and -the ssh command works successfully after that. - -Introduce a 'credit_size_workaround' field to ath10k_hw_params for -the QCA9377 SDIO, so that the HI_ACS_FLAGS_ALT_DATA_CREDIT_SIZE -is not set in this case. - -Tested with QCA9377 SDIO with firmware WLAN.TF.1.1.1-00061-QCATFSWPZ-1. - -Fixes: 2f918ea98606 ("ath10k: enable alt data of TX path for sdio") -Signed-off-by: Fabio Estevam ---- - drivers/net/wireless/ath/ath10k/core.c | 3 ++- - drivers/net/wireless/ath/ath10k/hw.h | 3 +++ - 2 files changed, 5 insertions(+), 1 deletion(-) - -diff --git a/drivers/net/wireless/ath/ath10k/core.c b/drivers/net/wireless/ath/ath10k/core.c -index 64c7145b51a2..afae168159ea 100644 ---- a/drivers/net/wireless/ath/ath10k/core.c -+++ b/drivers/net/wireless/ath/ath10k/core.c -@@ -714,6 +714,7 @@ static void ath10k_send_suspend_complete(struct ath10k *ar) - - static int ath10k_init_sdio(struct ath10k *ar, enum ath10k_firmware_mode mode) - { -+ bool mtu_workaround = ar->hw_params.credit_size_workaround; - int ret; - u32 param = 0; - -@@ -731,7 +732,7 @@ static int ath10k_init_sdio(struct ath10k *ar, enum ath10k_firmware_mode mode) - - param |= HI_ACS_FLAGS_SDIO_REDUCE_TX_COMPL_SET; - -- if (mode == ATH10K_FIRMWARE_MODE_NORMAL) -+ if (mode == ATH10K_FIRMWARE_MODE_NORMAL && !mtu_workaround) - param |= HI_ACS_FLAGS_ALT_DATA_CREDIT_SIZE; - else - param &= ~HI_ACS_FLAGS_ALT_DATA_CREDIT_SIZE; -diff --git a/drivers/net/wireless/ath/ath10k/hw.h b/drivers/net/wireless/ath/ath10k/hw.h -index 6b03c7787e36..591ef7416b61 100644 ---- a/drivers/net/wireless/ath/ath10k/hw.h -+++ b/drivers/net/wireless/ath/ath10k/hw.h -@@ -618,6 +618,9 @@ struct ath10k_hw_params { - */ - bool uart_pin_workaround; - -+ /* Workaround for the credit size calculation */ -+ bool credit_size_workaround; -+ - /* tx stats support over pktlog */ - bool tx_stats_over_pktlog; - --- -2.17.1 - diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0039-WIP-arm64-dts-meson-add-audio-playback-to-p212-s905x.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0058-WIP-arm64-dts-meson-add-audio-playback-to-p212-s905x.patch similarity index 92% rename from projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0039-WIP-arm64-dts-meson-add-audio-playback-to-p212-s905x.patch rename to projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0058-WIP-arm64-dts-meson-add-audio-playback-to-p212-s905x.patch index 3ddbdfaa7d..7504856a50 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0039-WIP-arm64-dts-meson-add-audio-playback-to-p212-s905x.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0058-WIP-arm64-dts-meson-add-audio-playback-to-p212-s905x.patch @@ -1,7 +1,7 @@ -From a6edde22c0cd4c04635b13b253a72194078653c9 Mon Sep 17 00:00:00 2001 +From 0fcf079352469bd1a2e9cd2479206cc8745965fc Mon Sep 17 00:00:00 2001 From: Christian Hewitt Date: Fri, 15 May 2020 08:02:54 +0000 -Subject: [PATCH 39/60] WIP: arm64: dts: meson: add audio playback to +Subject: [PATCH 58/71] WIP: arm64: dts: meson: add audio playback to p212-s905x dtsi Add initial audio support limited to HDMI i2s. diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0059-WIP-arm64-dts-amlogic-set-4GB-ram-size-for-Beelink-S.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0059-WIP-arm64-dts-amlogic-set-4GB-ram-size-for-Beelink-S.patch deleted file mode 100644 index 6fc9e78237..0000000000 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0059-WIP-arm64-dts-amlogic-set-4GB-ram-size-for-Beelink-S.patch +++ /dev/null @@ -1,67 +0,0 @@ -From 872551950d5a45f3163626e1c28b145a1100e1e0 Mon Sep 17 00:00:00 2001 -From: Christian Hewitt -Date: Thu, 25 Nov 2021 02:34:41 +0000 -Subject: [PATCH 59/60] WIP: arm64: dts: amlogic: set 4GB ram size for Beelink - S922X devices - -Set 4GB RAM size to see if this resolves the kernel panic issue -seen when boxes are booted from vendor u-boot. - -Signed-off-by: Christian Hewitt ---- - arch/arm64/boot/dts/amlogic/meson-g12b-gsking-x.dts | 5 +++++ - arch/arm64/boot/dts/amlogic/meson-g12b-gtking-pro.dts | 5 +++++ - arch/arm64/boot/dts/amlogic/meson-g12b-gtking.dts | 5 +++++ - 3 files changed, 15 insertions(+) - -diff --git a/arch/arm64/boot/dts/amlogic/meson-g12b-gsking-x.dts b/arch/arm64/boot/dts/amlogic/meson-g12b-gsking-x.dts -index 6c7bfacbad78..93c7acccf5be 100644 ---- a/arch/arm64/boot/dts/amlogic/meson-g12b-gsking-x.dts -+++ b/arch/arm64/boot/dts/amlogic/meson-g12b-gsking-x.dts -@@ -20,6 +20,11 @@ - rtc1 = &vrtc; - }; - -+ memory@0 { -+ device_type = "memory"; -+ reg = <0x0 0x0 0x0 0xf0800000>; -+ }; -+ - gpio-keys-polled { - compatible = "gpio-keys-polled"; - #address-cells = <1>; -diff --git a/arch/arm64/boot/dts/amlogic/meson-g12b-gtking-pro.dts b/arch/arm64/boot/dts/amlogic/meson-g12b-gtking-pro.dts -index 707daf92787b..6e1e1a680df0 100644 ---- a/arch/arm64/boot/dts/amlogic/meson-g12b-gtking-pro.dts -+++ b/arch/arm64/boot/dts/amlogic/meson-g12b-gtking-pro.dts -@@ -19,6 +19,11 @@ - rtc1 = &vrtc; - }; - -+ memory@0 { -+ device_type = "memory"; -+ reg = <0x0 0x0 0x0 0xf0800000>; -+ }; -+ - gpio-keys-polled { - compatible = "gpio-keys-polled"; - #address-cells = <1>; -diff --git a/arch/arm64/boot/dts/amlogic/meson-g12b-gtking.dts b/arch/arm64/boot/dts/amlogic/meson-g12b-gtking.dts -index 5d96c1449050..64039df7e0a4 100644 ---- a/arch/arm64/boot/dts/amlogic/meson-g12b-gtking.dts -+++ b/arch/arm64/boot/dts/amlogic/meson-g12b-gtking.dts -@@ -19,6 +19,11 @@ - rtc1 = &vrtc; - }; - -+ memory@0 { -+ device_type = "memory"; -+ reg = <0x0 0x0 0x0 0xf0800000>; -+ }; -+ - spdif_dit: audio-codec-1 { - #sound-dai-cells = <0>; - compatible = "linux,spdif-dit"; --- -2.17.1 - diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0040-WIP-arm64-dts-meson-add-audio-playback-to-u200.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0059-WIP-arm64-dts-meson-add-audio-playback-to-u200.patch similarity index 96% rename from projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0040-WIP-arm64-dts-meson-add-audio-playback-to-u200.patch rename to projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0059-WIP-arm64-dts-meson-add-audio-playback-to-u200.patch index c41e547572..926e2f66cf 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0040-WIP-arm64-dts-meson-add-audio-playback-to-u200.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0059-WIP-arm64-dts-meson-add-audio-playback-to-u200.patch @@ -1,7 +1,7 @@ -From 17cf7d25e74c64ad18a85aa8f55d0b7f5f8b795f Mon Sep 17 00:00:00 2001 +From c487ac38a4b048fff11eafeff2fe8a0f70d21c2a Mon Sep 17 00:00:00 2001 From: Christian Hewitt Date: Sun, 17 May 2020 05:00:55 +0000 -Subject: [PATCH 40/60] WIP: arm64: dts: meson: add audio playback to u200 +Subject: [PATCH 59/71] WIP: arm64: dts: meson: add audio playback to u200 Add initial support limited to HDMI i2s and SPDIF (LPCM). diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0060-WIP-arm64-dts-meson-add-Headphone-output-to-Beelink-.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0060-WIP-arm64-dts-meson-add-Headphone-output-to-Beelink-.patch new file mode 100644 index 0000000000..e60466e389 --- /dev/null +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0060-WIP-arm64-dts-meson-add-Headphone-output-to-Beelink-.patch @@ -0,0 +1,215 @@ +From 16039c4b37059281a40066a0d07a6553b53bb28b Mon Sep 17 00:00:00 2001 +From: Christian Hewitt +Date: Sat, 27 Nov 2021 13:50:06 +0000 +Subject: [PATCH 60/71] WIP: arm64: dts: meson: add Headphone output to Beelink + GT-King + +Add support for the Headphone audio DAC built-in to the S922X chip. + +Signed-off-by: Christian Hewitt +--- + .../boot/dts/amlogic/meson-g12b-gtking.dts | 120 +++++++++++++++++- + 1 file changed, 113 insertions(+), 7 deletions(-) + +diff --git a/arch/arm64/boot/dts/amlogic/meson-g12b-gtking.dts b/arch/arm64/boot/dts/amlogic/meson-g12b-gtking.dts +index 5d96c1449050..a441975cbfb0 100644 +--- a/arch/arm64/boot/dts/amlogic/meson-g12b-gtking.dts ++++ b/arch/arm64/boot/dts/amlogic/meson-g12b-gtking.dts +@@ -8,6 +8,7 @@ + /dts-v1/; + + #include "meson-g12b-w400.dtsi" ++#include + #include + + / { +@@ -29,14 +30,37 @@ + sound { + compatible = "amlogic,axg-sound-card"; + model = "GTKING"; +- audio-aux-devs = <&tdmout_b>; ++ audio-widgets = "Line", "Lineout"; ++ audio-aux-devs = <&tdmout_b>, <&tdmout_c>, ++ <&tdmin_a>, <&tdmin_b>, <&tdmin_c>; + audio-routing = "TDMOUT_B IN 0", "FRDDR_A OUT 1", + "TDMOUT_B IN 1", "FRDDR_B OUT 1", + "TDMOUT_B IN 2", "FRDDR_C OUT 1", + "TDM_B Playback", "TDMOUT_B OUT", ++ "TDMOUT_C IN 0", "FRDDR_A OUT 2", ++ "TDMOUT_C IN 1", "FRDDR_B OUT 2", ++ "TDMOUT_C IN 2", "FRDDR_C OUT 2", ++ "TDM_C Playback", "TDMOUT_C OUT", ++ "TDMIN_A IN 4", "TDM_B Loopback", ++ "TDMIN_B IN 4", "TDM_B Loopback", ++ "TDMIN_C IN 4", "TDM_B Loopback", ++ "TDMIN_A IN 5", "TDM_C Loopback", ++ "TDMIN_B IN 5", "TDM_C Loopback", ++ "TDMIN_C IN 5", "TDM_C Loopback", ++ "TODDR_A IN 0", "TDMIN_A OUT", ++ "TODDR_B IN 0", "TDMIN_A OUT", ++ "TODDR_C IN 0", "TDMIN_A OUT", ++ "TODDR_A IN 1", "TDMIN_B OUT", ++ "TODDR_B IN 1", "TDMIN_B OUT", ++ "TODDR_C IN 1", "TDMIN_B OUT", ++ "TODDR_A IN 2", "TDMIN_C OUT", ++ "TODDR_B IN 2", "TDMIN_C OUT", ++ "TODDR_C IN 2", "TDMIN_C OUT", + "SPDIFOUT IN 0", "FRDDR_A OUT 3", + "SPDIFOUT IN 1", "FRDDR_B OUT 3", +- "SPDIFOUT IN 2", "FRDDR_C OUT 3"; ++ "SPDIFOUT IN 2", "FRDDR_C OUT 3", ++ "Lineout", "ACODEC LOLP", ++ "Lineout", "ACODEC LORP"; + + assigned-clocks = <&clkc CLKID_MPLL2>, + <&clkc CLKID_MPLL0>, +@@ -59,8 +83,20 @@ + sound-dai = <&frddr_c>; + }; + +- /* 8ch hdmi interface */ + dai-link-3 { ++ sound-dai = <&toddr_a>; ++ }; ++ ++ dai-link-4 { ++ sound-dai = <&toddr_b>; ++ }; ++ ++ dai-link-5 { ++ sound-dai = <&toddr_c>; ++ }; ++ ++ /* 8ch hdmi interface */ ++ dai-link-6 { + sound-dai = <&tdmif_b>; + dai-format = "i2s"; + dai-tdm-slot-tx-mask-0 = <1 1>; +@@ -69,13 +105,17 @@ + dai-tdm-slot-tx-mask-3 = <1 1>; + mclk-fs = <256>; + +- codec { ++ codec-0 { + sound-dai = <&tohdmitx TOHDMITX_I2S_IN_B>; + }; ++ ++ codec-1 { ++ sound-dai = <&toacodec TOACODEC_IN_B>; ++ }; + }; + + /* spdif hdmi or toslink interface */ +- dai-link-4 { ++ dai-link-7 { + sound-dai = <&spdifout>; + + codec-0 { +@@ -88,7 +128,7 @@ + }; + + /* spdif hdmi interface */ +- dai-link-5 { ++ dai-link-8 { + sound-dai = <&spdifout_b>; + + codec { +@@ -96,17 +136,47 @@ + }; + }; + ++ /* i2s jack output interface */ ++ dai-link-9 { ++ sound-dai = <&tdmif_c>; ++ dai-format = "i2s"; ++ dai-tdm-slot-tx-mask-0 = <1 1>; ++ mclk-fs = <256>; ++ ++ codec-0 { ++ sound-dai = <&tohdmitx TOHDMITX_I2S_IN_C>; ++ }; ++ ++ codec-1 { ++ sound-dai = <&toacodec TOACODEC_IN_C>; ++ }; ++ }; ++ + /* hdmi glue */ +- dai-link-6 { ++ dai-link-10 { + sound-dai = <&tohdmitx TOHDMITX_I2S_OUT>; + + codec { + sound-dai = <&hdmi_tx>; + }; + }; ++ ++ /* acodec glue */ ++ dai-link-11 { ++ sound-dai = <&toacodec TOACODEC_OUT>; ++ ++ codec { ++ sound-dai = <&acodec>; ++ }; ++ }; + }; + }; + ++&acodec { ++ AVDD-supply = <&vddao_1v8>; ++ status = "okay"; ++}; ++ + &arb { + status = "okay"; + }; +@@ -154,10 +224,46 @@ + status = "okay"; + }; + ++&tdmif_c { ++ status = "okay"; ++}; ++ ++&tdmin_a { ++ status = "okay"; ++}; ++ ++&tdmin_b { ++ status = "okay"; ++}; ++ ++&tdmin_c { ++ status = "okay"; ++}; ++ + &tdmout_b { + status = "okay"; + }; + ++&tdmout_c { ++ status = "okay"; ++}; ++ ++&toacodec { ++ status = "okay"; ++}; ++ ++&toddr_a { ++ status = "okay"; ++}; ++ ++&toddr_b { ++ status = "okay"; ++}; ++ ++&toddr_c { ++ status = "okay"; ++}; ++ + &tohdmitx { + status = "okay"; + }; +-- +2.17.1 + diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0041-WIP-ASoC-hdmi-codec-reorder-channel-allocation-list.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0061-WIP-ASoC-hdmi-codec-reorder-channel-allocation-list.patch similarity index 98% rename from projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0041-WIP-ASoC-hdmi-codec-reorder-channel-allocation-list.patch rename to projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0061-WIP-ASoC-hdmi-codec-reorder-channel-allocation-list.patch index 1ae1773a28..2485fbbd41 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0041-WIP-ASoC-hdmi-codec-reorder-channel-allocation-list.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0061-WIP-ASoC-hdmi-codec-reorder-channel-allocation-list.patch @@ -1,7 +1,7 @@ -From 6624d186fdaedc4c3795b741b202987d63e81691 Mon Sep 17 00:00:00 2001 +From 3a8ae6a8dcc4b3f1aa5329f45b476012ff61f19b Mon Sep 17 00:00:00 2001 From: Jonas Karlman Date: Sun, 23 Dec 2018 02:24:38 +0100 -Subject: [PATCH 41/60] WIP: ASoC: hdmi-codec: reorder channel allocation list +Subject: [PATCH 61/71] WIP: ASoC: hdmi-codec: reorder channel allocation list Wrong channel allocation is selected by hdmi_codec_get_ch_alloc_table_idx(). diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0044-WIP-ALSA-pcm-fix-ELD-constraints-for-some-compressed.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0062-WIP-ALSA-pcm-fix-ELD-constraints-for-some-compressed.patch similarity index 94% rename from projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0044-WIP-ALSA-pcm-fix-ELD-constraints-for-some-compressed.patch rename to projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0062-WIP-ALSA-pcm-fix-ELD-constraints-for-some-compressed.patch index 5783b26622..84e536eadf 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0044-WIP-ALSA-pcm-fix-ELD-constraints-for-some-compressed.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0062-WIP-ALSA-pcm-fix-ELD-constraints-for-some-compressed.patch @@ -1,7 +1,7 @@ -From 2ddece0262c3fae2df9b3579b572936bc5491534 Mon Sep 17 00:00:00 2001 +From 991a35ebc7670e8b11b52508a5743b832a9cfcad Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Fri, 19 Mar 2021 12:14:17 +0100 -Subject: [PATCH 44/60] WIP: ALSA: pcm: fix ELD constraints for some compressed +Subject: [PATCH 62/71] WIP: ALSA: pcm: fix ELD constraints for some compressed audio formats The SADs of compressed formats like AC3 and DTS contain the channel diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0045-WIP-ALSA-pcm-ignore-formats-not-supported-by-kodi-in.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0063-WIP-ALSA-pcm-ignore-formats-not-supported-by-kodi-in.patch similarity index 90% rename from projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0045-WIP-ALSA-pcm-ignore-formats-not-supported-by-kodi-in.patch rename to projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0063-WIP-ALSA-pcm-ignore-formats-not-supported-by-kodi-in.patch index 17abf1f001..80f11a8a84 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0045-WIP-ALSA-pcm-ignore-formats-not-supported-by-kodi-in.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0063-WIP-ALSA-pcm-ignore-formats-not-supported-by-kodi-in.patch @@ -1,7 +1,7 @@ -From f49ba4a1cbe32f949e68a91f0da55189acccf09e Mon Sep 17 00:00:00 2001 +From f52930b6f738455393e027f217721f62bf76883d Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Sat, 20 Mar 2021 10:48:54 +0100 -Subject: [PATCH 45/60] WIP: ALSA: pcm: ignore formats not supported by kodi in +Subject: [PATCH 63/71] WIP: ALSA: pcm: ignore formats not supported by kodi in ELD constraints Only parse channel info and rates from the PCM SAD. All other SAD diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0052-dt-bindings-arm-amlogic-add-support-for-the-Tanix-TX.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0064-dt-bindings-arm-amlogic-add-support-for-the-Tanix-TX.patch similarity index 80% rename from projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0052-dt-bindings-arm-amlogic-add-support-for-the-Tanix-TX.patch rename to projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0064-dt-bindings-arm-amlogic-add-support-for-the-Tanix-TX.patch index e04b82e9f5..2ee3d11a9b 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0052-dt-bindings-arm-amlogic-add-support-for-the-Tanix-TX.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0064-dt-bindings-arm-amlogic-add-support-for-the-Tanix-TX.patch @@ -1,7 +1,7 @@ -From addcdc01e7d6682d82ca1019f62b6dfcf6f1ac9d Mon Sep 17 00:00:00 2001 +From 6c3ce1b8e6d549b025db0f4bd85469a61f076c39 Mon Sep 17 00:00:00 2001 From: Christian Hewitt Date: Sat, 29 Feb 2020 15:13:02 +0000 -Subject: [PATCH 52/60] dt-bindings: arm: amlogic: add support for the Tanix +Subject: [PATCH 64/71] dt-bindings: arm: amlogic: add support for the Tanix TX5 Max The Oranth (Tanix) TX5 Max is based on the Amlogic U200 reference @@ -13,10 +13,10 @@ Signed-off-by: Christian Hewitt 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/arm/amlogic.yaml b/Documentation/devicetree/bindings/arm/amlogic.yaml -index 903ab1796c07..5554d23362f8 100644 +index 1e792feecc69..a950b66ed9a2 100644 --- a/Documentation/devicetree/bindings/arm/amlogic.yaml +++ b/Documentation/devicetree/bindings/arm/amlogic.yaml -@@ -141,6 +141,7 @@ properties: +@@ -143,6 +143,7 @@ properties: - enum: - amediatech,x96-max - amlogic,u200 diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0053-arm64-dts-meson-add-support-for-the-Tanix-TX5-Max.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0065-arm64-dts-meson-add-support-for-the-Tanix-TX5-Max.patch similarity index 97% rename from projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0053-arm64-dts-meson-add-support-for-the-Tanix-TX5-Max.patch rename to projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0065-arm64-dts-meson-add-support-for-the-Tanix-TX5-Max.patch index 20ceda8956..dd702ca255 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0053-arm64-dts-meson-add-support-for-the-Tanix-TX5-Max.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0065-arm64-dts-meson-add-support-for-the-Tanix-TX5-Max.patch @@ -1,7 +1,7 @@ -From e7614444f2c3b7b529d7fbf0528aafa3f0d3dc30 Mon Sep 17 00:00:00 2001 +From dc529eb2c131c57255a8cf67485379bce225bb07 Mon Sep 17 00:00:00 2001 From: Christian Hewitt Date: Sun, 20 Oct 2019 04:06:59 +0000 -Subject: [PATCH 53/60] arm64: dts: meson: add support for the Tanix TX5 Max +Subject: [PATCH 65/71] arm64: dts: meson: add support for the Tanix TX5 Max The Tanix TX5 Max is based on the Amlogic U200 reference design using the S905X2 chipset. Hardware specification: @@ -25,11 +25,11 @@ Signed-off-by: Christian Hewitt create mode 100644 arch/arm64/boot/dts/amlogic/meson-g12a-tanix-tx5max.dts diff --git a/arch/arm64/boot/dts/amlogic/Makefile b/arch/arm64/boot/dts/amlogic/Makefile -index 60a12b6d560a..9566cfdbb54b 100644 +index 2d7cbebba35a..2bc0ae29937a 100644 --- a/arch/arm64/boot/dts/amlogic/Makefile +++ b/arch/arm64/boot/dts/amlogic/Makefile -@@ -2,6 +2,7 @@ - dtb-$(CONFIG_ARCH_MESON) += meson-axg-s400.dtb +@@ -3,6 +3,7 @@ dtb-$(CONFIG_ARCH_MESON) += meson-axg-s400.dtb + dtb-$(CONFIG_ARCH_MESON) += meson-axg-jethome-jethub-j100.dtb dtb-$(CONFIG_ARCH_MESON) += meson-g12a-radxa-zero.dtb dtb-$(CONFIG_ARCH_MESON) += meson-g12a-sei510.dtb +dtb-$(CONFIG_ARCH_MESON) += meson-g12a-tanix-tx5max.dtb diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0054-arm64-dts-meson-add-multiple-MeCool-device-trees.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0066-arm64-dts-meson-add-multiple-MeCool-device-trees.patch similarity index 95% rename from projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0054-arm64-dts-meson-add-multiple-MeCool-device-trees.patch rename to projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0066-arm64-dts-meson-add-multiple-MeCool-device-trees.patch index 074dc01bbd..d129e94681 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0054-arm64-dts-meson-add-multiple-MeCool-device-trees.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0066-arm64-dts-meson-add-multiple-MeCool-device-trees.patch @@ -1,7 +1,7 @@ -From 59d403256f734cb20f89cb0c47f909df3d144e7b Mon Sep 17 00:00:00 2001 +From 32cd01e73f058eeee72638fd3451cb130811c240 Mon Sep 17 00:00:00 2001 From: Christian Hewitt Date: Mon, 21 Oct 2019 03:58:06 +0000 -Subject: [PATCH 54/60] arm64: dts: meson: add multiple MeCool device trees +Subject: [PATCH 66/71] arm64: dts: meson: add multiple MeCool device trees This adds initial device trees for a range of MeCool devices based on various Amlogic GXBB, GXL and GXM reference designs. The current purpose is to allow @@ -24,10 +24,10 @@ Signed-off-by: Christian Hewitt create mode 100644 arch/arm64/boot/dts/amlogic/meson-gxl-s905d-mecool-m8s-plus.dts diff --git a/arch/arm64/boot/dts/amlogic/Makefile b/arch/arm64/boot/dts/amlogic/Makefile -index 9566cfdbb54b..a8213077ed67 100644 +index 2bc0ae29937a..6cc035471832 100644 --- a/arch/arm64/boot/dts/amlogic/Makefile +++ b/arch/arm64/boot/dts/amlogic/Makefile -@@ -14,6 +14,8 @@ dtb-$(CONFIG_ARCH_MESON) += meson-g12b-odroid-n2.dtb +@@ -15,6 +15,8 @@ dtb-$(CONFIG_ARCH_MESON) += meson-g12b-odroid-n2.dtb dtb-$(CONFIG_ARCH_MESON) += meson-g12b-odroid-n2-plus.dtb dtb-$(CONFIG_ARCH_MESON) += meson-g12b-ugoos-am6.dtb dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-kii-pro.dtb @@ -36,7 +36,7 @@ index 9566cfdbb54b..a8213077ed67 100644 dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-nanopi-k2.dtb dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-nexbox-a95x.dtb dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-odroidc2.dtb -@@ -31,7 +33,10 @@ dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905x-libretech-cc.dtb +@@ -32,7 +34,10 @@ dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905x-libretech-cc.dtb dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905x-libretech-cc-v2.dtb dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905x-nexbox-a95x.dtb dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905x-p212.dtb diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0055-dt-bindings-arm-amlogic-add-support-for-Minix-NEO-U1.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0067-dt-bindings-arm-amlogic-add-support-for-Minix-NEO-U1.patch similarity index 83% rename from projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0055-dt-bindings-arm-amlogic-add-support-for-Minix-NEO-U1.patch rename to projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0067-dt-bindings-arm-amlogic-add-support-for-Minix-NEO-U1.patch index 5ba088389e..15808b9bd1 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0055-dt-bindings-arm-amlogic-add-support-for-Minix-NEO-U1.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0067-dt-bindings-arm-amlogic-add-support-for-Minix-NEO-U1.patch @@ -1,7 +1,7 @@ -From 969f5a6bcf04e02bdfbf39d062d22ceee09957ce Mon Sep 17 00:00:00 2001 +From cb41f5c89ebafba2f269df02cbf2827b99c8c51c Mon Sep 17 00:00:00 2001 From: Christian Hewitt Date: Sun, 11 Apr 2021 05:50:13 +0000 -Subject: [PATCH 55/60] dt-bindings: arm: amlogic: add support for Minix NEO-U1 +Subject: [PATCH 67/71] dt-bindings: arm: amlogic: add support for Minix NEO-U1 The Minix NEO-U1 is an Android STB based on the Amlogic P200 (GXBB) reference design with an S905 chip. @@ -12,7 +12,7 @@ Signed-off-by: Christian Hewitt 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/arm/amlogic.yaml b/Documentation/devicetree/bindings/arm/amlogic.yaml -index 5554d23362f8..79b3f93a172d 100644 +index a950b66ed9a2..db0d62d5d37d 100644 --- a/Documentation/devicetree/bindings/arm/amlogic.yaml +++ b/Documentation/devicetree/bindings/arm/amlogic.yaml @@ -58,6 +58,7 @@ properties: diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0056-arm64-dts-meson-add-initial-device-tree-for-Minix-NE.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0068-arm64-dts-meson-add-initial-device-tree-for-Minix-NE.patch similarity index 95% rename from projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0056-arm64-dts-meson-add-initial-device-tree-for-Minix-NE.patch rename to projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0068-arm64-dts-meson-add-initial-device-tree-for-Minix-NE.patch index d8c5ff68b1..a3780e0f8a 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0056-arm64-dts-meson-add-initial-device-tree-for-Minix-NE.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0068-arm64-dts-meson-add-initial-device-tree-for-Minix-NE.patch @@ -1,7 +1,7 @@ -From 5525e2ab1a8ac6bf6513bdd7cdf9113df5d18c31 Mon Sep 17 00:00:00 2001 +From 0711b3e9f67f2a091d493d27a7857cd857c9ef9e Mon Sep 17 00:00:00 2001 From: Christian Hewitt Date: Sun, 11 Apr 2021 05:52:14 +0000 -Subject: [PATCH 56/60] arm64: dts: meson: add initial device-tree for Minix +Subject: [PATCH 68/71] arm64: dts: meson: add initial device-tree for Minix NEO-U1 The Minix NEO-U1 is an Android STB based on the Amlogic P200 (GXBB) @@ -30,10 +30,10 @@ Signed-off-by: Christian Hewitt create mode 100644 arch/arm64/boot/dts/amlogic/meson-gxbb-minix-neo-u1.dts diff --git a/arch/arm64/boot/dts/amlogic/Makefile b/arch/arm64/boot/dts/amlogic/Makefile -index a8213077ed67..5f59dc6a8a94 100644 +index 6cc035471832..8f364a784d30 100644 --- a/arch/arm64/boot/dts/amlogic/Makefile +++ b/arch/arm64/boot/dts/amlogic/Makefile -@@ -16,6 +16,7 @@ dtb-$(CONFIG_ARCH_MESON) += meson-g12b-ugoos-am6.dtb +@@ -17,6 +17,7 @@ dtb-$(CONFIG_ARCH_MESON) += meson-g12b-ugoos-am6.dtb dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-kii-pro.dtb dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-mecool-ki-plus.dtb dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-mecool-kii-pro.dtb diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0069-WIP-media-rc-add-keymap-for-Beelink-Mini-MXIII-remot.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0069-WIP-media-rc-add-keymap-for-Beelink-Mini-MXIII-remot.patch new file mode 100644 index 0000000000..5935206e08 --- /dev/null +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0069-WIP-media-rc-add-keymap-for-Beelink-Mini-MXIII-remot.patch @@ -0,0 +1,117 @@ +From 80a1bccaa6581b5bbed3b0727e23faf5c5e992f5 Mon Sep 17 00:00:00 2001 +From: Christian Hewitt +Date: Wed, 8 Dec 2021 15:33:47 +0000 +Subject: [PATCH 69/71] WIP: media: rc: add keymap for Beelink Mini MXIII + remote + +Add a keymap and bindings for the simple IR (NEC) remote used with +the Beelink Mini MXIII Android STB device. + +Signed-off-by: Christian Hewitt +--- + .../devicetree/bindings/media/rc.yaml | 1 + + drivers/media/rc/keymaps/Makefile | 1 + + drivers/media/rc/keymaps/rc-beelink-mxiii.c | 54 +++++++++++++++++++ + include/media/rc-map.h | 1 + + 4 files changed, 57 insertions(+) + create mode 100644 drivers/media/rc/keymaps/rc-beelink-mxiii.c + +diff --git a/Documentation/devicetree/bindings/media/rc.yaml b/Documentation/devicetree/bindings/media/rc.yaml +index d4c541c4b164..ab28159a1768 100644 +--- a/Documentation/devicetree/bindings/media/rc.yaml ++++ b/Documentation/devicetree/bindings/media/rc.yaml +@@ -39,6 +39,7 @@ properties: + - rc-avertv-303 + - rc-azurewave-ad-tu700 + - rc-beelink-gs1 ++ - rc-beelink-mxiii + - rc-behold + - rc-behold-columbus + - rc-budget-ci-old +diff --git a/drivers/media/rc/keymaps/Makefile b/drivers/media/rc/keymaps/Makefile +index 5fe5c9e1a46d..5dc7e2c0e62a 100644 +--- a/drivers/media/rc/keymaps/Makefile ++++ b/drivers/media/rc/keymaps/Makefile +@@ -18,6 +18,7 @@ obj-$(CONFIG_RC_MAP) += rc-adstech-dvb-t-pci.o \ + rc-avertv-303.o \ + rc-azurewave-ad-tu700.o \ + rc-beelink-gs1.o \ ++ rc-beelink-mxiii.o \ + rc-behold.o \ + rc-behold-columbus.o \ + rc-budget-ci-old.o \ +diff --git a/drivers/media/rc/keymaps/rc-beelink-mxiii.c b/drivers/media/rc/keymaps/rc-beelink-mxiii.c +new file mode 100644 +index 000000000000..09b77295e0a3 +--- /dev/null ++++ b/drivers/media/rc/keymaps/rc-beelink-mxiii.c +@@ -0,0 +1,54 @@ ++// SPDX-License-Identifier: GPL-2.0+ ++// ++// Copyright (C) 2019 Christian Hewitt ++ ++#include ++#include ++ ++// ++// Keytable for the Beelink Mini MXIII remote control ++// ++ ++static struct rc_map_table beelink_mxiii[] = { ++ { 0xb2dc, KEY_POWER }, ++ ++ { 0xb288, KEY_MUTE }, ++ { 0xb282, KEY_HOME }, ++ ++ { 0xb2ca, KEY_UP }, ++ { 0xb299, KEY_LEFT }, ++ { 0xb2ce, KEY_OK }, ++ { 0xb2c1, KEY_RIGHT }, ++ { 0xb2d2, KEY_DOWN }, ++ ++ { 0xb2c5, KEY_MENU }, ++ { 0xb29a, KEY_BACK }, ++ ++ { 0xb281, KEY_VOLUMEDOWN }, ++ { 0xb280, KEY_VOLUMEUP }, ++}; ++ ++static struct rc_map_list beelink_mxiii_map = { ++ .map = { ++ .scan = beelink_mxiii, ++ .size = ARRAY_SIZE(beelink_mxiii), ++ .rc_proto = RC_PROTO_NEC, ++ .name = RC_MAP_BEELINK_MXIII, ++ } ++}; ++ ++static int __init init_rc_map_beelink_mxiii(void) ++{ ++ return rc_map_register(&beelink_mxiii_map); ++} ++ ++static void __exit exit_rc_map_beelink_mxiii(void) ++{ ++ rc_map_unregister(&beelink_mxiii_map); ++} ++ ++module_init(init_rc_map_beelink_mxiii) ++module_exit(exit_rc_map_beelink_mxiii) ++ ++MODULE_LICENSE("GPL"); ++MODULE_AUTHOR("Christian Hewitt +Date: Wed, 8 Dec 2021 15:28:50 +0000 +Subject: [PATCH 70/71] WIP: dt-bindings: arm: amlogic: add support for Beelink + Mini MXIII + +The Beelink Mini MXIII is an Android STB based on the Amlogic P200 +(GXBB) reference design with an S905 chip. + +Signed-off-by: Christian Hewitt +--- + Documentation/devicetree/bindings/arm/amlogic.yaml | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/Documentation/devicetree/bindings/arm/amlogic.yaml b/Documentation/devicetree/bindings/arm/amlogic.yaml +index db0d62d5d37d..f57fdb322d92 100644 +--- a/Documentation/devicetree/bindings/arm/amlogic.yaml ++++ b/Documentation/devicetree/bindings/arm/amlogic.yaml +@@ -56,6 +56,7 @@ properties: + - enum: + - amlogic,p200 + - amlogic,p201 ++ - beelink,mini-mxiii + - friendlyarm,nanopi-k2 + - hardkernel,odroid-c2 + - minix,neo-u1 +-- +2.17.1 + diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0071-WIP-arm64-dts-meson-add-support-for-Beelink-Mini-MXI.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0071-WIP-arm64-dts-meson-add-support-for-Beelink-Mini-MXI.patch new file mode 100644 index 0000000000..f388355cd3 --- /dev/null +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0071-WIP-arm64-dts-meson-add-support-for-Beelink-Mini-MXI.patch @@ -0,0 +1,211 @@ +From e2356dcc2c32e2a33cc5c83a57d5c9169f8d002f Mon Sep 17 00:00:00 2001 +From: Christian Hewitt +Date: Wed, 8 Dec 2021 15:26:00 +0000 +Subject: [PATCH 71/71] WIP: arm64: dts: meson: add support for Beelink Mini + MXIII + +This is a GXBB board that ships in two variants, one with +a Broadcom SDIO module, and a second with RTL8723BS. + +Signed-off-by: Christian Hewitt +--- + arch/arm64/boot/dts/amlogic/Makefile | 1 + + .../amlogic/meson-gxbb-beelink-mini-mxiii.dts | 174 ++++++++++++++++++ + 2 files changed, 175 insertions(+) + create mode 100644 arch/arm64/boot/dts/amlogic/meson-gxbb-beelink-mini-mxiii.dts + +diff --git a/arch/arm64/boot/dts/amlogic/Makefile b/arch/arm64/boot/dts/amlogic/Makefile +index 8f364a784d30..2ae6aaa419ab 100644 +--- a/arch/arm64/boot/dts/amlogic/Makefile ++++ b/arch/arm64/boot/dts/amlogic/Makefile +@@ -15,6 +15,7 @@ dtb-$(CONFIG_ARCH_MESON) += meson-g12b-odroid-n2.dtb + dtb-$(CONFIG_ARCH_MESON) += meson-g12b-odroid-n2-plus.dtb + dtb-$(CONFIG_ARCH_MESON) += meson-g12b-ugoos-am6.dtb + dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-kii-pro.dtb ++dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-beelink-mini-mxiii.dtb + dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-mecool-ki-plus.dtb + dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-mecool-kii-pro.dtb + dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-minix-neo-u1.dtb +diff --git a/arch/arm64/boot/dts/amlogic/meson-gxbb-beelink-mini-mxiii.dts b/arch/arm64/boot/dts/amlogic/meson-gxbb-beelink-mini-mxiii.dts +new file mode 100644 +index 000000000000..53b1b825421b +--- /dev/null ++++ b/arch/arm64/boot/dts/amlogic/meson-gxbb-beelink-mini-mxiii.dts +@@ -0,0 +1,174 @@ ++// SPDX-License-Identifier: (GPL-2.0+ OR MIT) ++/* ++ * Copyright (c) 2021 Christian Hewitt ++ */ ++ ++/dts-v1/; ++ ++#include "meson-gxbb-p20x.dtsi" ++#include ++#include ++#include ++#include ++ ++/ { ++ compatible = "beelink,mini-mxiii", "amlogic,meson-gxbb"; ++ model = "Beelink Mini MXIII"; ++ ++ spdif_dit: audio-codec-0 { ++ #sound-dai-cells = <0>; ++ compatible = "linux,spdif-dit"; ++ status = "okay"; ++ sound-name-prefix = "DIT"; ++ }; ++ ++ leds { ++ compatible = "gpio-leds"; ++ ++ led-power { ++ /* Red in Standby */ ++ color = ; ++ function = LED_FUNCTION_POWER; ++ gpios = <&gpio_ao GPIOAO_13 GPIO_ACTIVE_HIGH>; ++ default-state = "on"; ++ }; ++ }; ++ ++ gpio-keys-polled { ++ compatible = "gpio-keys-polled"; ++ #address-cells = <1>; ++ #size-cells = <0>; ++ poll-interval = <20>; ++ ++ button-reset { ++ label = "reset"; ++ linux,code = ; ++ gpios = <&gpio_ao GPIOAO_3 GPIO_ACTIVE_HIGH>; ++ }; ++ }; ++ ++ avdd18_usb_adc: regulator-avdd18_usb_adc { ++ compatible = "regulator-fixed"; ++ regulator-name = "AVDD18_USB_ADC"; ++ regulator-min-microvolt = <1800000>; ++ regulator-max-microvolt = <1800000>; ++ }; ++ ++ sound { ++ compatible = "amlogic,gx-sound-card"; ++ model = "MINI-MXIII"; ++ assigned-clocks = <&clkc CLKID_MPLL0>, ++ <&clkc CLKID_MPLL1>, ++ <&clkc CLKID_MPLL2>; ++ assigned-clock-parents = <0>, <0>, <0>; ++ assigned-clock-rates = <294912000>, ++ <270950400>, ++ <393216000>; ++ status = "okay"; ++ ++ dai-link-0 { ++ sound-dai = <&aiu AIU_CPU CPU_I2S_FIFO>; ++ }; ++ ++ dai-link-1 { ++ sound-dai = <&aiu AIU_CPU CPU_SPDIF_FIFO>; ++ }; ++ ++ dai-link-2 { ++ sound-dai = <&aiu AIU_CPU CPU_I2S_ENCODER>; ++ dai-format = "i2s"; ++ mclk-fs = <256>; ++ ++ codec-0 { ++ sound-dai = <&aiu AIU_HDMI CTRL_I2S>; ++ }; ++ }; ++ ++ dai-link-3 { ++ sound-dai = <&aiu AIU_CPU CPU_SPDIF_ENCODER>; ++ ++ codec-0 { ++ sound-dai = <&spdif_dit>; ++ }; ++ }; ++ ++ dai-link-4 { ++ sound-dai = <&aiu AIU_HDMI CTRL_OUT>; ++ ++ codec-0 { ++ sound-dai = <&hdmi_tx>; ++ }; ++ }; ++ }; ++}; ++ ++&aiu { ++ status = "okay"; ++ pinctrl-0 = <&spdif_out_y_pins>; ++ pinctrl-names = "default"; ++}; ++ ++ðmac { ++ status = "okay"; ++ pinctrl-0 = <ð_rgmii_pins>; ++ pinctrl-names = "default"; ++ ++ phy-handle = <ð_phy0>; ++ phy-mode = "rgmii"; ++ ++ amlogic,tx-delay-ns = <2>; ++ ++ mdio { ++ compatible = "snps,dwmac-mdio"; ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ eth_phy0: ethernet-phy@0 { ++ /* Realtek RTL8211F (0x001cc916) */ ++ reg = <0>; ++ ++ reset-assert-us = <10000>; ++ reset-deassert-us = <80000>; ++ reset-gpios = <&gpio GPIOZ_14 GPIO_ACTIVE_LOW>; ++ ++ interrupt-parent = <&gpio_intc>; ++ /* MAC_INTR on GPIOZ_15 */ ++ interrupts = <29 IRQ_TYPE_LEVEL_LOW>; ++ }; ++ }; ++}; ++ ++&ir { ++ linux,rc-map-name = "rc-beelink-mxiii"; ++}; ++ ++&saradc { ++ status = "okay"; ++ vref-supply = <&avdd18_usb_adc>; ++}; ++ ++/* Realtek Wireless SDIO Module */ ++&sd_emmc_a { ++ /delete-node/ brcmf; ++ ++ rtl8723bs: wifi@1 { ++ reg = <1>; ++ compatible = "realtek,rtl8723bs"; ++ }; ++}; ++ ++/* Connected to the Bluetooth module */ ++&uart_A { ++ status = "okay"; ++ pinctrl-0 = <&uart_a_pins>, <&uart_a_cts_rts_pins>; ++ pinctrl-names = "default"; ++ uart-has-rtscts; ++ ++ bluetooth { ++ compatible = "realtek,rtl8723bs-bt"; ++ enable-gpios = <&gpio GPIOX_20 GPIO_ACTIVE_HIGH>; ++ max-speed = <2000000>; ++ clocks = <&wifi32k>; ++ clock-names = "lpo"; ++ }; ++}; +-- +2.17.1 + diff --git a/projects/Amlogic/linux/linux.aarch64.conf b/projects/Amlogic/linux/linux.aarch64.conf index d1b12acad4..f7c515a0bb 100644 --- a/projects/Amlogic/linux/linux.aarch64.conf +++ b/projects/Amlogic/linux/linux.aarch64.conf @@ -1,6 +1,6 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/arm64 5.15.5 Kernel Configuration +# Linux/arm64 5.16.0-rc4 Kernel Configuration # CONFIG_CC_VERSION_TEXT="aarch64-none-linux-gnu-gcc.real (GNU Toolchain for the A-profile Architecture 10.3-2021.07 (arm-10.29)) 10.3.1 20210621" CONFIG_CC_IS_GCC=y @@ -57,7 +57,6 @@ CONFIG_GENERIC_IRQ_IPI=y CONFIG_GENERIC_MSI_IRQ=y CONFIG_GENERIC_MSI_IRQ_DOMAIN=y CONFIG_IRQ_MSI_IOMMU=y -CONFIG_HANDLE_DOMAIN_IRQ=y CONFIG_IRQ_FORCED_THREADING=y CONFIG_SPARSE_IRQ=y # CONFIG_GENERIC_IRQ_DEBUGFS is not set @@ -67,6 +66,8 @@ CONFIG_GENERIC_TIME_VSYSCALL=y CONFIG_GENERIC_CLOCKEVENTS=y CONFIG_ARCH_HAS_TICK_BROADCAST=y CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y +CONFIG_HAVE_POSIX_CPU_TIMERS_TASK_WORK=y +CONFIG_POSIX_CPU_TIMERS_TASK_WORK=y # # Timers subsystem @@ -93,6 +94,7 @@ CONFIG_BPF_SYSCALL=y # CONFIG_BPF_PRELOAD is not set # end of BPF subsystem +CONFIG_PREEMPT_BUILD=y # CONFIG_PREEMPT_NONE is not set # CONFIG_PREEMPT_VOLUNTARY is not set CONFIG_PREEMPT=y @@ -145,6 +147,7 @@ CONFIG_GENERIC_SCHED_CLOCK=y CONFIG_ARCH_SUPPORTS_NUMA_BALANCING=y CONFIG_CC_HAS_INT128=y +CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5" CONFIG_ARCH_SUPPORTS_INT128=y CONFIG_CGROUPS=y CONFIG_PAGE_COUNTER=y @@ -352,6 +355,9 @@ CONFIG_ARM64_ERRATUM_1286807=y CONFIG_ARM64_ERRATUM_1463225=y CONFIG_ARM64_ERRATUM_1542419=y CONFIG_ARM64_ERRATUM_1508412=y +CONFIG_ARM64_WORKAROUND_TSB_FLUSH_FAILURE=y +CONFIG_ARM64_ERRATUM_2054223=y +CONFIG_ARM64_ERRATUM_2067961=y # CONFIG_CAVIUM_ERRATUM_22375 is not set # CONFIG_CAVIUM_ERRATUM_23154 is not set # CONFIG_CAVIUM_ERRATUM_27456 is not set @@ -378,6 +384,7 @@ CONFIG_ARM64_PA_BITS=48 # CONFIG_CPU_BIG_ENDIAN is not set CONFIG_CPU_LITTLE_ENDIAN=y CONFIG_SCHED_MC=y +# CONFIG_SCHED_CLUSTER is not set CONFIG_SCHED_SMT=y CONFIG_NR_CPUS=8 CONFIG_HOTPLUG_CPU=y @@ -560,6 +567,7 @@ CONFIG_ARM_SCPI_CPUFREQ=y # end of CPU Frequency scaling # end of CPU Power Management +CONFIG_HAVE_KVM=y # CONFIG_VIRTUALIZATION is not set CONFIG_ARM64_CRYPTO=y CONFIG_CRYPTO_SHA256_ARM64=y @@ -591,6 +599,7 @@ CONFIG_JUMP_LABEL=y CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y CONFIG_HAVE_KPROBES=y CONFIG_HAVE_KRETPROBES=y +CONFIG_ARCH_CORRECT_STACKTRACE_ON_KRETPROBE=y CONFIG_HAVE_FUNCTION_ERROR_INJECTION=y CONFIG_HAVE_NMI=y CONFIG_TRACE_IRQFLAGS_SUPPORT=y @@ -648,6 +657,7 @@ CONFIG_HAVE_ARCH_MMAP_RND_BITS=y CONFIG_ARCH_MMAP_RND_BITS=18 CONFIG_HAVE_ARCH_MMAP_RND_COMPAT_BITS=y CONFIG_ARCH_MMAP_RND_COMPAT_BITS=11 +CONFIG_PAGE_SIZE_LESS_THAN_64KB=y CONFIG_ARCH_WANT_DEFAULT_TOPDOWN_MMAP_LAYOUT=y CONFIG_CLONE_BACKWARDS=y CONFIG_OLD_SIGSUSPEND3=y @@ -666,7 +676,6 @@ CONFIG_HAVE_ARCH_PREL32_RELOCATIONS=y # CONFIG_LOCK_EVENT_COUNTS is not set CONFIG_ARCH_HAS_RELR=y CONFIG_ARCH_WANT_LD_ORPHAN_WARN=y -CONFIG_HAVE_ARCH_PFN_VALID=y CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y # @@ -678,7 +687,6 @@ CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y CONFIG_HAVE_GCC_PLUGINS=y CONFIG_GCC_PLUGINS=y -# CONFIG_GCC_PLUGIN_CYC_COMPLEXITY is not set # CONFIG_GCC_PLUGIN_LATENT_ENTROPY is not set # CONFIG_GCC_PLUGIN_RANDSTRUCT is not set # end of General architecture-dependent options @@ -848,6 +856,7 @@ CONFIG_ARCH_HAS_PTE_SPECIAL=y CONFIG_NET=y CONFIG_COMPAT_NETLINK_MESSAGES=y CONFIG_NET_INGRESS=y +CONFIG_NET_EGRESS=y CONFIG_SKB_EXTENSIONS=y # @@ -955,6 +964,7 @@ CONFIG_BRIDGE_NETFILTER=m # Core Netfilter Configuration # CONFIG_NETFILTER_INGRESS=y +CONFIG_NETFILTER_EGRESS=y CONFIG_NETFILTER_NETLINK=m CONFIG_NETFILTER_FAMILY_BRIDGE=y # CONFIG_NETFILTER_NETLINK_ACCT is not set @@ -1637,7 +1647,6 @@ CONFIG_OF_KOBJ=y CONFIG_OF_DYNAMIC=y CONFIG_OF_ADDRESS=y CONFIG_OF_IRQ=y -CONFIG_OF_NET=y CONFIG_OF_RESERVED_MEM=y CONFIG_OF_RESOLVE=y CONFIG_OF_OVERLAY=y @@ -1648,7 +1657,6 @@ CONFIG_CDROM=y # CONFIG_BLK_DEV_PCIESSD_MTIP32XX is not set CONFIG_BLK_DEV_LOOP=y CONFIG_BLK_DEV_LOOP_MIN_COUNT=0 -# CONFIG_BLK_DEV_CRYPTOLOOP is not set # CONFIG_BLK_DEV_DRBD is not set CONFIG_BLK_DEV_NBD=y # CONFIG_BLK_DEV_SX8 is not set @@ -1796,6 +1804,7 @@ CONFIG_ISCSI_BOOT_SYSFS=y # CONFIG_SCSI_MPI3MR is not set # CONFIG_SCSI_SMARTPQI is not set # CONFIG_SCSI_UFSHCD is not set +# CONFIG_SCSI_UFS_HWMON is not set # CONFIG_SCSI_HPTIOP is not set # CONFIG_SCSI_MYRB is not set # CONFIG_SCSI_MYRS is not set @@ -1944,6 +1953,7 @@ CONFIG_MACVLAN=m # CONFIG_GENEVE is not set # CONFIG_BAREUDP is not set # CONFIG_GTP is not set +# CONFIG_AMT is not set # CONFIG_MACSEC is not set CONFIG_NETCONSOLE=y CONFIG_NETCONSOLE_DYNAMIC=y @@ -1965,6 +1975,8 @@ CONFIG_ETHERNET=y # CONFIG_NET_VENDOR_AMD is not set # CONFIG_NET_VENDOR_AQUANTIA is not set # CONFIG_NET_VENDOR_ARC is not set +CONFIG_NET_VENDOR_ASIX=y +# CONFIG_SPI_AX88796C is not set # CONFIG_NET_VENDOR_ATHEROS is not set # CONFIG_NET_VENDOR_BROADCOM is not set # CONFIG_NET_VENDOR_BROCADE is not set @@ -2290,6 +2302,7 @@ CONFIG_MT7663U=m CONFIG_MT7663S=m # CONFIG_MT7915E is not set # CONFIG_MT7921E is not set +# CONFIG_MT7921S is not set CONFIG_WLAN_VENDOR_MICROCHIP=y # CONFIG_WILC1000_SDIO is not set # CONFIG_WILC1000_SPI is not set @@ -2340,6 +2353,7 @@ CONFIG_RTW88=m # CONFIG_RTW88_8822CE is not set # CONFIG_RTW88_8723DE is not set # CONFIG_RTW88_8821CE is not set +# CONFIG_RTW89 is not set CONFIG_WLAN_VENDOR_RSI=y # CONFIG_RSI_91X is not set # CONFIG_WLAN_VENDOR_ST is not set @@ -2418,6 +2432,7 @@ CONFIG_KEYBOARD_GPIO_POLLED=m # CONFIG_KEYBOARD_XTKBD is not set # CONFIG_KEYBOARD_CAP11XX is not set # CONFIG_KEYBOARD_BCM is not set +# CONFIG_KEYBOARD_CYPRESS_SF is not set CONFIG_INPUT_MOUSE=y # CONFIG_MOUSE_PS2 is not set # CONFIG_MOUSE_SERIAL is not set @@ -2735,6 +2750,7 @@ CONFIG_SPI_MEM=y # CONFIG_SPI_BITBANG is not set # CONFIG_SPI_CADENCE is not set # CONFIG_SPI_CADENCE_QUADSPI is not set +# CONFIG_SPI_CADENCE_XSPI is not set # CONFIG_SPI_DESIGNWARE is not set # CONFIG_SPI_NXP_FLEXSPI is not set # CONFIG_SPI_GPIO is not set @@ -3029,6 +3045,7 @@ CONFIG_SENSORS_GPIO_FAN=m # CONFIG_SENSORS_MAX197 is not set # CONFIG_SENSORS_MAX31722 is not set # CONFIG_SENSORS_MAX31730 is not set +# CONFIG_SENSORS_MAX6620 is not set # CONFIG_SENSORS_MAX6621 is not set # CONFIG_SENSORS_MAX6639 is not set # CONFIG_SENSORS_MAX6642 is not set @@ -3235,7 +3252,6 @@ CONFIG_MFD_CORE=y # CONFIG_HTC_I2CPLD is not set # CONFIG_LPC_ICH is not set # CONFIG_LPC_SCH is not set -# CONFIG_MFD_INTEL_PMT is not set # CONFIG_MFD_IQS62X is not set # CONFIG_MFD_JANZ_CMODIO is not set # CONFIG_MFD_KEMPLD is not set @@ -3291,7 +3307,6 @@ CONFIG_MFD_SYSCON=y # CONFIG_MFD_TPS65910 is not set # CONFIG_MFD_TPS65912_I2C is not set # CONFIG_MFD_TPS65912_SPI is not set -# CONFIG_MFD_TPS80031 is not set # CONFIG_TWL4030_CORE is not set # CONFIG_TWL6040_CORE is not set # CONFIG_MFD_WL1273_CORE is not set @@ -3425,11 +3440,14 @@ CONFIG_IR_GPIO_CIR=m CONFIG_IR_GPIO_TX=m CONFIG_IR_PWM_TX=m # CONFIG_IR_SERIAL is not set -# CONFIG_IR_SIR is not set CONFIG_RC_XBOX_DVD=m # CONFIG_IR_TOY is not set CONFIG_CEC_CORE=y CONFIG_CEC_NOTIFIER=y + +# +# CEC support +# # CONFIG_MEDIA_CEC_RC is not set CONFIG_MEDIA_CEC_SUPPORT=y # CONFIG_CEC_CH7322 is not set @@ -3438,6 +3456,8 @@ CONFIG_CEC_MESON_G12A_AO=y # CONFIG_CEC_GPIO is not set # CONFIG_USB_PULSE8_CEC is not set # CONFIG_USB_RAINSHADOW_CEC is not set +# end of CEC support + CONFIG_MEDIA_SUPPORT=y # CONFIG_MEDIA_SUPPORT_FILTER is not set CONFIG_MEDIA_SUBDRV_AUTOSELECT=y @@ -3755,6 +3775,7 @@ CONFIG_VIDEO_CX25840=m # Camera sensor devices # # CONFIG_VIDEO_HI556 is not set +# CONFIG_VIDEO_HI846 is not set # CONFIG_VIDEO_IMX208 is not set # CONFIG_VIDEO_IMX214 is not set # CONFIG_VIDEO_IMX219 is not set @@ -3790,6 +3811,7 @@ CONFIG_VIDEO_CX25840=m # CONFIG_VIDEO_OV9640 is not set # CONFIG_VIDEO_OV9650 is not set # CONFIG_VIDEO_OV13858 is not set +# CONFIG_VIDEO_OV13B10 is not set # CONFIG_VIDEO_VS6624 is not set # CONFIG_VIDEO_MT9M001 is not set # CONFIG_VIDEO_MT9M032 is not set @@ -4071,6 +4093,7 @@ CONFIG_DRM=y # CONFIG_DRM_DEBUG_SELFTEST is not set CONFIG_DRM_KMS_HELPER=y # CONFIG_DRM_DEBUG_DP_MST_TOPOLOGY_REFS is not set +CONFIG_DRM_DEBUG_MODESET_LOCK=y CONFIG_DRM_FBDEV_EMULATION=y CONFIG_DRM_FBDEV_OVERALLOC=100 # CONFIG_DRM_FBDEV_LEAK_PHYS_SMEM is not set @@ -4119,6 +4142,7 @@ CONFIG_DRM_PANEL=y # CONFIG_DRM_PANEL_ARM_VERSATILE is not set # CONFIG_DRM_PANEL_LVDS is not set # CONFIG_DRM_PANEL_SIMPLE is not set +# CONFIG_DRM_PANEL_EDP is not set # CONFIG_DRM_PANEL_ILITEK_IL9322 is not set # CONFIG_DRM_PANEL_ILITEK_ILI9341 is not set # CONFIG_DRM_PANEL_INNOLUX_EJ030NA is not set @@ -4130,6 +4154,7 @@ CONFIG_DRM_PANEL=y # CONFIG_DRM_PANEL_OLIMEX_LCD_OLINUXINO is not set # CONFIG_DRM_PANEL_SAMSUNG_ATNA33XC20 is not set # CONFIG_DRM_PANEL_SAMSUNG_DB7430 is not set +# CONFIG_DRM_PANEL_SAMSUNG_S6D27A1 is not set # CONFIG_DRM_PANEL_SAMSUNG_S6E63M0 is not set # CONFIG_DRM_PANEL_SAMSUNG_S6E88A0_AMS452EF01 is not set # CONFIG_DRM_PANEL_SAMSUNG_S6E8AA0 is not set @@ -4452,6 +4477,8 @@ CONFIG_SND_SOC_I2C_AND_SPI=y # CONFIG_SND_SOC_CS35L34 is not set # CONFIG_SND_SOC_CS35L35 is not set # CONFIG_SND_SOC_CS35L36 is not set +# CONFIG_SND_SOC_CS35L41_SPI is not set +# CONFIG_SND_SOC_CS35L41_I2C is not set # CONFIG_SND_SOC_CS42L42 is not set # CONFIG_SND_SOC_CS42L51_I2C is not set # CONFIG_SND_SOC_CS42L52 is not set @@ -4464,7 +4491,6 @@ CONFIG_SND_SOC_I2C_AND_SPI=y # CONFIG_SND_SOC_CS4271_SPI is not set # CONFIG_SND_SOC_CS42XX8_I2C is not set # CONFIG_SND_SOC_CS43130 is not set -CONFIG_SND_SOC_CS4334=y # CONFIG_SND_SOC_CS4341 is not set # CONFIG_SND_SOC_CS4349 is not set # CONFIG_SND_SOC_CS53L30 is not set @@ -4486,6 +4512,7 @@ CONFIG_SND_SOC_MAX98357A=y # CONFIG_SND_SOC_MAX98504 is not set # CONFIG_SND_SOC_MAX9867 is not set # CONFIG_SND_SOC_MAX98927 is not set +# CONFIG_SND_SOC_MAX98520 is not set # CONFIG_SND_SOC_MAX98373_I2C is not set # CONFIG_SND_SOC_MAX98390 is not set # CONFIG_SND_SOC_MAX9860 is not set @@ -4510,6 +4537,7 @@ CONFIG_SND_SOC_MAX98357A=y # CONFIG_SND_SOC_RT5631 is not set # CONFIG_SND_SOC_RT5640 is not set # CONFIG_SND_SOC_RT5659 is not set +# CONFIG_SND_SOC_RT9120 is not set # CONFIG_SND_SOC_SGTL5000 is not set CONFIG_SND_SOC_SIMPLE_AMPLIFIER=y # CONFIG_SND_SOC_SIMPLE_MUX is not set @@ -4576,6 +4604,7 @@ CONFIG_SND_SOC_SPDIF=y # CONFIG_SND_SOC_NAU8315 is not set # CONFIG_SND_SOC_NAU8540 is not set # CONFIG_SND_SOC_NAU8810 is not set +# CONFIG_SND_SOC_NAU8821 is not set # CONFIG_SND_SOC_NAU8822 is not set # CONFIG_SND_SOC_NAU8824 is not set # CONFIG_SND_SOC_TPA6130A2 is not set @@ -4588,6 +4617,8 @@ CONFIG_SND_SOC_SPDIF=y CONFIG_SND_SIMPLE_CARD_UTILS=y CONFIG_SND_SIMPLE_CARD=y CONFIG_SND_AUDIO_GRAPH_CARD=y +# CONFIG_SND_AUDIO_GRAPH_CARD2 is not set +# CONFIG_SND_TEST_COMPONENT is not set # # HID support @@ -4640,6 +4671,7 @@ CONFIG_HID_KYE=y # CONFIG_HID_UCLOGIC is not set # CONFIG_HID_WALTOP is not set # CONFIG_HID_VIEWSONIC is not set +# CONFIG_HID_XIAOMI is not set CONFIG_HID_GYRATION=y # CONFIG_HID_ICADE is not set # CONFIG_HID_ITE is not set @@ -4663,6 +4695,7 @@ CONFIG_LOGIWHEELS_FF=y CONFIG_HID_MICROSOFT=y CONFIG_HID_MONTEREY=y CONFIG_HID_MULTITOUCH=m +# CONFIG_HID_NINTENDO is not set # CONFIG_HID_NTI is not set # CONFIG_HID_NTRIG is not set CONFIG_HID_ORTEK=y @@ -4672,7 +4705,6 @@ CONFIG_HID_PENMOUNT=y CONFIG_HID_PETALYNX=y # CONFIG_HID_PICOLCD is not set # CONFIG_HID_PLANTRONICS is not set -# CONFIG_HID_PLAYSTATION is not set # CONFIG_HID_PRIMAX is not set # CONFIG_HID_RETRODE is not set # CONFIG_HID_ROCCAT is not set @@ -5268,10 +5300,9 @@ CONFIG_RTLLIB_CRYPTO_CCMP=m CONFIG_RTLLIB_CRYPTO_TKIP=m CONFIG_RTLLIB_CRYPTO_WEP=m # CONFIG_RTL8192E is not set -# CONFIG_RTL8723BS is not set +CONFIG_RTL8723BS=m # CONFIG_R8712U is not set CONFIG_R8188EU=m -# CONFIG_88EU_AP_MODE is not set # CONFIG_RTS5208 is not set # CONFIG_VT6655 is not set # CONFIG_VT6656 is not set @@ -5365,7 +5396,7 @@ CONFIG_COMMON_CLK=y # # Clock driver for ARM Reference designs # -# CONFIG_ICST is not set +# CONFIG_CLK_ICST is not set # CONFIG_CLK_SP810 is not set # end of Clock driver for ARM Reference designs @@ -5570,8 +5601,12 @@ CONFIG_IIO_CONSUMERS_PER_TRIGGER=2 # # CONFIG_ADIS16201 is not set # CONFIG_ADIS16209 is not set +# CONFIG_ADXL313_I2C is not set +# CONFIG_ADXL313_SPI is not set # CONFIG_ADXL345_I2C is not set # CONFIG_ADXL345_SPI is not set +# CONFIG_ADXL355_I2C is not set +# CONFIG_ADXL355_SPI is not set # CONFIG_ADXL372_SPI is not set # CONFIG_ADXL372_I2C is not set # CONFIG_BMA180 is not set @@ -5699,10 +5734,12 @@ CONFIG_MESON_SARADC=y # CONFIG_IAQCORE is not set # CONFIG_PMS7003 is not set # CONFIG_SCD30_CORE is not set +# CONFIG_SCD4X is not set # CONFIG_SENSIRION_SGP30 is not set # CONFIG_SENSIRION_SGP40 is not set # CONFIG_SPS30_I2C is not set # CONFIG_SPS30_SERIAL is not set +# CONFIG_SENSEAIR_SUNRISE_CO2 is not set # CONFIG_VZ89X is not set # end of Chemical Sensors @@ -5782,6 +5819,7 @@ CONFIG_MESON_SARADC=y # # CONFIG_ADF4350 is not set # CONFIG_ADF4371 is not set +# CONFIG_ADRF6780 is not set # end of Phase-Locked Loop (PLL) frequency synthesizers # end of Frequency Synthesizers DDS/PLL @@ -6024,6 +6062,7 @@ CONFIG_MESON_SARADC=y # CONFIG_TSYS01 is not set # CONFIG_TSYS02D is not set # CONFIG_MAX31856 is not set +# CONFIG_MAX31865 is not set # end of Temperature sensors # CONFIG_NTB is not set @@ -6072,7 +6111,13 @@ CONFIG_PHY_MESON_G12A_USB3_PCIE=y CONFIG_PHY_MESON_AXG_PCIE=y CONFIG_PHY_MESON_AXG_MIPI_PCIE_ANALOG=y CONFIG_PHY_MESON_AXG_MIPI_DPHY=y + +# +# PHY drivers for Broadcom platforms +# # CONFIG_BCM_KONA_USB2_PHY is not set +# end of PHY drivers for Broadcom platforms + # CONFIG_PHY_CADENCE_TORRENT is not set # CONFIG_PHY_CADENCE_DPHY is not set # CONFIG_PHY_CADENCE_SIERRA is not set @@ -6501,7 +6546,6 @@ CONFIG_CRYPTO_PCRYPT=y CONFIG_CRYPTO_CRYPTD=y # CONFIG_CRYPTO_AUTHENC is not set # CONFIG_CRYPTO_TEST is not set -CONFIG_CRYPTO_SIMD=y CONFIG_CRYPTO_ENGINE=y # @@ -6724,6 +6768,7 @@ CONFIG_XZ_DEC=y # CONFIG_XZ_DEC_ARM is not set # CONFIG_XZ_DEC_ARMTHUMB is not set # CONFIG_XZ_DEC_SPARC is not set +# CONFIG_XZ_DEC_MICROLZMA is not set # CONFIG_XZ_DEC_TEST is not set CONFIG_GENERIC_ALLOCATOR=y CONFIG_XARRAY_MULTI=y @@ -6781,6 +6826,8 @@ CONFIG_FONT_8x8=y CONFIG_FONT_8x16=y CONFIG_SG_POOL=y CONFIG_ARCH_STACKWALK=y +CONFIG_STACKDEPOT=y +CONFIG_STACK_HASH_ORDER=20 CONFIG_SBITMAP=y # end of Library routines