From 8314e2506f4fcec43a908f78d03500c3fa046640 Mon Sep 17 00:00:00 2001 From: Christian Hewitt Date: Tue, 26 Mar 2024 12:43:21 +0000 Subject: [PATCH] linux: update Amlogic to Linux 6.16.y kernel and patches Includes: - drop local rtlwifi patches - Amlogic: disable lock debugging - Amlogic: disable some ARMv8 features not present in Amlogic SoCs Amlogic 64-bit SoC have only ARMv8.1 cores and do not support later rev features. Disable them to save a few KBs from kernel size. - Amlogic: disable unused errata Disable errata for cores not present in Amlogic's SoCs. - Amlogic: set THP to madvise - Amlogic: enable PSCI CPUIdle driver With additional entries in device tree, this can save approximately 30-40mW when idling. - Amlogic: set preemption to voluntary Aligns Amlogic with (most) other LE projects. - Amlogic: increase Linux kernel tick-rate to 300Hz Aligns Amlogic with (most) other projects. - Amlogic: disable SCHED_SMT Amlogic SoCs do not have hyperthreading, disable it to save some space - Amlogic: adjust kernel config for Docker Kernel config adjusted with tools/check_kernel_config script - enable kernel options IP_SET and NETFILTER_XT_SET - enable kernel based RTW88_8821AU and RTW88_8812AU - drop now upstream 6.14 lzma patch - enable kernel options CONFIG_IP_NF_RAW and CONFIG_IP6_NF_RAW Signed-off-by: Christian Hewitt --- packages/linux/package.mk | 4 +- .../linux-999-no-lzma-in-x86-perf-build.patch | 13 - ...LOCAL-set-meson-gx-cma-pool-to-896MB.patch | 6 +- ...OCAL-set-meson-g12-cma-pool-to-896MB.patch | 6 +- ...m64-fix-Kodi-sysinfo-CPU-information.patch | 30 +- ...eson-add-Amlogic-Meson-GX-PM-Suspend.patch | 4 +- ...meson-add-support-for-GX-PM-and-Virt.patch | 6 +- ...meson-add-rtc-vrtc-aliases-to-Khadas.patch | 6 +- ...meson-add-rtc-vrtc-aliases-to-Khadas.patch | 6 +- ...meson-add-rtc-vrtc-aliases-to-Minix-.patch | 4 +- ...-assign-internal-PCM-chmap-ELD-IEC95.patch | 14 +- ...n-vdec-disable-MPEG1-MPEG2-hardware-.patch | 45 +- ...4-dts-meson-g12-common-Set-the-rates.patch | 31 - ...meson-fix-resource-cleanup-in-meson_.patch | 138 ++ ...4-dts-amlogic-replace-underscores-in.patch | 1667 ----------------- ...meson-Avoid-use-after-free-issues-wi.patch | 60 + ...a-si2168-increase-cmd-execution-time.patch | 69 + ...-meson-vdec-esparser-check-parsing-.patch} | 4 +- ...indings-auxdisplay-Add-Titan-Micro-E.patch | 114 -- ...-meson-vdec-implement-10bit-bitstre.patch} | 8 +- ...-ABI-document-tm1628-attribute-displ.patch | 31 - ...ia-meson-vdec-add-HEVC-decode-codec.patch} | 31 +- ...isplay-add-support-for-Titanmec-TM16.patch | 461 ----- ...4-dts-amlogic-sm1-bananapi-lower-SD-.patch | 41 + ...4-dts-meson-gxl-s905w-tx3-mini-add-s.patch | 93 - ...TAINERS-Add-entry-for-tm1628-auxdisp.patch | 32 - ...a-meson-vdec-reintroduce-wiggle-room.patch | 50 + ...-hdmi-codec-reorder-channel-allocati.patch | 203 -- ...on-vdec-fix-memory-leak-of-new_frame.patch | 28 + ...vdec-fix-V4L2_BUF_FLAG_-KEY-P-B-FRAM.patch | 235 +++ ...son-add-Odroid-C2-HiFi-Shield-boards.patch | 949 ++++++++++ ...n-gxl-implement-meson_gxl_phy_resume.patch | 64 + ...indings-usb-Add-the-binding-example-.patch | 120 -- ...d-support-for-2560x1440-resolution-o.patch | 62 + ...4-dts-amlogic-Used-onboard-usb-hub-r.patch | 72 - ...-setup-after-resumption-to-fix-hdmi-.patch | 89 + ...4-dts-meson-radxa-zero2-add-pwm-fan-.patch | 64 - ...weron-off-dw_hdmi-only-if-dw_hdmi-en.patch | 77 + ...ST-v2-meson_plane-Add-error-handling.patch | 53 - ...son-gx-mmc-add-delay-during-poweroff.patch | 24 + ...meson-improve-encoder-probe-initiali.patch | 262 --- ...on-set-p212-p23x-q20x-SDIO-to-100MH.patch} | 12 +- ...meson-vclk-fix-calculation-of-59.94-.patch | 57 - ...on-remove-SDIO-node-from-Khadas-VIM.patch} | 8 +- ...-meson-axg-tdm-interface-fix-mclk-se.patch | 43 - ...on-add-UHS-SDIO-capabilities-to-p21.patch} | 12 +- ...-meson-axg-tdm-interface-add-frame-r.patch | 80 - ...arm-amlogic-add-support-for-Tanix-TX.patch | 28 + ...-meson-axg-tdm-interface-update-erro.patch | 32 - ...son-add-initial-device-tree-for-Tani.patch | 139 ++ ...-meson-axg-spdifin-use-max-width-for.patch | 47 - ...endor-prefixes-add-Titan-Micro-Elec.patch} | 21 +- ...-meson-axg-fifo-take-continuous-rate.patch | 90 - ...vendor-prefixes-add-Fuda-Hisi-Microe.patch | 29 + ...SoC-meson-axg-fifo-use-FIELD-helpers.patch | 176 -- ...auxdisplay-add-Titan-Micro-Electroni.patch | 159 ++ ...panfrost-fix-power-transition-timeou.patch | 58 - ...son-gxl-s905w-tx3-mini-support-the-f.patch | 100 + ...adc-meson-fix-voltage-reference-sele.patch | 66 - ...son-gxm-tx9-pro-support-the-fd628-di.patch | 99 + ...adc-consistently-use-bool-and-enum-i.patch | 142 -- ...son-g12a-x96-max-support-the-fd628-d.patch | 100 + ...adc-meson-simplify-MESON_SAR_ADC_REG.patch | 135 -- ...arm-amlogic-add-support-for-Dreambox.patch | 30 - ...son-add-initial-device-trees-for-Dre.patch | 272 --- ...son-increase-SD-speeds-on-Minix-Neo-.patch | 36 - ...rm64-dts-meson-fixup-Minix-U9-H-wifi.patch | 33 - ...son-drop-broadcom-compatible-from-re.patch | 126 -- ...indings-arm-amlogic-add-OSMC-Vero-4K.patch | 27 - ...s-meson-add-support-for-OSMC-Vero-4K.patch | 259 --- ...arm-amlogic-add-S905L-and-p271-refer.patch | 36 - ...mlogic-meson-gx-socinfo-Add-S905L-ID.patch | 29 - ...iio-adc-amlogic-meson-saradc-Add-GXL.patch | 30 - ...c-meson-add-support-for-the-GXLX-SoC.patch | 97 - ...WIP-arm64-dts-meson-add-p271-support.patch | 73 - projects/Amlogic/linux/linux.aarch64.conf | 1013 +++++++--- 76 files changed, 3389 insertions(+), 5581 deletions(-) delete mode 100644 packages/linux/patches/default/linux-999-no-lzma-in-x86-perf-build.patch delete mode 100644 projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0011-FROMGIT-6.9-arm64-dts-meson-g12-common-Set-the-rates.patch create mode 100644 projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0011-FROMLIST-v1-drm-meson-fix-resource-cleanup-in-meson_.patch delete mode 100644 projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0012-FROMGIT-6.9-arm64-dts-amlogic-replace-underscores-in.patch create mode 100644 projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0012-FROMLIST-v1-drm-meson-Avoid-use-after-free-issues-wi.patch create mode 100644 projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0013-FROMLIST-v2-media-si2168-increase-cmd-execution-time.patch rename projects/Amlogic/devices/AMLGX/patches/linux/{amlogic-0020-FROMLIST-v1-media-meson-vdec-esparser-check-parsing-.patch => amlogic-0014-FROMLIST-v1-media-meson-vdec-esparser-check-parsing-.patch} (93%) delete mode 100644 projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0014-FROMLIST-v5-dt-bindings-auxdisplay-Add-Titan-Micro-E.patch rename projects/Amlogic/devices/AMLGX/patches/linux/{amlogic-0021-FROMLIST-v2-media-meson-vdec-implement-10bit-bitstre.patch => amlogic-0015-FROMLIST-v2-media-meson-vdec-implement-10bit-bitstre.patch} (99%) delete mode 100644 projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0015-FROMLIST-v5-docs-ABI-document-tm1628-attribute-displ.patch rename projects/Amlogic/devices/AMLGX/patches/linux/{amlogic-0022-FROMLIST-v2-media-meson-vdec-add-HEVC-decode-codec.patch => amlogic-0016-FROMLIST-v2-media-meson-vdec-add-HEVC-decode-codec.patch} (98%) delete mode 100644 projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0016-FROMLIST-v5-auxdisplay-add-support-for-Titanmec-TM16.patch create mode 100644 projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0017-FROMLIST-v1-arm64-dts-amlogic-sm1-bananapi-lower-SD-.patch delete mode 100644 projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0017-FROMLIST-v5-arm64-dts-meson-gxl-s905w-tx3-mini-add-s.patch delete mode 100644 projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0018-FROMLIST-v5-MAINTAINERS-Add-entry-for-tm1628-auxdisp.patch create mode 100644 projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0018-WIP-media-meson-vdec-reintroduce-wiggle-room.patch delete mode 100644 projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0019-FROMLIST-v1-ASoC-hdmi-codec-reorder-channel-allocati.patch create mode 100644 projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0019-WIP-media-meson-vdec-fix-memory-leak-of-new_frame.patch create mode 100644 projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0020-WIP-media-meson-vdec-fix-V4L2_BUF_FLAG_-KEY-P-B-FRAM.patch create mode 100644 projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0021-WIP-arm64-dts-meson-add-Odroid-C2-HiFi-Shield-boards.patch create mode 100644 projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0022-WIP-net-phy-meson-gxl-implement-meson_gxl_phy_resume.patch delete mode 100644 projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0023-FROMLIST-v4-dt-bindings-usb-Add-the-binding-example-.patch create mode 100644 projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0023-WIP-drm-meson-add-support-for-2560x1440-resolution-o.patch delete mode 100644 projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0024-FROMLIST-v4-arm64-dts-amlogic-Used-onboard-usb-hub-r.patch create mode 100644 projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0024-WIP-drm-meson-do-setup-after-resumption-to-fix-hdmi-.patch delete mode 100644 projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0025-FROMLIST-v1-arm64-dts-meson-radxa-zero2-add-pwm-fan-.patch create mode 100644 projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0025-WIP-drm-meson-poweron-off-dw_hdmi-only-if-dw_hdmi-en.patch delete mode 100644 projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0026-FROMLIST-v2-meson_plane-Add-error-handling.patch create mode 100644 projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0026-WIP-mmc-meson-gx-mmc-add-delay-during-poweroff.patch delete mode 100644 projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0027-FROMLIST-v1-drm-meson-improve-encoder-probe-initiali.patch rename projects/Amlogic/devices/AMLGX/patches/linux/{amlogic-0043-WIP-arm64-dts-meson-set-p212-p23x-q20x-SDIO-to-100MH.patch => amlogic-0027-WIP-arm64-dts-meson-set-p212-p23x-q20x-SDIO-to-100MH.patch} (93%) delete mode 100644 projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0028-FROMLIST-v1-drm-meson-vclk-fix-calculation-of-59.94-.patch rename projects/Amlogic/devices/AMLGX/patches/linux/{amlogic-0045-WIP-arm64-dts-meson-remove-SDIO-node-from-Khadas-VIM.patch => amlogic-0028-WIP-arm64-dts-meson-remove-SDIO-node-from-Khadas-VIM.patch} (81%) delete mode 100644 projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0029-FROMLIST-v1-ASoC-meson-axg-tdm-interface-fix-mclk-se.patch rename projects/Amlogic/devices/AMLGX/patches/linux/{amlogic-0044-WIP-arm64-dts-meson-add-UHS-SDIO-capabilities-to-p21.patch => amlogic-0029-WIP-arm64-dts-meson-add-UHS-SDIO-capabilities-to-p21.patch} (81%) delete mode 100644 projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0030-FROMLIST-v1-ASoC-meson-axg-tdm-interface-add-frame-r.patch create mode 100644 projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0030-WIP-dt-bindings-arm-amlogic-add-support-for-Tanix-TX.patch delete mode 100644 projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0031-FROMLIST-v1-ASoC-meson-axg-tdm-interface-update-erro.patch create mode 100644 projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0031-WIP-arm64-dts-meson-add-initial-device-tree-for-Tani.patch delete mode 100644 projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0032-FROMLIST-v1-ASoC-meson-axg-spdifin-use-max-width-for.patch rename projects/Amlogic/devices/AMLGX/patches/linux/{amlogic-0013-FROMLIST-v5-dt-bindings-vendor-prefixes-Add-Titan-Mi.patch => amlogic-0032-WIP-dt-bindings-vendor-prefixes-add-Titan-Micro-Elec.patch} (52%) delete mode 100644 projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0033-FROMLIST-v1-ASoC-meson-axg-fifo-take-continuous-rate.patch create mode 100644 projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0033-WIP-dt-bindings-vendor-prefixes-add-Fuda-Hisi-Microe.patch delete mode 100644 projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0034-FROMLIST-v1-ASoC-meson-axg-fifo-use-FIELD-helpers.patch create mode 100644 projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0034-WIP-dt-bindings-auxdisplay-add-Titan-Micro-Electroni.patch delete mode 100644 projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0035-FROMLIST-v1-drm-panfrost-fix-power-transition-timeou.patch create mode 100644 projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0035-WIP-arm64-dts-meson-gxl-s905w-tx3-mini-support-the-f.patch delete mode 100644 projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0036-FROMLIST-v1-iio-adc-meson-fix-voltage-reference-sele.patch create mode 100644 projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0036-WIP-arm64-dts-meson-gxm-tx9-pro-support-the-fd628-di.patch delete mode 100644 projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0037-FROMLIST-v1-iio-adc-consistently-use-bool-and-enum-i.patch create mode 100644 projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0037-WIP-arm64-dts-meson-g12a-x96-max-support-the-fd628-d.patch delete mode 100644 projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0038-FROMLIST-v1-iio-adc-meson-simplify-MESON_SAR_ADC_REG.patch delete mode 100644 projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0039-WIP-dt-bindings-arm-amlogic-add-support-for-Dreambox.patch delete mode 100644 projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0040-WIP-arm64-dts-meson-add-initial-device-trees-for-Dre.patch delete mode 100644 projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0041-WIP-arm64-dts-meson-increase-SD-speeds-on-Minix-Neo-.patch delete mode 100644 projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0042-WIP-arm64-dts-meson-fixup-Minix-U9-H-wifi.patch delete mode 100644 projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0046-WIP-arm64-dts-meson-drop-broadcom-compatible-from-re.patch delete mode 100644 projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0047-WIP-dt-bindings-arm-amlogic-add-OSMC-Vero-4K.patch delete mode 100644 projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0048-WIP-arm64-dts-meson-add-support-for-OSMC-Vero-4K.patch delete mode 100644 projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0049-WIP-dt-bindings-arm-amlogic-add-S905L-and-p271-refer.patch delete mode 100644 projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0050-WIP-soc-amlogic-meson-gx-socinfo-Add-S905L-ID.patch delete mode 100644 projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0051-WIP-dt-bindings-iio-adc-amlogic-meson-saradc-Add-GXL.patch delete mode 100644 projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0052-WIP-iio-adc-meson-add-support-for-the-GXLX-SoC.patch delete mode 100644 projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0053-WIP-arm64-dts-meson-add-p271-support.patch diff --git a/packages/linux/package.mk b/packages/linux/package.mk index 356bc149df..f8fe7d5fee 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="e8f897f4afef0031fe618a8e94127a0934896aba" # 6.8.0 - PKG_SHA256="52608771cc42196f0a7a71a93270a27ca5f7ba1d9280fb398e521b0620a7a3ac" + PKG_VERSION="86731a2a651e58953fc949573895f2fa6d456841" # 6.16-rc3 + PKG_SHA256="008b00968a8bfc0627580b82a2d30c7304336a4f92a58e80cdbc2d4723e01840" PKG_URL="https://github.com/torvalds/linux/archive/${PKG_VERSION}.tar.gz" PKG_SOURCE_NAME="linux-${LINUX}-${PKG_VERSION}.tar.gz" PKG_PATCH_DIRS="default" diff --git a/packages/linux/patches/default/linux-999-no-lzma-in-x86-perf-build.patch b/packages/linux/patches/default/linux-999-no-lzma-in-x86-perf-build.patch deleted file mode 100644 index 676d0d98ca..0000000000 --- a/packages/linux/patches/default/linux-999-no-lzma-in-x86-perf-build.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/tools/perf/Makefile.config b/tools/perf/Makefile.config -index 0294bfb6c5f8..153036bbed7e 100644 ---- a/tools/perf/Makefile.config -+++ b/tools/perf/Makefile.config -@@ -35,7 +35,7 @@ ifeq ($(SRCARCH),x86) - ifeq (${IS_64_BIT}, 1) - CFLAGS += -DHAVE_ARCH_X86_64_SUPPORT -DHAVE_SYSCALL_TABLE -I$(OUTPUT)arch/x86/include/generated - ARCH_INCLUDE = ../../arch/x86/lib/memcpy_64.S ../../arch/x86/lib/memset_64.S -- LIBUNWIND_LIBS = -lunwind-x86_64 -lunwind -llzma -+ LIBUNWIND_LIBS = -lunwind-x86_64 -lunwind - $(call detected,CONFIG_X86_64) - else - LIBUNWIND_LIBS = -lunwind-x86 -llzma -lunwind diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0001-LOCAL-set-meson-gx-cma-pool-to-896MB.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0001-LOCAL-set-meson-gx-cma-pool-to-896MB.patch index eabb3fe385..50d2211b52 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0001-LOCAL-set-meson-gx-cma-pool-to-896MB.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0001-LOCAL-set-meson-gx-cma-pool-to-896MB.patch @@ -1,7 +1,7 @@ -From fa91cacc8756959b9b04b2cd3d369888b9a19e82 Mon Sep 17 00:00:00 2001 +From 9a711d3aca9f7bd053caefec4f1bef07ba1a4817 Mon Sep 17 00:00:00 2001 From: Christian Hewitt Date: Sat, 13 Apr 2019 05:41:51 +0000 -Subject: [PATCH 01/53] LOCAL: set meson-gx cma pool to 896MB +Subject: [PATCH 01/37] LOCAL: set meson-gx cma pool to 896MB This change sets the CMA pool to a larger 896MB! value for vdec use @@ -11,7 +11,7 @@ Signed-off-by: Christian Hewitt 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/arm64/boot/dts/amlogic/meson-gx.dtsi b/arch/arm64/boot/dts/amlogic/meson-gx.dtsi -index 2673f0dbafe7..5f9b0854c201 100644 +index 7d99ca44e660..eebd4a4d388c 100644 --- a/arch/arm64/boot/dts/amlogic/meson-gx.dtsi +++ b/arch/arm64/boot/dts/amlogic/meson-gx.dtsi @@ -58,7 +58,7 @@ secmon_reserved_bl32: secmon@5300000 { diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0002-LOCAL-set-meson-g12-cma-pool-to-896MB.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0002-LOCAL-set-meson-g12-cma-pool-to-896MB.patch index 7fb050f369..c3494a81f2 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0002-LOCAL-set-meson-g12-cma-pool-to-896MB.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0002-LOCAL-set-meson-g12-cma-pool-to-896MB.patch @@ -1,7 +1,7 @@ -From db61fd1f5ac1a4b39f7699ef5583db1464f2a419 Mon Sep 17 00:00:00 2001 +From 5979e28bfa5986d47ba62f147feb5d9b83f16e6d Mon Sep 17 00:00:00 2001 From: Christian Hewitt Date: Wed, 14 Aug 2019 19:58:14 +0000 -Subject: [PATCH 02/53] LOCAL: set meson-g12 cma pool to 896MB +Subject: [PATCH 02/37] LOCAL: set meson-g12 cma pool to 896MB This change sets the CMA pool to a larger 896MB! value for vdec use @@ -11,7 +11,7 @@ Signed-off-by: Christian Hewitt 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 ff68b911b729..f7f8df88d464 100644 +index dcc927a9da80..0b6f13f8911b 100644 --- a/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi +++ b/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi @@ -117,7 +117,7 @@ secmon_reserved_bl32: secmon@5300000 { diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0003-LOCAL-arm64-fix-Kodi-sysinfo-CPU-information.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0003-LOCAL-arm64-fix-Kodi-sysinfo-CPU-information.patch index 33e5b3aefb..879fdcd1c5 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0003-LOCAL-arm64-fix-Kodi-sysinfo-CPU-information.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0003-LOCAL-arm64-fix-Kodi-sysinfo-CPU-information.patch @@ -1,7 +1,7 @@ -From ee6ecf00c056184730623b0a09f8e1ce0adb3d24 Mon Sep 17 00:00:00 2001 +From 3df5b83cf844e053806a57afd5a4af8d11617c5d Mon Sep 17 00:00:00 2001 From: Christian Hewitt Date: Sat, 13 Apr 2019 05:45:18 +0000 -Subject: [PATCH 03/53] LOCAL: arm64: fix Kodi sysinfo CPU information +Subject: [PATCH 03/37] LOCAL: arm64: fix Kodi sysinfo CPU information This allows the CPU information to show in the Kodi sysinfo screen, e.g. @@ -9,23 +9,25 @@ This allows the CPU information to show in the Kodi sysinfo screen, e.g. Signed-off-by: Christian Hewitt --- - arch/arm64/kernel/cpuinfo.c | 3 +-- - 1 file changed, 1 insertion(+), 2 deletions(-) + arch/arm64/kernel/cpuinfo.c | 5 ++--- + 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/arch/arm64/kernel/cpuinfo.c b/arch/arm64/kernel/cpuinfo.c -index 47043c0d95ec..03410a9fac77 100644 +index c1f2b6b04b41..8bbdb64ec3ec 100644 --- a/arch/arm64/kernel/cpuinfo.c +++ b/arch/arm64/kernel/cpuinfo.c -@@ -190,8 +190,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); -- if (compat) -- seq_printf(m, "model name\t: ARMv8 Processor rev %d (%s)\n", -+ seq_printf(m, "model name\t: ARMv8 Processor rev %d (%s)\n", - MIDR_REVISION(midr), COMPAT_ELF_PLATFORM); +@@ -221,9 +221,8 @@ static int c_show(struct seq_file *m, void *v) + * "processor". Give glibc what it expects. + */ + seq_printf(m, "processor\t: %d\n", cpu); +- if (compat) +- seq_printf(m, "model name\t: ARMv8 Processor rev %d (%s)\n", +- MIDR_REVISION(midr), COMPAT_ELF_PLATFORM); ++ seq_printf(m, "model name\t: ARMv8 Processor rev %d (%s)\n", ++ MIDR_REVISION(midr), COMPAT_ELF_PLATFORM); - seq_printf(m, "BogoMIPS\t: %lu.%02lu\n", + seq_printf(m, "BogoMIPS\t: %lu.%02lu\n", + loops_per_jiffy / (500000UL/HZ), -- 2.34.1 diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0004-LOCAL-arm64-meson-add-Amlogic-Meson-GX-PM-Suspend.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0004-LOCAL-arm64-meson-add-Amlogic-Meson-GX-PM-Suspend.patch index 0f6de6fc9b..5111ef0caa 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0004-LOCAL-arm64-meson-add-Amlogic-Meson-GX-PM-Suspend.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0004-LOCAL-arm64-meson-add-Amlogic-Meson-GX-PM-Suspend.patch @@ -1,7 +1,7 @@ -From 18375f3ce86dcec9a07f711b696aefb6fcb79829 Mon Sep 17 00:00:00 2001 +From cacea1a7dcf9e69c3d1cfc1026a05a9332bf9837 Mon Sep 17 00:00:00 2001 From: Neil Armstrong Date: Thu, 3 Nov 2016 15:29:23 +0100 -Subject: [PATCH 04/53] LOCAL: arm64: meson: add Amlogic Meson GX PM Suspend +Subject: [PATCH 04/37] LOCAL: 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-0005-LOCAL-arm64-dts-meson-add-support-for-GX-PM-and-Virt.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0005-LOCAL-arm64-dts-meson-add-support-for-GX-PM-and-Virt.patch index cecc66fa33..84a1cb9201 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0005-LOCAL-arm64-dts-meson-add-support-for-GX-PM-and-Virt.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0005-LOCAL-arm64-dts-meson-add-support-for-GX-PM-and-Virt.patch @@ -1,7 +1,7 @@ -From 346f8f56697d21901ca2c5d48c7beecc654131c0 Mon Sep 17 00:00:00 2001 +From ac95c04240bf6d1f12158f819bb9c0a0d06d6653 Mon Sep 17 00:00:00 2001 From: Neil Armstrong Date: Thu, 3 Nov 2016 15:29:25 +0100 -Subject: [PATCH 05/53] LOCAL: arm64: dts: meson: add support for GX PM and +Subject: [PATCH 05/37] LOCAL: arm64: dts: meson: add support for GX PM and Virtual RTC Signed-off-by: Neil Armstrong @@ -10,7 +10,7 @@ Signed-off-by: Neil Armstrong 1 file changed, 9 insertions(+) diff --git a/arch/arm64/boot/dts/amlogic/meson-gx.dtsi b/arch/arm64/boot/dts/amlogic/meson-gx.dtsi -index 5f9b0854c201..b702a7f7bcf5 100644 +index eebd4a4d388c..260628cf218e 100644 --- a/arch/arm64/boot/dts/amlogic/meson-gx.dtsi +++ b/arch/arm64/boot/dts/amlogic/meson-gx.dtsi @@ -223,6 +223,10 @@ sm: secure-monitor { diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0006-LOCAL-arm64-dts-meson-add-rtc-vrtc-aliases-to-Khadas.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0006-LOCAL-arm64-dts-meson-add-rtc-vrtc-aliases-to-Khadas.patch index 324ef8beed..4c8ab5a200 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0006-LOCAL-arm64-dts-meson-add-rtc-vrtc-aliases-to-Khadas.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0006-LOCAL-arm64-dts-meson-add-rtc-vrtc-aliases-to-Khadas.patch @@ -1,7 +1,7 @@ -From e288d4c79fb45f1af148b279bcfd091f770e9070 Mon Sep 17 00:00:00 2001 +From 3198831b6d71337b85e5011fc820ea13057ab3a6 Mon Sep 17 00:00:00 2001 From: Christian Hewitt Date: Thu, 21 Jan 2021 01:35:36 +0000 -Subject: [PATCH 06/53] LOCAL: arm64: dts: meson: add rtc/vrtc aliases to +Subject: [PATCH 06/37] LOCAL: arm64: dts: meson: add rtc/vrtc aliases to Khadas VIM Add aliases to ensure the vrtc time (which normally proves first) is /dev/rtc1 @@ -13,7 +13,7 @@ Signed-off-by: Christian Hewitt 1 file changed, 2 insertions(+) diff --git a/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-khadas-vim.dts b/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-khadas-vim.dts -index fea65f20523a..dacbca73279c 100644 +index 4e89d6f6bb57..e137ebd48c5e 100644 --- a/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-khadas-vim.dts +++ b/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-khadas-vim.dts @@ -29,6 +29,8 @@ button-function { diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0007-LOCAL-arm64-dts-meson-add-rtc-vrtc-aliases-to-Khadas.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0007-LOCAL-arm64-dts-meson-add-rtc-vrtc-aliases-to-Khadas.patch index 75410562d0..2282fd4014 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0007-LOCAL-arm64-dts-meson-add-rtc-vrtc-aliases-to-Khadas.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0007-LOCAL-arm64-dts-meson-add-rtc-vrtc-aliases-to-Khadas.patch @@ -1,7 +1,7 @@ -From 1ebc6f1a726d896fb8c72ed5e86423ad2485eea1 Mon Sep 17 00:00:00 2001 +From 596472232f2a08c7dd62597c9c041be4333e22b0 Mon Sep 17 00:00:00 2001 From: Christian Hewitt Date: Sat, 6 Nov 2021 13:01:08 +0000 -Subject: [PATCH 07/53] LOCAL: arm64: dts: meson: add rtc/vrtc aliases to +Subject: [PATCH 07/37] LOCAL: arm64: dts: meson: add rtc/vrtc aliases to Khadas VIM2 Add aliases to ensure the vrtc time (which normally proves first) is /dev/rtc1 @@ -13,7 +13,7 @@ Signed-off-by: Christian Hewitt 1 file changed, 2 insertions(+) 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 860f307494c5..cee27e7222c8 100644 +index 2a09b3d550e2..8a89940869b0 100644 --- a/arch/arm64/boot/dts/amlogic/meson-gxm-khadas-vim2.dts +++ b/arch/arm64/boot/dts/amlogic/meson-gxm-khadas-vim2.dts @@ -18,6 +18,8 @@ / { diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0008-LOCAL-arm64-dts-meson-add-rtc-vrtc-aliases-to-Minix-.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0008-LOCAL-arm64-dts-meson-add-rtc-vrtc-aliases-to-Minix-.patch index f409cb8d95..3b0320ff6d 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0008-LOCAL-arm64-dts-meson-add-rtc-vrtc-aliases-to-Minix-.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0008-LOCAL-arm64-dts-meson-add-rtc-vrtc-aliases-to-Minix-.patch @@ -1,7 +1,7 @@ -From 83e3e72c22bd9261d248c2dda723d5fb3abd4ab9 Mon Sep 17 00:00:00 2001 +From a8f90df94245a52d5a0aff58a640b5c86e0ed83c Mon Sep 17 00:00:00 2001 From: Christian Hewitt Date: Mon, 1 Feb 2021 19:27:40 +0000 -Subject: [PATCH 08/53] LOCAL: arm64: dts: meson: add rtc/vrtc aliases to Minix +Subject: [PATCH 08/37] LOCAL: 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-0009-LOCAL-ASoC-meson-assign-internal-PCM-chmap-ELD-IEC95.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0009-LOCAL-ASoC-meson-assign-internal-PCM-chmap-ELD-IEC95.patch index 7149dafbb2..d0b613ea24 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0009-LOCAL-ASoC-meson-assign-internal-PCM-chmap-ELD-IEC95.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0009-LOCAL-ASoC-meson-assign-internal-PCM-chmap-ELD-IEC95.patch @@ -1,7 +1,7 @@ -From b419174ce9cd28aa55673140319aa4317922d0d7 Mon Sep 17 00:00:00 2001 +From e751b7cfeaca07cef1b14cebbd4dc567ed50ed37 Mon Sep 17 00:00:00 2001 From: Anssi Hannula Date: Sun, 17 Apr 2022 04:37:48 +0000 -Subject: [PATCH 09/53] LOCAL: ASoC: meson: assign internal PCM +Subject: [PATCH 09/37] LOCAL: ASoC: meson: assign internal PCM chmap/ELD/IEC958 kctls to device 0 On SoC sound devices utilizing codec2codec DAI links with an HDMI codec the kctls @@ -24,26 +24,26 @@ Tested-by: Christian Hewitt 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/sound/core/pcm_lib.c b/sound/core/pcm_lib.c -index 41103e5c43ce..0db7fe63911e 100644 +index 6eaa950504cf..f2f05f1c4f98 100644 --- a/sound/core/pcm_lib.c +++ b/sound/core/pcm_lib.c -@@ -2581,7 +2581,10 @@ int snd_pcm_add_chmap_ctls(struct snd_pcm *pcm, int stream, +@@ -2612,7 +2612,10 @@ int snd_pcm_add_chmap_ctls(struct snd_pcm *pcm, int stream, knew.name = "Playback Channel Map"; else knew.name = "Capture Channel Map"; - knew.device = pcm->device; + if (pcm->internal && pcm->device) -+ dev_info(pcm->card->dev, "workaround active: internal PCM chmap controls mapped to device 0\n"); ++ dev_info(pcm->card->dev, "workaround: internal PCM chmap controls mapped to device 0\n"); + else + knew.device = pcm->device; knew.count = pcm->streams[stream].substream_count; knew.private_value = private_value; info->kctl = snd_ctl_new1(&knew, info); diff --git a/sound/soc/codecs/hdmi-codec.c b/sound/soc/codecs/hdmi-codec.c -index d3abb7ce2153..e06b28c7e5ba 100644 +index 31121f9c18c9..606abb3889c1 100644 --- a/sound/soc/codecs/hdmi-codec.c +++ b/sound/soc/codecs/hdmi-codec.c -@@ -802,7 +802,8 @@ static int hdmi_codec_pcm_new(struct snd_soc_pcm_runtime *rtd, +@@ -821,7 +821,8 @@ static int hdmi_codec_pcm_new(struct snd_soc_pcm_runtime *rtd, if (!kctl) return -ENOMEM; diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0010-LOCAL-media-meson-vdec-disable-MPEG1-MPEG2-hardware-.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0010-LOCAL-media-meson-vdec-disable-MPEG1-MPEG2-hardware-.patch index 77f185f16d..861e3db353 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0010-LOCAL-media-meson-vdec-disable-MPEG1-MPEG2-hardware-.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0010-LOCAL-media-meson-vdec-disable-MPEG1-MPEG2-hardware-.patch @@ -1,7 +1,7 @@ -From 9787871fe1e00af9f915237be4474a3b1f1e0887 Mon Sep 17 00:00:00 2001 +From 3de630c16f0ddbaa6442ebc3b6938bc1c4526b34 Mon Sep 17 00:00:00 2001 From: Christian Hewitt Date: Thu, 5 Jan 2023 15:16:46 +0000 -Subject: [PATCH 10/53] LOCAL: media: meson: vdec: disable MPEG1/MPEG2 hardware +Subject: [PATCH 10/37] LOCAL: media: meson: vdec: disable MPEG1/MPEG2 hardware decoding The MPEG1/2 decoder is broken and nobody has volunteered to poke @@ -11,11 +11,11 @@ hardware decoding for now. Signed-off-by: Christian Hewitt --- - .../staging/media/meson/vdec/vdec_platform.c | 110 ------------------ - 1 file changed, 110 deletions(-) + .../staging/media/meson/vdec/vdec_platform.c | 132 ------------------ + 1 file changed, 132 deletions(-) diff --git a/drivers/staging/media/meson/vdec/vdec_platform.c b/drivers/staging/media/meson/vdec/vdec_platform.c -index 70c9fd7c8bc5..f1df637681e5 100644 +index 66bb307db85a..8a7e5b3f5d00 100644 --- a/drivers/staging/media/meson/vdec/vdec_platform.c +++ b/drivers/staging/media/meson/vdec/vdec_platform.c @@ -26,28 +26,6 @@ static const struct amvdec_format vdec_formats_gxbb[] = { @@ -76,7 +76,7 @@ index 70c9fd7c8bc5..f1df637681e5 100644 }, }; -@@ -126,28 +82,6 @@ static const struct amvdec_format vdec_formats_gxm[] = { +@@ -114,28 +70,6 @@ static const struct amvdec_format vdec_formats_gxlx[] = { .pixfmts_cap = { V4L2_PIX_FMT_NV12M, 0 }, .flags = V4L2_FMT_FLAG_COMPRESSED | V4L2_FMT_FLAG_DYN_RESOLUTION, @@ -105,7 +105,7 @@ index 70c9fd7c8bc5..f1df637681e5 100644 }, }; -@@ -176,28 +110,6 @@ static const struct amvdec_format vdec_formats_g12a[] = { +@@ -164,28 +98,6 @@ static const struct amvdec_format vdec_formats_gxm[] = { .pixfmts_cap = { V4L2_PIX_FMT_NV12M, 0 }, .flags = V4L2_FMT_FLAG_COMPRESSED | V4L2_FMT_FLAG_DYN_RESOLUTION, @@ -134,7 +134,36 @@ index 70c9fd7c8bc5..f1df637681e5 100644 }, }; -@@ -226,28 +138,6 @@ static const struct amvdec_format vdec_formats_sm1[] = { +@@ -214,28 +126,6 @@ static const struct amvdec_format vdec_formats_g12a[] = { + .pixfmts_cap = { V4L2_PIX_FMT_NV12M, 0 }, + .flags = V4L2_FMT_FLAG_COMPRESSED | + V4L2_FMT_FLAG_DYN_RESOLUTION, +- }, { +- .pixfmt = V4L2_PIX_FMT_MPEG1, +- .min_buffers = 8, +- .max_buffers = 8, +- .max_width = 1920, +- .max_height = 1080, +- .vdec_ops = &vdec_1_ops, +- .codec_ops = &codec_mpeg12_ops, +- .firmware_path = "meson/vdec/gxl_mpeg12.bin", +- .pixfmts_cap = { V4L2_PIX_FMT_NV12M, V4L2_PIX_FMT_YUV420M, 0 }, +- .flags = V4L2_FMT_FLAG_COMPRESSED, +- }, { +- .pixfmt = V4L2_PIX_FMT_MPEG2, +- .min_buffers = 8, +- .max_buffers = 8, +- .max_width = 1920, +- .max_height = 1080, +- .vdec_ops = &vdec_1_ops, +- .codec_ops = &codec_mpeg12_ops, +- .firmware_path = "meson/vdec/gxl_mpeg12.bin", +- .pixfmts_cap = { V4L2_PIX_FMT_NV12M, V4L2_PIX_FMT_YUV420M, 0 }, +- .flags = V4L2_FMT_FLAG_COMPRESSED, + }, + }; + +@@ -264,28 +154,6 @@ static const struct amvdec_format vdec_formats_sm1[] = { .pixfmts_cap = { V4L2_PIX_FMT_NV12M, 0 }, .flags = V4L2_FMT_FLAG_COMPRESSED | V4L2_FMT_FLAG_DYN_RESOLUTION, diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0011-FROMGIT-6.9-arm64-dts-meson-g12-common-Set-the-rates.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0011-FROMGIT-6.9-arm64-dts-meson-g12-common-Set-the-rates.patch deleted file mode 100644 index 3776c6bccb..0000000000 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0011-FROMGIT-6.9-arm64-dts-meson-g12-common-Set-the-rates.patch +++ /dev/null @@ -1,31 +0,0 @@ -From f376bb7ba1afbca87fba7b98f31697cba6776b1b Mon Sep 17 00:00:00 2001 -From: Tomeu Vizoso -Date: Mon, 16 Oct 2023 10:02:03 +0200 -Subject: [PATCH 11/53] FROMGIT(6.9): arm64: dts: meson-g12-common: Set the - rates of the clocks for the NPU - -Otherwise they are left at 24MHz and the NPU runs very slowly. - -Signed-off-by: Tomeu Vizoso -Suggested-by: Lucas Stach ---- - arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git a/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi b/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi -index f7f8df88d464..a960d07f9af3 100644 ---- a/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi -+++ b/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi -@@ -2502,6 +2502,9 @@ npu: npu@ff100000 { - clocks = <&clkc CLKID_NNA_CORE_CLK>, - <&clkc CLKID_NNA_AXI_CLK>; - clock-names = "core", "bus"; -+ assigned-clocks = <&clkc CLKID_NNA_CORE_CLK>, -+ <&clkc CLKID_NNA_AXI_CLK>; -+ assigned-clock-rates = <800000000>, <800000000>; - resets = <&reset RESET_NNA>; - status = "disabled"; - }; --- -2.34.1 - diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0011-FROMLIST-v1-drm-meson-fix-resource-cleanup-in-meson_.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0011-FROMLIST-v1-drm-meson-fix-resource-cleanup-in-meson_.patch new file mode 100644 index 0000000000..17e56302c3 --- /dev/null +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0011-FROMLIST-v1-drm-meson-fix-resource-cleanup-in-meson_.patch @@ -0,0 +1,138 @@ +From 4c895bf75fbf67654d02032cfbdfa57fa4777b20 Mon Sep 17 00:00:00 2001 +From: Martin Blumenstingl +Date: Wed, 9 Apr 2025 23:44:22 +0200 +Subject: [PATCH 11/37] FROMLIST(v1): drm/meson: fix resource cleanup in + meson_drv_bind_master() on error + +meson_drv_bind_master() does not free resources in the order they are +allocated. This can lead to crashes such as: + Unable to handle kernel NULL pointer dereference at virtual address 00000000000000c8 + [...] + Hardware name: Beelink GT-King Pro (DT) + pstate: 60000005 (nZCv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--) + pc : meson_dw_hdmi_unbind+0x10/0x24 [meson_dw_hdmi] + lr : component_unbind+0x38/0x60 + [...] + Call trace: + meson_dw_hdmi_unbind+0x10/0x24 [meson_dw_hdmi] + component_unbind+0x38/0x60 + component_unbind_all+0xb8/0xc4 + meson_drv_bind_master+0x1ec/0x514 [meson_drm] + meson_drv_bind+0x14/0x20 [meson_drm] + try_to_bring_up_aggregate_device+0xa8/0x160 + __component_add+0xb8/0x1a8 + component_add+0x14/0x20 + meson_dw_hdmi_probe+0x1c/0x28 [meson_dw_hdmi] + platform_probe+0x68/0xdc + really_probe+0xc0/0x39c + __driver_probe_device+0x7c/0x14c + driver_probe_device+0x3c/0x120 + __driver_attach+0xc4/0x200 + bus_for_each_dev+0x78/0xd8 + driver_attach+0x24/0x30 + bus_add_driver+0x110/0x240 + driver_register+0x68/0x124 + __platform_driver_register+0x24/0x30 + meson_dw_hdmi_platform_driver_init+0x20/0x1000 [meson_dw_hdmi] + do_one_initcall+0x50/0x1bc + do_init_module+0x54/0x1fc + load_module+0x788/0x884 + init_module_from_file+0x88/0xd4 + __arm64_sys_finit_module+0x248/0x340 + invoke_syscall+0x48/0x104 + el0_svc_common.constprop.0+0x40/0xe0 + do_el0_svc+0x1c/0x28 + el0_svc+0x30/0xcc + el0t_64_sync_handler+0x120/0x12c + el0t_64_sync+0x190/0x194 + +Clean up resources in the error path in the same order and under the +same conditions as they were allocated to fix this. + +Reported-by: Furkan Kardame +Signed-off-by: Martin Blumenstingl +--- + drivers/gpu/drm/meson/meson_drv.c | 31 +++++++++++++++++-------------- + 1 file changed, 17 insertions(+), 14 deletions(-) + +diff --git a/drivers/gpu/drm/meson/meson_drv.c b/drivers/gpu/drm/meson/meson_drv.c +index 49ff9f1f16d3..ea5bda297a74 100644 +--- a/drivers/gpu/drm/meson/meson_drv.c ++++ b/drivers/gpu/drm/meson/meson_drv.c +@@ -314,35 +314,35 @@ static int meson_drv_bind_master(struct device *dev, bool has_components) + dev_err(drm->dev, "Couldn't bind all components\n"); + /* Do not try to unbind */ + has_components = false; +- goto exit_afbcd; ++ goto cvbs_encoder_remove; + } + } + + ret = meson_encoder_hdmi_probe(priv); + if (ret) +- goto exit_afbcd; ++ goto unbind_components; + + if (meson_vpu_is_compatible(priv, VPU_COMPATIBLE_G12A)) { + ret = meson_encoder_dsi_probe(priv); + if (ret) +- goto exit_afbcd; ++ goto hdmi_encoder_remove; + } + + ret = meson_plane_create(priv); + if (ret) +- goto exit_afbcd; ++ goto dsi_encoder_remove; + + ret = meson_overlay_create(priv); + if (ret) +- goto exit_afbcd; ++ goto dsi_encoder_remove; + + ret = meson_crtc_create(priv); + if (ret) +- goto exit_afbcd; ++ goto dsi_encoder_remove; + + ret = request_irq(priv->vsync_irq, meson_irq, 0, drm->driver->name, drm); + if (ret) +- goto exit_afbcd; ++ goto dsi_encoder_remove; + + drm_mode_config_reset(drm); + +@@ -360,6 +360,16 @@ static int meson_drv_bind_master(struct device *dev, bool has_components) + + uninstall_irq: + free_irq(priv->vsync_irq, drm); ++dsi_encoder_remove: ++ if (meson_vpu_is_compatible(priv, VPU_COMPATIBLE_G12A)) ++ meson_encoder_dsi_remove(priv); ++hdmi_encoder_remove: ++ meson_encoder_hdmi_remove(priv); ++unbind_components: ++ if (has_components) ++ component_unbind_all(dev, drm); ++cvbs_encoder_remove: ++ meson_encoder_cvbs_remove(priv); + exit_afbcd: + if (priv->afbcd.ops) + priv->afbcd.ops->exit(priv); +@@ -374,13 +384,6 @@ static int meson_drv_bind_master(struct device *dev, bool has_components) + free_drm: + drm_dev_put(drm); + +- meson_encoder_dsi_remove(priv); +- meson_encoder_hdmi_remove(priv); +- meson_encoder_cvbs_remove(priv); +- +- if (has_components) +- component_unbind_all(dev, drm); +- + return ret; + } + +-- +2.34.1 + diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0012-FROMGIT-6.9-arm64-dts-amlogic-replace-underscores-in.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0012-FROMGIT-6.9-arm64-dts-amlogic-replace-underscores-in.patch deleted file mode 100644 index eea4349c90..0000000000 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0012-FROMGIT-6.9-arm64-dts-amlogic-replace-underscores-in.patch +++ /dev/null @@ -1,1667 +0,0 @@ -From 9a7fc97f7f23a93a23d3325a3a01ec4df23ac274 Mon Sep 17 00:00:00 2001 -From: Krzysztof Kozlowski -Date: Tue, 13 Feb 2024 15:32:17 +0100 -Subject: [PATCH 12/53] FROMGIT(6.9): arm64: dts: amlogic: replace underscores - in node names - -Underscores should not be used in node names (dtc with W=2 warns about -them), so replace them with hyphens. - -Cc: Marc Gonzalez -Signed-off-by: Krzysztof Kozlowski -Reviewed-by: Neil Armstrong ---- - .../arm64/boot/dts/amlogic/meson-a1-ad402.dts | 2 +- - .../meson-axg-jethome-jethub-j1xx.dtsi | 14 ++++++------- - .../arm64/boot/dts/amlogic/meson-axg-s400.dts | 16 +++++++-------- - .../dts/amlogic/meson-g12a-radxa-zero.dts | 12 +++++------ - .../boot/dts/amlogic/meson-g12a-sei510.dts | 14 ++++++------- - .../boot/dts/amlogic/meson-g12a-u200.dts | 16 +++++++-------- - .../boot/dts/amlogic/meson-g12a-x96-max.dts | 14 ++++++------- - .../dts/amlogic/meson-g12b-odroid-n2.dtsi | 2 +- - .../boot/dts/amlogic/meson-g12b-odroid.dtsi | 20 +++++++++---------- - .../boot/dts/amlogic/meson-g12b-w400.dtsi | 10 +++++----- - .../dts/amlogic/meson-gx-libretech-pc.dtsi | 12 +++++------ - .../boot/dts/amlogic/meson-gx-p23x-q20x.dtsi | 8 ++++---- - .../dts/amlogic/meson-gxbb-nexbox-a95x.dts | 6 +++--- - .../boot/dts/amlogic/meson-gxbb-odroidc2.dts | 8 ++++---- - .../boot/dts/amlogic/meson-gxbb-p200.dts | 4 ++-- - .../boot/dts/amlogic/meson-gxbb-p20x.dtsi | 6 +++--- - .../boot/dts/amlogic/meson-gxbb-vega-s95.dtsi | 8 ++++---- - .../boot/dts/amlogic/meson-gxbb-wetek.dtsi | 8 ++++---- - .../amlogic/meson-gxl-s805x-libretech-ac.dts | 8 ++++---- - .../boot/dts/amlogic/meson-gxl-s805x-p241.dts | 8 ++++---- - .../meson-gxl-s905w-jethome-jethub-j80.dts | 8 ++++---- - .../meson-gxl-s905x-hwacom-amazetv.dts | 6 +++--- - .../meson-gxl-s905x-libretech-cc-v2.dts | 12 +++++------ - .../amlogic/meson-gxl-s905x-libretech-cc.dts | 6 +++--- - .../amlogic/meson-gxl-s905x-nexbox-a95x.dts | 6 +++--- - .../dts/amlogic/meson-gxl-s905x-p212.dtsi | 8 ++++---- - .../dts/amlogic/meson-gxm-khadas-vim2.dts | 8 ++++---- - .../amlogic/meson-gxm-s912-libretech-pc.dts | 2 +- - .../boot/dts/amlogic/meson-khadas-vim3.dtsi | 16 +++++++-------- - .../amlogic/meson-libretech-cottonwood.dtsi | 6 +++--- - .../boot/dts/amlogic/meson-sm1-ac2xx.dtsi | 10 +++++----- - .../boot/dts/amlogic/meson-sm1-bananapi.dtsi | 14 ++++++------- - .../boot/dts/amlogic/meson-sm1-odroid-hc4.dts | 4 ++-- - .../boot/dts/amlogic/meson-sm1-odroid.dtsi | 20 +++++++++---------- - .../boot/dts/amlogic/meson-sm1-sei610.dts | 12 +++++------ - 35 files changed, 167 insertions(+), 167 deletions(-) - -diff --git a/arch/arm64/boot/dts/amlogic/meson-a1-ad402.dts b/arch/arm64/boot/dts/amlogic/meson-a1-ad402.dts -index 1c20516fa653..4bc30af05848 100644 ---- a/arch/arm64/boot/dts/amlogic/meson-a1-ad402.dts -+++ b/arch/arm64/boot/dts/amlogic/meson-a1-ad402.dts -@@ -106,7 +106,7 @@ &spifc { - pinctrl-0 = <&spifc_pins>; - pinctrl-names = "default"; - -- spi_nand@0 { -+ flash@0 { - compatible = "spi-nand"; - status = "okay"; - reg = <0>; -diff --git a/arch/arm64/boot/dts/amlogic/meson-axg-jethome-jethub-j1xx.dtsi b/arch/arm64/boot/dts/amlogic/meson-axg-jethome-jethub-j1xx.dtsi -index db605f3a22b4..a53e1fe9ac1e 100644 ---- a/arch/arm64/boot/dts/amlogic/meson-axg-jethome-jethub-j1xx.dtsi -+++ b/arch/arm64/boot/dts/amlogic/meson-axg-jethome-jethub-j1xx.dtsi -@@ -35,7 +35,7 @@ emmc_pwrseq: emmc-pwrseq { - reset-gpios = <&gpio BOOT_9 GPIO_ACTIVE_LOW>; - }; - -- vcc_3v3: regulator-vcc_3v3 { -+ vcc_3v3: regulator-vcc-3v3 { - compatible = "regulator-fixed"; - regulator-name = "VCC_3V3"; - regulator-min-microvolt = <3300000>; -@@ -44,7 +44,7 @@ vcc_3v3: regulator-vcc_3v3 { - regulator-always-on; - }; - -- vcc_5v: regulator-vcc_5v { -+ vcc_5v: regulator-vcc-5v { - compatible = "regulator-fixed"; - regulator-name = "VCC5V"; - regulator-min-microvolt = <5000000>; -@@ -52,7 +52,7 @@ vcc_5v: regulator-vcc_5v { - regulator-always-on; - }; - -- vddao_3v3: regulator-vddao_3v3 { -+ vddao_3v3: regulator-vddao-3v3 { - compatible = "regulator-fixed"; - regulator-name = "VDDAO_3V3"; - regulator-min-microvolt = <3300000>; -@@ -61,7 +61,7 @@ vddao_3v3: regulator-vddao_3v3 { - regulator-always-on; - }; - -- vddio_ao18: regulator-vddio_ao18 { -+ vddio_ao18: regulator-vddio-ao18 { - compatible = "regulator-fixed"; - regulator-name = "VDDIO_AO18"; - regulator-min-microvolt = <1800000>; -@@ -70,7 +70,7 @@ vddio_ao18: regulator-vddio_ao18 { - regulator-always-on; - }; - -- vddio_boot: regulator-vddio_boot { -+ vddio_boot: regulator-vddio-boot { - compatible = "regulator-fixed"; - regulator-name = "VDDIO_BOOT"; - regulator-min-microvolt = <3300000>; -@@ -79,7 +79,7 @@ vddio_boot: regulator-vddio_boot { - regulator-always-on; - }; - -- vccq_1v8: regulator-vccq_1v8 { -+ vccq_1v8: regulator-vccq-1v8 { - compatible = "regulator-fixed"; - regulator-name = "VCCQ_1V8"; - regulator-min-microvolt = <1800000>; -@@ -88,7 +88,7 @@ vccq_1v8: regulator-vccq_1v8 { - regulator-always-on; - }; - -- usb_pwr: regulator-usb_pwr { -+ usb_pwr: regulator-usb-pwr { - compatible = "regulator-fixed"; - regulator-name = "USB_PWR"; - regulator-min-microvolt = <5000000>; -diff --git a/arch/arm64/boot/dts/amlogic/meson-axg-s400.dts b/arch/arm64/boot/dts/amlogic/meson-axg-s400.dts -index c8905663bc75..7ed526f45175 100644 ---- a/arch/arm64/boot/dts/amlogic/meson-axg-s400.dts -+++ b/arch/arm64/boot/dts/amlogic/meson-axg-s400.dts -@@ -12,7 +12,7 @@ / { - compatible = "amlogic,s400", "amlogic,a113d", "amlogic,meson-axg"; - model = "Amlogic Meson AXG S400 Development Board"; - -- adc_keys { -+ keys { - compatible = "adc-keys"; - io-channels = <&saradc 0>; - io-channel-names = "buttons"; -@@ -111,7 +111,7 @@ memory@0 { - reg = <0x0 0x0 0x0 0x40000000>; - }; - -- main_12v: regulator-main_12v { -+ main_12v: regulator-main-12v { - compatible = "regulator-fixed"; - regulator-name = "12V"; - regulator-min-microvolt = <12000000>; -@@ -119,7 +119,7 @@ main_12v: regulator-main_12v { - regulator-always-on; - }; - -- vcc_3v3: regulator-vcc_3v3 { -+ vcc_3v3: regulator-vcc-3v3 { - compatible = "regulator-fixed"; - regulator-name = "VCC_3V3"; - regulator-min-microvolt = <3300000>; -@@ -128,7 +128,7 @@ vcc_3v3: regulator-vcc_3v3 { - regulator-always-on; - }; - -- vcc_5v: regulator-vcc_5v { -+ vcc_5v: regulator-vcc-5v { - compatible = "regulator-fixed"; - regulator-name = "VCC5V"; - regulator-min-microvolt = <5000000>; -@@ -139,7 +139,7 @@ vcc_5v: regulator-vcc_5v { - enable-active-high; - }; - -- vddao_3v3: regulator-vddao_3v3 { -+ vddao_3v3: regulator-vddao-3v3 { - compatible = "regulator-fixed"; - regulator-name = "VDDAO_3V3"; - regulator-min-microvolt = <3300000>; -@@ -148,7 +148,7 @@ vddao_3v3: regulator-vddao_3v3 { - regulator-always-on; - }; - -- vddio_ao18: regulator-vddio_ao18 { -+ vddio_ao18: regulator-vddio-ao18 { - compatible = "regulator-fixed"; - regulator-name = "VDDIO_AO18"; - regulator-min-microvolt = <1800000>; -@@ -157,7 +157,7 @@ vddio_ao18: regulator-vddio_ao18 { - regulator-always-on; - }; - -- vddio_boot: regulator-vddio_boot { -+ vddio_boot: regulator-vddio-boot { - compatible = "regulator-fixed"; - regulator-name = "VDDIO_BOOT"; - regulator-min-microvolt = <1800000>; -@@ -166,7 +166,7 @@ vddio_boot: regulator-vddio_boot { - regulator-always-on; - }; - -- usb_pwr: regulator-usb_pwr { -+ usb_pwr: regulator-usb-pwr { - compatible = "regulator-fixed"; - regulator-name = "USB_PWR"; - regulator-min-microvolt = <5000000>; -diff --git a/arch/arm64/boot/dts/amlogic/meson-g12a-radxa-zero.dts b/arch/arm64/boot/dts/amlogic/meson-g12a-radxa-zero.dts -index fcd7e1d8e16f..15b9bc280706 100644 ---- a/arch/arm64/boot/dts/amlogic/meson-g12a-radxa-zero.dts -+++ b/arch/arm64/boot/dts/amlogic/meson-g12a-radxa-zero.dts -@@ -60,7 +60,7 @@ sdio_pwrseq: sdio-pwrseq { - clock-names = "ext_clock"; - }; - -- ao_5v: regulator-ao_5v { -+ ao_5v: regulator-ao-5v { - compatible = "regulator-fixed"; - regulator-name = "AO_5V"; - regulator-min-microvolt = <5000000>; -@@ -68,7 +68,7 @@ ao_5v: regulator-ao_5v { - regulator-always-on; - }; - -- vcc_1v8: regulator-vcc_1v8 { -+ vcc_1v8: regulator-vcc-1v8 { - compatible = "regulator-fixed"; - regulator-name = "VCC_1V8"; - regulator-min-microvolt = <1800000>; -@@ -77,7 +77,7 @@ vcc_1v8: regulator-vcc_1v8 { - regulator-always-on; - }; - -- vcc_3v3: regulator-vcc_3v3 { -+ vcc_3v3: regulator-vcc-3v3 { - compatible = "regulator-fixed"; - regulator-name = "VCC_3V3"; - regulator-min-microvolt = <3300000>; -@@ -86,7 +86,7 @@ vcc_3v3: regulator-vcc_3v3 { - regulator-always-on; - }; - -- hdmi_pw: regulator-hdmi_pw { -+ hdmi_pw: regulator-hdmi-pw { - compatible = "regulator-fixed"; - regulator-name = "HDMI_PW"; - regulator-min-microvolt = <5000000>; -@@ -95,7 +95,7 @@ hdmi_pw: regulator-hdmi_pw { - regulator-always-on; - }; - -- vddao_1v8: regulator-vddao_1v8 { -+ vddao_1v8: regulator-vddao-1v8 { - compatible = "regulator-fixed"; - regulator-name = "VDDAO_1V8"; - regulator-min-microvolt = <1800000>; -@@ -104,7 +104,7 @@ vddao_1v8: regulator-vddao_1v8 { - regulator-always-on; - }; - -- vddao_3v3: regulator-vddao_3v3 { -+ vddao_3v3: regulator-vddao-3v3 { - compatible = "regulator-fixed"; - regulator-name = "VDDAO_3V3"; - regulator-min-microvolt = <3300000>; -diff --git a/arch/arm64/boot/dts/amlogic/meson-g12a-sei510.dts b/arch/arm64/boot/dts/amlogic/meson-g12a-sei510.dts -index 4c4550dd4711..61cb8135a392 100644 ---- a/arch/arm64/boot/dts/amlogic/meson-g12a-sei510.dts -+++ b/arch/arm64/boot/dts/amlogic/meson-g12a-sei510.dts -@@ -15,7 +15,7 @@ / { - compatible = "seirobotics,sei510", "amlogic,g12a"; - model = "SEI Robotics SEI510"; - -- adc_keys { -+ keys { - compatible = "adc-keys"; - io-channels = <&saradc 0>; - io-channel-names = "buttons"; -@@ -83,7 +83,7 @@ memory@0 { - reg = <0x0 0x0 0x0 0x40000000>; - }; - -- ao_5v: regulator-ao_5v { -+ ao_5v: regulator-ao-5v { - compatible = "regulator-fixed"; - regulator-name = "AO_5V"; - regulator-min-microvolt = <5000000>; -@@ -92,7 +92,7 @@ ao_5v: regulator-ao_5v { - regulator-always-on; - }; - -- dc_in: regulator-dc_in { -+ dc_in: regulator-dc-in { - compatible = "regulator-fixed"; - regulator-name = "DC_IN"; - regulator-min-microvolt = <5000000>; -@@ -100,7 +100,7 @@ dc_in: regulator-dc_in { - regulator-always-on; - }; - -- emmc_1v8: regulator-emmc_1v8 { -+ emmc_1v8: regulator-emmc-1v8 { - compatible = "regulator-fixed"; - regulator-name = "EMMC_1V8"; - regulator-min-microvolt = <1800000>; -@@ -109,7 +109,7 @@ emmc_1v8: regulator-emmc_1v8 { - regulator-always-on; - }; - -- vddao_3v3: regulator-vddao_3v3 { -+ vddao_3v3: regulator-vddao-3v3 { - compatible = "regulator-fixed"; - regulator-name = "VDDAO_3V3"; - regulator-min-microvolt = <3300000>; -@@ -118,7 +118,7 @@ vddao_3v3: regulator-vddao_3v3 { - regulator-always-on; - }; - -- vddao_3v3_t: regultor-vddao_3v3_t { -+ vddao_3v3_t: regulator-vddao-3v3-t { - compatible = "regulator-fixed"; - regulator-name = "VDDAO_3V3_T"; - regulator-min-microvolt = <3300000>; -@@ -147,7 +147,7 @@ vddcpu: regulator-vddcpu { - regulator-always-on; - }; - -- vddio_ao1v8: regulator-vddio_ao1v8 { -+ vddio_ao1v8: regulator-vddio-ao1v8 { - compatible = "regulator-fixed"; - regulator-name = "VDDIO_AO1V8"; - regulator-min-microvolt = <1800000>; -diff --git a/arch/arm64/boot/dts/amlogic/meson-g12a-u200.dts b/arch/arm64/boot/dts/amlogic/meson-g12a-u200.dts -index 8355ddd7e9ae..3da7922d83f1 100644 ---- a/arch/arm64/boot/dts/amlogic/meson-g12a-u200.dts -+++ b/arch/arm64/boot/dts/amlogic/meson-g12a-u200.dts -@@ -75,7 +75,7 @@ memory@0 { - reg = <0x0 0x0 0x0 0x40000000>; - }; - -- flash_1v8: regulator-flash_1v8 { -+ flash_1v8: regulator-flash-1v8 { - compatible = "regulator-fixed"; - regulator-name = "FLASH_1V8"; - regulator-min-microvolt = <1800000>; -@@ -84,7 +84,7 @@ flash_1v8: regulator-flash_1v8 { - regulator-always-on; - }; - -- main_12v: regulator-main_12v { -+ main_12v: regulator-main-12v { - compatible = "regulator-fixed"; - regulator-name = "12V"; - regulator-min-microvolt = <12000000>; -@@ -92,7 +92,7 @@ main_12v: regulator-main_12v { - regulator-always-on; - }; - -- usb_pwr_en: regulator-usb_pwr_en { -+ usb_pwr_en: regulator-usb-pwr-en { - compatible = "regulator-fixed"; - regulator-name = "USB_PWR_EN"; - regulator-min-microvolt = <5000000>; -@@ -103,7 +103,7 @@ usb_pwr_en: regulator-usb_pwr_en { - enable-active-high; - }; - -- vcc_1v8: regulator-vcc_1v8 { -+ vcc_1v8: regulator-vcc-1v8 { - compatible = "regulator-fixed"; - regulator-name = "VCC_1V8"; - regulator-min-microvolt = <1800000>; -@@ -112,7 +112,7 @@ vcc_1v8: regulator-vcc_1v8 { - regulator-always-on; - }; - -- vcc_3v3: regulator-vcc_3v3 { -+ vcc_3v3: regulator-vcc-3v3 { - compatible = "regulator-fixed"; - regulator-name = "VCC_3V3"; - regulator-min-microvolt = <3300000>; -@@ -122,7 +122,7 @@ vcc_3v3: regulator-vcc_3v3 { - /* FIXME: actually controlled by VDDCPU_B_EN */ - }; - -- vcc_5v: regulator-vcc_5v { -+ vcc_5v: regulator-vcc-5v { - compatible = "regulator-fixed"; - regulator-name = "VCC_5V"; - regulator-min-microvolt = <5000000>; -@@ -133,7 +133,7 @@ vcc_5v: regulator-vcc_5v { - enable-active-high; - }; - -- vddao_1v8: regulator-vddao_1v8 { -+ vddao_1v8: regulator-vddao-1v8 { - compatible = "regulator-fixed"; - regulator-name = "VDDAO_1V8"; - regulator-min-microvolt = <1800000>; -@@ -142,7 +142,7 @@ vddao_1v8: regulator-vddao_1v8 { - regulator-always-on; - }; - -- vddao_3v3: regulator-vddao_3v3 { -+ vddao_3v3: regulator-vddao-3v3 { - compatible = "regulator-fixed"; - regulator-name = "VDDAO_3V3"; - regulator-min-microvolt = <3300000>; -diff --git a/arch/arm64/boot/dts/amlogic/meson-g12a-x96-max.dts b/arch/arm64/boot/dts/amlogic/meson-g12a-x96-max.dts -index 9b55982b6a6b..05c7a1e3f1b7 100644 ---- a/arch/arm64/boot/dts/amlogic/meson-g12a-x96-max.dts -+++ b/arch/arm64/boot/dts/amlogic/meson-g12a-x96-max.dts -@@ -66,7 +66,7 @@ sdio_pwrseq: sdio-pwrseq { - clock-names = "ext_clock"; - }; - -- flash_1v8: regulator-flash_1v8 { -+ flash_1v8: regulator-flash-1v8 { - compatible = "regulator-fixed"; - regulator-name = "FLASH_1V8"; - regulator-min-microvolt = <1800000>; -@@ -75,7 +75,7 @@ flash_1v8: regulator-flash_1v8 { - regulator-always-on; - }; - -- dc_in: regulator-dc_in { -+ dc_in: regulator-dc-in { - compatible = "regulator-fixed"; - regulator-name = "DC_IN"; - regulator-min-microvolt = <5000000>; -@@ -83,7 +83,7 @@ dc_in: regulator-dc_in { - regulator-always-on; - }; - -- vcc_1v8: regulator-vcc_1v8 { -+ vcc_1v8: regulator-vcc-1v8 { - compatible = "regulator-fixed"; - regulator-name = "VCC_1V8"; - regulator-min-microvolt = <1800000>; -@@ -92,7 +92,7 @@ vcc_1v8: regulator-vcc_1v8 { - regulator-always-on; - }; - -- vcc_3v3: regulator-vcc_3v3 { -+ vcc_3v3: regulator-vcc-3v3 { - compatible = "regulator-fixed"; - regulator-name = "VCC_3V3"; - regulator-min-microvolt = <3300000>; -@@ -102,7 +102,7 @@ vcc_3v3: regulator-vcc_3v3 { - /* FIXME: actually controlled by VDDCPU_B_EN */ - }; - -- vcc_5v: regulator-vcc_5v { -+ vcc_5v: regulator-vcc-5v { - compatible = "regulator-fixed"; - regulator-name = "VCC_5V"; - regulator-min-microvolt = <5000000>; -@@ -112,7 +112,7 @@ vcc_5v: regulator-vcc_5v { - gpio = <&gpio GPIOH_8 GPIO_OPEN_DRAIN>; - }; - -- vddao_1v8: regulator-vddao_1v8 { -+ vddao_1v8: regulator-vddao-1v8 { - compatible = "regulator-fixed"; - regulator-name = "VDDAO_1V8"; - regulator-min-microvolt = <1800000>; -@@ -121,7 +121,7 @@ vddao_1v8: regulator-vddao_1v8 { - regulator-always-on; - }; - -- vddao_3v3: regulator-vddao_3v3 { -+ vddao_3v3: regulator-vddao-3v3 { - compatible = "regulator-fixed"; - regulator-name = "VDDAO_3V3"; - regulator-min-microvolt = <3300000>; -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 91c9769fda20..d80dd9a3da31 100644 ---- a/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi -+++ b/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi -@@ -19,7 +19,7 @@ dio2133: audio-amplifier-0 { - status = "okay"; - }; - -- hub_5v: regulator-hub_5v { -+ hub_5v: regulator-hub-5v { - compatible = "regulator-fixed"; - regulator-name = "HUB_5V"; - regulator-min-microvolt = <5000000>; -diff --git a/arch/arm64/boot/dts/amlogic/meson-g12b-odroid.dtsi b/arch/arm64/boot/dts/amlogic/meson-g12b-odroid.dtsi -index 9e12a34b2840..09d959aefb18 100644 ---- a/arch/arm64/boot/dts/amlogic/meson-g12b-odroid.dtsi -+++ b/arch/arm64/boot/dts/amlogic/meson-g12b-odroid.dtsi -@@ -48,7 +48,7 @@ led-blue { - }; - }; - -- tflash_vdd: regulator-tflash_vdd { -+ tflash_vdd: regulator-tflash-vdd { - compatible = "regulator-fixed"; - - regulator-name = "TFLASH_VDD"; -@@ -60,7 +60,7 @@ tflash_vdd: regulator-tflash_vdd { - regulator-always-on; - }; - -- tf_io: gpio-regulator-tf_io { -+ tf_io: gpio-regulator-tf-io { - compatible = "regulator-gpio"; - - regulator-name = "TF_IO"; -@@ -74,7 +74,7 @@ tf_io: gpio-regulator-tf_io { - <1800000 1>; - }; - -- flash_1v8: regulator-flash_1v8 { -+ flash_1v8: regulator-flash-1v8 { - compatible = "regulator-fixed"; - regulator-name = "FLASH_1V8"; - regulator-min-microvolt = <1800000>; -@@ -83,7 +83,7 @@ flash_1v8: regulator-flash_1v8 { - regulator-always-on; - }; - -- main_12v: regulator-main_12v { -+ main_12v: regulator-main-12v { - compatible = "regulator-fixed"; - regulator-name = "12V"; - regulator-min-microvolt = <12000000>; -@@ -91,7 +91,7 @@ main_12v: regulator-main_12v { - regulator-always-on; - }; - -- usb_pwr_en: regulator-usb_pwr_en { -+ usb_pwr_en: regulator-usb-pwr-en { - compatible = "regulator-fixed"; - regulator-name = "USB_PWR_EN"; - regulator-min-microvolt = <5000000>; -@@ -103,7 +103,7 @@ usb_pwr_en: regulator-usb_pwr_en { - enable-active-high; - }; - -- vcc_5v: regulator-vcc_5v { -+ vcc_5v: regulator-vcc-5v { - compatible = "regulator-fixed"; - regulator-name = "5V"; - regulator-min-microvolt = <5000000>; -@@ -114,7 +114,7 @@ vcc_5v: regulator-vcc_5v { - enable-active-high; - }; - -- vcc_1v8: regulator-vcc_1v8 { -+ vcc_1v8: regulator-vcc-1v8 { - compatible = "regulator-fixed"; - regulator-name = "VCC_1V8"; - regulator-min-microvolt = <1800000>; -@@ -123,7 +123,7 @@ vcc_1v8: regulator-vcc_1v8 { - regulator-always-on; - }; - -- vcc_3v3: regulator-vcc_3v3 { -+ vcc_3v3: regulator-vcc-3v3 { - compatible = "regulator-fixed"; - regulator-name = "VCC_3V3"; - regulator-min-microvolt = <3300000>; -@@ -171,7 +171,7 @@ vddcpu_b: regulator-vddcpu-b { - regulator-always-on; - }; - -- vddao_1v8: regulator-vddao_1v8 { -+ vddao_1v8: regulator-vddao-1v8 { - compatible = "regulator-fixed"; - regulator-name = "VDDAO_1V8"; - regulator-min-microvolt = <1800000>; -@@ -180,7 +180,7 @@ vddao_1v8: regulator-vddao_1v8 { - regulator-always-on; - }; - -- vddao_3v3: regulator-vddao_3v3 { -+ vddao_3v3: regulator-vddao-3v3 { - compatible = "regulator-fixed"; - regulator-name = "VDDAO_3V3"; - regulator-min-microvolt = <3300000>; -diff --git a/arch/arm64/boot/dts/amlogic/meson-g12b-w400.dtsi b/arch/arm64/boot/dts/amlogic/meson-g12b-w400.dtsi -index ac8b7178257e..4cb6930ffb19 100644 ---- a/arch/arm64/boot/dts/amlogic/meson-g12b-w400.dtsi -+++ b/arch/arm64/boot/dts/amlogic/meson-g12b-w400.dtsi -@@ -39,7 +39,7 @@ sdio_pwrseq: sdio-pwrseq { - clock-names = "ext_clock"; - }; - -- flash_1v8: regulator-flash_1v8 { -+ flash_1v8: regulator-flash-1v8 { - compatible = "regulator-fixed"; - regulator-name = "FLASH_1V8"; - regulator-min-microvolt = <1800000>; -@@ -48,7 +48,7 @@ flash_1v8: regulator-flash_1v8 { - regulator-always-on; - }; - -- main_12v: regulator-main_12v { -+ main_12v: regulator-main-12v { - compatible = "regulator-fixed"; - regulator-name = "12V"; - regulator-min-microvolt = <12000000>; -@@ -56,7 +56,7 @@ main_12v: regulator-main_12v { - regulator-always-on; - }; - -- vcc_5v: regulator-vcc_5v { -+ vcc_5v: regulator-vcc-5v { - compatible = "regulator-fixed"; - regulator-name = "VCC_5V"; - regulator-min-microvolt = <5000000>; -@@ -67,7 +67,7 @@ vcc_5v: regulator-vcc_5v { - enable-active-high; - }; - -- vcc_1v8: regulator-vcc_1v8 { -+ vcc_1v8: regulator-vcc-1v8 { - compatible = "regulator-fixed"; - regulator-name = "VCC_1V8"; - regulator-min-microvolt = <1800000>; -@@ -76,7 +76,7 @@ vcc_1v8: regulator-vcc_1v8 { - regulator-always-on; - }; - -- vcc_3v3: regulator-vcc_3v3 { -+ vcc_3v3: regulator-vcc-3v3 { - compatible = "regulator-fixed"; - regulator-name = "VCC_3V3"; - regulator-min-microvolt = <3300000>; -diff --git a/arch/arm64/boot/dts/amlogic/meson-gx-libretech-pc.dtsi b/arch/arm64/boot/dts/amlogic/meson-gx-libretech-pc.dtsi -index 5e7b9273b062..efd662a452e8 100644 ---- a/arch/arm64/boot/dts/amlogic/meson-gx-libretech-pc.dtsi -+++ b/arch/arm64/boot/dts/amlogic/meson-gx-libretech-pc.dtsi -@@ -84,7 +84,7 @@ memory@0 { - reg = <0x0 0x0 0x0 0x80000000>; - }; - -- ao_5v: regulator-ao_5v { -+ ao_5v: regulator-ao-5v { - compatible = "regulator-fixed"; - regulator-name = "AO_5V"; - regulator-min-microvolt = <5000000>; -@@ -93,7 +93,7 @@ ao_5v: regulator-ao_5v { - regulator-always-on; - }; - -- dc_in: regulator-dc_in { -+ dc_in: regulator-dc-in { - compatible = "regulator-fixed"; - regulator-name = "DC_IN"; - regulator-min-microvolt = <5000000>; -@@ -120,7 +120,7 @@ led-blue { - }; - }; - -- vcc_card: regulator-vcc_card { -+ vcc_card: regulator-vcc-card { - compatible = "regulator-fixed"; - regulator-name = "VCC_CARD"; - regulator-min-microvolt = <3300000>; -@@ -141,7 +141,7 @@ vcc5v: regulator-vcc5v { - gpio = <&gpio GPIOH_3 GPIO_OPEN_DRAIN>; - }; - -- vddio_ao18: regulator-vddio_ao18 { -+ vddio_ao18: regulator-vddio-ao18 { - compatible = "regulator-fixed"; - regulator-name = "VDDIO_AO18"; - regulator-min-microvolt = <1800000>; -@@ -150,7 +150,7 @@ vddio_ao18: regulator-vddio_ao18 { - regulator-always-on; - }; - -- vddio_ao3v3: regulator-vddio_ao3v3 { -+ vddio_ao3v3: regulator-vddio-ao3v3 { - compatible = "regulator-fixed"; - regulator-name = "VDDIO_AO3V3"; - regulator-min-microvolt = <3300000>; -@@ -159,7 +159,7 @@ vddio_ao3v3: regulator-vddio_ao3v3 { - regulator-always-on; - }; - -- vddio_boot: regulator-vddio_boot { -+ vddio_boot: regulator-vddio-boot { - compatible = "regulator-fixed"; - regulator-name = "VDDIO_BOOT"; - regulator-min-microvolt = <1800000>; -diff --git a/arch/arm64/boot/dts/amlogic/meson-gx-p23x-q20x.dtsi b/arch/arm64/boot/dts/amlogic/meson-gx-p23x-q20x.dtsi -index e59c3c92b1e7..08d6b69ba469 100644 ---- a/arch/arm64/boot/dts/amlogic/meson-gx-p23x-q20x.dtsi -+++ b/arch/arm64/boot/dts/amlogic/meson-gx-p23x-q20x.dtsi -@@ -50,28 +50,28 @@ hdmi_5v: regulator-hdmi-5v { - regulator-always-on; - }; - -- vddio_ao18: regulator-vddio_ao18 { -+ vddio_ao18: regulator-vddio-ao18 { - compatible = "regulator-fixed"; - regulator-name = "VDDIO_AO18"; - regulator-min-microvolt = <1800000>; - regulator-max-microvolt = <1800000>; - }; - -- vddio_boot: regulator-vddio_boot { -+ vddio_boot: regulator-vddio-boot { - compatible = "regulator-fixed"; - regulator-name = "VDDIO_BOOT"; - regulator-min-microvolt = <1800000>; - regulator-max-microvolt = <1800000>; - }; - -- vddao_3v3: regulator-vddao_3v3 { -+ vddao_3v3: regulator-vddao-3v3 { - compatible = "regulator-fixed"; - regulator-name = "VDDAO_3V3"; - regulator-min-microvolt = <3300000>; - regulator-max-microvolt = <3300000>; - }; - -- vcc_3v3: regulator-vcc_3v3 { -+ vcc_3v3: regulator-vcc-3v3 { - compatible = "regulator-fixed"; - regulator-name = "VCC_3V3"; - regulator-min-microvolt = <3300000>; -diff --git a/arch/arm64/boot/dts/amlogic/meson-gxbb-nexbox-a95x.dts b/arch/arm64/boot/dts/amlogic/meson-gxbb-nexbox-a95x.dts -index 4aab1ab705b4..cca129ce2c58 100644 ---- a/arch/arm64/boot/dts/amlogic/meson-gxbb-nexbox-a95x.dts -+++ b/arch/arm64/boot/dts/amlogic/meson-gxbb-nexbox-a95x.dts -@@ -78,21 +78,21 @@ vddio_card: gpio-regulator { - <3300000 1>; - }; - -- vddio_boot: regulator-vddio_boot { -+ vddio_boot: regulator-vddio-boot { - compatible = "regulator-fixed"; - regulator-name = "VDDIO_BOOT"; - regulator-min-microvolt = <1800000>; - regulator-max-microvolt = <1800000>; - }; - -- vddao_3v3: regulator-vddao_3v3 { -+ vddao_3v3: regulator-vddao-3v3 { - compatible = "regulator-fixed"; - regulator-name = "VDDAO_3V3"; - regulator-min-microvolt = <3300000>; - regulator-max-microvolt = <3300000>; - }; - -- vcc_3v3: regulator-vcc_3v3 { -+ vcc_3v3: regulator-vcc-3v3 { - compatible = "regulator-fixed"; - regulator-name = "VCC_3V3"; - regulator-min-microvolt = <3300000>; -diff --git a/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts b/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts -index e6d2de7c45a9..c431986e6a33 100644 ---- a/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts -+++ b/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts -@@ -67,7 +67,7 @@ p5v0: regulator-p5v0 { - regulator-always-on; - }; - -- hdmi_p5v0: regulator-hdmi_p5v0 { -+ hdmi_p5v0: regulator-hdmi-p5v0 { - compatible = "regulator-fixed"; - regulator-name = "HDMI_P5V0"; - regulator-min-microvolt = <5000000>; -@@ -76,7 +76,7 @@ hdmi_p5v0: regulator-hdmi_p5v0 { - vin-supply = <&p5v0>; - }; - -- tflash_vdd: regulator-tflash_vdd { -+ tflash_vdd: regulator-tflash-vdd { - compatible = "regulator-fixed"; - - regulator-name = "TFLASH_VDD"; -@@ -92,7 +92,7 @@ tflash_vdd: regulator-tflash_vdd { - vin-supply = <&vddio_ao3v3>; - }; - -- tf_io: gpio-regulator-tf_io { -+ tf_io: gpio-regulator-tf-io { - compatible = "regulator-gpio"; - - regulator-name = "TF_IO"; -@@ -148,7 +148,7 @@ vddio_ao3v3: regulator-vddio-ao3v3 { - vin-supply = <&p5v0>; - }; - -- ddr3_1v5: regulator-ddr3_1v5 { -+ ddr3_1v5: regulator-ddr3-1v5 { - compatible = "regulator-fixed"; - regulator-name = "DDR3_1V5"; - regulator-min-microvolt = <1500000>; -diff --git a/arch/arm64/boot/dts/amlogic/meson-gxbb-p200.dts b/arch/arm64/boot/dts/amlogic/meson-gxbb-p200.dts -index 591455c50e88..7f94716876d3 100644 ---- a/arch/arm64/boot/dts/amlogic/meson-gxbb-p200.dts -+++ b/arch/arm64/boot/dts/amlogic/meson-gxbb-p200.dts -@@ -21,14 +21,14 @@ spdif_dit: audio-codec-0 { - sound-name-prefix = "DIT"; - }; - -- avdd18_usb_adc: regulator-avdd18_usb_adc { -+ avdd18_usb_adc: regulator-avdd18-usb-adc { - compatible = "regulator-fixed"; - regulator-name = "AVDD18_USB_ADC"; - regulator-min-microvolt = <1800000>; - regulator-max-microvolt = <1800000>; - }; - -- adc_keys { -+ keys { - compatible = "adc-keys"; - io-channels = <&saradc 0>; - io-channel-names = "buttons"; -diff --git a/arch/arm64/boot/dts/amlogic/meson-gxbb-p20x.dtsi b/arch/arm64/boot/dts/amlogic/meson-gxbb-p20x.dtsi -index e803a466fe4e..52d57773a77f 100644 ---- a/arch/arm64/boot/dts/amlogic/meson-gxbb-p20x.dtsi -+++ b/arch/arm64/boot/dts/amlogic/meson-gxbb-p20x.dtsi -@@ -53,21 +53,21 @@ vddio_card: gpio-regulator { - regulator-settling-time-down-us = <150000>; - }; - -- vddio_boot: regulator-vddio_boot { -+ vddio_boot: regulator-vddio-boot { - compatible = "regulator-fixed"; - regulator-name = "VDDIO_BOOT"; - regulator-min-microvolt = <1800000>; - regulator-max-microvolt = <1800000>; - }; - -- vddao_3v3: regulator-vddao_3v3 { -+ vddao_3v3: regulator-vddao-3v3 { - compatible = "regulator-fixed"; - regulator-name = "VDDAO_3V3"; - regulator-min-microvolt = <3300000>; - regulator-max-microvolt = <3300000>; - }; - -- vcc_3v3: regulator-vcc_3v3 { -+ vcc_3v3: regulator-vcc-3v3 { - compatible = "regulator-fixed"; - regulator-name = "VCC_3V3"; - regulator-min-microvolt = <3300000>; -diff --git a/arch/arm64/boot/dts/amlogic/meson-gxbb-vega-s95.dtsi b/arch/arm64/boot/dts/amlogic/meson-gxbb-vega-s95.dtsi -index 74df32534231..255e93a0b36d 100644 ---- a/arch/arm64/boot/dts/amlogic/meson-gxbb-vega-s95.dtsi -+++ b/arch/arm64/boot/dts/amlogic/meson-gxbb-vega-s95.dtsi -@@ -47,28 +47,28 @@ usb_pwr: regulator-usb-pwrs { - enable-active-high; - }; - -- vddio_boot: regulator-vddio_boot { -+ vddio_boot: regulator-vddio-boot { - compatible = "regulator-fixed"; - regulator-name = "VDDIO_BOOT"; - regulator-min-microvolt = <1800000>; - regulator-max-microvolt = <1800000>; - }; - -- vddao_3v3: regulator-vddao_3v3 { -+ vddao_3v3: regulator-vddao-3v3 { - compatible = "regulator-fixed"; - regulator-name = "VDDAO_3V3"; - regulator-min-microvolt = <3300000>; - regulator-max-microvolt = <3300000>; - }; - -- vddio_ao18: regulator-vddio_ao18 { -+ vddio_ao18: regulator-vddio-ao18 { - compatible = "regulator-fixed"; - regulator-name = "VDDIO_AO18"; - regulator-min-microvolt = <1800000>; - regulator-max-microvolt = <1800000>; - }; - -- vcc_3v3: regulator-vcc_3v3 { -+ vcc_3v3: regulator-vcc-3v3 { - compatible = "regulator-fixed"; - regulator-name = "VCC_3V3"; - regulator-min-microvolt = <3300000>; -diff --git a/arch/arm64/boot/dts/amlogic/meson-gxbb-wetek.dtsi b/arch/arm64/boot/dts/amlogic/meson-gxbb-wetek.dtsi -index 94dafb955301..deb295227189 100644 ---- a/arch/arm64/boot/dts/amlogic/meson-gxbb-wetek.dtsi -+++ b/arch/arm64/boot/dts/amlogic/meson-gxbb-wetek.dtsi -@@ -49,21 +49,21 @@ usb_pwr: regulator-usb-pwrs { - enable-active-high; - }; - -- vddio_boot: regulator-vddio_boot { -+ vddio_boot: regulator-vddio-boot { - compatible = "regulator-fixed"; - regulator-name = "VDDIO_BOOT"; - regulator-min-microvolt = <1800000>; - regulator-max-microvolt = <1800000>; - }; - -- vddao_3v3: regulator-vddao_3v3 { -+ vddao_3v3: regulator-vddao-3v3 { - compatible = "regulator-fixed"; - regulator-name = "VDDAO_3V3"; - regulator-min-microvolt = <3300000>; - regulator-max-microvolt = <3300000>; - }; - -- vddio_ao18: regulator-vddio_ao18 { -+ vddio_ao18: regulator-vddio-ao18 { - compatible = "regulator-fixed"; - regulator-name = "VDDIO_AO18"; - regulator-min-microvolt = <1800000>; -@@ -71,7 +71,7 @@ vddio_ao18: regulator-vddio_ao18 { - regulator-always-on; - }; - -- vcc_3v3: regulator-vcc_3v3 { -+ vcc_3v3: regulator-vcc-3v3 { - compatible = "regulator-fixed"; - regulator-name = "VCC_3V3"; - regulator-min-microvolt = <3300000>; -diff --git a/arch/arm64/boot/dts/amlogic/meson-gxl-s805x-libretech-ac.dts b/arch/arm64/boot/dts/amlogic/meson-gxl-s805x-libretech-ac.dts -index a29b49f051ae..90ef9c17d80b 100644 ---- a/arch/arm64/boot/dts/amlogic/meson-gxl-s805x-libretech-ac.dts -+++ b/arch/arm64/boot/dts/amlogic/meson-gxl-s805x-libretech-ac.dts -@@ -42,7 +42,7 @@ cvbs_connector_in: endpoint { - }; - }; - -- dc_5v: regulator-dc_5v { -+ dc_5v: regulator-dc-5v { - compatible = "regulator-fixed"; - regulator-name = "DC_5V"; - regulator-min-microvolt = <5000000>; -@@ -89,7 +89,7 @@ vcck: regulator-vcck { - regulator-always-on; - }; - -- vcc_3v3: regulator-vcc_3v3 { -+ vcc_3v3: regulator-vcc-3v3 { - compatible = "regulator-fixed"; - regulator-name = "VCC_3V3"; - regulator-min-microvolt = <3300000>; -@@ -98,7 +98,7 @@ vcc_3v3: regulator-vcc_3v3 { - regulator-always-on; - }; - -- vddio_ao18: regulator-vddio_ao18 { -+ vddio_ao18: regulator-vddio-ao18 { - compatible = "regulator-fixed"; - regulator-name = "VDDIO_AO18"; - regulator-min-microvolt = <1800000>; -@@ -107,7 +107,7 @@ vddio_ao18: regulator-vddio_ao18 { - regulator-always-on; - }; - -- vddio_boot: regulator-vddio_boot { -+ vddio_boot: regulator-vddio-boot { - compatible = "regulator-fixed"; - regulator-name = "VDDIO_BOOT"; - regulator-min-microvolt = <1800000>; -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 c0d6eb55100a..08a4718219b1 100644 ---- a/arch/arm64/boot/dts/amlogic/meson-gxl-s805x-p241.dts -+++ b/arch/arm64/boot/dts/amlogic/meson-gxl-s805x-p241.dts -@@ -64,28 +64,28 @@ memory@0 { - reg = <0x0 0x0 0x0 0x20000000>; - }; - -- vddio_boot: regulator-vddio_boot { -+ vddio_boot: regulator-vddio-boot { - compatible = "regulator-fixed"; - regulator-name = "VDDIO_BOOT"; - regulator-min-microvolt = <1800000>; - regulator-max-microvolt = <1800000>; - }; - -- vddao_3v3: regulator-vddao_3v3 { -+ vddao_3v3: regulator-vddao-3v3 { - compatible = "regulator-fixed"; - regulator-name = "VDDAO_3V3"; - regulator-min-microvolt = <3300000>; - regulator-max-microvolt = <3300000>; - }; - -- vddio_ao18: regulator-vddio_ao18 { -+ vddio_ao18: regulator-vddio-ao18 { - compatible = "regulator-fixed"; - regulator-name = "VDDIO_AO18"; - regulator-min-microvolt = <1800000>; - regulator-max-microvolt = <1800000>; - }; - -- vcc_3v3: regulator-vcc_3v3 { -+ vcc_3v3: regulator-vcc-3v3 { - compatible = "regulator-fixed"; - regulator-name = "VCC_3V3"; - regulator-min-microvolt = <3300000>; -diff --git a/arch/arm64/boot/dts/amlogic/meson-gxl-s905w-jethome-jethub-j80.dts b/arch/arm64/boot/dts/amlogic/meson-gxl-s905w-jethome-jethub-j80.dts -index a18d6d241a5a..2b94b6e5285e 100644 ---- a/arch/arm64/boot/dts/amlogic/meson-gxl-s905w-jethome-jethub-j80.dts -+++ b/arch/arm64/boot/dts/amlogic/meson-gxl-s905w-jethome-jethub-j80.dts -@@ -37,28 +37,28 @@ chosen { - stdout-path = "serial0:115200n8"; - }; - -- vddio_ao18: regulator-vddio_ao18 { -+ vddio_ao18: regulator-vddio-ao18 { - compatible = "regulator-fixed"; - regulator-name = "VDDIO_AO18"; - regulator-min-microvolt = <1800000>; - regulator-max-microvolt = <1800000>; - }; - -- vddio_boot: regulator-vddio_boot { -+ vddio_boot: regulator-vddio-boot { - compatible = "regulator-fixed"; - regulator-name = "VDDIO_BOOT"; - regulator-min-microvolt = <1800000>; - regulator-max-microvolt = <1800000>; - }; - -- vddao_3v3: regulator-vddao_3v3 { -+ vddao_3v3: regulator-vddao-3v3 { - compatible = "regulator-fixed"; - regulator-name = "VDDAO_3V3"; - regulator-min-microvolt = <3300000>; - regulator-max-microvolt = <3300000>; - }; - -- vcc_3v3: regulator-vcc_3v3 { -+ vcc_3v3: regulator-vcc-3v3 { - compatible = "regulator-fixed"; - regulator-name = "VCC_3V3"; - regulator-min-microvolt = <3300000>; -diff --git a/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-hwacom-amazetv.dts b/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-hwacom-amazetv.dts -index c8d74e61dec1..89fe5110f7a2 100644 ---- a/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-hwacom-amazetv.dts -+++ b/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-hwacom-amazetv.dts -@@ -42,21 +42,21 @@ vddio_card: gpio-regulator { - <3300000 1>; - }; - -- vddio_boot: regulator-vddio_boot { -+ vddio_boot: regulator-vddio-boot { - compatible = "regulator-fixed"; - regulator-name = "VDDIO_BOOT"; - regulator-min-microvolt = <1800000>; - regulator-max-microvolt = <1800000>; - }; - -- vddao_3v3: regulator-vddao_3v3 { -+ vddao_3v3: regulator-vddao-3v3 { - compatible = "regulator-fixed"; - regulator-name = "VDDAO_3V3"; - regulator-min-microvolt = <3300000>; - regulator-max-microvolt = <3300000>; - }; - -- vcc_3v3: regulator-vcc_3v3 { -+ vcc_3v3: regulator-vcc-3v3 { - compatible = "regulator-fixed"; - regulator-name = "VCC_3V3"; - regulator-min-microvolt = <3300000>; -diff --git a/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-libretech-cc-v2.dts b/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-libretech-cc-v2.dts -index 2825db91e462..63b20860067c 100644 ---- a/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-libretech-cc-v2.dts -+++ b/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-libretech-cc-v2.dts -@@ -67,7 +67,7 @@ memory@0 { - reg = <0x0 0x0 0x0 0x80000000>; - }; - -- ao_5v: regulator-ao_5v { -+ ao_5v: regulator-ao-5v { - compatible = "regulator-fixed"; - regulator-name = "AO_5V"; - regulator-min-microvolt = <5000000>; -@@ -76,7 +76,7 @@ ao_5v: regulator-ao_5v { - regulator-always-on; - }; - -- dc_in: regulator-dc_in { -+ dc_in: regulator-dc-in { - compatible = "regulator-fixed"; - regulator-name = "DC_IN"; - regulator-min-microvolt = <5000000>; -@@ -93,7 +93,7 @@ vcck: regulator-vcck { - regulator-always-on; - }; - -- vcc_card: regulator-vcc_card { -+ vcc_card: regulator-vcc-card { - compatible = "regulator-fixed"; - regulator-name = "VCC_CARD"; - regulator-min-microvolt = <3300000>; -@@ -114,7 +114,7 @@ vcc5v: regulator-vcc5v { - gpio = <&gpio GPIOH_3 GPIO_OPEN_DRAIN>; - }; - -- vddio_ao3v3: regulator-vddio_ao3v3 { -+ vddio_ao3v3: regulator-vddio-ao3v3 { - compatible = "regulator-fixed"; - regulator-name = "VDDIO_AO3V3"; - regulator-min-microvolt = <3300000>; -@@ -139,7 +139,7 @@ vddio_card: regulator-vddio-card { - regulator-settling-time-down-us = <50000>; - }; - -- vddio_ao18: regulator-vddio_ao18 { -+ vddio_ao18: regulator-vddio-ao18 { - compatible = "regulator-fixed"; - regulator-name = "VDDIO_AO18"; - regulator-min-microvolt = <1800000>; -@@ -148,7 +148,7 @@ vddio_ao18: regulator-vddio_ao18 { - regulator-always-on; - }; - -- vcc_1v8: regulator-vcc_1v8 { -+ vcc_1v8: regulator-vcc-1v8 { - compatible = "regulator-fixed"; - regulator-name = "VCC 1V8"; - regulator-min-microvolt = <1800000>; -diff --git a/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-libretech-cc.dts b/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-libretech-cc.dts -index 27093e6ac9e2..8b26c9661be1 100644 ---- a/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-libretech-cc.dts -+++ b/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-libretech-cc.dts -@@ -93,7 +93,7 @@ hdmi_5v: regulator-hdmi-5v { - regulator-always-on; - }; - -- vcc_3v3: regulator-vcc_3v3 { -+ vcc_3v3: regulator-vcc-3v3 { - compatible = "regulator-fixed"; - regulator-name = "VCC_3V3"; - regulator-min-microvolt = <3300000>; -@@ -117,7 +117,7 @@ vcc_card: regulator-vcc-card { - regulator-settling-time-down-us = <50000>; - }; - -- vddio_ao18: regulator-vddio_ao18 { -+ vddio_ao18: regulator-vddio-ao18 { - compatible = "regulator-fixed"; - regulator-name = "VDDIO_AO18"; - regulator-min-microvolt = <1800000>; -@@ -125,7 +125,7 @@ vddio_ao18: regulator-vddio_ao18 { - }; - - /* This is provided by LDOs on the eMMC daugther card */ -- vddio_boot: regulator-vddio_boot { -+ vddio_boot: regulator-vddio-boot { - compatible = "regulator-fixed"; - regulator-name = "VDDIO_BOOT"; - regulator-min-microvolt = <1800000>; -diff --git a/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-nexbox-a95x.dts b/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-nexbox-a95x.dts -index f1acca5c4434..c79f9f2099bf 100644 ---- a/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-nexbox-a95x.dts -+++ b/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-nexbox-a95x.dts -@@ -42,21 +42,21 @@ vddio_card: gpio-regulator { - <3300000 1>; - }; - -- vddio_boot: regulator-vddio_boot { -+ vddio_boot: regulator-vddio-boot { - compatible = "regulator-fixed"; - regulator-name = "VDDIO_BOOT"; - regulator-min-microvolt = <1800000>; - regulator-max-microvolt = <1800000>; - }; - -- vddao_3v3: regulator-vddao_3v3 { -+ vddao_3v3: regulator-vddao-3v3 { - compatible = "regulator-fixed"; - regulator-name = "VDDAO_3V3"; - regulator-min-microvolt = <3300000>; - regulator-max-microvolt = <3300000>; - }; - -- vcc_3v3: regulator-vcc_3v3 { -+ vcc_3v3: regulator-vcc-3v3 { - compatible = "regulator-fixed"; - regulator-name = "VCC_3V3"; - regulator-min-microvolt = <3300000>; -diff --git a/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-p212.dtsi b/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-p212.dtsi -index a150cc0e18ff..7e7dc87ede2d 100644 ---- a/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-p212.dtsi -+++ b/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-p212.dtsi -@@ -39,28 +39,28 @@ hdmi_5v: regulator-hdmi-5v { - regulator-always-on; - }; - -- vddio_boot: regulator-vddio_boot { -+ vddio_boot: regulator-vddio-boot { - compatible = "regulator-fixed"; - regulator-name = "VDDIO_BOOT"; - regulator-min-microvolt = <1800000>; - regulator-max-microvolt = <1800000>; - }; - -- vddao_3v3: regulator-vddao_3v3 { -+ vddao_3v3: regulator-vddao-3v3 { - compatible = "regulator-fixed"; - regulator-name = "VDDAO_3V3"; - regulator-min-microvolt = <3300000>; - regulator-max-microvolt = <3300000>; - }; - -- vddio_ao18: regulator-vddio_ao18 { -+ vddio_ao18: regulator-vddio-ao18 { - compatible = "regulator-fixed"; - regulator-name = "VDDIO_AO18"; - regulator-min-microvolt = <1800000>; - regulator-max-microvolt = <1800000>; - }; - -- vcc_3v3: regulator-vcc_3v3 { -+ vcc_3v3: regulator-vcc-3v3 { - compatible = "regulator-fixed"; - regulator-name = "VCC_3V3"; - regulator-min-microvolt = <3300000>; -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 cee27e7222c8..a03269a00486 100644 ---- a/arch/arm64/boot/dts/amlogic/meson-gxm-khadas-vim2.dts -+++ b/arch/arm64/boot/dts/amlogic/meson-gxm-khadas-vim2.dts -@@ -114,28 +114,28 @@ hdmi_5v: regulator-hdmi-5v { - regulator-always-on; - }; - -- vcc_3v3: regulator-vcc_3v3 { -+ vcc_3v3: regulator-vcc-3v3 { - compatible = "regulator-fixed"; - regulator-name = "VCC_3V3"; - regulator-min-microvolt = <3300000>; - regulator-max-microvolt = <3300000>; - }; - -- vddio_ao18: regulator-vddio_ao18 { -+ vddio_ao18: regulator-vddio-ao18 { - compatible = "regulator-fixed"; - regulator-name = "VDDIO_AO18"; - regulator-min-microvolt = <1800000>; - regulator-max-microvolt = <1800000>; - }; - -- vddio_boot: regulator-vddio_boot { -+ vddio_boot: regulator-vddio-boot { - compatible = "regulator-fixed"; - regulator-name = "VDDIO_BOOT"; - regulator-min-microvolt = <1800000>; - regulator-max-microvolt = <1800000>; - }; - -- vddao_3v3: regulator-vddao_3v3 { -+ vddao_3v3: regulator-vddao-3v3 { - compatible = "regulator-fixed"; - regulator-name = "VDDAO_3V3"; - regulator-min-microvolt = <3300000>; -diff --git a/arch/arm64/boot/dts/amlogic/meson-gxm-s912-libretech-pc.dts b/arch/arm64/boot/dts/amlogic/meson-gxm-s912-libretech-pc.dts -index 4eda9f634c42..a66f19851ac9 100644 ---- a/arch/arm64/boot/dts/amlogic/meson-gxm-s912-libretech-pc.dts -+++ b/arch/arm64/boot/dts/amlogic/meson-gxm-s912-libretech-pc.dts -@@ -14,7 +14,7 @@ / { - "amlogic,meson-gxm"; - model = "Libre Computer AML-S912-PC"; - -- typec2_vbus: regulator-typec2_vbus { -+ typec2_vbus: regulator-typec2-vbus { - compatible = "regulator-fixed"; - regulator-name = "TYPEC2_VBUS"; - regulator-min-microvolt = <5000000>; -diff --git a/arch/arm64/boot/dts/amlogic/meson-khadas-vim3.dtsi b/arch/arm64/boot/dts/amlogic/meson-khadas-vim3.dtsi -index 514a6dd4b124..e78cc9b577a0 100644 ---- a/arch/arm64/boot/dts/amlogic/meson-khadas-vim3.dtsi -+++ b/arch/arm64/boot/dts/amlogic/meson-khadas-vim3.dtsi -@@ -80,7 +80,7 @@ sdio_pwrseq: sdio-pwrseq { - clock-names = "ext_clock"; - }; - -- dc_in: regulator-dc_in { -+ dc_in: regulator-dc-in { - compatible = "regulator-fixed"; - regulator-name = "DC_IN"; - regulator-min-microvolt = <5000000>; -@@ -88,7 +88,7 @@ dc_in: regulator-dc_in { - regulator-always-on; - }; - -- vcc_5v: regulator-vcc_5v { -+ vcc_5v: regulator-vcc-5v { - compatible = "regulator-fixed"; - regulator-name = "VCC_5V"; - regulator-min-microvolt = <5000000>; -@@ -99,7 +99,7 @@ vcc_5v: regulator-vcc_5v { - enable-active-high; - }; - -- vcc_1v8: regulator-vcc_1v8 { -+ vcc_1v8: regulator-vcc-1v8 { - compatible = "regulator-fixed"; - regulator-name = "VCC_1V8"; - regulator-min-microvolt = <1800000>; -@@ -108,7 +108,7 @@ vcc_1v8: regulator-vcc_1v8 { - regulator-always-on; - }; - -- vcc_3v3: regulator-vcc_3v3 { -+ vcc_3v3: regulator-vcc-3v3 { - compatible = "regulator-fixed"; - regulator-name = "VCC_3V3"; - regulator-min-microvolt = <3300000>; -@@ -118,7 +118,7 @@ vcc_3v3: regulator-vcc_3v3 { - /* FIXME: actually controlled by VDDCPU_B_EN */ - }; - -- vddao_1v8: regulator-vddao_1v8 { -+ vddao_1v8: regulator-vddao-1v8 { - compatible = "regulator-fixed"; - regulator-name = "VDDIO_AO1V8"; - regulator-min-microvolt = <1800000>; -@@ -127,7 +127,7 @@ vddao_1v8: regulator-vddao_1v8 { - regulator-always-on; - }; - -- emmc_1v8: regulator-emmc_1v8 { -+ emmc_1v8: regulator-emmc-1v8 { - compatible = "regulator-fixed"; - regulator-name = "EMMC_AO1V8"; - regulator-min-microvolt = <1800000>; -@@ -136,7 +136,7 @@ emmc_1v8: regulator-emmc_1v8 { - regulator-always-on; - }; - -- vsys_3v3: regulator-vsys_3v3 { -+ vsys_3v3: regulator-vsys-3v3 { - compatible = "regulator-fixed"; - regulator-name = "VSYS_3V3"; - regulator-min-microvolt = <3300000>; -@@ -145,7 +145,7 @@ vsys_3v3: regulator-vsys_3v3 { - regulator-always-on; - }; - -- usb_pwr: regulator-usb_pwr { -+ usb_pwr: regulator-usb-pwr { - compatible = "regulator-fixed"; - regulator-name = "USB_PWR"; - regulator-min-microvolt = <5000000>; -diff --git a/arch/arm64/boot/dts/amlogic/meson-libretech-cottonwood.dtsi b/arch/arm64/boot/dts/amlogic/meson-libretech-cottonwood.dtsi -index 35e8f5bae990..082b72703cdf 100644 ---- a/arch/arm64/boot/dts/amlogic/meson-libretech-cottonwood.dtsi -+++ b/arch/arm64/boot/dts/amlogic/meson-libretech-cottonwood.dtsi -@@ -150,7 +150,7 @@ vcc_5v: regulator-vcc-5v { - gpio-open-drain; - }; - -- vddao_3v3: regulator-vddao_3v3 { -+ vddao_3v3: regulator-vddao-3v3 { - compatible = "regulator-fixed"; - regulator-name = "VDDAO_3V3"; - regulator-min-microvolt = <3300000>; -@@ -171,7 +171,7 @@ vddcpu_b: regulator-vddcpu-b { - pwm-dutycycle-range = <100 0>; - }; - -- vddio_ao18: regulator-vddio_ao18 { -+ vddio_ao18: regulator-vddio-ao18 { - compatible = "regulator-fixed"; - regulator-name = "VDDIO_AO18"; - regulator-min-microvolt = <1800000>; -@@ -180,7 +180,7 @@ vddio_ao18: regulator-vddio_ao18 { - vin-supply = <&vddao_3v3>; - }; - -- vddio_c: regulator-vddio_c { -+ vddio_c: regulator-vddio-c { - compatible = "regulator-gpio"; - regulator-name = "VDDIO_C"; - regulator-min-microvolt = <1800000>; -diff --git a/arch/arm64/boot/dts/amlogic/meson-sm1-ac2xx.dtsi b/arch/arm64/boot/dts/amlogic/meson-sm1-ac2xx.dtsi -index 46a34731f7e2..d1fa8b8bf795 100644 ---- a/arch/arm64/boot/dts/amlogic/meson-sm1-ac2xx.dtsi -+++ b/arch/arm64/boot/dts/amlogic/meson-sm1-ac2xx.dtsi -@@ -54,7 +54,7 @@ memory@0 { - reg = <0x0 0x0 0x0 0x40000000>; - }; - -- ao_5v: regulator-ao_5v { -+ ao_5v: regulator-ao-5v { - compatible = "regulator-fixed"; - regulator-name = "AO_5V"; - regulator-min-microvolt = <5000000>; -@@ -63,7 +63,7 @@ ao_5v: regulator-ao_5v { - regulator-always-on; - }; - -- dc_in: regulator-dc_in { -+ dc_in: regulator-dc-in { - compatible = "regulator-fixed"; - regulator-name = "DC_IN"; - regulator-min-microvolt = <5000000>; -@@ -71,7 +71,7 @@ dc_in: regulator-dc_in { - regulator-always-on; - }; - -- emmc_1v8: regulator-emmc_1v8 { -+ emmc_1v8: regulator-emmc-1v8 { - compatible = "regulator-fixed"; - regulator-name = "EMMC_1V8"; - regulator-min-microvolt = <1800000>; -@@ -80,7 +80,7 @@ emmc_1v8: regulator-emmc_1v8 { - regulator-always-on; - }; - -- vddao_3v3: regulator-vddao_3v3 { -+ vddao_3v3: regulator-vddao-3v3 { - compatible = "regulator-fixed"; - regulator-name = "VDDAO_3V3"; - regulator-min-microvolt = <3300000>; -@@ -105,7 +105,7 @@ vddcpu: regulator-vddcpu { - regulator-always-on; - }; - -- vddio_ao1v8: regulator-vddio_ao1v8 { -+ vddio_ao1v8: regulator-vddio-ao1v8 { - compatible = "regulator-fixed"; - regulator-name = "VDDIO_AO1V8"; - regulator-min-microvolt = <1800000>; -diff --git a/arch/arm64/boot/dts/amlogic/meson-sm1-bananapi.dtsi b/arch/arm64/boot/dts/amlogic/meson-sm1-bananapi.dtsi -index 62404743e62d..81dce862902a 100644 ---- a/arch/arm64/boot/dts/amlogic/meson-sm1-bananapi.dtsi -+++ b/arch/arm64/boot/dts/amlogic/meson-sm1-bananapi.dtsi -@@ -82,7 +82,7 @@ memory@0 { - reg = <0x0 0x0 0x0 0x40000000>; - }; - -- emmc_1v8: regulator-emmc_1v8 { -+ emmc_1v8: regulator-emmc-1v8 { - compatible = "regulator-fixed"; - regulator-name = "EMMC_1V8"; - regulator-min-microvolt = <1800000>; -@@ -91,7 +91,7 @@ emmc_1v8: regulator-emmc_1v8 { - regulator-always-on; - }; - -- dc_in: regulator-dc_in { -+ dc_in: regulator-dc-in { - compatible = "regulator-fixed"; - regulator-name = "DC_IN"; - regulator-min-microvolt = <5000000>; -@@ -99,7 +99,7 @@ dc_in: regulator-dc_in { - regulator-always-on; - }; - -- vddio_c: regulator-vddio_c { -+ vddio_c: regulator-vddio-c { - compatible = "regulator-gpio"; - regulator-name = "VDDIO_C"; - regulator-min-microvolt = <1800000>; -@@ -116,7 +116,7 @@ vddio_c: regulator-vddio_c { - <3300000 1>; - }; - -- tflash_vdd: regulator-tflash_vdd { -+ tflash_vdd: regulator-tflash-vdd { - compatible = "regulator-fixed"; - regulator-name = "TFLASH_VDD"; - regulator-min-microvolt = <3300000>; -@@ -127,7 +127,7 @@ tflash_vdd: regulator-tflash_vdd { - regulator-always-on; - }; - -- vddao_1v8: regulator-vddao_1v8 { -+ vddao_1v8: regulator-vddao-1v8 { - compatible = "regulator-fixed"; - regulator-name = "VDDAO_1V8"; - regulator-min-microvolt = <1800000>; -@@ -136,7 +136,7 @@ vddao_1v8: regulator-vddao_1v8 { - regulator-always-on; - }; - -- vddao_3v3: regulator-vddao_3v3 { -+ vddao_3v3: regulator-vddao-3v3 { - compatible = "regulator-fixed"; - regulator-name = "VDDAO_3V3"; - regulator-min-microvolt = <3300000>; -@@ -165,7 +165,7 @@ vddcpu: regulator-vddcpu { - }; - - /* USB Hub Power Enable */ -- vl_pwr_en: regulator-vl_pwr_en { -+ vl_pwr_en: regulator-vl-pwr-en { - compatible = "regulator-fixed"; - regulator-name = "VL_PWR_EN"; - regulator-min-microvolt = <5000000>; -diff --git a/arch/arm64/boot/dts/amlogic/meson-sm1-odroid-hc4.dts b/arch/arm64/boot/dts/amlogic/meson-sm1-odroid-hc4.dts -index 846a2d6c20e5..0170139b8d32 100644 ---- a/arch/arm64/boot/dts/amlogic/meson-sm1-odroid-hc4.dts -+++ b/arch/arm64/boot/dts/amlogic/meson-sm1-odroid-hc4.dts -@@ -43,7 +43,7 @@ led-red { - }; - - /* Powers the SATA Disk 0 regulator, which is enabled when a disk load is detected */ -- p12v_0: regulator-p12v_0 { -+ p12v_0: regulator-p12v-0 { - compatible = "regulator-fixed"; - regulator-name = "P12V_0"; - regulator-min-microvolt = <12000000>; -@@ -56,7 +56,7 @@ p12v_0: regulator-p12v_0 { - }; - - /* Powers the SATA Disk 1 regulator, which is enabled when a disk load is detected */ -- p12v_1: regulator-p12v_1 { -+ p12v_1: regulator-p12v-1 { - compatible = "regulator-fixed"; - regulator-name = "P12V_1"; - regulator-min-microvolt = <12000000>; -diff --git a/arch/arm64/boot/dts/amlogic/meson-sm1-odroid.dtsi b/arch/arm64/boot/dts/amlogic/meson-sm1-odroid.dtsi -index 1db2327bbd13..951eb8e3f0c0 100644 ---- a/arch/arm64/boot/dts/amlogic/meson-sm1-odroid.dtsi -+++ b/arch/arm64/boot/dts/amlogic/meson-sm1-odroid.dtsi -@@ -28,7 +28,7 @@ emmc_pwrseq: emmc-pwrseq { - reset-gpios = <&gpio BOOT_12 GPIO_ACTIVE_LOW>; - }; - -- tflash_vdd: regulator-tflash_vdd { -+ tflash_vdd: regulator-tflash-vdd { - compatible = "regulator-fixed"; - - regulator-name = "TFLASH_VDD"; -@@ -40,7 +40,7 @@ tflash_vdd: regulator-tflash_vdd { - regulator-always-on; - }; - -- tf_io: gpio-regulator-tf_io { -+ tf_io: gpio-regulator-tf-io { - compatible = "regulator-gpio"; - - regulator-name = "TF_IO"; -@@ -59,7 +59,7 @@ tf_io: gpio-regulator-tf_io { - <1800000 1>; - }; - -- flash_1v8: regulator-flash_1v8 { -+ flash_1v8: regulator-flash-1v8 { - compatible = "regulator-fixed"; - regulator-name = "FLASH_1V8"; - regulator-min-microvolt = <1800000>; -@@ -68,7 +68,7 @@ flash_1v8: regulator-flash_1v8 { - regulator-always-on; - }; - -- main_12v: regulator-main_12v { -+ main_12v: regulator-main-12v { - compatible = "regulator-fixed"; - regulator-name = "12V"; - regulator-min-microvolt = <12000000>; -@@ -76,7 +76,7 @@ main_12v: regulator-main_12v { - regulator-always-on; - }; - -- vcc_5v: regulator-vcc_5v { -+ vcc_5v: regulator-vcc-5v { - compatible = "regulator-fixed"; - regulator-name = "5V"; - regulator-min-microvolt = <5000000>; -@@ -87,7 +87,7 @@ vcc_5v: regulator-vcc_5v { - enable-active-high; - }; - -- vcc_1v8: regulator-vcc_1v8 { -+ vcc_1v8: regulator-vcc-1v8 { - compatible = "regulator-fixed"; - regulator-name = "VCC_1V8"; - regulator-min-microvolt = <1800000>; -@@ -96,7 +96,7 @@ vcc_1v8: regulator-vcc_1v8 { - regulator-always-on; - }; - -- vcc_3v3: regulator-vcc_3v3 { -+ vcc_3v3: regulator-vcc-3v3 { - compatible = "regulator-fixed"; - regulator-name = "VCC_3V3"; - regulator-min-microvolt = <3300000>; -@@ -125,7 +125,7 @@ vddcpu: regulator-vddcpu { - regulator-always-on; - }; - -- usb_pwr_en: regulator-usb_pwr_en { -+ usb_pwr_en: regulator-usb-pwr-en { - compatible = "regulator-fixed"; - regulator-name = "USB_PWR_EN"; - regulator-min-microvolt = <5000000>; -@@ -137,7 +137,7 @@ usb_pwr_en: regulator-usb_pwr_en { - enable-active-high; - }; - -- vddao_1v8: regulator-vddao_1v8 { -+ vddao_1v8: regulator-vddao-1v8 { - compatible = "regulator-fixed"; - regulator-name = "VDDAO_1V8"; - regulator-min-microvolt = <1800000>; -@@ -146,7 +146,7 @@ vddao_1v8: regulator-vddao_1v8 { - regulator-always-on; - }; - -- vddao_3v3: regulator-vddao_3v3 { -+ vddao_3v3: regulator-vddao-3v3 { - compatible = "regulator-fixed"; - regulator-name = "VDDAO_3V3"; - regulator-min-microvolt = <3300000>; -diff --git a/arch/arm64/boot/dts/amlogic/meson-sm1-sei610.dts b/arch/arm64/boot/dts/amlogic/meson-sm1-sei610.dts -index 109932068dbe..3581e14cbf18 100644 ---- a/arch/arm64/boot/dts/amlogic/meson-sm1-sei610.dts -+++ b/arch/arm64/boot/dts/amlogic/meson-sm1-sei610.dts -@@ -127,7 +127,7 @@ memory@0 { - reg = <0x0 0x0 0x0 0x40000000>; - }; - -- ao_5v: regulator-ao_5v { -+ ao_5v: regulator-ao-5v { - compatible = "regulator-fixed"; - regulator-name = "AO_5V"; - regulator-min-microvolt = <5000000>; -@@ -136,7 +136,7 @@ ao_5v: regulator-ao_5v { - regulator-always-on; - }; - -- dc_in: regulator-dc_in { -+ dc_in: regulator-dc-in { - compatible = "regulator-fixed"; - regulator-name = "DC_IN"; - regulator-min-microvolt = <5000000>; -@@ -144,7 +144,7 @@ dc_in: regulator-dc_in { - regulator-always-on; - }; - -- emmc_1v8: regulator-emmc_1v8 { -+ emmc_1v8: regulator-emmc-1v8 { - compatible = "regulator-fixed"; - regulator-name = "EMMC_1V8"; - regulator-min-microvolt = <1800000>; -@@ -153,7 +153,7 @@ emmc_1v8: regulator-emmc_1v8 { - regulator-always-on; - }; - -- vddao_3v3: regulator-vddao_3v3 { -+ vddao_3v3: regulator-vddao-3v3 { - compatible = "regulator-fixed"; - regulator-name = "VDDAO_3V3"; - regulator-min-microvolt = <3300000>; -@@ -163,7 +163,7 @@ vddao_3v3: regulator-vddao_3v3 { - }; - - /* Used by Tuner, RGB Led & IR Emitter LED array */ -- vddao_3v3_t: regulator-vddao_3v3_t { -+ vddao_3v3_t: regulator-vddao-3v3-t { - compatible = "regulator-fixed"; - regulator-name = "VDDAO_3V3_T"; - regulator-min-microvolt = <3300000>; -@@ -192,7 +192,7 @@ vddcpu: regulator-vddcpu { - regulator-always-on; - }; - -- vddio_ao1v8: regulator-vddio_ao1v8 { -+ vddio_ao1v8: regulator-vddio-ao1v8 { - compatible = "regulator-fixed"; - regulator-name = "VDDIO_AO1V8"; - regulator-min-microvolt = <1800000>; --- -2.34.1 - diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0012-FROMLIST-v1-drm-meson-Avoid-use-after-free-issues-wi.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0012-FROMLIST-v1-drm-meson-Avoid-use-after-free-issues-wi.patch new file mode 100644 index 0000000000..1ae3e62929 --- /dev/null +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0012-FROMLIST-v1-drm-meson-Avoid-use-after-free-issues-wi.patch @@ -0,0 +1,60 @@ +From 6745bff6c6c1ee1746c955504a3ea32d12ec8d79 Mon Sep 17 00:00:00 2001 +From: Zhang Kunbo +Date: Wed, 6 Nov 2024 02:45:48 +0000 +Subject: [PATCH 12/37] FROMLIST(v1): drm/meson: Avoid use-after-free issues + with crtc + +It's dangerous to call drm_crtc_init_with_planes() whose second +argument is allocated with devm_kzalloc() [1][2]. + +Use drmm_kzalloc instead to avoid UAF. + +[1] https://lore.kernel.org/all/a830685d8b10a00cfe0a86db1ee9fb13@ispras.ru +[2] https://lore.kernel.org/all/2111196.TG1k3f53YQ@avalon + +Fixes: bbbe775ec5b5 ("drm: Add support for Amlogic Meson Graphic Controller") +Signed-off-by: Zhang Kunbo +--- + drivers/gpu/drm/meson/meson_crtc.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/drivers/gpu/drm/meson/meson_crtc.c b/drivers/gpu/drm/meson/meson_crtc.c +index d70616da8ce2..603022554a48 100644 +--- a/drivers/gpu/drm/meson/meson_crtc.c ++++ b/drivers/gpu/drm/meson/meson_crtc.c +@@ -17,6 +17,7 @@ + #include + #include + #include ++#include + + #include "meson_crtc.h" + #include "meson_plane.h" +@@ -72,7 +73,6 @@ static void meson_crtc_disable_vblank(struct drm_crtc *crtc) + static const struct drm_crtc_funcs meson_crtc_funcs = { + .atomic_destroy_state = drm_atomic_helper_crtc_destroy_state, + .atomic_duplicate_state = drm_atomic_helper_crtc_duplicate_state, +- .destroy = drm_crtc_cleanup, + .page_flip = drm_atomic_helper_page_flip, + .reset = drm_atomic_helper_crtc_reset, + .set_config = drm_atomic_helper_set_config, +@@ -677,14 +677,14 @@ int meson_crtc_create(struct meson_drm *priv) + struct drm_crtc *crtc; + int ret; + +- meson_crtc = devm_kzalloc(priv->drm->dev, sizeof(*meson_crtc), ++ meson_crtc = drmm_kzalloc(priv->drm, sizeof(*meson_crtc), + GFP_KERNEL); + if (!meson_crtc) + return -ENOMEM; + + meson_crtc->priv = priv; + crtc = &meson_crtc->base; +- ret = drm_crtc_init_with_planes(priv->drm, crtc, ++ ret = drmm_crtc_init_with_planes(priv->drm, crtc, + priv->primary_plane, NULL, + &meson_crtc_funcs, "meson_crtc"); + if (ret) { +-- +2.34.1 + diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0013-FROMLIST-v2-media-si2168-increase-cmd-execution-time.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0013-FROMLIST-v2-media-si2168-increase-cmd-execution-time.patch new file mode 100644 index 0000000000..b5a751a2af --- /dev/null +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0013-FROMLIST-v2-media-si2168-increase-cmd-execution-time.patch @@ -0,0 +1,69 @@ +From 4babe8c6a677ed0f21cf518c8ce78caecc8963b8 Mon Sep 17 00:00:00 2001 +From: Christian Hewitt +Date: Fri, 7 Feb 2025 04:29:08 +0000 +Subject: [PATCH 13/37] FROMLIST(v2): media: si2168: increase cmd execution + timeout value + +Testing with a MyGica T230C v2 USB device (0572:c68a) shows occasional +cmd timeouts that cause Tvheadend services to fail: + +Jan 28 12:23:46.788180 LibreELEC kernel: si2168 1-0060: cmd execution took 0 ms +Jan 28 12:23:46.790799 LibreELEC kernel: si2168 1-0060: cmd execution took 0 ms +Jan 28 12:23:46.878158 LibreELEC kernel: si2168 1-0060: cmd execution took 80 ms +Jan 28 12:23:46.879158 LibreELEC kernel: si2168 1-0060: failed=-110 +Jan 28 12:23:46.879908 LibreELEC kernel: si2168 1-0060: failed=-110 +Jan 28 12:23:46.948234 LibreELEC kernel: si2168 1-0060: cmd execution took 60 ms +Jan 28 12:23:46.949121 LibreELEC kernel: si2168 1-0060: cmd execution took 0 ms +Jan 28 12:23:46.949940 LibreELEC kernel: si2168 1-0060: cmd execution took 10 ms +.. +Jan 28 12:23:57.457216 LibreELEC tvheadend[3126]: subscription: 009B: service instance is bad, reason: No input detected +Jan 28 12:23:57.457392 LibreELEC tvheadend[3126]: linuxdvb: Silicon Labs Si2168 #0 : DVB-T #0 - stopping 778MHz in DVB-T Network +.. +Jan 28 12:23:57.457584 LibreELEC tvheadend[3126]: subscription: 009B: No input source available for subscription "127.0.0.1 [ | Kodi Media Center ]" to channel "XXXXXXX" + +The original timeout of 50ms was extended to 70ms in commit 551c33e729f6 +("[media] Si2168: increase timeout to fix firmware loading") but testing +shows there are other demux commands that take longer. The largest value +observed from user reports/logs is 150ms so increase timeout to 200ms. + +Signed-off-by: Christian Hewitt +Reviewed-by: Wolfram Sang +--- + drivers/media/dvb-frontends/si2168.c | 7 ++++--- + 1 file changed, 4 insertions(+), 3 deletions(-) + +diff --git a/drivers/media/dvb-frontends/si2168.c b/drivers/media/dvb-frontends/si2168.c +index d6b6b8bc7d4e..843f1e01318e 100644 +--- a/drivers/media/dvb-frontends/si2168.c ++++ b/drivers/media/dvb-frontends/si2168.c +@@ -9,6 +9,8 @@ + + #include "si2168_priv.h" + ++#define CMD_TIMEOUT 200 ++ + static const struct dvb_frontend_ops si2168_ops; + + static void cmd_init(struct si2168_cmd *cmd, const u8 *buf, int wlen, int rlen) +@@ -40,8 +42,7 @@ static int si2168_cmd_execute(struct i2c_client *client, struct si2168_cmd *cmd) + + if (cmd->rlen) { + /* wait cmd execution terminate */ +- #define TIMEOUT 70 +- timeout = jiffies + msecs_to_jiffies(TIMEOUT); ++ timeout = jiffies + msecs_to_jiffies(CMD_TIMEOUT); + while (!time_after(jiffies, timeout)) { + ret = i2c_master_recv(client, cmd->args, cmd->rlen); + if (ret < 0) { +@@ -58,7 +59,7 @@ static int si2168_cmd_execute(struct i2c_client *client, struct si2168_cmd *cmd) + + dev_dbg(&client->dev, "cmd execution took %d ms\n", + jiffies_to_msecs(jiffies) - +- (jiffies_to_msecs(timeout) - TIMEOUT)); ++ (jiffies_to_msecs(timeout) - CMD_TIMEOUT)); + + /* error bit set? */ + if ((cmd->args[0] >> 6) & 0x01) { +-- +2.34.1 + diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0020-FROMLIST-v1-media-meson-vdec-esparser-check-parsing-.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0014-FROMLIST-v1-media-meson-vdec-esparser-check-parsing-.patch similarity index 93% rename from projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0020-FROMLIST-v1-media-meson-vdec-esparser-check-parsing-.patch rename to projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0014-FROMLIST-v1-media-meson-vdec-esparser-check-parsing-.patch index 1f32853b3d..6d4a5d04c7 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0020-FROMLIST-v1-media-meson-vdec-esparser-check-parsing-.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0014-FROMLIST-v1-media-meson-vdec-esparser-check-parsing-.patch @@ -1,7 +1,7 @@ -From b4b3656688319a77827ce533f8797f317dfaa01c Mon Sep 17 00:00:00 2001 +From 3eb58e53708f534a47f4cccbd44efa36d5584a5c Mon Sep 17 00:00:00 2001 From: Neil Armstrong Date: Mon, 22 Nov 2021 09:15:21 +0000 -Subject: [PATCH 20/53] FROMLIST(v1): media: meson: vdec: esparser: check +Subject: [PATCH 14/37] FROMLIST(v1): media: meson: vdec: esparser: check parsing state with hardware write pointer Also check the hardware write pointer to check if ES Parser has stalled. diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0014-FROMLIST-v5-dt-bindings-auxdisplay-Add-Titan-Micro-E.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0014-FROMLIST-v5-dt-bindings-auxdisplay-Add-Titan-Micro-E.patch deleted file mode 100644 index 2ae6915799..0000000000 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0014-FROMLIST-v5-dt-bindings-auxdisplay-Add-Titan-Micro-E.patch +++ /dev/null @@ -1,114 +0,0 @@ -From 24712c83de1ef21e7263f7c3bbe4423068070089 Mon Sep 17 00:00:00 2001 -From: Heiner Kallweit -Date: Sun, 20 Feb 2022 08:24:47 +0000 -Subject: [PATCH 14/53] FROMLIST(v5): dt-bindings: auxdisplay: Add Titan Micro - Electronics TM1628 -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Add a YAML schema binding for TM1628 auxdisplay -(7/11-segment LED) controller. - -This patch is partially based on previous RFC work from -Andreas Färber . - -Co-developed-by: Andreas Färber -Signed-off-by: Andreas Färber -Signed-off-by: Heiner Kallweit ---- - .../bindings/auxdisplay/titanmec,tm1628.yaml | 82 +++++++++++++++++++ - 1 file changed, 82 insertions(+) - create mode 100644 Documentation/devicetree/bindings/auxdisplay/titanmec,tm1628.yaml - -diff --git a/Documentation/devicetree/bindings/auxdisplay/titanmec,tm1628.yaml b/Documentation/devicetree/bindings/auxdisplay/titanmec,tm1628.yaml -new file mode 100644 -index 000000000000..d9cbbc950aab ---- /dev/null -+++ b/Documentation/devicetree/bindings/auxdisplay/titanmec,tm1628.yaml -@@ -0,0 +1,82 @@ -+# SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause) -+%YAML 1.2 -+--- -+$id: http://devicetree.org/schemas/leds/titanmec,tm1628.yaml# -+$schema: http://devicetree.org/meta-schemas/core.yaml# -+ -+title: Titan Micro Electronics TM1628 LED controller -+ -+properties: -+ compatible: -+ enum: -+ - titanmec,tm1628 -+ -+ reg: -+ maxItems: 1 -+ -+ grid: -+ description: -+ Mapping of display digit position to grid number. -+ This implicitly defines the display size. -+ $ref: /schemas/types.yaml#/definitions/uint8-array -+ minItems: 1 -+ maxItems: 7 -+ -+ segment-mapping: -+ description: -+ Mapping of 7 segment display segments A-G to bit numbers 1-12. -+ $ref: /schemas/types.yaml#/definitions/uint8-array -+ minItems: 7 -+ maxItems: 7 -+ -+ "#address-cells": -+ const: 2 -+ -+ "#size-cells": -+ const: 0 -+ -+required: -+ - compatible -+ - reg -+ -+patternProperties: -+ "^.*@[1-7],([1-9]|1[0-6])$": -+ type: object -+ description: | -+ Properties for a single LED. -+ -+ properties: -+ reg: -+ description: | -+ 1-based grid number, followed by 1-based segment bit number. -+ maxItems: 1 -+ -+ required: -+ - reg -+ -+examples: -+ - | -+ #include -+ -+ spi { -+ #address-cells = <1>; -+ #size-cells = <0>; -+ -+ led-controller@0 { -+ compatible = "titanmec,tm1628"; -+ reg = <0>; -+ spi-3-wire; -+ spi-lsb-first; -+ spi-max-frequency = <500000>; -+ grid = /bits/ 8 <4 3 2 1>; -+ segment-mapping = /bits/ 8 <4 5 6 1 2 3 7>; -+ #address-cells = <2>; -+ #size-cells = <0>; -+ -+ alarmn@5,4 { -+ reg = <5 4>; -+ function = LED_FUNCTION_ALARM; -+ }; -+ }; -+ }; -+... --- -2.34.1 - diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0021-FROMLIST-v2-media-meson-vdec-implement-10bit-bitstre.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0015-FROMLIST-v2-media-meson-vdec-implement-10bit-bitstre.patch similarity index 99% rename from projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0021-FROMLIST-v2-media-meson-vdec-implement-10bit-bitstre.patch rename to projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0015-FROMLIST-v2-media-meson-vdec-implement-10bit-bitstre.patch index 46840b6b3f..2a5251ecb0 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0021-FROMLIST-v2-media-meson-vdec-implement-10bit-bitstre.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0015-FROMLIST-v2-media-meson-vdec-implement-10bit-bitstre.patch @@ -1,7 +1,7 @@ -From 73aa203801527e081409ead1c5708552ecc5f82b Mon Sep 17 00:00:00 2001 +From 61874bc3835b2326bb40bae200888657e7d38fa3 Mon Sep 17 00:00:00 2001 From: Benjamin Roszak Date: Mon, 23 Jan 2023 10:56:46 +0000 -Subject: [PATCH 21/53] FROMLIST(v2): media: meson: vdec: implement 10bit +Subject: [PATCH 15/37] FROMLIST(v2): media: meson: vdec: implement 10bit bitstream handling In order to support 10bit bitstream decoding, buffers and MMU @@ -453,10 +453,10 @@ index baf0dba3c418..ef6dd05d89c8 100644 return -EAGAIN; } diff --git a/drivers/staging/media/meson/vdec/vdec.h b/drivers/staging/media/meson/vdec/vdec.h -index 0906b8fb5cc6..a48170fe4cff 100644 +index 258685177700..e1e731b7d431 100644 --- a/drivers/staging/media/meson/vdec/vdec.h +++ b/drivers/staging/media/meson/vdec/vdec.h -@@ -244,6 +244,7 @@ struct amvdec_session { +@@ -243,6 +243,7 @@ struct amvdec_session { u32 width; u32 height; u32 colorspace; diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0015-FROMLIST-v5-docs-ABI-document-tm1628-attribute-displ.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0015-FROMLIST-v5-docs-ABI-document-tm1628-attribute-displ.patch deleted file mode 100644 index f04e8801ec..0000000000 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0015-FROMLIST-v5-docs-ABI-document-tm1628-attribute-displ.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 35a48968c689d245bbe3dd2ff5cd9192d3a16e62 Mon Sep 17 00:00:00 2001 -From: Heiner Kallweit -Date: Sun, 20 Feb 2022 08:26:27 +0000 -Subject: [PATCH 15/53] FROMLIST(v5): docs: ABI: document tm1628 attribute - display-text - -Document the attribute for reading / writing the text to be displayed on -the 7 segment display. - -Signed-off-by: Heiner Kallweit ---- - Documentation/ABI/testing/sysfs-devices-auxdisplay-tm1628 | 7 +++++++ - 1 file changed, 7 insertions(+) - create mode 100644 Documentation/ABI/testing/sysfs-devices-auxdisplay-tm1628 - -diff --git a/Documentation/ABI/testing/sysfs-devices-auxdisplay-tm1628 b/Documentation/ABI/testing/sysfs-devices-auxdisplay-tm1628 -new file mode 100644 -index 000000000000..382757e721af ---- /dev/null -+++ b/Documentation/ABI/testing/sysfs-devices-auxdisplay-tm1628 -@@ -0,0 +1,7 @@ -+What: /sys/devices/.../display-text -+Date: February 2022 -+Contact: Heiner Kallweit -+Description: -+ The text to be displayed on the 7 segment display. -+ Any printable character is allowed as input, but some -+ can not be displayed in a readable way with 7 segments. --- -2.34.1 - diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0022-FROMLIST-v2-media-meson-vdec-add-HEVC-decode-codec.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0016-FROMLIST-v2-media-meson-vdec-add-HEVC-decode-codec.patch similarity index 98% rename from projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0022-FROMLIST-v2-media-meson-vdec-add-HEVC-decode-codec.patch rename to projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0016-FROMLIST-v2-media-meson-vdec-add-HEVC-decode-codec.patch index 44edd7f875..7d04ce2ae7 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0022-FROMLIST-v2-media-meson-vdec-add-HEVC-decode-codec.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0016-FROMLIST-v2-media-meson-vdec-add-HEVC-decode-codec.patch @@ -1,7 +1,7 @@ -From 00829e834a4cd6594b076550fd18be30ddba5b0e Mon Sep 17 00:00:00 2001 +From befb64847f9d38e20a38ed9ca3e351a4d80e9d05 Mon Sep 17 00:00:00 2001 From: Maxime Jourdan Date: Mon, 23 Jan 2023 11:07:04 +0000 -Subject: [PATCH 22/53] FROMLIST(v2): media: meson: vdec: add HEVC decode codec +Subject: [PATCH 16/37] FROMLIST(v2): media: meson: vdec: add HEVC decode codec Add initial HEVC codec for the Amlogic GXBB/GXL/GXM SoCs using the common "HEVC" decoder driver. @@ -15,8 +15,8 @@ Signed-off-by: Benjamin Roszak drivers/staging/media/meson/vdec/codec_hevc.h | 13 + drivers/staging/media/meson/vdec/esparser.c | 3 +- drivers/staging/media/meson/vdec/hevc_regs.h | 1 + - .../staging/media/meson/vdec/vdec_platform.c | 37 + - 6 files changed, 1516 insertions(+), 2 deletions(-) + .../staging/media/meson/vdec/vdec_platform.c | 49 + + 6 files changed, 1528 insertions(+), 2 deletions(-) create mode 100644 drivers/staging/media/meson/vdec/codec_hevc.c create mode 100644 drivers/staging/media/meson/vdec/codec_hevc.h @@ -1546,7 +1546,7 @@ index 0392f41a1eed..e7eabdd2b119 100644 #define HEVC_SAO_MMU_VH1_ADDR 0xd8ec diff --git a/drivers/staging/media/meson/vdec/vdec_platform.c b/drivers/staging/media/meson/vdec/vdec_platform.c -index f1df637681e5..083adf0d07d9 100644 +index 8a7e5b3f5d00..870e61dedd81 100644 --- a/drivers/staging/media/meson/vdec/vdec_platform.c +++ b/drivers/staging/media/meson/vdec/vdec_platform.c @@ -11,10 +11,23 @@ @@ -1592,7 +1592,26 @@ index f1df637681e5..083adf0d07d9 100644 }, { .pixfmt = V4L2_PIX_FMT_H264, .min_buffers = 2, -@@ -70,6 +95,18 @@ static const struct amvdec_format vdec_formats_gxm[] = { +@@ -59,6 +84,18 @@ static const struct amvdec_format vdec_formats_gxl[] = { + + static const struct amvdec_format vdec_formats_gxlx[] = { + { ++ .pixfmt = V4L2_PIX_FMT_HEVC, ++ .min_buffers = 4, ++ .max_buffers = 24, ++ .max_width = 3840, ++ .max_height = 2160, ++ .vdec_ops = &vdec_hevc_ops, ++ .codec_ops = &codec_hevc_ops, ++ .firmware_path = "meson/vdec/gxl_hevc.bin", ++ .pixfmts_cap = { V4L2_PIX_FMT_NV12M, 0 }, ++ .flags = V4L2_FMT_FLAG_COMPRESSED | ++ V4L2_FMT_FLAG_DYN_RESOLUTION, ++ }, { + .pixfmt = V4L2_PIX_FMT_H264, + .min_buffers = 2, + .max_buffers = 24, +@@ -86,6 +123,18 @@ static const struct amvdec_format vdec_formats_gxm[] = { .pixfmts_cap = { V4L2_PIX_FMT_NV12M, 0 }, .flags = V4L2_FMT_FLAG_COMPRESSED | V4L2_FMT_FLAG_DYN_RESOLUTION, diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0016-FROMLIST-v5-auxdisplay-add-support-for-Titanmec-TM16.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0016-FROMLIST-v5-auxdisplay-add-support-for-Titanmec-TM16.patch deleted file mode 100644 index 0b3b424855..0000000000 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0016-FROMLIST-v5-auxdisplay-add-support-for-Titanmec-TM16.patch +++ /dev/null @@ -1,461 +0,0 @@ -From e7c3f45587cda5b5b445df7434f38a0d751bb197 Mon Sep 17 00:00:00 2001 -From: Heiner Kallweit -Date: Mon, 4 Apr 2022 18:51:20 +0000 -Subject: [PATCH 16/53] FROMLIST(v5): auxdisplay: add support for Titanmec - TM1628 7 segment display controller -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -This patch adds support for the Titanmec TM1628 7 segment display -controller. It's based on previous RFC work from Andreas Färber. -The RFC version placed the driver in the LED subsystem, but this was -NAK'ed by the LED maintainer. Therefore I moved the driver to -/drivers/auxdisplay what seems most reasonable to me. - -Further changes to the RFC version: -- Driver can be built also w/o LED class support, for displays that - don't have any symbols to be exposed as LED's. -- Simplified the code and rewrote a lot of it. -- Driver is now kind of a MVP, but functionality should be sufficient - for most use cases. -- Use the existing 7 segment support in uapi/linux/map_to_7segment.h - as suggested by Geert Uytterhoeven. - -Note: There's a number of chips from other manufacturers that are - almost identical, e.g. FD628, SM1628. Only difference I saw so - far is that they partially support other display modes. - TM1628: 6x12, 7x11 - SM1628C: 4x13, 5x12, 6x11, 7x10 - For typical displays on devices using these chips this - difference shouldn't matter. - -Successfully tested on a TX3 Mini TV box that has an SM1628C and a -display with 4 digits and 7 symbols. - -Co-developed-by: Andreas Färber -Signed-off-by: Andreas Färber -Signed-off-by: Heiner Kallweit ---- - drivers/auxdisplay/Kconfig | 11 ++ - drivers/auxdisplay/Makefile | 1 + - drivers/auxdisplay/tm1628.c | 376 ++++++++++++++++++++++++++++++++++++ - 3 files changed, 388 insertions(+) - create mode 100644 drivers/auxdisplay/tm1628.c - -diff --git a/drivers/auxdisplay/Kconfig b/drivers/auxdisplay/Kconfig -index d944d5298eca..f3d513139e5c 100644 ---- a/drivers/auxdisplay/Kconfig -+++ b/drivers/auxdisplay/Kconfig -@@ -197,6 +197,17 @@ config ARM_CHARLCD - line and the Linux version on the second line, but that's - still useful. - -+config TM1628 -+ tristate "TM1628 driver for LED 7/11 segment displays" -+ depends on SPI -+ depends on OF || COMPILE_TEST -+ help -+ Say Y to enable support for Titan Micro Electronics TM1628 -+ LED controller. -+ -+ It's a 3-wire SPI device controlling a two-dimensional grid of -+ LEDs. Dimming is applied to all outputs through an internal PWM. -+ - menuconfig PARPORT_PANEL - tristate "Parallel port LCD/Keypad Panel support" - depends on PARPORT -diff --git a/drivers/auxdisplay/Makefile b/drivers/auxdisplay/Makefile -index 6968ed4d3f0a..7728e17e1c5a 100644 ---- a/drivers/auxdisplay/Makefile -+++ b/drivers/auxdisplay/Makefile -@@ -14,3 +14,4 @@ obj-$(CONFIG_HT16K33) += ht16k33.o - obj-$(CONFIG_PARPORT_PANEL) += panel.o - obj-$(CONFIG_LCD2S) += lcd2s.o - obj-$(CONFIG_LINEDISP) += line-display.o -+obj-$(CONFIG_TM1628) += tm1628.o -diff --git a/drivers/auxdisplay/tm1628.c b/drivers/auxdisplay/tm1628.c -new file mode 100644 -index 000000000000..4d99a7aa077b ---- /dev/null -+++ b/drivers/auxdisplay/tm1628.c -@@ -0,0 +1,376 @@ -+// SPDX-License-Identifier: GPL-2.0-or-later -+/* -+ * Titan Micro Electronics TM1628 LED controller -+ * -+ * Copyright (c) 2019 Andreas Färber -+ * Copyright (c) 2022 Heiner Kallweit -+ */ -+ -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+ -+#define TM1628_CMD_DISPLAY_MODE (0 << 6) -+#define TM1628_DISPLAY_MODE_6_12 0x02 -+#define TM1628_DISPLAY_MODE_7_11 0x03 -+ -+#define TM1628_CMD_DATA (1 << 6) -+#define TM1628_DATA_TEST_MODE BIT(3) -+#define TM1628_DATA_FIXED_ADDR BIT(2) -+#define TM1628_DATA_WRITE_DATA 0x00 -+#define TM1628_DATA_READ_DATA 0x02 -+ -+#define TM1628_CMD_DISPLAY_CTRL (2 << 6) -+#define TM1628_DISPLAY_CTRL_DISPLAY_ON BIT(3) -+ -+#define TM1628_CMD_SET_ADDRESS (3 << 6) -+ -+#define TM1628_BRIGHTNESS_MAX 7 -+#define NUM_LED_SEGS 7 -+ -+/* Physical limits, depending on the mode the chip may support less */ -+#define MAX_GRID_SIZE 7 -+#define MAX_SEGMENT_NUM 16 -+ -+struct tm1628_led { -+ struct led_classdev leddev; -+ struct tm1628 *ctrl; -+ u32 grid; -+ u32 seg; -+}; -+ -+struct tm1628 { -+ struct spi_device *spi; -+ __le16 data[MAX_GRID_SIZE]; -+ struct mutex disp_lock; -+ char text[MAX_GRID_SIZE + 1]; -+ u8 segment_mapping[NUM_LED_SEGS]; -+ u8 grid[MAX_GRID_SIZE]; -+ int grid_size; -+ struct tm1628_led leds[]; -+}; -+ -+/* Command 1: Display Mode Setting */ -+static int tm1628_set_display_mode(struct spi_device *spi, u8 grid_mode) -+{ -+ const u8 cmd = TM1628_CMD_DISPLAY_MODE | grid_mode; -+ -+ return spi_write(spi, &cmd, 1); -+} -+ -+/* Command 3: Address Setting */ -+static int tm1628_set_address(struct spi_device *spi, u8 offset) -+{ -+ const u8 cmd = TM1628_CMD_SET_ADDRESS | (offset * sizeof(__le16)); -+ -+ return spi_write(spi, &cmd, 1); -+} -+ -+/* Command 2: Data Setting */ -+static int tm1628_write_data(struct spi_device *spi, unsigned int offset, -+ unsigned int len) -+{ -+ struct tm1628 *s = spi_get_drvdata(spi); -+ const u8 cmd = TM1628_CMD_DATA | TM1628_DATA_WRITE_DATA; -+ struct spi_transfer xfers[] = { -+ { -+ .tx_buf = &cmd, -+ .len = 1, -+ }, -+ { -+ .tx_buf = (__force void *)(s->data + offset), -+ .len = len * sizeof(__le16), -+ }, -+ }; -+ -+ if (offset + len > MAX_GRID_SIZE) { -+ dev_err(&spi->dev, "Invalid data address offset %u len %u\n", -+ offset, len); -+ return -EINVAL; -+ } -+ -+ tm1628_set_address(spi, offset); -+ -+ return spi_sync_transfer(spi, xfers, ARRAY_SIZE(xfers)); -+} -+ -+/* Command 4: Display Control */ -+static int tm1628_set_display_ctrl(struct spi_device *spi, bool on) -+{ -+ u8 cmd = TM1628_CMD_DISPLAY_CTRL | TM1628_BRIGHTNESS_MAX; -+ -+ if (on) -+ cmd |= TM1628_DISPLAY_CTRL_DISPLAY_ON; -+ -+ return spi_write(spi, &cmd, 1); -+} -+ -+static int tm1628_show_text(struct tm1628 *s) -+{ -+ static SEG7_CONVERSION_MAP(map_seg7, MAP_ASCII7SEG_ALPHANUM); -+ int msg_len, i, ret; -+ -+ msg_len = strlen(s->text); -+ -+ mutex_lock(&s->disp_lock); -+ -+ for (i = 0; i < s->grid_size; i++) { -+ int pos = s->grid[i] - 1; -+ int j, char7_raw, char7; -+ -+ if (i >= msg_len) { -+ s->data[pos] = 0; -+ continue; -+ } -+ -+ char7_raw = map_to_seg7(&map_seg7, s->text[i]); -+ -+ for (j = 0, char7 = 0; j < NUM_LED_SEGS; j++) { -+ if (char7_raw & BIT(j)) -+ char7 |= BIT(s->segment_mapping[j] - 1); -+ } -+ -+ s->data[pos] = cpu_to_le16(char7); -+ } -+ -+ ret = tm1628_write_data(s->spi, 0, s->grid_size); -+ -+ mutex_unlock(&s->disp_lock); -+ -+ return ret; -+} -+ -+static int tm1628_led_set_brightness(struct led_classdev *led_cdev, -+ enum led_brightness brightness) -+{ -+ struct tm1628_led *led = container_of(led_cdev, struct tm1628_led, leddev); -+ struct tm1628 *s = led->ctrl; -+ int ret, offset = led->grid - 1; -+ __le16 bit = cpu_to_le16(BIT(led->seg - 1)); -+ -+ mutex_lock(&s->disp_lock); -+ -+ if (brightness == LED_OFF) -+ s->data[offset] &= ~bit; -+ else -+ s->data[offset] |= bit; -+ -+ ret = tm1628_write_data(s->spi, offset, 1); -+ -+ mutex_unlock(&s->disp_lock); -+ -+ return ret; -+} -+ -+static enum led_brightness tm1628_led_get_brightness(struct led_classdev *led_cdev) -+{ -+ struct tm1628_led *led = container_of(led_cdev, struct tm1628_led, leddev); -+ struct tm1628 *s = led->ctrl; -+ int offset = led->grid - 1; -+ __le16 bit = cpu_to_le16(BIT(led->seg - 1)); -+ bool on; -+ -+ mutex_lock(&s->disp_lock); -+ on = s->data[offset] & bit; -+ mutex_unlock(&s->disp_lock); -+ -+ return on ? LED_ON : LED_OFF; -+} -+ -+static int tm1628_register_led(struct tm1628 *s, struct fwnode_handle *node, -+ u32 grid, u32 seg, struct tm1628_led *led) -+{ -+ struct device *dev = &s->spi->dev; -+ struct led_init_data init_data = { .fwnode = node }; -+ -+ led->ctrl = s; -+ led->grid = grid; -+ led->seg = seg; -+ led->leddev.max_brightness = LED_ON; -+ led->leddev.brightness_set_blocking = tm1628_led_set_brightness; -+ led->leddev.brightness_get = tm1628_led_get_brightness; -+ -+ return devm_led_classdev_register_ext(dev, &led->leddev, &init_data); -+} -+ -+static ssize_t display_text_show(struct device *dev, struct device_attribute *attr, -+ char *buf) -+{ -+ struct tm1628 *s = dev_get_drvdata(dev); -+ -+ return sysfs_emit(buf, "%s\n", s->text); -+} -+ -+static ssize_t display_text_store(struct device *dev, struct device_attribute *attr, -+ const char *buf, size_t count) -+{ -+ struct tm1628 *s = dev_get_drvdata(dev); -+ int ret, i; -+ -+ for (i = 0; i < count && i < s->grid_size && isprint(buf[i]); i++) -+ s->text[i] = buf[i]; -+ -+ s->text[i] = '\0'; -+ -+ ret = tm1628_show_text(s); -+ if (ret < 0) -+ return ret; -+ -+ return count; -+} -+ -+static const DEVICE_ATTR_RW(display_text); -+ -+static int tm1628_spi_probe(struct spi_device *spi) -+{ -+ struct fwnode_handle *child; -+ unsigned int num_leds; -+ struct tm1628 *s; -+ int ret, i; -+ -+ num_leds = device_get_child_node_count(&spi->dev); -+ -+ s = devm_kzalloc(&spi->dev, struct_size(s, leds, num_leds), GFP_KERNEL); -+ if (!s) -+ return -ENOMEM; -+ -+ s->spi = spi; -+ spi_set_drvdata(spi, s); -+ -+ mutex_init(&s->disp_lock); -+ -+ /* According to TM1628 datasheet */ -+ msleep(200); -+ -+ /* Clear screen */ -+ ret = tm1628_write_data(spi, 0, MAX_GRID_SIZE); -+ if (ret) -+ return ret; -+ -+ /* For now we support 6x12 mode only. This should be sufficient for most use cases */ -+ ret = tm1628_set_display_mode(spi, TM1628_DISPLAY_MODE_6_12); -+ if (ret) -+ return ret; -+ -+ ret = tm1628_set_display_ctrl(spi, true); -+ if (ret) -+ return ret; -+ -+ num_leds = 0; -+ -+ if (!IS_REACHABLE(CONFIG_LEDS_CLASS)) -+ goto no_leds; -+ -+ device_for_each_child_node(&spi->dev, child) { -+ u32 reg[2]; -+ -+ ret = fwnode_property_read_u32_array(child, "reg", reg, 2); -+ if (ret) { -+ dev_err(&spi->dev, "Reading %s reg property failed (%d)\n", -+ fwnode_get_name(child), ret); -+ continue; -+ } -+ -+ if (reg[0] == 0 || reg[0] > MAX_GRID_SIZE) { -+ dev_err(&spi->dev, "Invalid grid %u at %s\n", -+ reg[0], fwnode_get_name(child)); -+ continue; -+ } -+ -+ if (reg[1] == 0 || reg[1] > MAX_SEGMENT_NUM) { -+ dev_err(&spi->dev, "Invalid segment %u at %s\n", -+ reg[1], fwnode_get_name(child)); -+ continue; -+ } -+ -+ ret = tm1628_register_led(s, child, reg[0], reg[1], s->leds + num_leds); -+ if (ret) { -+ dev_err(&spi->dev, "Failed to register LED %s (%d)\n", -+ fwnode_get_name(child), ret); -+ continue; -+ } -+ num_leds++; -+ } -+ -+no_leds: -+ ret = device_property_count_u8(&spi->dev, "titanmec,grid"); -+ if (ret < 1 || ret > MAX_GRID_SIZE) { -+ dev_err(&spi->dev, "Invalid display length (%d)\n", ret); -+ return -EINVAL; -+ } -+ -+ s->grid_size = ret; -+ -+ ret = device_property_read_u8_array(&spi->dev, "titanmec,grid", s->grid, s->grid_size); -+ if (ret < 0) -+ return ret; -+ -+ for (i = 0; i < s->grid_size; i++) { -+ if (s->grid[i] < 1 || s->grid[i] > s->grid_size) -+ return -EINVAL; -+ } -+ -+ ret = device_property_read_u8_array(&spi->dev, "titanmec,segment-mapping", -+ s->segment_mapping, NUM_LED_SEGS); -+ if (ret < 0) -+ return ret; -+ -+ for (i = 0; i < NUM_LED_SEGS; i++) { -+ if (s->segment_mapping[i] < 1 || s->segment_mapping[i] > MAX_SEGMENT_NUM) -+ return -EINVAL; -+ } -+ -+ ret = device_create_file(&spi->dev, &dev_attr_display_text); -+ if (ret) -+ return ret; -+ -+ dev_info(&spi->dev, "Configured display with %u digits and %u symbols\n", -+ s->grid_size, num_leds); -+ -+ return 0; -+} -+ -+static void tm1628_spi_remove(struct spi_device *spi) -+{ -+ device_remove_file(&spi->dev, &dev_attr_display_text); -+ tm1628_set_display_ctrl(spi, false); -+} -+ -+static void tm1628_spi_shutdown(struct spi_device *spi) -+{ -+ tm1628_set_display_ctrl(spi, false); -+} -+ -+static const struct of_device_id tm1628_spi_of_matches[] = { -+ { .compatible = "titanmec,tm1628" }, -+ {} -+}; -+MODULE_DEVICE_TABLE(of, tm1628_spi_of_matches); -+ -+static const struct spi_device_id tm1628_spi_id_table[] = { -+ { "tm1628" }, -+ {}, -+}; -+MODULE_DEVICE_TABLE(spi, tm1628_spi_id_table); -+ -+static struct spi_driver tm1628_spi_driver = { -+ .probe = tm1628_spi_probe, -+ .remove = tm1628_spi_remove, -+ .shutdown = tm1628_spi_shutdown, -+ .id_table = tm1628_spi_id_table, -+ -+ .driver = { -+ .name = "tm1628", -+ .of_match_table = tm1628_spi_of_matches, -+ }, -+}; -+module_spi_driver(tm1628_spi_driver); -+ -+MODULE_DESCRIPTION("TM1628 LED controller driver"); -+MODULE_AUTHOR("Andreas Färber "); -+MODULE_AUTHOR("Heiner Kallweit "); -+MODULE_LICENSE("GPL"); --- -2.34.1 - diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0017-FROMLIST-v1-arm64-dts-amlogic-sm1-bananapi-lower-SD-.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0017-FROMLIST-v1-arm64-dts-amlogic-sm1-bananapi-lower-SD-.patch new file mode 100644 index 0000000000..f31ec5f12f --- /dev/null +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0017-FROMLIST-v1-arm64-dts-amlogic-sm1-bananapi-lower-SD-.patch @@ -0,0 +1,41 @@ +From 2411a183fc6f2806727cf9dcfe62dcd5e1199ce9 Mon Sep 17 00:00:00 2001 +From: Christian Hewitt +Date: Sat, 3 May 2025 15:18:07 +0000 +Subject: [PATCH 17/37] FROMLIST(v1): arm64: dts: amlogic: sm1-bananapi: lower + SD card speed for stability + +Users report being able to boot (u-boot) from SD card but kernel +init then fails to mount partitions on the card containing boot +media resulting in first-boot failure. System logs show only the +probe of the mmc devices: the SD card is seen, but no partitions +are found so init fails to mount them and boot stalls. + +Reducing the speed of the SD card from 50MHz to 35MHz results in +complete probing of the card and successful boot. + +Signed-off-by: Christian Hewitt +--- + arch/arm64/boot/dts/amlogic/meson-sm1-bananapi.dtsi | 5 ++--- + 1 file changed, 2 insertions(+), 3 deletions(-) + +diff --git a/arch/arm64/boot/dts/amlogic/meson-sm1-bananapi.dtsi b/arch/arm64/boot/dts/amlogic/meson-sm1-bananapi.dtsi +index 538b35036954..5e07f0f9538e 100644 +--- a/arch/arm64/boot/dts/amlogic/meson-sm1-bananapi.dtsi ++++ b/arch/arm64/boot/dts/amlogic/meson-sm1-bananapi.dtsi +@@ -380,11 +380,10 @@ &sd_emmc_b { + + bus-width = <4>; + cap-sd-highspeed; +- max-frequency = <50000000>; ++ /* Boot failures are observed at 50MHz */ ++ max-frequency = <35000000>; + disable-wp; + +- /* TOFIX: SD card is barely usable in SDR modes */ +- + cd-gpios = <&gpio GPIOC_6 GPIO_ACTIVE_LOW>; + vmmc-supply = <&tflash_vdd>; + vqmmc-supply = <&vddio_c>; +-- +2.34.1 + diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0017-FROMLIST-v5-arm64-dts-meson-gxl-s905w-tx3-mini-add-s.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0017-FROMLIST-v5-arm64-dts-meson-gxl-s905w-tx3-mini-add-s.patch deleted file mode 100644 index 5405a1ebc5..0000000000 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0017-FROMLIST-v5-arm64-dts-meson-gxl-s905w-tx3-mini-add-s.patch +++ /dev/null @@ -1,93 +0,0 @@ -From 8dd34cfc3fdb2ae31c34492b8b25bdf7d8c3352b Mon Sep 17 00:00:00 2001 -From: Heiner Kallweit -Date: Mon, 4 Apr 2022 18:52:34 +0000 -Subject: [PATCH 17/53] FROMLIST(v5): arm64: dts: meson-gxl-s905w-tx3-mini: add - support for the 7 segment display - -This patch adds support for the 7 segment display of the device. - -Signed-off-by: Heiner Kallweit ---- - .../dts/amlogic/meson-gxl-s905w-tx3-mini.dts | 59 +++++++++++++++++++ - 1 file changed, 59 insertions(+) - -diff --git a/arch/arm64/boot/dts/amlogic/meson-gxl-s905w-tx3-mini.dts b/arch/arm64/boot/dts/amlogic/meson-gxl-s905w-tx3-mini.dts -index 6705c2082a78..ae0d8d7b1e19 100644 ---- a/arch/arm64/boot/dts/amlogic/meson-gxl-s905w-tx3-mini.dts -+++ b/arch/arm64/boot/dts/amlogic/meson-gxl-s905w-tx3-mini.dts -@@ -10,6 +10,7 @@ - - #include "meson-gxl-s905x.dtsi" - #include "meson-gx-p23x-q20x.dtsi" -+#include - - / { - compatible = "oranth,tx3-mini", "amlogic,s905w", "amlogic,meson-gxl"; -@@ -19,6 +20,64 @@ memory@0 { - device_type = "memory"; - reg = <0x0 0x0 0x0 0x40000000>; /* 1 GiB or 2 GiB */ - }; -+ -+ spi { -+ compatible = "spi-gpio"; -+ sck-gpios = <&gpio GPIODV_27 GPIO_ACTIVE_HIGH>; -+ mosi-gpios = <&gpio GPIODV_26 GPIO_ACTIVE_HIGH>; -+ cs-gpios = <&gpio_ao GPIOAO_4 GPIO_ACTIVE_LOW>; -+ num-chipselects = <1>; -+ #address-cells = <1>; -+ #size-cells = <0>; -+ -+ tm1628: led-controller@0 { -+ compatible = "titanmec,tm1628"; -+ reg = <0>; -+ spi-3wire; -+ spi-lsb-first; -+ spi-rx-delay-us = <1>; -+ spi-max-frequency = <500000>; -+ #address-cells = <2>; -+ #size-cells = <0>; -+ -+ titanmec,segment-mapping = /bits/ 8 <4 5 6 1 2 3 7>; -+ titanmec,grid = /bits/ 8 <4 3 2 1>; -+ -+ alarm@5,1 { -+ reg = <5 1>; -+ function = LED_FUNCTION_ALARM; -+ }; -+ -+ usb@5,2 { -+ reg = <5 2>; -+ function = LED_FUNCTION_USB; -+ }; -+ play@5,3 { -+ reg = <5 3>; -+ function = "play"; -+ }; -+ -+ pause@5,4 { -+ reg = <5 4>; -+ function = "pause"; -+ }; -+ -+ colon@5,5 { -+ reg = <5 5>; -+ function = "colon"; -+ }; -+ -+ lan@5,6 { -+ reg = <5 6>; -+ function = LED_FUNCTION_LAN; -+ }; -+ -+ wlan@5,7 { -+ reg = <5 7>; -+ function = LED_FUNCTION_WLAN; -+ }; -+ }; -+ }; - }; - - &ir { --- -2.34.1 - diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0018-FROMLIST-v5-MAINTAINERS-Add-entry-for-tm1628-auxdisp.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0018-FROMLIST-v5-MAINTAINERS-Add-entry-for-tm1628-auxdisp.patch deleted file mode 100644 index a5e70d0581..0000000000 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0018-FROMLIST-v5-MAINTAINERS-Add-entry-for-tm1628-auxdisp.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 3a59c995a56b3802ceb6db413c81e2170fa767cb Mon Sep 17 00:00:00 2001 -From: Heiner Kallweit -Date: Mon, 4 Apr 2022 18:53:32 +0000 -Subject: [PATCH 18/53] FROMLIST(v5): MAINTAINERS: Add entry for tm1628 - auxdisplay driver - -Signed-off-by: Heiner Kallweit ---- - MAINTAINERS | 7 +++++++ - 1 file changed, 7 insertions(+) - -diff --git a/MAINTAINERS b/MAINTAINERS -index 1aabf1c15bb3..ea6d2ff2eb20 100644 ---- a/MAINTAINERS -+++ b/MAINTAINERS -@@ -22155,6 +22155,13 @@ W: http://sourceforge.net/projects/tlan/ - F: Documentation/networking/device_drivers/ethernet/ti/tlan.rst - F: drivers/net/ethernet/ti/tlan.* - -+TM1628 LED CONTROLLER DRIVER -+M: Heiner Kallweit -+S: Maintained -+F: Documentation/devicetree/bindings/auxdisplay/titanmec,tm1628.yaml -+F: Documentation/ABI/testing/sysfs-devices-auxdisplay-tm1628 -+F: drivers/auxdisplay/tm1628.c -+ - TMIO/SDHI MMC DRIVER - M: Wolfram Sang - L: linux-mmc@vger.kernel.org --- -2.34.1 - diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0018-WIP-media-meson-vdec-reintroduce-wiggle-room.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0018-WIP-media-meson-vdec-reintroduce-wiggle-room.patch new file mode 100644 index 0000000000..cbbac573f9 --- /dev/null +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0018-WIP-media-meson-vdec-reintroduce-wiggle-room.patch @@ -0,0 +1,50 @@ +From a1f197da3061f0ccf210e7b69c478e31377196c4 Mon Sep 17 00:00:00 2001 +From: Andreas Baierl +Date: Tue, 2 Apr 2024 14:22:52 +0000 +Subject: [PATCH 18/37] WIP: media: meson: vdec: reintroduce wiggle room + +Without the wiggle room, it happens that matching offsets can't be found. +This results in non-matches and afterwards in frame drops in userspace apps. +Reintroduce this wiggle room again. + +Signed-off-by: Andreas Baierl +--- + drivers/staging/media/meson/vdec/vdec_helpers.c | 14 ++++++++++---- + 1 file changed, 10 insertions(+), 4 deletions(-) + +diff --git a/drivers/staging/media/meson/vdec/vdec_helpers.c b/drivers/staging/media/meson/vdec/vdec_helpers.c +index fef76142f0c5..fbfdbf3ec19d 100644 +--- a/drivers/staging/media/meson/vdec/vdec_helpers.c ++++ b/drivers/staging/media/meson/vdec/vdec_helpers.c +@@ -378,7 +378,16 @@ void amvdec_dst_buf_done_offset(struct amvdec_session *sess, + + /* Look for our vififo offset to get the corresponding timestamp. */ + list_for_each_entry_safe(tmp, n, &sess->timestamps, list) { +- if (tmp->offset > offset) { ++ s64 delta = (s64)offset - tmp->offset; ++ ++ /* Offsets reported by codecs usually differ slightly, ++ * so we need some wiggle room. ++ * 4KiB being the minimum packet size, there is no risk here. ++ */ ++ if (delta > (-1 * (s32)SZ_4K) && delta < SZ_4K) { ++ match = tmp; ++ break; ++ } else { + /* + * Delete any record that remained unused for 32 match + * checks +@@ -387,10 +396,7 @@ void amvdec_dst_buf_done_offset(struct amvdec_session *sess, + list_del(&tmp->list); + kfree(tmp); + } +- break; + } +- +- match = tmp; + } + + if (!match) { +-- +2.34.1 + diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0019-FROMLIST-v1-ASoC-hdmi-codec-reorder-channel-allocati.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0019-FROMLIST-v1-ASoC-hdmi-codec-reorder-channel-allocati.patch deleted file mode 100644 index 3d61af0a7d..0000000000 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0019-FROMLIST-v1-ASoC-hdmi-codec-reorder-channel-allocati.patch +++ /dev/null @@ -1,203 +0,0 @@ -From 665584f98081e481e77286b49b6a0e1ce9fe5655 Mon Sep 17 00:00:00 2001 -From: Jonas Karlman -Date: Sun, 23 Dec 2018 02:24:38 +0100 -Subject: [PATCH 19/53] FROMLIST(v1): ASoC: hdmi-codec: reorder channel - allocation list - -Wrong channel allocation is selected by hdmi_codec_get_ch_alloc_table_idx(). - -E.g when ELD reports FL|FR|LFE|FC|RL|RR or FL|FR|LFE|FC|RL|RR|RC|RLC|RRC - -ca_id 0x01 with speaker mask FL|FR|LFE gets selected instead of -ca_id 0x03 with speaker mask FL|FR|LFE|FC for 4 channels - -and - -ca_id 0x04 with speaker mask FL|FR|RC gets selected instead of -ca_id 0x0b with speaker mask FL|FR|LFE|FC|RL|RR for 6 channels - -Fix this by reorder the channel allocation list with -most specific speaker mask at the top. - -Signed-off-by: Jonas Karlman ---- - sound/soc/codecs/hdmi-codec.c | 140 +++++++++++++++++++--------------- - 1 file changed, 77 insertions(+), 63 deletions(-) - -diff --git a/sound/soc/codecs/hdmi-codec.c b/sound/soc/codecs/hdmi-codec.c -index e06b28c7e5ba..6ebbd4bfa47e 100644 ---- a/sound/soc/codecs/hdmi-codec.c -+++ b/sound/soc/codecs/hdmi-codec.c -@@ -185,84 +185,97 @@ static const struct snd_pcm_chmap_elem hdmi_codec_8ch_chmaps[] = { - /* - * hdmi_codec_channel_alloc: speaker configuration available for CEA - * -- * This is an ordered list that must match with hdmi_codec_8ch_chmaps struct -+ * This is an ordered list where ca_id must exist in hdmi_codec_8ch_chmaps - * The preceding ones have better chances to be selected by - * hdmi_codec_get_ch_alloc_table_idx(). - */ - static const struct hdmi_codec_cea_spk_alloc hdmi_codec_channel_alloc[] = { - { .ca_id = 0x00, .n_ch = 2, -- .mask = FL | FR}, -- /* 2.1 */ -- { .ca_id = 0x01, .n_ch = 4, -- .mask = FL | FR | LFE}, -- /* Dolby Surround */ -+ .mask = FL | FR }, -+ { .ca_id = 0x03, .n_ch = 4, -+ .mask = FL | FR | LFE | FC }, - { .ca_id = 0x02, .n_ch = 4, - .mask = FL | FR | FC }, -- /* surround51 */ -+ { .ca_id = 0x01, .n_ch = 4, -+ .mask = FL | FR | LFE }, - { .ca_id = 0x0b, .n_ch = 6, -- .mask = FL | FR | LFE | FC | RL | RR}, -- /* surround40 */ -- { .ca_id = 0x08, .n_ch = 6, -- .mask = FL | FR | RL | RR }, -- /* surround41 */ -- { .ca_id = 0x09, .n_ch = 6, -- .mask = FL | FR | LFE | RL | RR }, -- /* surround50 */ -+ .mask = FL | FR | LFE | FC | RL | RR }, - { .ca_id = 0x0a, .n_ch = 6, - .mask = FL | FR | FC | RL | RR }, -- /* 6.1 */ -- { .ca_id = 0x0f, .n_ch = 8, -- .mask = FL | FR | LFE | FC | RL | RR | RC }, -- /* surround71 */ -+ { .ca_id = 0x09, .n_ch = 6, -+ .mask = FL | FR | LFE | RL | RR }, -+ { .ca_id = 0x08, .n_ch = 6, -+ .mask = FL | FR | RL | RR }, -+ { .ca_id = 0x07, .n_ch = 6, -+ .mask = FL | FR | LFE | FC | RC }, -+ { .ca_id = 0x06, .n_ch = 6, -+ .mask = FL | FR | FC | RC }, -+ { .ca_id = 0x05, .n_ch = 6, -+ .mask = FL | FR | LFE | RC }, -+ { .ca_id = 0x04, .n_ch = 6, -+ .mask = FL | FR | RC }, - { .ca_id = 0x13, .n_ch = 8, - .mask = FL | FR | LFE | FC | RL | RR | RLC | RRC }, -- /* others */ -- { .ca_id = 0x03, .n_ch = 8, -- .mask = FL | FR | LFE | FC }, -- { .ca_id = 0x04, .n_ch = 8, -- .mask = FL | FR | RC}, -- { .ca_id = 0x05, .n_ch = 8, -- .mask = FL | FR | LFE | RC }, -- { .ca_id = 0x06, .n_ch = 8, -- .mask = FL | FR | FC | RC }, -- { .ca_id = 0x07, .n_ch = 8, -- .mask = FL | FR | LFE | FC | RC }, -- { .ca_id = 0x0c, .n_ch = 8, -- .mask = FL | FR | RC | RL | RR }, -- { .ca_id = 0x0d, .n_ch = 8, -- .mask = FL | FR | LFE | RL | RR | RC }, -- { .ca_id = 0x0e, .n_ch = 8, -- .mask = FL | FR | FC | RL | RR | RC }, -- { .ca_id = 0x10, .n_ch = 8, -- .mask = FL | FR | RL | RR | RLC | RRC }, -- { .ca_id = 0x11, .n_ch = 8, -- .mask = FL | FR | LFE | RL | RR | RLC | RRC }, -+ { .ca_id = 0x1f, .n_ch = 8, -+ .mask = FL | FR | LFE | FC | RL | RR | FLC | FRC }, - { .ca_id = 0x12, .n_ch = 8, - .mask = FL | FR | FC | RL | RR | RLC | RRC }, -- { .ca_id = 0x14, .n_ch = 8, -- .mask = FL | FR | FLC | FRC }, -- { .ca_id = 0x15, .n_ch = 8, -- .mask = FL | FR | LFE | FLC | FRC }, -- { .ca_id = 0x16, .n_ch = 8, -- .mask = FL | FR | FC | FLC | FRC }, -- { .ca_id = 0x17, .n_ch = 8, -- .mask = FL | FR | LFE | FC | FLC | FRC }, -- { .ca_id = 0x18, .n_ch = 8, -- .mask = FL | FR | RC | FLC | FRC }, -- { .ca_id = 0x19, .n_ch = 8, -- .mask = FL | FR | LFE | RC | FLC | FRC }, -- { .ca_id = 0x1a, .n_ch = 8, -- .mask = FL | FR | RC | FC | FLC | FRC }, -- { .ca_id = 0x1b, .n_ch = 8, -- .mask = FL | FR | LFE | RC | FC | FLC | FRC }, -- { .ca_id = 0x1c, .n_ch = 8, -- .mask = FL | FR | RL | RR | FLC | FRC }, -- { .ca_id = 0x1d, .n_ch = 8, -- .mask = FL | FR | LFE | RL | RR | FLC | FRC }, - { .ca_id = 0x1e, .n_ch = 8, - .mask = FL | FR | FC | RL | RR | FLC | FRC }, -- { .ca_id = 0x1f, .n_ch = 8, -- .mask = FL | FR | LFE | FC | RL | RR | FLC | FRC }, -+ { .ca_id = 0x11, .n_ch = 8, -+ .mask = FL | FR | LFE | RL | RR | RLC | RRC }, -+ { .ca_id = 0x1d, .n_ch = 8, -+ .mask = FL | FR | LFE | RL | RR | FLC | FRC }, -+ { .ca_id = 0x10, .n_ch = 8, -+ .mask = FL | FR | RL | RR | RLC | RRC }, -+ { .ca_id = 0x1c, .n_ch = 8, -+ .mask = FL | FR | RL | RR | FLC | FRC }, -+ { .ca_id = 0x0f, .n_ch = 8, -+ .mask = FL | FR | LFE | FC | RL | RR | RC }, -+ { .ca_id = 0x1b, .n_ch = 8, -+ .mask = FL | FR | LFE | RC | FC | FLC | FRC }, -+ { .ca_id = 0x0e, .n_ch = 8, -+ .mask = FL | FR | FC | RL | RR | RC }, -+ { .ca_id = 0x1a, .n_ch = 8, -+ .mask = FL | FR | RC | FC | FLC | FRC }, -+ { .ca_id = 0x0d, .n_ch = 8, -+ .mask = FL | FR | LFE | RL | RR | RC }, -+ { .ca_id = 0x19, .n_ch = 8, -+ .mask = FL | FR | LFE | RC | FLC | FRC }, -+ { .ca_id = 0x0c, .n_ch = 8, -+ .mask = FL | FR | RC | RL | RR }, -+ { .ca_id = 0x18, .n_ch = 8, -+ .mask = FL | FR | RC | FLC | FRC }, -+ { .ca_id = 0x17, .n_ch = 8, -+ .mask = FL | FR | LFE | FC | FLC | FRC }, -+ { .ca_id = 0x16, .n_ch = 8, -+ .mask = FL | FR | FC | FLC | FRC }, -+ { .ca_id = 0x15, .n_ch = 8, -+ .mask = FL | FR | LFE | FLC | FRC }, -+ { .ca_id = 0x14, .n_ch = 8, -+ .mask = FL | FR | FLC | FRC }, -+ { .ca_id = 0x0b, .n_ch = 8, -+ .mask = FL | FR | LFE | FC | RL | RR }, -+ { .ca_id = 0x0a, .n_ch = 8, -+ .mask = FL | FR | FC | RL | RR }, -+ { .ca_id = 0x09, .n_ch = 8, -+ .mask = FL | FR | LFE | RL | RR }, -+ { .ca_id = 0x08, .n_ch = 8, -+ .mask = FL | FR | RL | RR }, -+ { .ca_id = 0x07, .n_ch = 8, -+ .mask = FL | FR | LFE | FC | RC }, -+ { .ca_id = 0x06, .n_ch = 8, -+ .mask = FL | FR | FC | RC }, -+ { .ca_id = 0x05, .n_ch = 8, -+ .mask = FL | FR | LFE | RC }, -+ { .ca_id = 0x04, .n_ch = 8, -+ .mask = FL | FR | RC }, -+ { .ca_id = 0x03, .n_ch = 8, -+ .mask = FL | FR | LFE | FC }, -+ { .ca_id = 0x02, .n_ch = 8, -+ .mask = FL | FR | FC }, -+ { .ca_id = 0x01, .n_ch = 8, -+ .mask = FL | FR | LFE }, - }; - - struct hdmi_codec_priv { -@@ -371,7 +384,8 @@ static int hdmi_codec_chmap_ctl_get(struct snd_kcontrol *kcontrol, - struct snd_pcm_chmap *info = snd_kcontrol_chip(kcontrol); - struct hdmi_codec_priv *hcp = info->private_data; - -- map = info->chmap[hcp->chmap_idx].map; -+ if (hcp->chmap_idx != HDMI_CODEC_CHMAP_IDX_UNKNOWN) -+ map = info->chmap[hcp->chmap_idx].map; - - for (i = 0; i < info->max_channels; i++) { - if (hcp->chmap_idx == HDMI_CODEC_CHMAP_IDX_UNKNOWN) --- -2.34.1 - diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0019-WIP-media-meson-vdec-fix-memory-leak-of-new_frame.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0019-WIP-media-meson-vdec-fix-memory-leak-of-new_frame.patch new file mode 100644 index 0000000000..17bfd1d460 --- /dev/null +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0019-WIP-media-meson-vdec-fix-memory-leak-of-new_frame.patch @@ -0,0 +1,28 @@ +From e0ebd51471f1153d3d1dc53b9a645fde537b1411 Mon Sep 17 00:00:00 2001 +From: Christian Hewitt +Date: Tue, 14 Mar 2023 01:13:15 +0000 +Subject: [PATCH 19/37] WIP: media: meson: vdec: fix memory leak of 'new_frame' + +Reported-by: kernel test robot +Reported-by: Dan Carpenter +Link: https://lore.kernel.org/r/202303120441.YFGHDOya-lkp@intel.com/ +Signed-off-by: Christian Hewitt +--- + drivers/staging/media/meson/vdec/codec_hevc.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/drivers/staging/media/meson/vdec/codec_hevc.c b/drivers/staging/media/meson/vdec/codec_hevc.c +index fcaaa1ad50b8..b0d8623c3c7d 100644 +--- a/drivers/staging/media/meson/vdec/codec_hevc.c ++++ b/drivers/staging/media/meson/vdec/codec_hevc.c +@@ -731,6 +731,7 @@ codec_hevc_prepare_new_frame(struct amvdec_session *sess) + vbuf = v4l2_m2m_dst_buf_remove(sess->m2m_ctx); + if (!vbuf) { + dev_err(sess->core->dev, "No dst buffer available\n"); ++ kfree(new_frame); + return NULL; + } + +-- +2.34.1 + diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0020-WIP-media-meson-vdec-fix-V4L2_BUF_FLAG_-KEY-P-B-FRAM.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0020-WIP-media-meson-vdec-fix-V4L2_BUF_FLAG_-KEY-P-B-FRAM.patch new file mode 100644 index 0000000000..2422165523 --- /dev/null +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0020-WIP-media-meson-vdec-fix-V4L2_BUF_FLAG_-KEY-P-B-FRAM.patch @@ -0,0 +1,235 @@ +From 32d8e8ef41de29cfede75a4eed0f33fa4d326057 Mon Sep 17 00:00:00 2001 +From: Andreas Baierl +Date: Thu, 20 Feb 2025 23:59:14 +0000 +Subject: [PATCH 20/37] WIP: media: meson: vdec: fix + V4L2_BUF_FLAG_{KEY|P|B}FRAME + +ffmpeg needs the keyframe flag to be set correctly, else +AV_FRAME_FLAG_* can not be set. Fix that (only h264 atm). + +Register values and bits were obtained from the vendor +4.9 kernel source [0]. + +[0] https://github.com/hardkernel/linux/tree/odroidg12-4.9.y/drivers/amlogic/media_modules/frame_provider/decoder/h264 + +Signed-off-by: Andreas Baierl +--- + drivers/staging/media/meson/vdec/codec_h264.c | 19 +++++++++++++- + drivers/staging/media/meson/vdec/codec_hevc.c | 4 +-- + .../staging/media/meson/vdec/codec_mpeg12.c | 2 +- + drivers/staging/media/meson/vdec/codec_vp9.c | 4 +-- + .../staging/media/meson/vdec/vdec_helpers.c | 25 +++++++++++++------ + .../staging/media/meson/vdec/vdec_helpers.h | 6 ++--- + 6 files changed, 43 insertions(+), 17 deletions(-) + +diff --git a/drivers/staging/media/meson/vdec/codec_h264.c b/drivers/staging/media/meson/vdec/codec_h264.c +index d53c9a464bde..4edb4021c244 100644 +--- a/drivers/staging/media/meson/vdec/codec_h264.c ++++ b/drivers/staging/media/meson/vdec/codec_h264.c +@@ -35,6 +35,11 @@ + #define PIC_TOP_BOT 5 + #define PIC_BOT_TOP 6 + ++/* Slice type */ ++#define SLICE_TYPE_I 2 ++#define SLICE_TYPE_P 5 ++#define SLICE_TYPE_B 6 ++ + /* Size of Motion Vector per macroblock */ + #define MB_MV_SIZE 96 + +@@ -393,8 +398,11 @@ static void codec_h264_frames_ready(struct amvdec_session *sess, u32 status) + u32 buffer_index = frame_status & BUF_IDX_MASK; + u32 pic_struct = (frame_status >> PIC_STRUCT_BIT) & + PIC_STRUCT_MASK; ++ u32 idr_flag = (frame_status & 0x400); + u32 offset = (frame_status >> OFFSET_BIT) & OFFSET_MASK; + u32 field = V4L2_FIELD_NONE; ++ u32 slice_type = (amvdec_read_dos(core, AV_SCRATCH_H) >> (i * 4)) & 0xf; ++ u32 type = 0; + + /* + * A buffer decode error means it was decoded, +@@ -410,8 +418,17 @@ static void codec_h264_frames_ready(struct amvdec_session *sess, u32 status) + else if (pic_struct == PIC_BOT_TOP) + field = V4L2_FIELD_INTERLACED_BT; + ++ if (idr_flag) ++ type = 4; ++ else if (slice_type == SLICE_TYPE_I) ++ type = 1; ++ else if (slice_type == SLICE_TYPE_P) ++ type = 2; ++ else if (slice_type == SLICE_TYPE_B || slice_type == 8) ++ type = 3; ++ + offset |= get_offset_msb(core, i); +- amvdec_dst_buf_done_idx(sess, buffer_index, offset, field); ++ amvdec_dst_buf_done_idx(sess, buffer_index, offset, field, type); + } + } + +diff --git a/drivers/staging/media/meson/vdec/codec_hevc.c b/drivers/staging/media/meson/vdec/codec_hevc.c +index b0d8623c3c7d..fe439770637c 100644 +--- a/drivers/staging/media/meson/vdec/codec_hevc.c ++++ b/drivers/staging/media/meson/vdec/codec_hevc.c +@@ -499,7 +499,7 @@ static void codec_hevc_show_frames(struct amvdec_session *sess) + dev_dbg(sess->core->dev, "DONE frame poc %u; vbuf %u\n", + tmp->poc, tmp->vbuf->vb2_buf.index); + amvdec_dst_buf_done_offset(sess, tmp->vbuf, tmp->offset, +- V4L2_FIELD_NONE, false); ++ V4L2_FIELD_NONE, 0, false); + + tmp->show = 0; + hevc->frames_num--; +@@ -667,7 +667,7 @@ static void codec_hevc_flush_output(struct amvdec_session *sess) + struct hevc_frame *tmp, *n; + + while ((tmp = codec_hevc_get_next_ready_frame(hevc))) { +- amvdec_dst_buf_done(sess, tmp->vbuf, V4L2_FIELD_NONE); ++ amvdec_dst_buf_done(sess, tmp->vbuf, V4L2_FIELD_NONE, 0); + tmp->show = 0; + hevc->frames_num--; + } +diff --git a/drivers/staging/media/meson/vdec/codec_mpeg12.c b/drivers/staging/media/meson/vdec/codec_mpeg12.c +index 48869cc3d973..05c52766fe52 100644 +--- a/drivers/staging/media/meson/vdec/codec_mpeg12.c ++++ b/drivers/staging/media/meson/vdec/codec_mpeg12.c +@@ -187,7 +187,7 @@ static irqreturn_t codec_mpeg12_threaded_isr(struct amvdec_session *sess) + codec_mpeg12_update_dar(sess); + buffer_index = ((reg & 0xf) - 1) & 7; + offset = amvdec_read_dos(core, MREG_FRAME_OFFSET); +- amvdec_dst_buf_done_idx(sess, buffer_index, offset, field); ++ amvdec_dst_buf_done_idx(sess, buffer_index, offset, field, 0); + + end: + amvdec_write_dos(core, MREG_BUFFEROUT, 0); +diff --git a/drivers/staging/media/meson/vdec/codec_vp9.c b/drivers/staging/media/meson/vdec/codec_vp9.c +index 8e3bbf0db4b3..1b1f1797110a 100644 +--- a/drivers/staging/media/meson/vdec/codec_vp9.c ++++ b/drivers/staging/media/meson/vdec/codec_vp9.c +@@ -665,7 +665,7 @@ static void codec_vp9_flush_output(struct amvdec_session *sess) + if (!tmp->done) { + if (tmp->show) + amvdec_dst_buf_done(sess, tmp->vbuf, +- V4L2_FIELD_NONE); ++ V4L2_FIELD_NONE, 0); + else + v4l2_m2m_buf_queue(sess->m2m_ctx, tmp->vbuf); + +@@ -1427,7 +1427,7 @@ static void codec_vp9_show_frame(struct amvdec_session *sess) + + if (!tmp->done) { + pr_debug("Doning %u\n", tmp->index); +- amvdec_dst_buf_done(sess, tmp->vbuf, V4L2_FIELD_NONE); ++ amvdec_dst_buf_done(sess, tmp->vbuf, V4L2_FIELD_NONE, 0); + tmp->done = 1; + vp9->frames_num--; + } +diff --git a/drivers/staging/media/meson/vdec/vdec_helpers.c b/drivers/staging/media/meson/vdec/vdec_helpers.c +index fbfdbf3ec19d..9a61dabd8ce9 100644 +--- a/drivers/staging/media/meson/vdec/vdec_helpers.c ++++ b/drivers/staging/media/meson/vdec/vdec_helpers.c +@@ -280,7 +280,7 @@ EXPORT_SYMBOL_GPL(amvdec_remove_ts); + + static void dst_buf_done(struct amvdec_session *sess, + struct vb2_v4l2_buffer *vbuf, +- u32 field, u64 timestamp, ++ u32 field, u32 type, u64 timestamp, + struct v4l2_timecode timecode, u32 flags) + { + struct device *dev = sess->core->dev_dec; +@@ -303,6 +303,15 @@ static void dst_buf_done(struct amvdec_session *sess, + vbuf->flags = flags; + vbuf->timecode = timecode; + ++ if (type == 1) ++ vbuf->flags |= V4L2_BUF_FLAG_KEYFRAME; ++ else if (type == 2) ++ vbuf->flags |= V4L2_BUF_FLAG_PFRAME; ++ else if (type == 3) ++ vbuf->flags |= V4L2_BUF_FLAG_BFRAME; ++ else if (type == 4) ++ vbuf->flags |= V4L2_BUF_FLAG_KEYFRAME; ++ + if (sess->should_stop && + atomic_read(&sess->esparser_queued_bufs) <= 1) { + const struct v4l2_event ev = { .type = V4L2_EVENT_EOS }; +@@ -329,7 +338,7 @@ static void dst_buf_done(struct amvdec_session *sess, + } + + void amvdec_dst_buf_done(struct amvdec_session *sess, +- struct vb2_v4l2_buffer *vbuf, u32 field) ++ struct vb2_v4l2_buffer *vbuf, u32 field, u32 type) + { + struct device *dev = sess->core->dev_dec; + struct amvdec_timestamp *tmp; +@@ -357,14 +366,14 @@ void amvdec_dst_buf_done(struct amvdec_session *sess, + kfree(tmp); + spin_unlock_irqrestore(&sess->ts_spinlock, flags); + +- dst_buf_done(sess, vbuf, field, timestamp, timecode, vbuf_flags); ++ dst_buf_done(sess, vbuf, field, type, timestamp, timecode, vbuf_flags); + atomic_dec(&sess->esparser_queued_bufs); + } + EXPORT_SYMBOL_GPL(amvdec_dst_buf_done); + + void amvdec_dst_buf_done_offset(struct amvdec_session *sess, + struct vb2_v4l2_buffer *vbuf, +- u32 offset, u32 field, bool allow_drop) ++ u32 offset, u32 field, u32 type, bool allow_drop) + { + struct device *dev = sess->core->dev_dec; + struct amvdec_timestamp *match = NULL; +@@ -411,14 +420,14 @@ void amvdec_dst_buf_done_offset(struct amvdec_session *sess, + } + spin_unlock_irqrestore(&sess->ts_spinlock, flags); + +- dst_buf_done(sess, vbuf, field, timestamp, timecode, vbuf_flags); ++ dst_buf_done(sess, vbuf, field, type, timestamp, timecode, vbuf_flags); + if (match) + atomic_dec(&sess->esparser_queued_bufs); + } + EXPORT_SYMBOL_GPL(amvdec_dst_buf_done_offset); + + void amvdec_dst_buf_done_idx(struct amvdec_session *sess, +- u32 buf_idx, u32 offset, u32 field) ++ u32 buf_idx, u32 offset, u32 field, u32 type) + { + struct vb2_v4l2_buffer *vbuf; + struct device *dev = sess->core->dev_dec; +@@ -434,9 +443,9 @@ void amvdec_dst_buf_done_idx(struct amvdec_session *sess, + } + + if (offset != -1) +- amvdec_dst_buf_done_offset(sess, vbuf, offset, field, true); ++ amvdec_dst_buf_done_offset(sess, vbuf, offset, field, type, true); + else +- amvdec_dst_buf_done(sess, vbuf, field); ++ amvdec_dst_buf_done(sess, vbuf, field, type); + } + EXPORT_SYMBOL_GPL(amvdec_dst_buf_done_idx); + +diff --git a/drivers/staging/media/meson/vdec/vdec_helpers.h b/drivers/staging/media/meson/vdec/vdec_helpers.h +index 1a711679d26a..e30edb935e37 100644 +--- a/drivers/staging/media/meson/vdec/vdec_helpers.h ++++ b/drivers/staging/media/meson/vdec/vdec_helpers.h +@@ -41,12 +41,12 @@ u32 amvdec_amfbc_size(u32 width, u32 height, u32 is_10bit, u32 use_mmu); + * @field: V4L2 interlaced field + */ + void amvdec_dst_buf_done_idx(struct amvdec_session *sess, u32 buf_idx, +- u32 offset, u32 field); ++ u32 offset, u32 field, u32 type); + void amvdec_dst_buf_done(struct amvdec_session *sess, +- struct vb2_v4l2_buffer *vbuf, u32 field); ++ struct vb2_v4l2_buffer *vbuf, u32 field, u32 type); + void amvdec_dst_buf_done_offset(struct amvdec_session *sess, + struct vb2_v4l2_buffer *vbuf, +- u32 offset, u32 field, bool allow_drop); ++ u32 offset, u32 field, u32 type, bool allow_drop); + + /** + * amvdec_add_ts() - Add a timestamp to the list +-- +2.34.1 + diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0021-WIP-arm64-dts-meson-add-Odroid-C2-HiFi-Shield-boards.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0021-WIP-arm64-dts-meson-add-Odroid-C2-HiFi-Shield-boards.patch new file mode 100644 index 0000000000..ba8ae22eb2 --- /dev/null +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0021-WIP-arm64-dts-meson-add-Odroid-C2-HiFi-Shield-boards.patch @@ -0,0 +1,949 @@ +From 2efb62e0eaeeb3d2c84b7d12c94a5ba99c257b06 Mon Sep 17 00:00:00 2001 +From: Christian Hewitt +Date: Sun, 26 May 2024 12:53:07 +0000 +Subject: [PATCH 21/37] WIP: arm64: dts: meson: add Odroid-C2 HiFi-Shield + boards + +Add experimental device-tree files for Odroid C2 with HiFi-Shield+ (pcm5102a) +and HiFi-Shield2 (pcm5242) mezzanine boards. + +Signed-off-by: Christian Hewitt +--- + arch/arm64/boot/dts/amlogic/Makefile | 4 + + .../meson-gxbb-odroidc2-hifishield.dts | 446 +++++++++++++++++ + .../meson-gxbb-odroidc2-hifishield2.dts | 458 ++++++++++++++++++ + 3 files changed, 908 insertions(+) + create mode 100644 arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2-hifishield.dts + create mode 100644 arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2-hifishield2.dts + +diff --git a/arch/arm64/boot/dts/amlogic/Makefile b/arch/arm64/boot/dts/amlogic/Makefile +index 15e7901c1268..b593736ff60b 100644 +--- a/arch/arm64/boot/dts/amlogic/Makefile ++++ b/arch/arm64/boot/dts/amlogic/Makefile +@@ -102,3 +102,7 @@ meson-g12a-fbx8am-brcm-dtbs := meson-g12a-fbx8am.dtb meson-g12a-fbx8am-brcm.dtbo + meson-g12a-fbx8am-realtek-dtbs := meson-g12a-fbx8am.dtb meson-g12a-fbx8am-realtek.dtbo + meson-g12b-a311d-khadas-vim3-ts050-dtbs := meson-g12b-a311d-khadas-vim3.dtb meson-khadas-vim3-ts050.dtbo + meson-sm1-khadas-vim3l-ts050-dtbs := meson-sm1-khadas-vim3l.dtb meson-khadas-vim3-ts050.dtbo ++ ++# Experimental ++dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-odroidc2-hifishield.dtb ++dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-odroidc2-hifishield2.dtb +diff --git a/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2-hifishield.dts b/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2-hifishield.dts +new file mode 100644 +index 000000000000..80b44c2abac2 +--- /dev/null ++++ b/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2-hifishield.dts +@@ -0,0 +1,446 @@ ++// SPDX-License-Identifier: (GPL-2.0+ OR MIT) ++/* ++ * Copyright (c) 2016 Andreas Färber ++ * Copyright (c) 2016 BayLibre, Inc. ++ * Author: Kevin Hilman ++ */ ++ ++/dts-v1/; ++ ++#include "meson-gxbb.dtsi" ++#include ++#include ++ ++/ { ++ compatible = "hardkernel,odroid-c2", "amlogic,meson-gxbb"; ++ model = "Hardkernel ODROID-C2"; ++ ++ aliases { ++ serial0 = &uart_AO; ++ ethernet0 = ðmac; ++ }; ++ ++ chosen { ++ stdout-path = "serial0:115200n8"; ++ }; ++ ++ memory@0 { ++ device_type = "memory"; ++ reg = <0x0 0x0 0x0 0x80000000>; ++ }; ++ ++ spdif_dit: audio-codec-0 { ++ #sound-dai-cells = <0>; ++ compatible = "linux,spdif-dit"; ++ status = "okay"; ++ sound-name-prefix = "DIT"; ++ }; ++ ++ usb_otg_pwr: regulator-usb-pwrs { ++ compatible = "regulator-fixed"; ++ ++ regulator-name = "USB_OTG_PWR"; ++ ++ regulator-min-microvolt = <5000000>; ++ regulator-max-microvolt = <5000000>; ++ ++ /* ++ * signal name from schematics: PWREN ++ */ ++ gpio = <&gpio_ao GPIOAO_5 GPIO_ACTIVE_HIGH>; ++ enable-active-high; ++ /* ++ * signal name from schematics: USB_POWER ++ */ ++ vin-supply = <&p5v0>; ++ }; ++ ++ leds { ++ compatible = "gpio-leds"; ++ led-blue { ++ label = "c2:blue:alive"; ++ gpios = <&gpio_ao GPIOAO_13 GPIO_ACTIVE_LOW>; ++ linux,default-trigger = "heartbeat"; ++ default-state = "off"; ++ }; ++ }; ++ ++ p5v0: regulator-p5v0 { ++ compatible = "regulator-fixed"; ++ ++ regulator-name = "P5V0"; ++ regulator-min-microvolt = <5000000>; ++ regulator-max-microvolt = <5000000>; ++ regulator-always-on; ++ }; ++ ++ hdmi_p5v0: regulator-hdmi-p5v0 { ++ compatible = "regulator-fixed"; ++ regulator-name = "HDMI_P5V0"; ++ regulator-min-microvolt = <5000000>; ++ regulator-max-microvolt = <5000000>; ++ /* AP2331SA-7 */ ++ vin-supply = <&p5v0>; ++ }; ++ ++ tflash_vdd: regulator-tflash-vdd { ++ compatible = "regulator-fixed"; ++ ++ regulator-name = "TFLASH_VDD"; ++ regulator-min-microvolt = <3300000>; ++ regulator-max-microvolt = <3300000>; ++ ++ /* ++ * signal name from schematics: TFLASH_VDD_EN ++ */ ++ gpio = <&gpio GPIOY_12 GPIO_ACTIVE_HIGH>; ++ enable-active-high; ++ /* U16 RT9179GB */ ++ vin-supply = <&vddio_ao3v3>; ++ }; ++ ++ tf_io: gpio-regulator-tf-io { ++ compatible = "regulator-gpio"; ++ ++ regulator-name = "TF_IO"; ++ regulator-min-microvolt = <1800000>; ++ regulator-max-microvolt = <3300000>; ++ ++ /* ++ * signal name from schematics: TF_3V3N_1V8_EN ++ */ ++ gpios = <&gpio_ao GPIOAO_3 GPIO_ACTIVE_HIGH>; ++ gpios-states = <0>; ++ ++ states = <3300000 0>, ++ <1800000 1>; ++ /* U12/U13 RT9179GB */ ++ vin-supply = <&vddio_ao3v3>; ++ }; ++ ++ vcc1v8: regulator-vcc1v8 { ++ compatible = "regulator-fixed"; ++ regulator-name = "VCC1V8"; ++ regulator-min-microvolt = <1800000>; ++ regulator-max-microvolt = <1800000>; ++ regulator-always-on; ++ /* U18 RT9179GB */ ++ vin-supply = <&vddio_ao3v3>; ++ }; ++ ++ vcc3v3: regulator-vcc3v3 { ++ compatible = "regulator-fixed"; ++ regulator-name = "VCC3V3"; ++ regulator-min-microvolt = <3300000>; ++ regulator-max-microvolt = <3300000>; ++ }; ++ ++ vddio_ao1v8: regulator-vddio-ao1v8 { ++ compatible = "regulator-fixed"; ++ regulator-name = "VDDIO_AO1V8"; ++ regulator-min-microvolt = <1800000>; ++ regulator-max-microvolt = <1800000>; ++ regulator-always-on; ++ /* U17 RT9179GB */ ++ vin-supply = <&p5v0>; ++ }; ++ ++ vddio_ao3v3: regulator-vddio-ao3v3 { ++ compatible = "regulator-fixed"; ++ regulator-name = "VDDIO_AO3V3"; ++ regulator-min-microvolt = <3300000>; ++ regulator-max-microvolt = <3300000>; ++ regulator-always-on; ++ /* U11 MP2161GJ-C499 */ ++ vin-supply = <&p5v0>; ++ }; ++ ++ ddr3_1v5: regulator-ddr3-1v5 { ++ compatible = "regulator-fixed"; ++ regulator-name = "DDR3_1V5"; ++ regulator-min-microvolt = <1500000>; ++ regulator-max-microvolt = <1500000>; ++ regulator-always-on; ++ /* U15 MP2161GJ-C499 */ ++ vin-supply = <&p5v0>; ++ }; ++ ++ emmc_pwrseq: emmc-pwrseq { ++ compatible = "mmc-pwrseq-emmc"; ++ reset-gpios = <&gpio BOOT_9 GPIO_ACTIVE_LOW>; ++ }; ++ ++ hdmi-connector { ++ compatible = "hdmi-connector"; ++ type = "a"; ++ ++ port { ++ hdmi_connector_in: endpoint { ++ remote-endpoint = <&hdmi_tx_tmds_out>; ++ }; ++ }; ++ }; ++ ++ sound { ++ compatible = "amlogic,gx-sound-card"; ++ model = "ODROID-C2"; ++ ++ 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_ao_6_pins &i2s_am_clk_pins &i2s_out_ao_clk_pins &i2s_out_lr_clk_pins &i2s_out_ch01_ao_pins>; ++ pinctrl-names = "default"; ++}; ++ ++&cec_AO { ++ status = "okay"; ++ pinctrl-0 = <&ao_cec_pins>; ++ pinctrl-names = "default"; ++ hdmi-phandle = <&hdmi_tx>; ++}; ++ ++&clkc { ++ assigned-clocks = <&clkc CLKID_MPLL0>, ++ <&clkc CLKID_MPLL1>, ++ <&clkc CLKID_MPLL2>; ++ assigned-clock-parents = <0>, <0>, <0>; ++ assigned-clock-rates = <294912000>, ++ <270950400>, ++ <393216000>; ++}; ++ ++ð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>; ++ }; ++ }; ++}; ++ ++&hdmi_tx { ++ status = "okay"; ++ pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>; ++ pinctrl-names = "default"; ++ hdmi-supply = <&hdmi_p5v0>; ++}; ++ ++&hdmi_tx_tmds_port { ++ hdmi_tx_tmds_out: endpoint { ++ remote-endpoint = <&hdmi_connector_in>; ++ }; ++}; ++ ++&i2c_A { ++ status = "okay"; ++ pinctrl-0 = <&i2c_a_pins>; ++ pinctrl-names = "default"; ++ ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ pcm5102a: pcm5102a@4c { ++ compatible = "ti,pcm5102a"; ++ reg = <0x4c>; ++ #sound-dai-cells = <0>; ++ }; ++}; ++ ++&ir { ++ status = "okay"; ++ pinctrl-0 = <&remote_input_ao_pins>; ++ pinctrl-names = "default"; ++ linux,rc-map-name = "rc-odroid"; ++}; ++ ++&gpio_ao { ++ gpio-line-names = "UART TX", "UART RX", "VCCK En", "TF 3V3/1V8 En", ++ "USB HUB nRESET", "USB OTG Power En", ++ "SPDIF_OUTPUT", "IR In", "I2S_MCLK", ++ "I2S_SCLK", "I2S_LRCLK", "I2S_DATA_OUTPUT", ++ "HDMI CEC", "SYS LED", ++ /* GPIO_TEST_N */ ++ ""; ++}; ++ ++&gpio { ++ gpio-line-names = /* Bank GPIOZ */ ++ "Eth MDIO", "Eth MDC", "Eth RGMII RX Clk", ++ "Eth RX DV", "Eth RX D0", "Eth RX D1", "Eth RX D2", ++ "Eth RX D3", "Eth RGMII TX Clk", "Eth TX En", ++ "Eth TX D0", "Eth TX D1", "Eth TX D2", "Eth TX D3", ++ "Eth PHY nRESET", "Eth PHY Intc", ++ /* Bank GPIOH */ ++ "HDMI HPD", "HDMI DDC SDA", "HDMI DDC SCL", "", ++ /* Bank BOOT */ ++ "eMMC D0", "eMMC D1", "eMMC D2", "eMMC D3", "eMMC D4", ++ "eMMC D5", "eMMC D6", "eMMC D7", "eMMC Clk", ++ "eMMC Reset", "eMMC CMD", ++ "", "", "", "", "", "", "", ++ /* Bank CARD */ ++ "SDCard D1", "SDCard D0", "SDCard CLK", "SDCard CMD", ++ "SDCard D3", "SDCard D2", "SDCard Det", ++ /* Bank GPIODV */ ++ "", "", "", "", "", "", "", "", "", "", "", "", "", ++ "", "", "", "", "", "", "", "", "", "", "", ++ "I2C A SDA", "I2C A SCK", "I2C B SDA", "I2C B SCK", ++ "PWM D", "PWM B", ++ /* Bank GPIOY */ ++ "Revision Bit0", "Revision Bit1", "", ++ "J2 Header Pin35", "", "", "", "J2 Header Pin36", ++ "J2 Header Pin31", "", "", "", "TF VDD En", ++ "J2 Header Pin32", "J2 Header Pin26", "", "", ++ /* Bank GPIOX */ ++ "J2 Header Pin29", "J2 Header Pin24", ++ "J2 Header Pin23", "J2 Header Pin22", ++ "J2 Header Pin21", "J2 Header Pin18", ++ "J2 Header Pin33", "J2 Header Pin19", ++ "J2 Header Pin16", "J2 Header Pin15", ++ "J2 Header Pin12", "J2 Header Pin13", ++ "J2 Header Pin8", "J2 Header Pin10", ++ "", "", "", "", "", ++ "J2 Header Pin11", "", "J2 Header Pin7", "", ++ /* Bank GPIOCLK */ ++ "", "", "", ""; ++}; ++ ++&saradc { ++ status = "okay"; ++ vref-supply = <&vcc1v8>; ++}; ++ ++&scpi_clocks { ++ status = "disabled"; ++}; ++ ++/* SD */ ++&sd_emmc_b { ++ status = "okay"; ++ pinctrl-0 = <&sdcard_pins>; ++ pinctrl-1 = <&sdcard_clk_gate_pins>; ++ pinctrl-names = "default", "clk-gate"; ++ ++ bus-width = <4>; ++ cap-sd-highspeed; ++ sd-uhs-sdr12; ++ sd-uhs-sdr25; ++ sd-uhs-sdr50; ++ sd-uhs-ddr50; ++ max-frequency = <100000000>; ++ disable-wp; ++ ++ cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_LOW>; ++ ++ vmmc-supply = <&tflash_vdd>; ++ vqmmc-supply = <&tf_io>; ++}; ++ ++/* eMMC */ ++&sd_emmc_c { ++ status = "okay"; ++ pinctrl-0 = <&emmc_pins>, <&emmc_ds_pins>; ++ pinctrl-1 = <&emmc_clk_gate_pins>; ++ pinctrl-names = "default", "clk-gate"; ++ ++ bus-width = <8>; ++ max-frequency = <200000000>; ++ non-removable; ++ disable-wp; ++ cap-mmc-highspeed; ++ mmc-ddr-1_8v; ++ mmc-hs200-1_8v; ++ ++ mmc-pwrseq = <&emmc_pwrseq>; ++ vmmc-supply = <&vcc3v3>; ++ vqmmc-supply = <&vcc1v8>; ++}; ++ ++&uart_AO { ++ status = "okay"; ++ pinctrl-0 = <&uart_ao_a_pins>; ++ pinctrl-names = "default"; ++}; ++ ++&usb0_phy { ++ status = "disabled"; ++ phy-supply = <&usb_otg_pwr>; ++}; ++ ++&usb1_phy { ++ status = "okay"; ++ phy-supply = <&usb_otg_pwr>; ++}; ++ ++&usb0 { ++ status = "disabled"; ++}; ++ ++&usb1 { ++ dr_mode = "host"; ++ #address-cells = <1>; ++ #size-cells = <0>; ++ status = "okay"; ++ ++ hub@1 { ++ /* Genesys Logic GL852G USB 2.0 hub */ ++ compatible = "usb5e3,610"; ++ reg = <1>; ++ vdd-supply = <&p5v0>; ++ reset-gpio = <&gpio_ao GPIOAO_4 GPIO_ACTIVE_LOW>; ++ }; ++}; +diff --git a/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2-hifishield2.dts b/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2-hifishield2.dts +new file mode 100644 +index 000000000000..e94d6dc75fec +--- /dev/null ++++ b/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2-hifishield2.dts +@@ -0,0 +1,458 @@ ++// SPDX-License-Identifier: (GPL-2.0+ OR MIT) ++/* ++ * Copyright (c) 2016 Andreas Färber ++ * Copyright (c) 2016 BayLibre, Inc. ++ * Author: Kevin Hilman ++ */ ++ ++/dts-v1/; ++ ++#include "meson-gxbb.dtsi" ++#include ++#include ++ ++/ { ++ compatible = "hardkernel,odroid-c2", "amlogic,meson-gxbb"; ++ model = "Hardkernel ODROID-C2"; ++ ++ aliases { ++ serial0 = &uart_AO; ++ ethernet0 = ðmac; ++ }; ++ ++ chosen { ++ stdout-path = "serial0:115200n8"; ++ }; ++ ++ memory@0 { ++ device_type = "memory"; ++ reg = <0x0 0x0 0x0 0x80000000>; ++ }; ++ ++ spdif_dit: audio-codec-0 { ++ #sound-dai-cells = <0>; ++ compatible = "linux,spdif-dit"; ++ status = "okay"; ++ sound-name-prefix = "DIT"; ++ }; ++ ++ usb_otg_pwr: regulator-usb-pwrs { ++ compatible = "regulator-fixed"; ++ ++ regulator-name = "USB_OTG_PWR"; ++ ++ regulator-min-microvolt = <5000000>; ++ regulator-max-microvolt = <5000000>; ++ ++ /* ++ * signal name from schematics: PWREN ++ */ ++ gpio = <&gpio_ao GPIOAO_5 GPIO_ACTIVE_HIGH>; ++ enable-active-high; ++ /* ++ * signal name from schematics: USB_POWER ++ */ ++ vin-supply = <&p5v0>; ++ }; ++ ++ leds { ++ compatible = "gpio-leds"; ++ led-blue { ++ label = "c2:blue:alive"; ++ gpios = <&gpio_ao GPIOAO_13 GPIO_ACTIVE_LOW>; ++ linux,default-trigger = "heartbeat"; ++ default-state = "off"; ++ }; ++ }; ++ ++ p5v0: regulator-p5v0 { ++ compatible = "regulator-fixed"; ++ ++ regulator-name = "P5V0"; ++ regulator-min-microvolt = <5000000>; ++ regulator-max-microvolt = <5000000>; ++ regulator-always-on; ++ }; ++ ++ hdmi_p5v0: regulator-hdmi-p5v0 { ++ compatible = "regulator-fixed"; ++ regulator-name = "HDMI_P5V0"; ++ regulator-min-microvolt = <5000000>; ++ regulator-max-microvolt = <5000000>; ++ /* AP2331SA-7 */ ++ vin-supply = <&p5v0>; ++ }; ++ ++ tflash_vdd: regulator-tflash-vdd { ++ compatible = "regulator-fixed"; ++ ++ regulator-name = "TFLASH_VDD"; ++ regulator-min-microvolt = <3300000>; ++ regulator-max-microvolt = <3300000>; ++ ++ /* ++ * signal name from schematics: TFLASH_VDD_EN ++ */ ++ gpio = <&gpio GPIOY_12 GPIO_ACTIVE_HIGH>; ++ enable-active-high; ++ /* U16 RT9179GB */ ++ vin-supply = <&vddio_ao3v3>; ++ }; ++ ++ tf_io: gpio-regulator-tf-io { ++ compatible = "regulator-gpio"; ++ ++ regulator-name = "TF_IO"; ++ regulator-min-microvolt = <1800000>; ++ regulator-max-microvolt = <3300000>; ++ ++ /* ++ * signal name from schematics: TF_3V3N_1V8_EN ++ */ ++ gpios = <&gpio_ao GPIOAO_3 GPIO_ACTIVE_HIGH>; ++ gpios-states = <0>; ++ ++ states = <3300000 0>, ++ <1800000 1>; ++ /* U12/U13 RT9179GB */ ++ vin-supply = <&vddio_ao3v3>; ++ }; ++ ++ vcc1v8: regulator-vcc1v8 { ++ compatible = "regulator-fixed"; ++ regulator-name = "VCC1V8"; ++ regulator-min-microvolt = <1800000>; ++ regulator-max-microvolt = <1800000>; ++ regulator-always-on; ++ /* U18 RT9179GB */ ++ vin-supply = <&vddio_ao3v3>; ++ }; ++ ++ vcc3v3: regulator-vcc3v3 { ++ compatible = "regulator-fixed"; ++ regulator-name = "VCC3V3"; ++ regulator-min-microvolt = <3300000>; ++ regulator-max-microvolt = <3300000>; ++ }; ++ ++ vddio_ao1v8: regulator-vddio-ao1v8 { ++ compatible = "regulator-fixed"; ++ regulator-name = "VDDIO_AO1V8"; ++ regulator-min-microvolt = <1800000>; ++ regulator-max-microvolt = <1800000>; ++ regulator-always-on; ++ /* U17 RT9179GB */ ++ vin-supply = <&p5v0>; ++ }; ++ ++ vddio_ao3v3: regulator-vddio-ao3v3 { ++ compatible = "regulator-fixed"; ++ regulator-name = "VDDIO_AO3V3"; ++ regulator-min-microvolt = <3300000>; ++ regulator-max-microvolt = <3300000>; ++ regulator-always-on; ++ /* U11 MP2161GJ-C499 */ ++ vin-supply = <&p5v0>; ++ }; ++ ++ ddr3_1v5: regulator-ddr3-1v5 { ++ compatible = "regulator-fixed"; ++ regulator-name = "DDR3_1V5"; ++ regulator-min-microvolt = <1500000>; ++ regulator-max-microvolt = <1500000>; ++ regulator-always-on; ++ /* U15 MP2161GJ-C499 */ ++ vin-supply = <&p5v0>; ++ }; ++ ++ emmc_pwrseq: emmc-pwrseq { ++ compatible = "mmc-pwrseq-emmc"; ++ reset-gpios = <&gpio BOOT_9 GPIO_ACTIVE_LOW>; ++ }; ++ ++ hdmi-connector { ++ compatible = "hdmi-connector"; ++ type = "a"; ++ ++ port { ++ hdmi_connector_in: endpoint { ++ remote-endpoint = <&hdmi_tx_tmds_out>; ++ }; ++ }; ++ }; ++ ++ sound { ++ compatible = "amlogic,gx-sound-card"; ++ model = "ODROID-C2"; ++ ++ 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_CPU CPU_SPDIF_ENCODER>; ++ ++ codec-0 { ++ sound-dai = <&pcm5242>; ++ }; ++ }; ++ ++ dai-link-5 { ++ sound-dai = <&aiu AIU_HDMI CTRL_OUT>; ++ ++ codec-0 { ++ sound-dai = <&hdmi_tx>; ++ }; ++ }; ++ }; ++}; ++ ++&aiu { ++ status = "okay"; ++ pinctrl-0 = <&spdif_out_ao_6_pins &i2s_am_clk_pins &i2s_out_ao_clk_pins &i2s_out_lr_clk_pins &i2s_out_ch01_ao_pins>; ++ pinctrl-names = "default"; ++}; ++ ++&cec_AO { ++ status = "okay"; ++ pinctrl-0 = <&ao_cec_pins>; ++ pinctrl-names = "default"; ++ hdmi-phandle = <&hdmi_tx>; ++}; ++ ++&clkc { ++ assigned-clocks = <&clkc CLKID_MPLL0>, ++ <&clkc CLKID_MPLL1>, ++ <&clkc CLKID_MPLL2>; ++ assigned-clock-parents = <0>, <0>, <0>; ++ assigned-clock-rates = <294912000>, ++ <270950400>, ++ <393216000>; ++}; ++ ++ð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>; ++ }; ++ }; ++}; ++ ++&hdmi_tx { ++ status = "okay"; ++ pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>; ++ pinctrl-names = "default"; ++ hdmi-supply = <&hdmi_p5v0>; ++}; ++ ++&hdmi_tx_tmds_port { ++ hdmi_tx_tmds_out: endpoint { ++ remote-endpoint = <&hdmi_connector_in>; ++ }; ++}; ++ ++&i2c_A { ++ status = "okay"; ++ pinctrl-0 = <&i2c_a_pins>; ++ pinctrl-names = "default"; ++ ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ pcm5242: pcm5242@4c { ++ compatible = "ti,pcm5242"; ++ reg = <0x4c>; ++ #sound-dai-cells = <0>; ++ ++ AVDD-supply = <&vddio_ao3v3>; ++ DVDD-supply = <&vddio_ao3v3>; ++ CPVDD-supply = <&vddio_ao3v3>; ++ }; ++}; ++ ++&ir { ++ status = "okay"; ++ pinctrl-0 = <&remote_input_ao_pins>; ++ pinctrl-names = "default"; ++ linux,rc-map-name = "rc-odroid"; ++}; ++ ++&gpio_ao { ++ gpio-line-names = "UART TX", "UART RX", "VCCK En", "TF 3V3/1V8 En", ++ "USB HUB nRESET", "USB OTG Power En", ++ "SPDIF_OUTPUT", "IR In", "I2S_MCLK", ++ "I2S_SCLK", "I2S_LRCLK", "I2S_DATA_OUTPUT", ++ "HDMI CEC", "SYS LED", ++ /* GPIO_TEST_N */ ++ ""; ++}; ++ ++&gpio { ++ gpio-line-names = /* Bank GPIOZ */ ++ "Eth MDIO", "Eth MDC", "Eth RGMII RX Clk", ++ "Eth RX DV", "Eth RX D0", "Eth RX D1", "Eth RX D2", ++ "Eth RX D3", "Eth RGMII TX Clk", "Eth TX En", ++ "Eth TX D0", "Eth TX D1", "Eth TX D2", "Eth TX D3", ++ "Eth PHY nRESET", "Eth PHY Intc", ++ /* Bank GPIOH */ ++ "HDMI HPD", "HDMI DDC SDA", "HDMI DDC SCL", "", ++ /* Bank BOOT */ ++ "eMMC D0", "eMMC D1", "eMMC D2", "eMMC D3", "eMMC D4", ++ "eMMC D5", "eMMC D6", "eMMC D7", "eMMC Clk", ++ "eMMC Reset", "eMMC CMD", ++ "", "", "", "", "", "", "", ++ /* Bank CARD */ ++ "SDCard D1", "SDCard D0", "SDCard CLK", "SDCard CMD", ++ "SDCard D3", "SDCard D2", "SDCard Det", ++ /* Bank GPIODV */ ++ "", "", "", "", "", "", "", "", "", "", "", "", "", ++ "", "", "", "", "", "", "", "", "", "", "", ++ "I2C A SDA", "I2C A SCK", "I2C B SDA", "I2C B SCK", ++ "PWM D", "PWM B", ++ /* Bank GPIOY */ ++ "Revision Bit0", "Revision Bit1", "", ++ "J2 Header Pin35", "", "", "", "J2 Header Pin36", ++ "J2 Header Pin31", "", "", "", "TF VDD En", ++ "J2 Header Pin32", "J2 Header Pin26", "", "", ++ /* Bank GPIOX */ ++ "J2 Header Pin29", "J2 Header Pin24", ++ "J2 Header Pin23", "J2 Header Pin22", ++ "J2 Header Pin21", "J2 Header Pin18", ++ "J2 Header Pin33", "J2 Header Pin19", ++ "J2 Header Pin16", "J2 Header Pin15", ++ "J2 Header Pin12", "J2 Header Pin13", ++ "J2 Header Pin8", "J2 Header Pin10", ++ "", "", "", "", "", ++ "J2 Header Pin11", "", "J2 Header Pin7", "", ++ /* Bank GPIOCLK */ ++ "", "", "", ""; ++}; ++ ++&saradc { ++ status = "okay"; ++ vref-supply = <&vcc1v8>; ++}; ++ ++&scpi_clocks { ++ status = "disabled"; ++}; ++ ++/* SD */ ++&sd_emmc_b { ++ status = "okay"; ++ pinctrl-0 = <&sdcard_pins>; ++ pinctrl-1 = <&sdcard_clk_gate_pins>; ++ pinctrl-names = "default", "clk-gate"; ++ ++ bus-width = <4>; ++ cap-sd-highspeed; ++ sd-uhs-sdr12; ++ sd-uhs-sdr25; ++ sd-uhs-sdr50; ++ sd-uhs-ddr50; ++ max-frequency = <100000000>; ++ disable-wp; ++ ++ cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_LOW>; ++ ++ vmmc-supply = <&tflash_vdd>; ++ vqmmc-supply = <&tf_io>; ++}; ++ ++/* eMMC */ ++&sd_emmc_c { ++ status = "okay"; ++ pinctrl-0 = <&emmc_pins>, <&emmc_ds_pins>; ++ pinctrl-1 = <&emmc_clk_gate_pins>; ++ pinctrl-names = "default", "clk-gate"; ++ ++ bus-width = <8>; ++ max-frequency = <200000000>; ++ non-removable; ++ disable-wp; ++ cap-mmc-highspeed; ++ mmc-ddr-1_8v; ++ mmc-hs200-1_8v; ++ ++ mmc-pwrseq = <&emmc_pwrseq>; ++ vmmc-supply = <&vcc3v3>; ++ vqmmc-supply = <&vcc1v8>; ++}; ++ ++&uart_AO { ++ status = "okay"; ++ pinctrl-0 = <&uart_ao_a_pins>; ++ pinctrl-names = "default"; ++}; ++ ++&usb0_phy { ++ status = "disabled"; ++ phy-supply = <&usb_otg_pwr>; ++}; ++ ++&usb1_phy { ++ status = "okay"; ++ phy-supply = <&usb_otg_pwr>; ++}; ++ ++&usb0 { ++ status = "disabled"; ++}; ++ ++&usb1 { ++ dr_mode = "host"; ++ #address-cells = <1>; ++ #size-cells = <0>; ++ status = "okay"; ++ ++ hub@1 { ++ /* Genesys Logic GL852G USB 2.0 hub */ ++ compatible = "usb5e3,610"; ++ reg = <1>; ++ vdd-supply = <&p5v0>; ++ reset-gpio = <&gpio_ao GPIOAO_4 GPIO_ACTIVE_LOW>; ++ }; ++}; +-- +2.34.1 + diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0022-WIP-net-phy-meson-gxl-implement-meson_gxl_phy_resume.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0022-WIP-net-phy-meson-gxl-implement-meson_gxl_phy_resume.patch new file mode 100644 index 0000000000..55b7574de1 --- /dev/null +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0022-WIP-net-phy-meson-gxl-implement-meson_gxl_phy_resume.patch @@ -0,0 +1,64 @@ +From 21708d1bcb84d0d8260c143746df5bff8dbe7a77 Mon Sep 17 00:00:00 2001 +From: Da Xue +Date: Tue, 8 Aug 2023 01:00:15 -0400 +Subject: [PATCH 22/37] WIP: net: phy: meson-gxl: implement + meson_gxl_phy_resume() + +While testing the suspend/resume functionality, we found the ethernet +is broken if internal PHY of the Amlogic meson GXL SoC is used. +After system resume back, the ethernet is down, no carrier can be found. + + eth0: mtu 1500 qdisc mq state + DOWN group default qlen 1000 + +In this patch, the internal PHY is re-initialized to fix this problem. + + eth0: mtu 1500 qdisc mq state UP + group default qlen 1000 + +Cc: stable@vger.kernel.org # v5.10+ +Fixes: 7334b3e47aee ("net: phy: Add Meson GXL Internal PHY driver") +Signed-off-by: Da Xue +Signed-off-by: Luke Lu +--- + drivers/net/phy/meson-gxl.c | 17 ++++++++++++++++- + 1 file changed, 16 insertions(+), 1 deletion(-) + +diff --git a/drivers/net/phy/meson-gxl.c b/drivers/net/phy/meson-gxl.c +index 962ebbbc1348..55f281202fd4 100644 +--- a/drivers/net/phy/meson-gxl.c ++++ b/drivers/net/phy/meson-gxl.c +@@ -132,6 +132,21 @@ static int meson_gxl_config_init(struct phy_device *phydev) + return 0; + } + ++static int meson_gxl_phy_resume(struct phy_device *phydev) ++{ ++ int ret; ++ ++ ret = genphy_resume(phydev); ++ if (ret) ++ return ret; ++ ++ ret = meson_gxl_config_init(phydev); ++ if (ret) ++ return ret; ++ ++ return 0; ++} ++ + /* This function is provided to cope with the possible failures of this phy + * during aneg process. When aneg fails, the PHY reports that aneg is done + * but the value found in MII_LPA is wrong: +@@ -196,7 +211,7 @@ static struct phy_driver meson_gxl_phy[] = { + .config_intr = smsc_phy_config_intr, + .handle_interrupt = smsc_phy_handle_interrupt, + .suspend = genphy_suspend, +- .resume = genphy_resume, ++ .resume = meson_gxl_phy_resume, + .read_mmd = genphy_read_mmd_unsupported, + .write_mmd = genphy_write_mmd_unsupported, + }, { +-- +2.34.1 + diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0023-FROMLIST-v4-dt-bindings-usb-Add-the-binding-example-.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0023-FROMLIST-v4-dt-bindings-usb-Add-the-binding-example-.patch deleted file mode 100644 index 362987de3b..0000000000 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0023-FROMLIST-v4-dt-bindings-usb-Add-the-binding-example-.patch +++ /dev/null @@ -1,120 +0,0 @@ -From 1283c858520094cb01ff6fc133eab9cad8c7e276 Mon Sep 17 00:00:00 2001 -From: Anand Moon -Date: Wed, 22 Nov 2023 23:53:46 +0530 -Subject: [PATCH 23/53] FROMLIST(v4): dt-bindings: usb: Add the binding example - for the Genesys Logic GL3523 hub - -Add the binding example for the USB3.1 Genesys Logic GL3523 -integrates with USB 3.1 Gen 1 Super Speed and USB 2.0 High-Speed -hub. - -Onboard USB hub supports USB 3.x and USB 2.0 peer controllers. -which has a common reset pin and power supply. -peer-hub phandle each peer controller with proper gpio reset -and help each peer power on during initialization -and power off during suspend. - -Signed-off-by: Anand Moon ---- - .../bindings/usb/genesys,gl850g.yaml | 67 +++++++++++++++++-- - 1 file changed, 63 insertions(+), 4 deletions(-) - -diff --git a/Documentation/devicetree/bindings/usb/genesys,gl850g.yaml b/Documentation/devicetree/bindings/usb/genesys,gl850g.yaml -index 37cf5249e526..47b7789ce7a5 100644 ---- a/Documentation/devicetree/bindings/usb/genesys,gl850g.yaml -+++ b/Documentation/devicetree/bindings/usb/genesys,gl850g.yaml -@@ -9,9 +9,6 @@ title: Genesys Logic USB hub controller - maintainers: - - Icenowy Zheng - --allOf: -- - $ref: usb-device.yaml# -- - properties: - compatible: - enum: -@@ -27,7 +24,16 @@ properties: - - vdd-supply: - description: -- the regulator that provides 3.3V core power to the hub. -+ phandle to the regulator that provides power to the hub. -+ -+ peer-hub: -+ $ref: /schemas/types.yaml#/definitions/phandle -+ description: -+ onboard USB hub supports USB 3.x and USB 2.0 peer controllers. -+ which has a common reset pin and power supply. -+ peer-hub phandle each peer controller with proper gpio reset -+ and help each peer power on during initialization -+ and power off during suspend. - - peer-hub: - $ref: /schemas/types.yaml#/definitions/phandle -@@ -38,6 +44,33 @@ required: - - compatible - - reg - -+allOf: -+ - $ref: usb-device.yaml# -+ - if: -+ properties: -+ compatible: -+ contains: -+ enum: -+ - usb5e3,608 -+ then: -+ properties: -+ peer-hub: false -+ vdd-supply: false -+ reset-gpios: true -+ -+ - if: -+ properties: -+ compatible: -+ contains: -+ enum: -+ - usb5e3,610 -+ - usb5e3,620 -+ then: -+ properties: -+ peer-hub: true -+ vdd-supply: true -+ reset-gpios: true -+ - additionalProperties: false - - examples: -@@ -54,3 +87,29 @@ examples: - reset-gpios = <&pio 7 2 GPIO_ACTIVE_LOW>; - }; - }; -+ -+ - | -+ #include -+ usb { -+ dr_mode = "host"; -+ #address-cells = <1>; -+ #size-cells = <0>; -+ -+ /* 2.0 hub on port 1 */ -+ hub_2_0: hub@1 { -+ compatible = "usb5e3,610"; -+ reg = <1>; -+ peer-hub = <&hub_3_0>; -+ reset-gpios = <&gpio 20 GPIO_ACTIVE_LOW>; -+ vdd-supply = <&vcc_5v>; -+ }; -+ -+ /* 3.1 hub on port 4 */ -+ hub_3_0: hub@2 { -+ compatible = "usb5e3,620"; -+ reg = <2>; -+ peer-hub = <&hub_2_0>; -+ reset-gpios = <&gpio 20 GPIO_ACTIVE_LOW>; -+ vdd-supply = <&vcc_5v>; -+ }; -+ }; --- -2.34.1 - diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0023-WIP-drm-meson-add-support-for-2560x1440-resolution-o.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0023-WIP-drm-meson-add-support-for-2560x1440-resolution-o.patch new file mode 100644 index 0000000000..bd27e3e0c6 --- /dev/null +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0023-WIP-drm-meson-add-support-for-2560x1440-resolution-o.patch @@ -0,0 +1,62 @@ +From 71facc1a41966252fd3368b8a6cfc02d3e91d85a Mon Sep 17 00:00:00 2001 +From: Dongjin Kim +Date: Thu, 10 Sep 2020 11:01:33 +0900 +Subject: [PATCH 23/37] WIP: drm/meson: add support for 2560x1440 resolution + output + +Add support for Quad HD (QHD) 2560x1440 resolution output. Timings +have been adapted from the vendor kernel. + +Signed-off-by: Joy Cho +Signed-off-by: Dongjin Kim +Signed-off-by: Christian Hewitt +--- + drivers/gpu/drm/meson/meson_vclk.c | 18 ++++++++++++++++++ + 1 file changed, 18 insertions(+) + +diff --git a/drivers/gpu/drm/meson/meson_vclk.c b/drivers/gpu/drm/meson/meson_vclk.c +index dfe0c28a0f05..f5385b3e3796 100644 +--- a/drivers/gpu/drm/meson/meson_vclk.c ++++ b/drivers/gpu/drm/meson/meson_vclk.c +@@ -357,6 +357,8 @@ enum { + MESON_VCLK_HDMI_594000, + /* 2970 /1 /1 /1 /5 /1 => /1 /2 */ + MESON_VCLK_HDMI_594000_YUV420, ++/* 4830 /2 /1 /2 /5 /1 => /1 /1 */ ++ MESON_VCLK_HDMI_241500, + }; + + struct meson_vclk_params { +@@ -467,6 +469,18 @@ struct meson_vclk_params { + .vid_pll_div = VID_PLL_DIV_5, + .vclk_div = 1, + }, ++ [MESON_VCLK_HDMI_241500] = { ++ .pll_freq = 4830000000, ++ .phy_freq = 2415000000, ++ .venc_freq = 241500000, ++ .vclk_freq = 241500000, ++ .pixel_freq = 241500000, ++ .pll_od1 = 2, ++ .pll_od2 = 1, ++ .pll_od3 = 2, ++ .vid_pll_div = VID_PLL_DIV_5, ++ .vclk_div = 1, ++ }, + { /* sentinel */ }, + }; + +@@ -894,6 +908,10 @@ static void meson_vclk_set(struct meson_drm *priv, + m = 0xf7; + frac = vic_alternate_clock ? 0x8148 : 0x10000; + break; ++ case 4830000: ++ m = 0xc9; ++ frac = 0xd560; ++ break; + } + + meson_hdmi_pll_set_params(priv, m, frac, od1, od2, od3); +-- +2.34.1 + diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0024-FROMLIST-v4-arm64-dts-amlogic-Used-onboard-usb-hub-r.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0024-FROMLIST-v4-arm64-dts-amlogic-Used-onboard-usb-hub-r.patch deleted file mode 100644 index 620a6e4a4d..0000000000 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0024-FROMLIST-v4-arm64-dts-amlogic-Used-onboard-usb-hub-r.patch +++ /dev/null @@ -1,72 +0,0 @@ -From 3b361c7741a8c9a7ba990eda872fcc7817d35b23 Mon Sep 17 00:00:00 2001 -From: Anand Moon -Date: Tue, 10 Oct 2023 08:54:43 +0530 -Subject: [PATCH 24/53] FROMLIST(v4): arm64: dts: amlogic: Used onboard usb hub - reset on odroid n2 - -On Odroid n2/n2+ previously use gpio-hog to reset the usb hub, -switch to used on-board usb hub reset to enable the usb hub -and enable power to hub. - -Signed-off-by: Anand Moon ---- - .../dts/amlogic/meson-g12b-odroid-n2.dtsi | 36 ++++++++++++------- - 1 file changed, 24 insertions(+), 12 deletions(-) - -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 d80dd9a3da31..86eb81112232 100644 ---- a/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi -+++ b/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi -@@ -31,6 +31,30 @@ hub_5v: regulator-hub-5v { - enable-active-high; - }; - -+ /* USB hub supports both USB 2.0 and USB 3.0 root hub */ -+ usb-hub { -+ dr_mode = "host"; -+ #address-cells = <1>; -+ #size-cells = <0>; -+ -+ /* 2.0 hub on port 1 */ -+ hub_2_0: hub@1 { -+ compatible = "usb5e3,610"; -+ reg = <1>; -+ peer-hub = <&hub_3_0>; -+ vdd-supply = <&usb_pwr_en>; -+ }; -+ -+ /* 3.0 hub on port 4 */ -+ hub_3_0: hub@2 { -+ compatible = "usb5e3,620"; -+ reg = <2>; -+ peer-hub = <&hub_2_0>; -+ reset-gpios = <&gpio GPIOH_4 GPIO_ACTIVE_LOW>; -+ vdd-supply = <&vcc_5v>; -+ }; -+ }; -+ - sound { - compatible = "amlogic,axg-sound-card"; - model = "ODROID-N2"; -@@ -234,18 +258,6 @@ &gpio { - "PIN_3", /* GPIOX_17 */ - "PIN_5", /* GPIOX_18 */ - "PIN_36"; /* GPIOX_19 */ -- /* -- * WARNING: The USB Hub on the Odroid-N2 needs a reset signal -- * to be turned high in order to be detected by the USB Controller -- * This signal should be handled by a USB specific power sequence -- * in order to reset the Hub when USB bus is powered down. -- */ -- usb-hub-hog { -- gpio-hog; -- gpios = ; -- output-high; -- line-name = "usb-hub-reset"; -- }; - }; - - &i2c3 { --- -2.34.1 - diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0024-WIP-drm-meson-do-setup-after-resumption-to-fix-hdmi-.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0024-WIP-drm-meson-do-setup-after-resumption-to-fix-hdmi-.patch new file mode 100644 index 0000000000..41d8258cc1 --- /dev/null +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0024-WIP-drm-meson-do-setup-after-resumption-to-fix-hdmi-.patch @@ -0,0 +1,89 @@ +From 5d95e031c6517a910173b80c50b800ffdc6493fa Mon Sep 17 00:00:00 2001 +From: Luke Lu +Date: Mon, 21 Aug 2023 10:50:04 +0000 +Subject: [PATCH 24/37] WIP: drm/meson: do setup after resumption to fix hdmi + output + +Some HDMI displays connected to gxl-based boards go black after +resumption, but recover after disconnecting and reconnecting. + +Redoing setup by calling dw_hdmi_poweron() fixes the problem, which +requires a call of dw_hdmi_poweroff() to maintain the internal state. + +Signed-off-by: Luke Lu +--- + drivers/gpu/drm/bridge/synopsys/dw-hdmi.c | 6 ++++-- + drivers/gpu/drm/meson/meson_dw_hdmi.c | 3 +++ + include/drm/bridge/dw_hdmi.h | 3 ++- + 3 files changed, 9 insertions(+), 3 deletions(-) + +diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c +index 8791408dd1ff..5eb864d2678e 100644 +--- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c ++++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c +@@ -2378,7 +2378,7 @@ static void initialize_hdmi_ih_mutes(struct dw_hdmi *hdmi) + hdmi_writeb(hdmi, ih_mute, HDMI_IH_MUTE); + } + +-static void dw_hdmi_poweron(struct dw_hdmi *hdmi) ++void dw_hdmi_poweron(struct dw_hdmi *hdmi) + { + hdmi->bridge_is_on = true; + +@@ -2388,8 +2388,9 @@ static void dw_hdmi_poweron(struct dw_hdmi *hdmi) + */ + dw_hdmi_setup(hdmi, hdmi->curr_conn, &hdmi->previous_mode); + } ++EXPORT_SYMBOL_GPL(dw_hdmi_poweron); + +-static void dw_hdmi_poweroff(struct dw_hdmi *hdmi) ++void dw_hdmi_poweroff(struct dw_hdmi *hdmi) + { + if (hdmi->phy.enabled) { + hdmi->phy.ops->disable(hdmi, hdmi->phy.data); +@@ -2398,6 +2399,7 @@ static void dw_hdmi_poweroff(struct dw_hdmi *hdmi) + + hdmi->bridge_is_on = false; + } ++EXPORT_SYMBOL_GPL(dw_hdmi_poweroff); + + static void dw_hdmi_update_power(struct dw_hdmi *hdmi) + { +diff --git a/drivers/gpu/drm/meson/meson_dw_hdmi.c b/drivers/gpu/drm/meson/meson_dw_hdmi.c +index 0d7c68b29dff..8460c93d74cb 100644 +--- a/drivers/gpu/drm/meson/meson_dw_hdmi.c ++++ b/drivers/gpu/drm/meson/meson_dw_hdmi.c +@@ -809,6 +809,8 @@ static int __maybe_unused meson_dw_hdmi_pm_suspend(struct device *dev) + meson_dw_hdmi->data->top_write(meson_dw_hdmi, + HDMITX_TOP_SW_RESET, 0); + ++ dw_hdmi_poweroff(meson_dw_hdmi->hdmi); ++ + return 0; + } + +@@ -821,6 +823,7 @@ static int __maybe_unused meson_dw_hdmi_pm_resume(struct device *dev) + + meson_dw_hdmi_init(meson_dw_hdmi); + ++ dw_hdmi_poweron(meson_dw_hdmi->hdmi); + dw_hdmi_resume(meson_dw_hdmi->hdmi); + + return 0; +diff --git a/include/drm/bridge/dw_hdmi.h b/include/drm/bridge/dw_hdmi.h +index 6a46baa0737c..5eac26a51245 100644 +--- a/include/drm/bridge/dw_hdmi.h ++++ b/include/drm/bridge/dw_hdmi.h +@@ -171,7 +171,8 @@ void dw_hdmi_unbind(struct dw_hdmi *hdmi); + struct dw_hdmi *dw_hdmi_bind(struct platform_device *pdev, + struct drm_encoder *encoder, + const struct dw_hdmi_plat_data *plat_data); +- ++void dw_hdmi_poweron(struct dw_hdmi *hdmi); ++void dw_hdmi_poweroff(struct dw_hdmi *hdmi); + void dw_hdmi_resume(struct dw_hdmi *hdmi); + + void dw_hdmi_setup_rx_sense(struct dw_hdmi *hdmi, bool hpd, bool rx_sense); +-- +2.34.1 + diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0025-FROMLIST-v1-arm64-dts-meson-radxa-zero2-add-pwm-fan-.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0025-FROMLIST-v1-arm64-dts-meson-radxa-zero2-add-pwm-fan-.patch deleted file mode 100644 index 2cede28a35..0000000000 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0025-FROMLIST-v1-arm64-dts-meson-radxa-zero2-add-pwm-fan-.patch +++ /dev/null @@ -1,64 +0,0 @@ -From 983b5729b97918d6c860bdfd01093cf60b0ea83e Mon Sep 17 00:00:00 2001 -From: Christian Hewitt -Date: Mon, 30 Jan 2023 05:09:18 +0000 -Subject: [PATCH 25/53] FROMLIST(v1): arm64: dts: meson: radxa-zero2: add - pwm-fan support - -The A311D on Zero2 needs active cooling and the board includes a header to -connect a simple fan. Add pwm-fan support with basic thermal properties so -the fan runs when connected. - -Suggested-by: Yuntian Zhang -Signed-off-by: Christian Hewitt ---- - .../dts/amlogic/meson-g12b-radxa-zero2.dts | 27 +++++++++++++++++++ - 1 file changed, 27 insertions(+) - -diff --git a/arch/arm64/boot/dts/amlogic/meson-g12b-radxa-zero2.dts b/arch/arm64/boot/dts/amlogic/meson-g12b-radxa-zero2.dts -index 890f5bfebb03..895b6ea67180 100644 ---- a/arch/arm64/boot/dts/amlogic/meson-g12b-radxa-zero2.dts -+++ b/arch/arm64/boot/dts/amlogic/meson-g12b-radxa-zero2.dts -@@ -33,6 +33,15 @@ memory@0 { - reg = <0x0 0x0 0x0 0x80000000>; - }; - -+ fan0: pwm-fan { -+ compatible = "pwm-fan"; -+ #cooling-cells = <2>; -+ cooling-min-state = <0>; -+ cooling-max-state = <4>; -+ cooling-levels = <0 64 128 192 255>; -+ pwms = <&pwm_AO_ab 0 40000 0>; -+ }; -+ - gpio-keys-polled { - compatible = "gpio-keys-polled"; - poll-interval = <100>; -@@ -286,6 +295,24 @@ &cpu103 { - clock-latency = <50000>; - }; - -+&cpu_thermal { -+ cooling-maps { -+ map0 { -+ trip = <&cpu_passive>; -+ cooling-device = <&fan0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; -+ }; -+ }; -+}; -+ -+&ddr_thermal { -+ cooling-maps { -+ map0 { -+ trip = <&ddr_passive>; -+ cooling-device = <&fan0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; -+ }; -+ }; -+}; -+ - &frddr_a { - status = "okay"; - }; --- -2.34.1 - diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0025-WIP-drm-meson-poweron-off-dw_hdmi-only-if-dw_hdmi-en.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0025-WIP-drm-meson-poweron-off-dw_hdmi-only-if-dw_hdmi-en.patch new file mode 100644 index 0000000000..5274640d5c --- /dev/null +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0025-WIP-drm-meson-poweron-off-dw_hdmi-only-if-dw_hdmi-en.patch @@ -0,0 +1,77 @@ +From b31529fd0ef42632387ce46def44a4e847d88ce1 Mon Sep 17 00:00:00 2001 +From: Luke Lu +Date: Wed, 13 Dec 2023 03:47:44 +0000 +Subject: [PATCH 25/37] WIP: drm/meson: poweron/off dw_hdmi only if dw_hdmi + enabled + +dw_hdmi_poweron() assumes that hdmi->curr_conn is valid. Calling +dw_hdmi_poweron() in meson_dw_hdmi_pm_resume() only with the bridge +enabled ensures this, avoiding invalid memory access when resuming +with HDMI port disconnected. + +dw_hdmi_poweroff() is called to maintain the internal state of dw_hdmi. +This is only needed when dw_hdmi_poweron() will be called later, i.e. +dw_hdmi is enabled. +--- + drivers/gpu/drm/bridge/synopsys/dw-hdmi.c | 6 ++++++ + drivers/gpu/drm/meson/meson_dw_hdmi.c | 7 +++++-- + include/drm/bridge/dw_hdmi.h | 1 + + 3 files changed, 12 insertions(+), 2 deletions(-) + +diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c +index 5eb864d2678e..15a90b43d607 100644 +--- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c ++++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c +@@ -3644,6 +3644,12 @@ void dw_hdmi_resume(struct dw_hdmi *hdmi) + } + EXPORT_SYMBOL_GPL(dw_hdmi_resume); + ++bool dw_hdmi_is_bridge_on(struct dw_hdmi *hdmi) ++{ ++ return !hdmi->disabled; ++} ++EXPORT_SYMBOL_GPL(dw_hdmi_is_bridge_on); ++ + MODULE_AUTHOR("Sascha Hauer "); + MODULE_AUTHOR("Andy Yan "); + MODULE_AUTHOR("Yakir Yang "); +diff --git a/drivers/gpu/drm/meson/meson_dw_hdmi.c b/drivers/gpu/drm/meson/meson_dw_hdmi.c +index 8460c93d74cb..c44ed72a1155 100644 +--- a/drivers/gpu/drm/meson/meson_dw_hdmi.c ++++ b/drivers/gpu/drm/meson/meson_dw_hdmi.c +@@ -809,7 +809,8 @@ static int __maybe_unused meson_dw_hdmi_pm_suspend(struct device *dev) + meson_dw_hdmi->data->top_write(meson_dw_hdmi, + HDMITX_TOP_SW_RESET, 0); + +- dw_hdmi_poweroff(meson_dw_hdmi->hdmi); ++ if (dw_hdmi_is_bridge_on(meson_dw_hdmi->hdmi)) ++ dw_hdmi_poweroff(meson_dw_hdmi->hdmi); + + return 0; + } +@@ -823,7 +824,9 @@ static int __maybe_unused meson_dw_hdmi_pm_resume(struct device *dev) + + meson_dw_hdmi_init(meson_dw_hdmi); + +- dw_hdmi_poweron(meson_dw_hdmi->hdmi); ++ if (dw_hdmi_is_bridge_on(meson_dw_hdmi->hdmi)) ++ dw_hdmi_poweron(meson_dw_hdmi->hdmi); ++ + dw_hdmi_resume(meson_dw_hdmi->hdmi); + + return 0; +diff --git a/include/drm/bridge/dw_hdmi.h b/include/drm/bridge/dw_hdmi.h +index 5eac26a51245..e57d61009645 100644 +--- a/include/drm/bridge/dw_hdmi.h ++++ b/include/drm/bridge/dw_hdmi.h +@@ -174,6 +174,7 @@ struct dw_hdmi *dw_hdmi_bind(struct platform_device *pdev, + void dw_hdmi_poweron(struct dw_hdmi *hdmi); + void dw_hdmi_poweroff(struct dw_hdmi *hdmi); + void dw_hdmi_resume(struct dw_hdmi *hdmi); ++bool dw_hdmi_is_bridge_on(struct dw_hdmi *hdmi); + + void dw_hdmi_setup_rx_sense(struct dw_hdmi *hdmi, bool hpd, bool rx_sense); + +-- +2.34.1 + diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0026-FROMLIST-v2-meson_plane-Add-error-handling.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0026-FROMLIST-v2-meson_plane-Add-error-handling.patch deleted file mode 100644 index d16f35b3bc..0000000000 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0026-FROMLIST-v2-meson_plane-Add-error-handling.patch +++ /dev/null @@ -1,53 +0,0 @@ -From a4c4025275bcce3c13ff2d2b46dfa49ff947804a Mon Sep 17 00:00:00 2001 -From: Haoran Liu -Date: Wed, 29 Nov 2023 03:34:05 -0800 -Subject: [PATCH 26/53] FROMLIST(v2): meson_plane: Add error handling - -This patch adds robust error handling to the meson_plane_create -function in drivers/gpu/drm/meson/meson_plane.c. The function -previously lacked proper handling for potential failure scenarios -of the drm_universal_plane_init call. - -Signed-off-by: Haoran Liu ---- - drivers/gpu/drm/meson/meson_plane.c | 17 +++++++++++------ - 1 file changed, 11 insertions(+), 6 deletions(-) - -diff --git a/drivers/gpu/drm/meson/meson_plane.c b/drivers/gpu/drm/meson/meson_plane.c -index 815dfe30492b..b43ac61201f3 100644 ---- a/drivers/gpu/drm/meson/meson_plane.c -+++ b/drivers/gpu/drm/meson/meson_plane.c -@@ -534,6 +534,7 @@ int meson_plane_create(struct meson_drm *priv) - struct meson_plane *meson_plane; - struct drm_plane *plane; - const uint64_t *format_modifiers = format_modifiers_default; -+ int ret; - - meson_plane = devm_kzalloc(priv->drm->dev, sizeof(*meson_plane), - GFP_KERNEL); -@@ -548,12 +549,16 @@ int meson_plane_create(struct meson_drm *priv) - else if (meson_vpu_is_compatible(priv, VPU_COMPATIBLE_G12A)) - format_modifiers = format_modifiers_afbc_g12a; - -- drm_universal_plane_init(priv->drm, plane, 0xFF, -- &meson_plane_funcs, -- supported_drm_formats, -- ARRAY_SIZE(supported_drm_formats), -- format_modifiers, -- DRM_PLANE_TYPE_PRIMARY, "meson_primary_plane"); -+ ret = drm_universal_plane_init(priv->drm, plane, 0xFF, -+ &meson_plane_funcs, -+ supported_drm_formats, -+ ARRAY_SIZE(supported_drm_formats), -+ format_modifiers, -+ DRM_PLANE_TYPE_PRIMARY, "meson_primary_plane"); -+ if (ret) { -+ devm_kfree(priv->drm->dev, meson_plane); -+ return ret; -+ } - - drm_plane_helper_add(plane, &meson_plane_helper_funcs); - --- -2.34.1 - diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0026-WIP-mmc-meson-gx-mmc-add-delay-during-poweroff.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0026-WIP-mmc-meson-gx-mmc-add-delay-during-poweroff.patch new file mode 100644 index 0000000000..274f1435a7 --- /dev/null +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0026-WIP-mmc-meson-gx-mmc-add-delay-during-poweroff.patch @@ -0,0 +1,24 @@ +From b2f06cfdd0e7d396d51aa733597f2a6631a4dc8c Mon Sep 17 00:00:00 2001 +From: Da Xue +Date: Sun, 22 Jun 2025 17:46:21 -0400 +Subject: [PATCH 26/37] WIP: mmc: meson-gx-mmc: add delay during poweroff + +--- + drivers/mmc/host/meson-gx-mmc.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/drivers/mmc/host/meson-gx-mmc.c b/drivers/mmc/host/meson-gx-mmc.c +index 694bb443d5f3..a39906079d29 100644 +--- a/drivers/mmc/host/meson-gx-mmc.c ++++ b/drivers/mmc/host/meson-gx-mmc.c +@@ -605,6 +605,7 @@ static void meson_mmc_set_ios(struct mmc_host *mmc, struct mmc_ios *ios) + case MMC_POWER_OFF: + mmc_regulator_set_ocr(mmc, mmc->supply.vmmc, 0); + mmc_regulator_disable_vqmmc(mmc); ++ msleep(50); + + break; + +-- +2.34.1 + diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0027-FROMLIST-v1-drm-meson-improve-encoder-probe-initiali.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0027-FROMLIST-v1-drm-meson-improve-encoder-probe-initiali.patch deleted file mode 100644 index ccf146549e..0000000000 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0027-FROMLIST-v1-drm-meson-improve-encoder-probe-initiali.patch +++ /dev/null @@ -1,262 +0,0 @@ -From 6fd27cae52fb7b81a1a00822cd1e378ebb3de32b Mon Sep 17 00:00:00 2001 -From: Martin Blumenstingl -Date: Sun, 18 Feb 2024 18:50:35 +0100 -Subject: [PATCH 27/53] FROMLIST(v1): drm/meson: improve encoder probe / - initialization error handling - -Rename meson_encoder_{cvbs,dsi,hdmi}_init() to -meson_encoder_{cvbs,dsi,hdmi}_probe() so it's clear that these functions -are used at probe time during driver initialization. Also switch all -error prints inside those functions to use dev_err_probe() for -consistency. - -This makes the code more straight forward to read and makes the error -prints within those functions consistent (by logging all -EPROBE_DEFER -with dev_dbg(), while actual errors are logged with dev_err() and get -the error value printed). - -Signed-off-by: Martin Blumenstingl -Reviewed-by: Neil Armstrong ---- - drivers/gpu/drm/meson/meson_drv.c | 6 +++--- - drivers/gpu/drm/meson/meson_encoder_cvbs.c | 24 ++++++++++------------ - drivers/gpu/drm/meson/meson_encoder_cvbs.h | 2 +- - drivers/gpu/drm/meson/meson_encoder_dsi.c | 23 +++++++++------------ - drivers/gpu/drm/meson/meson_encoder_dsi.h | 2 +- - drivers/gpu/drm/meson/meson_encoder_hdmi.c | 15 +++++++------- - drivers/gpu/drm/meson/meson_encoder_hdmi.h | 2 +- - 7 files changed, 35 insertions(+), 39 deletions(-) - -diff --git a/drivers/gpu/drm/meson/meson_drv.c b/drivers/gpu/drm/meson/meson_drv.c -index cb674966e9ac..17a5cca007e2 100644 ---- a/drivers/gpu/drm/meson/meson_drv.c -+++ b/drivers/gpu/drm/meson/meson_drv.c -@@ -312,7 +312,7 @@ static int meson_drv_bind_master(struct device *dev, bool has_components) - - /* Encoder Initialization */ - -- ret = meson_encoder_cvbs_init(priv); -+ ret = meson_encoder_cvbs_probe(priv); - if (ret) - goto exit_afbcd; - -@@ -326,12 +326,12 @@ static int meson_drv_bind_master(struct device *dev, bool has_components) - } - } - -- ret = meson_encoder_hdmi_init(priv); -+ ret = meson_encoder_hdmi_probe(priv); - if (ret) - goto exit_afbcd; - - if (meson_vpu_is_compatible(priv, VPU_COMPATIBLE_G12A)) { -- ret = meson_encoder_dsi_init(priv); -+ ret = meson_encoder_dsi_probe(priv); - if (ret) - goto exit_afbcd; - } -diff --git a/drivers/gpu/drm/meson/meson_encoder_cvbs.c b/drivers/gpu/drm/meson/meson_encoder_cvbs.c -index 3407450435e2..d1191de855d9 100644 ---- a/drivers/gpu/drm/meson/meson_encoder_cvbs.c -+++ b/drivers/gpu/drm/meson/meson_encoder_cvbs.c -@@ -219,7 +219,7 @@ static const struct drm_bridge_funcs meson_encoder_cvbs_bridge_funcs = { - .atomic_reset = drm_atomic_helper_bridge_reset, - }; - --int meson_encoder_cvbs_init(struct meson_drm *priv) -+int meson_encoder_cvbs_probe(struct meson_drm *priv) - { - struct drm_device *drm = priv->drm; - struct meson_encoder_cvbs *meson_encoder_cvbs; -@@ -240,10 +240,9 @@ int meson_encoder_cvbs_init(struct meson_drm *priv) - - meson_encoder_cvbs->next_bridge = of_drm_find_bridge(remote); - of_node_put(remote); -- if (!meson_encoder_cvbs->next_bridge) { -- dev_err(priv->dev, "Failed to find CVBS Connector bridge\n"); -- return -EPROBE_DEFER; -- } -+ if (!meson_encoder_cvbs->next_bridge) -+ return dev_err_probe(priv->dev, -EPROBE_DEFER, -+ "Failed to find CVBS Connector bridge\n"); - - /* CVBS Encoder Bridge */ - meson_encoder_cvbs->bridge.funcs = &meson_encoder_cvbs_bridge_funcs; -@@ -259,10 +258,9 @@ int meson_encoder_cvbs_init(struct meson_drm *priv) - /* Encoder */ - ret = drm_simple_encoder_init(priv->drm, &meson_encoder_cvbs->encoder, - DRM_MODE_ENCODER_TVDAC); -- if (ret) { -- dev_err(priv->dev, "Failed to init CVBS encoder: %d\n", ret); -- return ret; -- } -+ if (ret) -+ return dev_err_probe(priv->dev, ret, -+ "Failed to init CVBS encoder\n"); - - meson_encoder_cvbs->encoder.possible_crtcs = BIT(0); - -@@ -276,10 +274,10 @@ int meson_encoder_cvbs_init(struct meson_drm *priv) - - /* Initialize & attach Bridge Connector */ - connector = drm_bridge_connector_init(priv->drm, &meson_encoder_cvbs->encoder); -- if (IS_ERR(connector)) { -- dev_err(priv->dev, "Unable to create CVBS bridge connector\n"); -- return PTR_ERR(connector); -- } -+ if (IS_ERR(connector)) -+ return dev_err_probe(priv->dev, PTR_ERR(connector), -+ "Unable to create CVBS bridge connector\n"); -+ - drm_connector_attach_encoder(connector, &meson_encoder_cvbs->encoder); - - priv->encoders[MESON_ENC_CVBS] = meson_encoder_cvbs; -diff --git a/drivers/gpu/drm/meson/meson_encoder_cvbs.h b/drivers/gpu/drm/meson/meson_encoder_cvbs.h -index 09710fec3c66..7b7bc85c03f7 100644 ---- a/drivers/gpu/drm/meson/meson_encoder_cvbs.h -+++ b/drivers/gpu/drm/meson/meson_encoder_cvbs.h -@@ -24,7 +24,7 @@ struct meson_cvbs_mode { - /* Modes supported by the CVBS output */ - extern struct meson_cvbs_mode meson_cvbs_modes[MESON_CVBS_MODES_COUNT]; - --int meson_encoder_cvbs_init(struct meson_drm *priv); -+int meson_encoder_cvbs_probe(struct meson_drm *priv); - void meson_encoder_cvbs_remove(struct meson_drm *priv); - - #endif /* __MESON_VENC_CVBS_H */ -diff --git a/drivers/gpu/drm/meson/meson_encoder_dsi.c b/drivers/gpu/drm/meson/meson_encoder_dsi.c -index 311b91630fbe..7816902f5907 100644 ---- a/drivers/gpu/drm/meson/meson_encoder_dsi.c -+++ b/drivers/gpu/drm/meson/meson_encoder_dsi.c -@@ -100,7 +100,7 @@ static const struct drm_bridge_funcs meson_encoder_dsi_bridge_funcs = { - .atomic_reset = drm_atomic_helper_bridge_reset, - }; - --int meson_encoder_dsi_init(struct meson_drm *priv) -+int meson_encoder_dsi_probe(struct meson_drm *priv) - { - struct meson_encoder_dsi *meson_encoder_dsi; - struct device_node *remote; -@@ -118,10 +118,9 @@ int meson_encoder_dsi_init(struct meson_drm *priv) - } - - meson_encoder_dsi->next_bridge = of_drm_find_bridge(remote); -- if (!meson_encoder_dsi->next_bridge) { -- dev_dbg(priv->dev, "Failed to find DSI transceiver bridge\n"); -- return -EPROBE_DEFER; -- } -+ if (!meson_encoder_dsi->next_bridge) -+ return dev_err_probe(priv->dev, -EPROBE_DEFER, -+ "Failed to find DSI transceiver bridge\n"); - - /* DSI Encoder Bridge */ - meson_encoder_dsi->bridge.funcs = &meson_encoder_dsi_bridge_funcs; -@@ -135,19 +134,17 @@ int meson_encoder_dsi_init(struct meson_drm *priv) - /* Encoder */ - ret = drm_simple_encoder_init(priv->drm, &meson_encoder_dsi->encoder, - DRM_MODE_ENCODER_DSI); -- if (ret) { -- dev_err(priv->dev, "Failed to init DSI encoder: %d\n", ret); -- return ret; -- } -+ if (ret) -+ return dev_err_probe(priv->dev, ret, -+ "Failed to init DSI encoder\n"); - - meson_encoder_dsi->encoder.possible_crtcs = BIT(0); - - /* Attach DSI Encoder Bridge to Encoder */ - ret = drm_bridge_attach(&meson_encoder_dsi->encoder, &meson_encoder_dsi->bridge, NULL, 0); -- if (ret) { -- dev_err(priv->dev, "Failed to attach bridge: %d\n", ret); -- return ret; -- } -+ if (ret) -+ return dev_err_probe(priv->dev, ret, -+ "Failed to attach bridge\n"); - - /* - * We should have now in place: -diff --git a/drivers/gpu/drm/meson/meson_encoder_dsi.h b/drivers/gpu/drm/meson/meson_encoder_dsi.h -index 9277d7015193..85d5b61805f2 100644 ---- a/drivers/gpu/drm/meson/meson_encoder_dsi.h -+++ b/drivers/gpu/drm/meson/meson_encoder_dsi.h -@@ -7,7 +7,7 @@ - #ifndef __MESON_ENCODER_DSI_H - #define __MESON_ENCODER_DSI_H - --int meson_encoder_dsi_init(struct meson_drm *priv); -+int meson_encoder_dsi_probe(struct meson_drm *priv); - void meson_encoder_dsi_remove(struct meson_drm *priv); - - #endif /* __MESON_ENCODER_DSI_H */ -diff --git a/drivers/gpu/drm/meson/meson_encoder_hdmi.c b/drivers/gpu/drm/meson/meson_encoder_hdmi.c -index c4686568c9ca..22e07847a9a7 100644 ---- a/drivers/gpu/drm/meson/meson_encoder_hdmi.c -+++ b/drivers/gpu/drm/meson/meson_encoder_hdmi.c -@@ -354,7 +354,7 @@ static const struct drm_bridge_funcs meson_encoder_hdmi_bridge_funcs = { - .atomic_reset = drm_atomic_helper_bridge_reset, - }; - --int meson_encoder_hdmi_init(struct meson_drm *priv) -+int meson_encoder_hdmi_probe(struct meson_drm *priv) - { - struct meson_encoder_hdmi *meson_encoder_hdmi; - struct platform_device *pdev; -@@ -374,8 +374,8 @@ int meson_encoder_hdmi_init(struct meson_drm *priv) - - meson_encoder_hdmi->next_bridge = of_drm_find_bridge(remote); - if (!meson_encoder_hdmi->next_bridge) { -- dev_err(priv->dev, "Failed to find HDMI transceiver bridge\n"); -- ret = -EPROBE_DEFER; -+ ret = dev_err_probe(priv->dev, -EPROBE_DEFER, -+ "Failed to find HDMI transceiver bridge\n"); - goto err_put_node; - } - -@@ -393,7 +393,7 @@ int meson_encoder_hdmi_init(struct meson_drm *priv) - ret = drm_simple_encoder_init(priv->drm, &meson_encoder_hdmi->encoder, - DRM_MODE_ENCODER_TMDS); - if (ret) { -- dev_err(priv->dev, "Failed to init HDMI encoder: %d\n", ret); -+ dev_err_probe(priv->dev, ret, "Failed to init HDMI encoder\n"); - goto err_put_node; - } - -@@ -403,7 +403,7 @@ int meson_encoder_hdmi_init(struct meson_drm *priv) - ret = drm_bridge_attach(&meson_encoder_hdmi->encoder, &meson_encoder_hdmi->bridge, NULL, - DRM_BRIDGE_ATTACH_NO_CONNECTOR); - if (ret) { -- dev_err(priv->dev, "Failed to attach bridge: %d\n", ret); -+ dev_err_probe(priv->dev, ret, "Failed to attach bridge\n"); - goto err_put_node; - } - -@@ -411,8 +411,9 @@ int meson_encoder_hdmi_init(struct meson_drm *priv) - meson_encoder_hdmi->connector = drm_bridge_connector_init(priv->drm, - &meson_encoder_hdmi->encoder); - if (IS_ERR(meson_encoder_hdmi->connector)) { -- dev_err(priv->dev, "Unable to create HDMI bridge connector\n"); -- ret = PTR_ERR(meson_encoder_hdmi->connector); -+ ret = dev_err_probe(priv->dev, -+ PTR_ERR(meson_encoder_hdmi->connector), -+ "Unable to create HDMI bridge connector\n"); - goto err_put_node; - } - drm_connector_attach_encoder(meson_encoder_hdmi->connector, -diff --git a/drivers/gpu/drm/meson/meson_encoder_hdmi.h b/drivers/gpu/drm/meson/meson_encoder_hdmi.h -index a6cd38eb5f71..fd5485875db8 100644 ---- a/drivers/gpu/drm/meson/meson_encoder_hdmi.h -+++ b/drivers/gpu/drm/meson/meson_encoder_hdmi.h -@@ -7,7 +7,7 @@ - #ifndef __MESON_ENCODER_HDMI_H - #define __MESON_ENCODER_HDMI_H - --int meson_encoder_hdmi_init(struct meson_drm *priv); -+int meson_encoder_hdmi_probe(struct meson_drm *priv); - void meson_encoder_hdmi_remove(struct meson_drm *priv); - - #endif /* __MESON_ENCODER_HDMI_H */ --- -2.34.1 - diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0043-WIP-arm64-dts-meson-set-p212-p23x-q20x-SDIO-to-100MH.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0027-WIP-arm64-dts-meson-set-p212-p23x-q20x-SDIO-to-100MH.patch similarity index 93% rename from projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0043-WIP-arm64-dts-meson-set-p212-p23x-q20x-SDIO-to-100MH.patch rename to projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0027-WIP-arm64-dts-meson-set-p212-p23x-q20x-SDIO-to-100MH.patch index db4952d89a..fce998a303 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0043-WIP-arm64-dts-meson-set-p212-p23x-q20x-SDIO-to-100MH.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0027-WIP-arm64-dts-meson-set-p212-p23x-q20x-SDIO-to-100MH.patch @@ -1,7 +1,7 @@ -From 7354c155f1956487683a192e629cda68bcd38bd8 Mon Sep 17 00:00:00 2001 +From 59614ff80eb272009bc6bdfcb47e8df6ec93a2a7 Mon Sep 17 00:00:00 2001 From: Christian Hewitt Date: Tue, 18 Jan 2022 15:09:12 +0000 -Subject: [PATCH 43/53] WIP: arm64: dts: meson: set p212/p23x/q20x SDIO to +Subject: [PATCH 27/37] WIP: arm64: dts: meson: set p212/p23x/q20x SDIO to 100MHz Amlogic datasheets describe 50MHz max-frequency for SDIO on GXL/GXM but @@ -79,10 +79,10 @@ Signed-off-by: Christian Hewitt 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/arch/arm64/boot/dts/amlogic/meson-gx-p23x-q20x.dtsi b/arch/arm64/boot/dts/amlogic/meson-gx-p23x-q20x.dtsi -index 08d6b69ba469..9ac5079019fa 100644 +index 6da1316d97c6..f6ef4fc4a85c 100644 --- a/arch/arm64/boot/dts/amlogic/meson-gx-p23x-q20x.dtsi +++ b/arch/arm64/boot/dts/amlogic/meson-gx-p23x-q20x.dtsi -@@ -256,7 +256,7 @@ &sd_emmc_a { +@@ -258,7 +258,7 @@ &sd_emmc_a { bus-width = <4>; cap-sd-highspeed; @@ -92,10 +92,10 @@ index 08d6b69ba469..9ac5079019fa 100644 non-removable; disable-wp; diff --git a/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-p212.dtsi b/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-p212.dtsi -index 7e7dc87ede2d..1c64b2d64ae8 100644 +index 05a0d4de3ad7..ccaadb497880 100644 --- a/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-p212.dtsi +++ b/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-p212.dtsi -@@ -121,7 +121,7 @@ &sd_emmc_a { +@@ -119,7 +119,7 @@ &sd_emmc_a { bus-width = <4>; cap-sd-highspeed; diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0028-FROMLIST-v1-drm-meson-vclk-fix-calculation-of-59.94-.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0028-FROMLIST-v1-drm-meson-vclk-fix-calculation-of-59.94-.patch deleted file mode 100644 index fe5c85f5c5..0000000000 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0028-FROMLIST-v1-drm-meson-vclk-fix-calculation-of-59.94-.patch +++ /dev/null @@ -1,57 +0,0 @@ -From 9fa5e4f1d94a0ca01deb5bbe03299e415f0df8c3 Mon Sep 17 00:00:00 2001 -From: Christian Hewitt -Date: Tue, 9 Jan 2024 16:20:14 +0000 -Subject: [PATCH 28/53] FROMLIST(v1): drm/meson: vclk: fix calculation of 59.94 - fractional rates - -Playing 4K media with 59.94 fractional rate (typically VP9) causes the screen to lose -sync with the following error reported in the system log: - -[ 89.610280] Fatal Error, invalid HDMI vclk freq 593406 - -Modetest shows the following: - -3840x2160 59.94 3840 4016 4104 4400 2160 2168 2178 2250 593407 flags: phsync, pvsync; type: driver -drm calculated value -------------------------------------^ - -Change the fractional rate calculation to stop DIV_ROUND_CLOSEST rounding down which -results in vclk freq failing to match correctly. - -Fixes: e5fab2ec9ca4 ("drm/meson: vclk: add support for YUV420 setup") -Signed-off-by: Christian Hewitt ---- - drivers/gpu/drm/meson/meson_vclk.c | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/drivers/gpu/drm/meson/meson_vclk.c b/drivers/gpu/drm/meson/meson_vclk.c -index 2a82119eb58e..2a942dc6a6dc 100644 ---- a/drivers/gpu/drm/meson/meson_vclk.c -+++ b/drivers/gpu/drm/meson/meson_vclk.c -@@ -790,13 +790,13 @@ meson_vclk_vic_supported_freq(struct meson_drm *priv, unsigned int phy_freq, - FREQ_1000_1001(params[i].pixel_freq)); - DRM_DEBUG_DRIVER("i = %d phy_freq = %d alt = %d\n", - i, params[i].phy_freq, -- FREQ_1000_1001(params[i].phy_freq/10)*10); -+ FREQ_1000_1001(params[i].phy_freq/1000)*1000); - /* Match strict frequency */ - if (phy_freq == params[i].phy_freq && - vclk_freq == params[i].vclk_freq) - return MODE_OK; - /* Match 1000/1001 variant */ -- if (phy_freq == (FREQ_1000_1001(params[i].phy_freq/10)*10) && -+ if (phy_freq == (FREQ_1000_1001(params[i].phy_freq/1000)*1000) && - vclk_freq == FREQ_1000_1001(params[i].vclk_freq)) - return MODE_OK; - } -@@ -1070,7 +1070,7 @@ void meson_vclk_setup(struct meson_drm *priv, unsigned int target, - - for (freq = 0 ; params[freq].pixel_freq ; ++freq) { - if ((phy_freq == params[freq].phy_freq || -- phy_freq == FREQ_1000_1001(params[freq].phy_freq/10)*10) && -+ phy_freq == FREQ_1000_1001(params[freq].phy_freq/1000)*1000) && - (vclk_freq == params[freq].vclk_freq || - vclk_freq == FREQ_1000_1001(params[freq].vclk_freq))) { - if (vclk_freq != params[freq].vclk_freq) --- -2.34.1 - diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0045-WIP-arm64-dts-meson-remove-SDIO-node-from-Khadas-VIM.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0028-WIP-arm64-dts-meson-remove-SDIO-node-from-Khadas-VIM.patch similarity index 81% rename from projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0045-WIP-arm64-dts-meson-remove-SDIO-node-from-Khadas-VIM.patch rename to projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0028-WIP-arm64-dts-meson-remove-SDIO-node-from-Khadas-VIM.patch index 232c2531d7..7a63388ffc 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0045-WIP-arm64-dts-meson-remove-SDIO-node-from-Khadas-VIM.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0028-WIP-arm64-dts-meson-remove-SDIO-node-from-Khadas-VIM.patch @@ -1,7 +1,7 @@ -From 5661824fa83b4eeb182286aa8ad3b97d1025852c Mon Sep 17 00:00:00 2001 +From 087bb82aefa86c31f4ea92774452392763a4c83b Mon Sep 17 00:00:00 2001 From: Christian Hewitt Date: Tue, 18 Jan 2022 15:18:32 +0000 -Subject: [PATCH 45/53] WIP: arm64: dts: meson: remove SDIO node from Khadas +Subject: [PATCH 28/37] WIP: arm64: dts: meson: remove SDIO node from Khadas VIM1 Now that SDIO 100MHz max-frequency is inherited from the p212 dtsi we @@ -13,10 +13,10 @@ Signed-off-by: Christian Hewitt 1 file changed, 4 deletions(-) diff --git a/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-khadas-vim.dts b/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-khadas-vim.dts -index dacbca73279c..aeda42d5d606 100644 +index e137ebd48c5e..563e6e909363 100644 --- a/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-khadas-vim.dts +++ b/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-khadas-vim.dts -@@ -217,10 +217,6 @@ &pwm_ef { +@@ -219,10 +219,6 @@ &pwm_ef { pinctrl-0 = <&pwm_e_pins>, <&pwm_f_clk_pins>; }; diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0029-FROMLIST-v1-ASoC-meson-axg-tdm-interface-fix-mclk-se.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0029-FROMLIST-v1-ASoC-meson-axg-tdm-interface-fix-mclk-se.patch deleted file mode 100644 index 5d469047b4..0000000000 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0029-FROMLIST-v1-ASoC-meson-axg-tdm-interface-fix-mclk-se.patch +++ /dev/null @@ -1,43 +0,0 @@ -From 5cddc22049efb7e7aa5382ce789379c943170187 Mon Sep 17 00:00:00 2001 -From: Jerome Brunet -Date: Fri, 23 Feb 2024 18:51:07 +0100 -Subject: [PATCH 29/53] FROMLIST(v1): ASoC: meson: axg-tdm-interface: fix mclk - setup without mclk-fs - -By default, when mclk-fs is not provided, the tdm-interface driver -requests an MCLK that is 4x the bit clock, SCLK. - -However there is no justification for this: - -* If the codec needs MCLK for its operation, mclk-fs is expected to be set - according to the codec requirements. -* If the codec does not need MCLK the minimum is 2 * SCLK, because this is - minimum the divider between SCLK and MCLK can do. - -Multiplying by 4 may cause problems because the PLL limit may be reached -sooner than it should, so use 2x instead. - -Fixes: d60e4f1e4be5 ("ASoC: meson: add tdm interface driver") -Signed-off-by: Jerome Brunet ---- - sound/soc/meson/axg-tdm-interface.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/sound/soc/meson/axg-tdm-interface.c b/sound/soc/meson/axg-tdm-interface.c -index 1c3d433cefd2..cd5168e826df 100644 ---- a/sound/soc/meson/axg-tdm-interface.c -+++ b/sound/soc/meson/axg-tdm-interface.c -@@ -264,8 +264,8 @@ static int axg_tdm_iface_set_sclk(struct snd_soc_dai *dai, - srate = iface->slots * iface->slot_width * params_rate(params); - - if (!iface->mclk_rate) { -- /* If no specific mclk is requested, default to bit clock * 4 */ -- clk_set_rate(iface->mclk, 4 * srate); -+ /* If no specific mclk is requested, default to bit clock * 2 */ -+ clk_set_rate(iface->mclk, 2 * srate); - } else { - /* Check if we can actually get the bit clock from mclk */ - if (iface->mclk_rate % srate) { --- -2.34.1 - diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0044-WIP-arm64-dts-meson-add-UHS-SDIO-capabilities-to-p21.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0029-WIP-arm64-dts-meson-add-UHS-SDIO-capabilities-to-p21.patch similarity index 81% rename from projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0044-WIP-arm64-dts-meson-add-UHS-SDIO-capabilities-to-p21.patch rename to projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0029-WIP-arm64-dts-meson-add-UHS-SDIO-capabilities-to-p21.patch index 0c69eff32c..8b3a739303 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0044-WIP-arm64-dts-meson-add-UHS-SDIO-capabilities-to-p21.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0029-WIP-arm64-dts-meson-add-UHS-SDIO-capabilities-to-p21.patch @@ -1,7 +1,7 @@ -From fb6de4d2453abb6e9ff8f0b653eb12e94156958c Mon Sep 17 00:00:00 2001 +From d05fd0dbca2f4e7233ca5c1fb9fc8ca5575d4dbc Mon Sep 17 00:00:00 2001 From: Christian Hewitt Date: Wed, 19 Jan 2022 06:45:06 +0000 -Subject: [PATCH 44/53] WIP: arm64: dts: meson: add UHS SDIO capabilities to +Subject: [PATCH 29/37] WIP: arm64: dts: meson: add UHS SDIO capabilities to p212/p23x/q20x Add UHS capabilities to the SDIO node to enable 100MHz speeds. @@ -13,10 +13,10 @@ Signed-off-by: Christian Hewitt 2 files changed, 8 insertions(+) diff --git a/arch/arm64/boot/dts/amlogic/meson-gx-p23x-q20x.dtsi b/arch/arm64/boot/dts/amlogic/meson-gx-p23x-q20x.dtsi -index 9ac5079019fa..e6f88ec58869 100644 +index f6ef4fc4a85c..b3385f71bb48 100644 --- a/arch/arm64/boot/dts/amlogic/meson-gx-p23x-q20x.dtsi +++ b/arch/arm64/boot/dts/amlogic/meson-gx-p23x-q20x.dtsi -@@ -256,6 +256,10 @@ &sd_emmc_a { +@@ -258,6 +258,10 @@ &sd_emmc_a { bus-width = <4>; cap-sd-highspeed; @@ -28,10 +28,10 @@ index 9ac5079019fa..e6f88ec58869 100644 non-removable; diff --git a/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-p212.dtsi b/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-p212.dtsi -index 1c64b2d64ae8..b83b38b2d9e1 100644 +index ccaadb497880..59539eca8f42 100644 --- a/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-p212.dtsi +++ b/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-p212.dtsi -@@ -121,6 +121,10 @@ &sd_emmc_a { +@@ -119,6 +119,10 @@ &sd_emmc_a { bus-width = <4>; cap-sd-highspeed; diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0030-FROMLIST-v1-ASoC-meson-axg-tdm-interface-add-frame-r.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0030-FROMLIST-v1-ASoC-meson-axg-tdm-interface-add-frame-r.patch deleted file mode 100644 index b9532ab4de..0000000000 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0030-FROMLIST-v1-ASoC-meson-axg-tdm-interface-add-frame-r.patch +++ /dev/null @@ -1,80 +0,0 @@ -From 69a95e8b2be63812ca0b8e3b59786a21f074cfe9 Mon Sep 17 00:00:00 2001 -From: Jerome Brunet -Date: Fri, 23 Feb 2024 18:51:08 +0100 -Subject: [PATCH 30/53] FROMLIST(v1): ASoC: meson: axg-tdm-interface: add frame - rate constraint - -According to Amlogic datasheets for the SoCs supported by this driver, the -maximum bit clock rate is 100MHz. - -The tdm interface allows the rates listed by the DAI driver, regardless of -the number slots or their width. However, these will impact the bit clock -rate. - -Hitting the 100MHz limit is very unlikely for most use cases but it is -possible. - -For example with 32 slots / 32 bits wide, the maximum rate is no longer -384kHz but ~96kHz. - -Add the constraint accordingly if the component is not already active. -If it is active, the rate is already constrained by the first stream rate. - -Fixes: d60e4f1e4be5 ("ASoC: meson: add tdm interface driver") -Signed-off-by: Jerome Brunet ---- - sound/soc/meson/axg-tdm-interface.c | 25 ++++++++++++++++++------- - 1 file changed, 18 insertions(+), 7 deletions(-) - -diff --git a/sound/soc/meson/axg-tdm-interface.c b/sound/soc/meson/axg-tdm-interface.c -index cd5168e826df..2cedbce73837 100644 ---- a/sound/soc/meson/axg-tdm-interface.c -+++ b/sound/soc/meson/axg-tdm-interface.c -@@ -12,6 +12,9 @@ - - #include "axg-tdm.h" - -+/* Maximum bit clock frequency according the datasheets */ -+#define MAX_SCLK 100000000 /* Hz */ -+ - enum { - TDM_IFACE_PAD, - TDM_IFACE_LOOPBACK, -@@ -153,19 +156,27 @@ static int axg_tdm_iface_startup(struct snd_pcm_substream *substream, - return -EINVAL; - } - -- /* Apply component wide rate symmetry */ - if (snd_soc_component_active(dai->component)) { -+ /* Apply component wide rate symmetry */ - ret = snd_pcm_hw_constraint_single(substream->runtime, - SNDRV_PCM_HW_PARAM_RATE, - iface->rate); -- if (ret < 0) { -- dev_err(dai->dev, -- "can't set iface rate constraint\n"); -- return ret; -- } -+ -+ } else { -+ /* Limit rate according to the slot number and width */ -+ unsigned int max_rate = -+ MAX_SCLK / (iface->slots * iface->slot_width); -+ ret = snd_pcm_hw_constraint_minmax(substream->runtime, -+ SNDRV_PCM_HW_PARAM_RATE, -+ 0, max_rate); - } - -- return 0; -+ if (ret < 0) -+ dev_err(dai->dev, "can't set iface rate constraint\n"); -+ else -+ ret = 0; -+ -+ return ret; - } - - static int axg_tdm_iface_set_stream(struct snd_pcm_substream *substream, --- -2.34.1 - diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0030-WIP-dt-bindings-arm-amlogic-add-support-for-Tanix-TX.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0030-WIP-dt-bindings-arm-amlogic-add-support-for-Tanix-TX.patch new file mode 100644 index 0000000000..3e77329c8c --- /dev/null +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0030-WIP-dt-bindings-arm-amlogic-add-support-for-Tanix-TX.patch @@ -0,0 +1,28 @@ +From 595ae18972bfb55b20eecf724cf73d3c3b133910 Mon Sep 17 00:00:00 2001 +From: Christian Hewitt +Date: Thu, 9 Feb 2023 09:59:58 +0000 +Subject: [PATCH 30/37] WIP: dt-bindings: arm: amlogic: add support for Tanix + TX9 Pro + +The Oranth Tanix TX9 Pro is an Android STB using the Amlogic S912 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 05edf22e6c30..13dd7abbdcf8 100644 +--- a/Documentation/devicetree/bindings/arm/amlogic.yaml ++++ b/Documentation/devicetree/bindings/arm/amlogic.yaml +@@ -134,6 +134,7 @@ properties: + - libretech,aml-s912-pc + - minix,neo-u9h + - nexbox,a1 ++ - oranth,tx9-pro + - tronsmart,vega-s96 + - videostrong,gxm-kiii-pro + - wetek,core2 +-- +2.34.1 + diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0031-FROMLIST-v1-ASoC-meson-axg-tdm-interface-update-erro.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0031-FROMLIST-v1-ASoC-meson-axg-tdm-interface-update-erro.patch deleted file mode 100644 index 2311277a38..0000000000 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0031-FROMLIST-v1-ASoC-meson-axg-tdm-interface-update-erro.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 9b3d51967fcfe47d82f280e8030aa3dc5fcc5c02 Mon Sep 17 00:00:00 2001 -From: Jerome Brunet -Date: Fri, 23 Feb 2024 18:51:09 +0100 -Subject: [PATCH 31/53] FROMLIST(v1): ASoC: meson: axg-tdm-interface: update - error format error traces - -ASoC stopped using CBS_CFS and CBM_CFM a few years ago but the traces in -the amlogic tdm interface driver did not follow. - -Update this to match the new format names - -Signed-off-by: Jerome Brunet ---- - sound/soc/meson/axg-tdm-interface.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/sound/soc/meson/axg-tdm-interface.c b/sound/soc/meson/axg-tdm-interface.c -index 2cedbce73837..bf708717635b 100644 ---- a/sound/soc/meson/axg-tdm-interface.c -+++ b/sound/soc/meson/axg-tdm-interface.c -@@ -133,7 +133,7 @@ static int axg_tdm_iface_set_fmt(struct snd_soc_dai *dai, unsigned int fmt) - - case SND_SOC_DAIFMT_BP_FC: - case SND_SOC_DAIFMT_BC_FP: -- dev_err(dai->dev, "only CBS_CFS and CBM_CFM are supported\n"); -+ dev_err(dai->dev, "only BP_FP and BC_FC are supported\n"); - fallthrough; - default: - return -EINVAL; --- -2.34.1 - diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0031-WIP-arm64-dts-meson-add-initial-device-tree-for-Tani.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0031-WIP-arm64-dts-meson-add-initial-device-tree-for-Tani.patch new file mode 100644 index 0000000000..aee1436e7d --- /dev/null +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0031-WIP-arm64-dts-meson-add-initial-device-tree-for-Tani.patch @@ -0,0 +1,139 @@ +From 08187f15dc8ca4b29e2b847b3c5ed0026191480e Mon Sep 17 00:00:00 2001 +From: Christian Hewitt +Date: Thu, 9 Feb 2023 10:01:14 +0000 +Subject: [PATCH 31/37] WIP: arm64: dts: meson: add initial device-tree for + Tanix TX9 Pro + +Oranth Tanix TX9 Pro is based on the Amlogic Q200 reference design with +an S912 chip and the following specs: + +- 3GB DDR3 RAM +- 32GB eMMC +- 10/100/1000 Base-T Ethernet +- AP6356 Wireless (802.11 b/g/n/ac, BT 5.0) +- HDMI 2.0a video +- VFD for clock/status +- 2x USB 2.0 ports +- IR receiver +- 1x Power LED (white) +- 1x Update/Reset button (underside) +- 1x micro SD card slot + +Signed-off-by: Christian Hewitt +--- + arch/arm64/boot/dts/amlogic/Makefile | 1 + + .../boot/dts/amlogic/meson-gxm-tx9-pro.dts | 90 +++++++++++++++++++ + 2 files changed, 91 insertions(+) + create mode 100644 arch/arm64/boot/dts/amlogic/meson-gxm-tx9-pro.dts + +diff --git a/arch/arm64/boot/dts/amlogic/Makefile b/arch/arm64/boot/dts/amlogic/Makefile +index b593736ff60b..9e57cc56bfa7 100644 +--- a/arch/arm64/boot/dts/amlogic/Makefile ++++ b/arch/arm64/boot/dts/amlogic/Makefile +@@ -80,6 +80,7 @@ dtb-$(CONFIG_ARCH_MESON) += meson-gxm-q200.dtb + dtb-$(CONFIG_ARCH_MESON) += meson-gxm-q201.dtb + 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-tx9-pro.dtb + dtb-$(CONFIG_ARCH_MESON) += meson-gxm-vega-s96.dtb + dtb-$(CONFIG_ARCH_MESON) += meson-gxm-wetek-core2.dtb + dtb-$(CONFIG_ARCH_MESON) += meson-s4-s805x2-aq222.dtb +diff --git a/arch/arm64/boot/dts/amlogic/meson-gxm-tx9-pro.dts b/arch/arm64/boot/dts/amlogic/meson-gxm-tx9-pro.dts +new file mode 100644 +index 000000000000..9a62176cfe5a +--- /dev/null ++++ b/arch/arm64/boot/dts/amlogic/meson-gxm-tx9-pro.dts +@@ -0,0 +1,90 @@ ++// SPDX-License-Identifier: (GPL-2.0+ OR MIT) ++/* ++ * Copyright (c) 2016 Endless Computers, Inc. ++ * Author: Carlo Caione ++ */ ++ ++/dts-v1/; ++ ++#include "meson-gxm.dtsi" ++#include "meson-gx-p23x-q20x.dtsi" ++#include ++ ++/ { ++ compatible = "oranth,tx9-pro", "amlogic,s912", "amlogic,meson-gxm"; ++ model = "Tanix TX9 Pro"; ++ ++ adc-keys { ++ compatible = "adc-keys"; ++ io-channels = <&saradc 0>; ++ io-channel-names = "buttons"; ++ keyup-threshold-microvolt = <1710000>; ++ ++ button-function { ++ label = "Update"; ++ linux,code = ; ++ press-threshold-microvolt = <10000>; ++ }; ++ }; ++ ++ gpio-keys-polled { ++ compatible = "gpio-keys-polled"; ++ poll-interval = <100>; ++ ++ button { ++ label = "power"; ++ linux,code = ; ++ gpios = <&gpio_ao GPIOAO_2 GPIO_ACTIVE_LOW>; ++ }; ++ }; ++}; ++ ++ðmac { ++ pinctrl-0 = <ð_pins>; ++ pinctrl-names = "default"; ++ phy-handle = <&external_phy>; ++ amlogic,tx-delay-ns = <2>; ++ phy-mode = "rgmii"; ++}; ++ ++&external_mdio { ++ external_phy: ethernet-phy@0 { ++ /* Realtek RTL8211F (0x001cc916) */ ++ reg = <0>; ++ max-speed = <1000>; ++ ++ 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 = <25 IRQ_TYPE_LEVEL_LOW>; ++ }; ++}; ++ ++&ir { ++ linux,rc-map-name = "rc-tanix-tx3mini"; ++}; ++ ++&sd_emmc_a { ++ brcmf: wifi@1 { ++ reg = <1>; ++ compatible = "brcm,bcm4329-fmac"; ++ }; ++}; ++ ++&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"; ++ }; ++}; +-- +2.34.1 + diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0032-FROMLIST-v1-ASoC-meson-axg-spdifin-use-max-width-for.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0032-FROMLIST-v1-ASoC-meson-axg-spdifin-use-max-width-for.patch deleted file mode 100644 index 9812538b92..0000000000 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0032-FROMLIST-v1-ASoC-meson-axg-spdifin-use-max-width-for.patch +++ /dev/null @@ -1,47 +0,0 @@ -From b399257ec04a93856fd0f1ebf5b6060dddf6aaed Mon Sep 17 00:00:00 2001 -From: Jerome Brunet -Date: Fri, 23 Feb 2024 18:51:10 +0100 -Subject: [PATCH 32/53] FROMLIST(v1): ASoC: meson: axg-spdifin: use max width - for rate detection - -Use maximum width between 2 edges to setup spdifin thresholds -and detect the input sample rate. This comes from Amlogic SDK and -seems to be marginally more reliable than minimum width. - -This is done to align with a future eARC support. -No issue was reported with minimum width so far, this is considered -to be an update so no Fixes tag is set. - -Signed-off-by: Jerome Brunet ---- - sound/soc/meson/axg-spdifin.c | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/sound/soc/meson/axg-spdifin.c b/sound/soc/meson/axg-spdifin.c -index bc2f2849ecfb..e721f579321e 100644 ---- a/sound/soc/meson/axg-spdifin.c -+++ b/sound/soc/meson/axg-spdifin.c -@@ -179,9 +179,9 @@ static int axg_spdifin_sample_mode_config(struct snd_soc_dai *dai, - SPDIFIN_CTRL1_BASE_TIMER, - FIELD_PREP(SPDIFIN_CTRL1_BASE_TIMER, rate / 1000)); - -- /* Threshold based on the minimum width between two edges */ -+ /* Threshold based on the maximum width between two edges */ - regmap_update_bits(priv->map, SPDIFIN_CTRL0, -- SPDIFIN_CTRL0_WIDTH_SEL, SPDIFIN_CTRL0_WIDTH_SEL); -+ SPDIFIN_CTRL0_WIDTH_SEL, 0); - - /* Calculate the last timer which has no threshold */ - t_next = axg_spdifin_mode_timer(priv, i, rate); -@@ -199,7 +199,7 @@ static int axg_spdifin_sample_mode_config(struct snd_soc_dai *dai, - axg_spdifin_write_timer(priv->map, i, t); - - /* Set the threshold value */ -- axg_spdifin_write_threshold(priv->map, i, t + t_next); -+ axg_spdifin_write_threshold(priv->map, i, 3 * (t + t_next)); - - /* Save the current timer for the next threshold calculation */ - t_next = t; --- -2.34.1 - diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0013-FROMLIST-v5-dt-bindings-vendor-prefixes-Add-Titan-Mi.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0032-WIP-dt-bindings-vendor-prefixes-add-Titan-Micro-Elec.patch similarity index 52% rename from projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0013-FROMLIST-v5-dt-bindings-vendor-prefixes-Add-Titan-Mi.patch rename to projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0032-WIP-dt-bindings-vendor-prefixes-add-Titan-Micro-Elec.patch index 8b1f89b610..ea510b4ac6 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0013-FROMLIST-v5-dt-bindings-vendor-prefixes-Add-Titan-Mi.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0032-WIP-dt-bindings-vendor-prefixes-add-Titan-Micro-Elec.patch @@ -1,26 +1,21 @@ -From 58d3f1f106febd55da1b5e56016fb8e33fde09bd Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Andreas=20F=C3=A4rber?= +From bb0a8ba6c365a8dd979f2e3d040f565a1d1f36b0 Mon Sep 17 00:00:00 2001 +From: Christian Hewitt Date: Sun, 20 Feb 2022 08:23:12 +0000 -Subject: [PATCH 13/53] FROMLIST(v5): dt-bindings: vendor-prefixes: Add Titan - Micro Electronics -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit +Subject: [PATCH 32/37] WIP: dt-bindings: vendor-prefixes: add Titan Micro + Electronics -Assign vendor prefix "titanmec", matching their domain name. +Add a vendor prefix for Shenzhen Titan Micro Electronics Co., Ltd. -Acked-by: Rob Herring -Signed-off-by: Andreas Färber -Signed-off-by: Heiner Kallweit +Signed-off-by: Heiner Kallweit --- 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 1a0dc04f1db4..a3c08f859ab1 100644 +index 5d2a7a8d3ac6..32f8f24ec809 100644 --- a/Documentation/devicetree/bindings/vendor-prefixes.yaml +++ b/Documentation/devicetree/bindings/vendor-prefixes.yaml -@@ -1427,6 +1427,8 @@ patternProperties: +@@ -1548,6 +1548,8 @@ patternProperties: description: Texas Instruments "^tianma,.*": description: Tianma Micro-electronics Co., Ltd. diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0033-FROMLIST-v1-ASoC-meson-axg-fifo-take-continuous-rate.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0033-FROMLIST-v1-ASoC-meson-axg-fifo-take-continuous-rate.patch deleted file mode 100644 index 1348494da3..0000000000 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0033-FROMLIST-v1-ASoC-meson-axg-fifo-take-continuous-rate.patch +++ /dev/null @@ -1,90 +0,0 @@ -From 453af3a1ee8cea68dfdbdaed7a0a41f4a3743c76 Mon Sep 17 00:00:00 2001 -From: Jerome Brunet -Date: Fri, 23 Feb 2024 18:51:11 +0100 -Subject: [PATCH 33/53] FROMLIST(v1): ASoC: meson: axg-fifo: take continuous - rates - -The rate of the stream does not matter for the fifos of the axg family. -Fifos will just push or pull data to/from the DDR according to consumption -or production of the downstream element, which is the DPCM backend. - -Drop the rate list and allow continuous rates. The lower and upper rate are -set according what is known to work with the different backends - -This allows the PDM input backend to also use continuous rates. - -Signed-off-by: Jerome Brunet ---- - sound/soc/meson/axg-fifo.h | 2 -- - sound/soc/meson/axg-frddr.c | 8 ++++++-- - sound/soc/meson/axg-toddr.c | 8 ++++++-- - 3 files changed, 12 insertions(+), 6 deletions(-) - -diff --git a/sound/soc/meson/axg-fifo.h b/sound/soc/meson/axg-fifo.h -index df528e8cb7c9..a14c31eb06d8 100644 ---- a/sound/soc/meson/axg-fifo.h -+++ b/sound/soc/meson/axg-fifo.h -@@ -21,8 +21,6 @@ struct snd_soc_dai_driver; - struct snd_soc_pcm_runtime; - - #define AXG_FIFO_CH_MAX 128 --#define AXG_FIFO_RATES (SNDRV_PCM_RATE_5512 | \ -- SNDRV_PCM_RATE_8000_384000) - #define AXG_FIFO_FORMATS (SNDRV_PCM_FMTBIT_S8 | \ - SNDRV_PCM_FMTBIT_S16_LE | \ - SNDRV_PCM_FMTBIT_S20_LE | \ -diff --git a/sound/soc/meson/axg-frddr.c b/sound/soc/meson/axg-frddr.c -index 8c166a5f338c..98140f449eb3 100644 ---- a/sound/soc/meson/axg-frddr.c -+++ b/sound/soc/meson/axg-frddr.c -@@ -109,7 +109,9 @@ static struct snd_soc_dai_driver axg_frddr_dai_drv = { - .stream_name = "Playback", - .channels_min = 1, - .channels_max = AXG_FIFO_CH_MAX, -- .rates = AXG_FIFO_RATES, -+ .rates = SNDRV_PCM_RATE_CONTINUOUS, -+ .rate_min = 5515, -+ .rate_max = 384000, - .formats = AXG_FIFO_FORMATS, - }, - .ops = &axg_frddr_ops, -@@ -184,7 +186,9 @@ static struct snd_soc_dai_driver g12a_frddr_dai_drv = { - .stream_name = "Playback", - .channels_min = 1, - .channels_max = AXG_FIFO_CH_MAX, -- .rates = AXG_FIFO_RATES, -+ .rates = SNDRV_PCM_RATE_CONTINUOUS, -+ .rate_min = 5515, -+ .rate_max = 384000, - .formats = AXG_FIFO_FORMATS, - }, - .ops = &g12a_frddr_ops, -diff --git a/sound/soc/meson/axg-toddr.c b/sound/soc/meson/axg-toddr.c -index 1a0be177b8fe..32ee45cce7f8 100644 ---- a/sound/soc/meson/axg-toddr.c -+++ b/sound/soc/meson/axg-toddr.c -@@ -131,7 +131,9 @@ static struct snd_soc_dai_driver axg_toddr_dai_drv = { - .stream_name = "Capture", - .channels_min = 1, - .channels_max = AXG_FIFO_CH_MAX, -- .rates = AXG_FIFO_RATES, -+ .rates = SNDRV_PCM_RATE_CONTINUOUS, -+ .rate_min = 5515, -+ .rate_max = 384000, - .formats = AXG_FIFO_FORMATS, - }, - .ops = &axg_toddr_ops, -@@ -226,7 +228,9 @@ static struct snd_soc_dai_driver g12a_toddr_dai_drv = { - .stream_name = "Capture", - .channels_min = 1, - .channels_max = AXG_FIFO_CH_MAX, -- .rates = AXG_FIFO_RATES, -+ .rates = SNDRV_PCM_RATE_CONTINUOUS, -+ .rate_min = 5515, -+ .rate_max = 384000, - .formats = AXG_FIFO_FORMATS, - }, - .ops = &g12a_toddr_ops, --- -2.34.1 - diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0033-WIP-dt-bindings-vendor-prefixes-add-Fuda-Hisi-Microe.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0033-WIP-dt-bindings-vendor-prefixes-add-Fuda-Hisi-Microe.patch new file mode 100644 index 0000000000..26c0e5b031 --- /dev/null +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0033-WIP-dt-bindings-vendor-prefixes-add-Fuda-Hisi-Microe.patch @@ -0,0 +1,29 @@ +From ea1f663261cea2fe53626fd2d96c5e8b4d475e28 Mon Sep 17 00:00:00 2001 +From: Christian Hewitt +Date: Thu, 12 Jun 2025 10:25:29 +0000 +Subject: [PATCH 33/37] WIP: dt-bindings: vendor-prefixes: add Fuda Hisi + Microelectronics + +Add the "fdhisi" prefix for Fuda Hisi Microelectronics Co, Ltd. + +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 32f8f24ec809..d02615496b2b 100644 +--- a/Documentation/devicetree/bindings/vendor-prefixes.yaml ++++ b/Documentation/devicetree/bindings/vendor-prefixes.yaml +@@ -531,6 +531,8 @@ patternProperties: + description: Fastrax Oy + "^fcs,.*": + description: Fairchild Semiconductor ++ "^fdhisi,.*": ++ description: Fuzhou Fuda Hisi Microelectronics Co., Ltd. + "^feixin,.*": + description: Shenzhen Feixin Photoelectic Co., Ltd + "^feiyang,.*": +-- +2.34.1 + diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0034-FROMLIST-v1-ASoC-meson-axg-fifo-use-FIELD-helpers.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0034-FROMLIST-v1-ASoC-meson-axg-fifo-use-FIELD-helpers.patch deleted file mode 100644 index 4a00d59064..0000000000 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0034-FROMLIST-v1-ASoC-meson-axg-fifo-use-FIELD-helpers.patch +++ /dev/null @@ -1,176 +0,0 @@ -From 3e72fee0fba2026ba5c16a4a3f329fc04fcce310 Mon Sep 17 00:00:00 2001 -From: Jerome Brunet -Date: Fri, 23 Feb 2024 18:51:12 +0100 -Subject: [PATCH 34/53] FROMLIST(v1): ASoC: meson: axg-fifo: use FIELD helpers - -Use FIELD_GET() and FIELD_PREP() helpers instead of doing it manually. - -Signed-off-by: Jerome Brunet ---- - sound/soc/meson/axg-fifo.c | 24 ++++++++++++------------ - sound/soc/meson/axg-fifo.h | 12 +++++------- - sound/soc/meson/axg-frddr.c | 4 ++-- - sound/soc/meson/axg-toddr.c | 21 +++++++++------------ - 4 files changed, 28 insertions(+), 33 deletions(-) - -diff --git a/sound/soc/meson/axg-fifo.c b/sound/soc/meson/axg-fifo.c -index 65541fdb0038..597fd39e6e48 100644 ---- a/sound/soc/meson/axg-fifo.c -+++ b/sound/soc/meson/axg-fifo.c -@@ -145,8 +145,8 @@ int axg_fifo_pcm_hw_params(struct snd_soc_component *component, - /* Enable irq if necessary */ - irq_en = runtime->no_period_wakeup ? 0 : FIFO_INT_COUNT_REPEAT; - regmap_update_bits(fifo->map, FIFO_CTRL0, -- CTRL0_INT_EN(FIFO_INT_COUNT_REPEAT), -- CTRL0_INT_EN(irq_en)); -+ CTRL0_INT_EN, -+ FIELD_PREP(CTRL0_INT_EN, irq_en)); - - return 0; - } -@@ -176,9 +176,9 @@ int axg_fifo_pcm_hw_free(struct snd_soc_component *component, - { - struct axg_fifo *fifo = axg_fifo_data(ss); - -- /* Disable the block count irq */ -+ /* Disable irqs */ - regmap_update_bits(fifo->map, FIFO_CTRL0, -- CTRL0_INT_EN(FIFO_INT_COUNT_REPEAT), 0); -+ CTRL0_INT_EN, 0); - - return 0; - } -@@ -187,13 +187,13 @@ EXPORT_SYMBOL_GPL(axg_fifo_pcm_hw_free); - static void axg_fifo_ack_irq(struct axg_fifo *fifo, u8 mask) - { - regmap_update_bits(fifo->map, FIFO_CTRL1, -- CTRL1_INT_CLR(FIFO_INT_MASK), -- CTRL1_INT_CLR(mask)); -+ CTRL1_INT_CLR, -+ FIELD_PREP(CTRL1_INT_CLR, mask)); - - /* Clear must also be cleared */ - regmap_update_bits(fifo->map, FIFO_CTRL1, -- CTRL1_INT_CLR(FIFO_INT_MASK), -- 0); -+ CTRL1_INT_CLR, -+ FIELD_PREP(CTRL1_INT_CLR, 0)); - } - - static irqreturn_t axg_fifo_pcm_irq_block(int irq, void *dev_id) -@@ -204,7 +204,7 @@ static irqreturn_t axg_fifo_pcm_irq_block(int irq, void *dev_id) - - regmap_read(fifo->map, FIFO_STATUS1, &status); - -- status = STATUS1_INT_STS(status) & FIFO_INT_MASK; -+ status = FIELD_GET(STATUS1_INT_STS, status); - if (status & FIFO_INT_COUNT_REPEAT) - snd_pcm_period_elapsed(ss); - else -@@ -254,15 +254,15 @@ int axg_fifo_pcm_open(struct snd_soc_component *component, - - /* Setup status2 so it reports the memory pointer */ - regmap_update_bits(fifo->map, FIFO_CTRL1, -- CTRL1_STATUS2_SEL_MASK, -- CTRL1_STATUS2_SEL(STATUS2_SEL_DDR_READ)); -+ CTRL1_STATUS2_SEL, -+ FIELD_PREP(CTRL1_STATUS2_SEL, STATUS2_SEL_DDR_READ)); - - /* Make sure the dma is initially disabled */ - __dma_enable(fifo, false); - - /* Disable irqs until params are ready */ - regmap_update_bits(fifo->map, FIFO_CTRL0, -- CTRL0_INT_EN(FIFO_INT_MASK), 0); -+ CTRL0_INT_EN, 0); - - /* Clear any pending interrupt */ - axg_fifo_ack_irq(fifo, FIFO_INT_MASK); -diff --git a/sound/soc/meson/axg-fifo.h b/sound/soc/meson/axg-fifo.h -index a14c31eb06d8..4c48c0a08481 100644 ---- a/sound/soc/meson/axg-fifo.h -+++ b/sound/soc/meson/axg-fifo.h -@@ -40,21 +40,19 @@ struct snd_soc_pcm_runtime; - - #define FIFO_CTRL0 0x00 - #define CTRL0_DMA_EN BIT(31) --#define CTRL0_INT_EN(x) ((x) << 16) -+#define CTRL0_INT_EN GENMASK(23, 16) - #define CTRL0_SEL_MASK GENMASK(2, 0) - #define CTRL0_SEL_SHIFT 0 - #define FIFO_CTRL1 0x04 --#define CTRL1_INT_CLR(x) ((x) << 0) --#define CTRL1_STATUS2_SEL_MASK GENMASK(11, 8) --#define CTRL1_STATUS2_SEL(x) ((x) << 8) -+#define CTRL1_INT_CLR GENMASK(7, 0) -+#define CTRL1_STATUS2_SEL GENMASK(11, 8) - #define STATUS2_SEL_DDR_READ 0 --#define CTRL1_FRDDR_DEPTH_MASK GENMASK(31, 24) --#define CTRL1_FRDDR_DEPTH(x) ((x) << 24) -+#define CTRL1_FRDDR_DEPTH GENMASK(31, 24) - #define FIFO_START_ADDR 0x08 - #define FIFO_FINISH_ADDR 0x0c - #define FIFO_INT_ADDR 0x10 - #define FIFO_STATUS1 0x14 --#define STATUS1_INT_STS(x) ((x) << 0) -+#define STATUS1_INT_STS GENMASK(7, 0) - #define FIFO_STATUS2 0x18 - #define FIFO_INIT_ADDR 0x24 - #define FIFO_CTRL2 0x28 -diff --git a/sound/soc/meson/axg-frddr.c b/sound/soc/meson/axg-frddr.c -index 98140f449eb3..97ca0ea5faa5 100644 ---- a/sound/soc/meson/axg-frddr.c -+++ b/sound/soc/meson/axg-frddr.c -@@ -59,8 +59,8 @@ static int axg_frddr_dai_hw_params(struct snd_pcm_substream *substream, - /* Trim the FIFO depth if the period is small to improve latency */ - depth = min(period, fifo->depth); - val = (depth / AXG_FIFO_BURST) - 1; -- regmap_update_bits(fifo->map, FIFO_CTRL1, CTRL1_FRDDR_DEPTH_MASK, -- CTRL1_FRDDR_DEPTH(val)); -+ regmap_update_bits(fifo->map, FIFO_CTRL1, CTRL1_FRDDR_DEPTH, -+ FIELD_PREP(CTRL1_FRDDR_DEPTH, val)); - - return 0; - } -diff --git a/sound/soc/meson/axg-toddr.c b/sound/soc/meson/axg-toddr.c -index 32ee45cce7f8..5b08b4e841ad 100644 ---- a/sound/soc/meson/axg-toddr.c -+++ b/sound/soc/meson/axg-toddr.c -@@ -19,12 +19,9 @@ - #define CTRL0_TODDR_EXT_SIGNED BIT(29) - #define CTRL0_TODDR_PP_MODE BIT(28) - #define CTRL0_TODDR_SYNC_CH BIT(27) --#define CTRL0_TODDR_TYPE_MASK GENMASK(15, 13) --#define CTRL0_TODDR_TYPE(x) ((x) << 13) --#define CTRL0_TODDR_MSB_POS_MASK GENMASK(12, 8) --#define CTRL0_TODDR_MSB_POS(x) ((x) << 8) --#define CTRL0_TODDR_LSB_POS_MASK GENMASK(7, 3) --#define CTRL0_TODDR_LSB_POS(x) ((x) << 3) -+#define CTRL0_TODDR_TYPE GENMASK(15, 13) -+#define CTRL0_TODDR_MSB_POS GENMASK(12, 8) -+#define CTRL0_TODDR_LSB_POS GENMASK(7, 3) - #define CTRL1_TODDR_FORCE_FINISH BIT(25) - #define CTRL1_SEL_SHIFT 28 - -@@ -76,12 +73,12 @@ static int axg_toddr_dai_hw_params(struct snd_pcm_substream *substream, - width = params_width(params); - - regmap_update_bits(fifo->map, FIFO_CTRL0, -- CTRL0_TODDR_TYPE_MASK | -- CTRL0_TODDR_MSB_POS_MASK | -- CTRL0_TODDR_LSB_POS_MASK, -- CTRL0_TODDR_TYPE(type) | -- CTRL0_TODDR_MSB_POS(TODDR_MSB_POS) | -- CTRL0_TODDR_LSB_POS(TODDR_MSB_POS - (width - 1))); -+ CTRL0_TODDR_TYPE | -+ CTRL0_TODDR_MSB_POS | -+ CTRL0_TODDR_LSB_POS, -+ FIELD_PREP(CTRL0_TODDR_TYPE, type) | -+ FIELD_PREP(CTRL0_TODDR_MSB_POS, TODDR_MSB_POS) | -+ FIELD_PREP(CTRL0_TODDR_LSB_POS, TODDR_MSB_POS - (width - 1))); - - return 0; - } --- -2.34.1 - diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0034-WIP-dt-bindings-auxdisplay-add-Titan-Micro-Electroni.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0034-WIP-dt-bindings-auxdisplay-add-Titan-Micro-Electroni.patch new file mode 100644 index 0000000000..574f70f725 --- /dev/null +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0034-WIP-dt-bindings-auxdisplay-add-Titan-Micro-Electroni.patch @@ -0,0 +1,159 @@ +From 793c581ca351bfa08e185c3625ede56cc4cabf3f Mon Sep 17 00:00:00 2001 +From: Christian Hewitt +Date: Thu, 12 Jun 2025 10:30:51 +0000 +Subject: [PATCH 34/37] WIP: dt-bindings: auxdisplay: add Titan Micro + Electronics TM16XX +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Add documentation for auxiliary displays based on TM16XX and compatible +LED controllers. + +Signed-off-by: Jean-François Lessard +Signed-off-by: Christian Hewitt +--- + .../bindings/auxdisplay/tm16xx.yaml | 131 ++++++++++++++++++ + 1 file changed, 131 insertions(+) + create mode 100644 Documentation/devicetree/bindings/auxdisplay/tm16xx.yaml + +diff --git a/Documentation/devicetree/bindings/auxdisplay/tm16xx.yaml b/Documentation/devicetree/bindings/auxdisplay/tm16xx.yaml +new file mode 100644 +index 000000000000..80b54572926c +--- /dev/null ++++ b/Documentation/devicetree/bindings/auxdisplay/tm16xx.yaml +@@ -0,0 +1,131 @@ ++# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) ++%YAML 1.2 ++--- ++$id: http://devicetree.org/schemas/auxdisplay/tm16xx.yaml# ++$schema: http://devicetree.org/meta-schemas/core.yaml# ++ ++title: TM16XX and Compatible Auxiliary Display Driver ++ ++maintainers: ++ - Jean-François Lessard ++ ++description: | ++ Bindings for auxiliary displays based on TM16XX and compatible LED controllers. ++ ++properties: ++ compatible: ++ enum: ++ - titanmec,tm1618 ++ - titanmec,tm1620 ++ - titanmec,tm1628 ++ - titanmec,tm1650 ++ - fdhisi,fd620 ++ - fdhisi,fd628 ++ - fdhisi,fd650 ++ - fdhisi,fd6551 ++ - fdhisi,fd655 ++ - princeton,pt6964 ++ - hbs,hbs658 ++ ++ reg: ++ maxItems: 1 ++ ++ tm16xx,digits: ++ description: Array of grid indexes for each digit ++ $ref: /schemas/types.yaml#/definitions/uint8-array ++ items: ++ minimum: 0 ++ maximum: 7 ++ minItems: 1 ++ maxItems: 8 ++ ++ tm16xx,segment-mapping: ++ description: Array specifying segment mapping (must be exactly 7 elements) ++ $ref: /schemas/types.yaml#/definitions/uint8-array ++ items: ++ minimum: 0 ++ maximum: 7 ++ minItems: 7 ++ maxItems: 7 ++ ++ tm16xx,transposed: ++ description: | ++ Optional boolean flag indicating if the device output is transposed. ++ If not present, the default value is false. ++ $ref: /schemas/types.yaml#/definitions/flag ++ ++ "#address-cells": ++ const: 2 ++ ++ "#size-cells": ++ const: 0 ++ ++patternProperties: ++ "^led@[0-7],[0-7]$": ++ $ref: /schemas/leds/common.yaml# ++ properties: ++ reg: ++ description: Grid and segment indexes ++ required: ++ - reg ++ ++required: ++ - compatible ++ - reg ++ - tm16xx,digits ++ - tm16xx,segment-mapping ++ ++additionalProperties: true ++ ++examples: ++ - | ++ display_client: i2c { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ display@24 { ++ compatible = "titanmec,tm1650"; ++ reg = <0x24>; ++ tm16xx,digits = /bits/ 8 <0 1 2 3>; ++ tm16xx,segment-mapping = /bits/ 8 <0 1 2 3 4 5 6>; ++ ++ #address-cells = <2>; ++ #size-cells = <0>; ++ ++ led@4,0 { ++ reg = <4 0>; ++ function = "lan"; ++ }; ++ ++ led@4,1 { ++ reg = <4 1>; ++ function = "wlan"; ++ }; ++ }; ++ }; ++ - | ++ display_client: spi { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ display@0 { ++ compatible = "titanmec,tm1628"; ++ reg = <0>; ++ tm16xx,transposed; ++ tm16xx,digits = /bits/ 8 <1 2 3 4>; ++ tm16xx,segment-mapping = /bits/ 8 <0 1 2 3 4 5 6>; ++ ++ #address-cells = <2>; ++ #size-cells = <0>; ++ ++ led@0,2 { ++ reg = <0 2>; ++ function = "usb"; ++ }; ++ ++ led@0,3 { ++ reg = <0 3>; ++ function = "power"; ++ }; ++ }; ++ }; +-- +2.34.1 + diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0035-FROMLIST-v1-drm-panfrost-fix-power-transition-timeou.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0035-FROMLIST-v1-drm-panfrost-fix-power-transition-timeou.patch deleted file mode 100644 index 0fcced7db4..0000000000 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0035-FROMLIST-v1-drm-panfrost-fix-power-transition-timeou.patch +++ /dev/null @@ -1,58 +0,0 @@ -From 75a8df6a4644ae9399d277c164e591130ee1c776 Mon Sep 17 00:00:00 2001 -From: Christian Hewitt -Date: Wed, 20 Mar 2024 13:28:08 +0000 -Subject: [PATCH 35/53] FROMLIST(v1): drm/panfrost: fix power transition - timeout warnings - -Increase the timeout value to prevent system logs on Amlogic boards flooding -with power transition warnings: - -[ 13.047638] panfrost ffe40000.gpu: shader power transition timeout -[ 13.048674] panfrost ffe40000.gpu: l2 power transition timeout -[ 13.937324] panfrost ffe40000.gpu: shader power transition timeout -[ 13.938351] panfrost ffe40000.gpu: l2 power transition timeout -... -[39829.506904] panfrost ffe40000.gpu: shader power transition timeout -[39829.507938] panfrost ffe40000.gpu: l2 power transition timeout -[39949.508369] panfrost ffe40000.gpu: shader power transition timeout -[39949.509405] panfrost ffe40000.gpu: l2 power transition timeout - -The 2000 value has been found through trial and error testing on Amlogic boards -with G52 and G31 GPU's. - -Fixes: 22aa1a209018 ("drm/panfrost: Really power off GPU cores in panfrost_gpu_power_off()") -Signed-off-by: Christian Hewitt ---- - drivers/gpu/drm/panfrost/panfrost_gpu.c | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/drivers/gpu/drm/panfrost/panfrost_gpu.c b/drivers/gpu/drm/panfrost/panfrost_gpu.c -index 9063ce254642..fd8e44992184 100644 ---- a/drivers/gpu/drm/panfrost/panfrost_gpu.c -+++ b/drivers/gpu/drm/panfrost/panfrost_gpu.c -@@ -441,19 +441,19 @@ void panfrost_gpu_power_off(struct panfrost_device *pfdev) - - gpu_write(pfdev, SHADER_PWROFF_LO, pfdev->features.shader_present); - ret = readl_relaxed_poll_timeout(pfdev->iomem + SHADER_PWRTRANS_LO, -- val, !val, 1, 1000); -+ val, !val, 1, 2000); - if (ret) - dev_err(pfdev->dev, "shader power transition timeout"); - - gpu_write(pfdev, TILER_PWROFF_LO, pfdev->features.tiler_present); - ret = readl_relaxed_poll_timeout(pfdev->iomem + TILER_PWRTRANS_LO, -- val, !val, 1, 1000); -+ val, !val, 1, 2000); - if (ret) - dev_err(pfdev->dev, "tiler power transition timeout"); - - gpu_write(pfdev, L2_PWROFF_LO, pfdev->features.l2_present); - ret = readl_poll_timeout(pfdev->iomem + L2_PWRTRANS_LO, -- val, !val, 0, 1000); -+ val, !val, 0, 2000); - if (ret) - dev_err(pfdev->dev, "l2 power transition timeout"); - } --- -2.34.1 - diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0035-WIP-arm64-dts-meson-gxl-s905w-tx3-mini-support-the-f.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0035-WIP-arm64-dts-meson-gxl-s905w-tx3-mini-support-the-f.patch new file mode 100644 index 0000000000..e5ccc328fa --- /dev/null +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0035-WIP-arm64-dts-meson-gxl-s905w-tx3-mini-support-the-f.patch @@ -0,0 +1,100 @@ +From 536382633e9e399907fe06f34f426184965b5ab1 Mon Sep 17 00:00:00 2001 +From: Christian Hewitt +Date: Wed, 11 Jun 2025 11:23:44 +0000 +Subject: [PATCH 35/37] WIP: arm64: dts: meson-gxl-s905w-tx3-mini: support the + fd628 display + +The TX3-mini has an FD628 display. Add support using the tm166xx +kernel driver and userspace tools [0]. + +[0] https://github.com/jefflessard/tm16xx-display + +Signed-off-by: Christian Hewitt +--- + .../dts/amlogic/meson-gxl-s905w-tx3-mini.dts | 63 +++++++++++++++++++ + 1 file changed, 63 insertions(+) + +diff --git a/arch/arm64/boot/dts/amlogic/meson-gxl-s905w-tx3-mini.dts b/arch/arm64/boot/dts/amlogic/meson-gxl-s905w-tx3-mini.dts +index 6705c2082a78..94cae3a59554 100644 +--- a/arch/arm64/boot/dts/amlogic/meson-gxl-s905w-tx3-mini.dts ++++ b/arch/arm64/boot/dts/amlogic/meson-gxl-s905w-tx3-mini.dts +@@ -10,6 +10,8 @@ + + #include "meson-gxl-s905x.dtsi" + #include "meson-gx-p23x-q20x.dtsi" ++#include ++#include + + / { + compatible = "oranth,tx3-mini", "amlogic,s905w", "amlogic,meson-gxl"; +@@ -19,6 +21,67 @@ memory@0 { + device_type = "memory"; + reg = <0x0 0x0 0x0 0x40000000>; /* 1 GiB or 2 GiB */ + }; ++ ++ display_client: spi { ++ compatible = "spi-gpio"; ++ sck-gpios = <&gpio 76 GPIO_ACTIVE_HIGH>; ++ mosi-gpios = <&gpio 75 GPIO_ACTIVE_HIGH>; ++ cs-gpios = <&gpio_ao 4 GPIO_ACTIVE_LOW>; ++ num-chipselects = <1>; ++ ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ display@0 { ++ compatible = "fdhisi,fd628"; ++ reg = <0x0>; ++ spi-3wire; ++ spi-lsb-first; ++ spi-rx-delay-us = <1>; ++ spi-max-frequency = <500000>; ++ ++ tm16xx,digits = [03 02 01 00]; ++ tm16xx,segment-mapping = [03 04 05 00 01 02 06]; ++ ++ #address-cells = <2>; ++ #size-cells = <0>; ++ ++ led@4,0 { ++ reg = <4 0>; ++ function = LED_FUNCTION_ALARM; ++ }; ++ ++ led@4,1 { ++ reg = <4 1>; ++ function = LED_FUNCTION_USB; ++ }; ++ ++ led@4,2 { ++ reg = <4 2>; ++ function = "play"; ++ }; ++ ++ led@4,3 { ++ reg = <4 3>; ++ function = "pause"; ++ }; ++ ++ led@4,4 { ++ reg = <4 4>; ++ function = "colon"; ++ }; ++ ++ led@4,5 { ++ reg = <4 5>; ++ function = LED_FUNCTION_LAN; ++ }; ++ ++ led@4,6 { ++ reg = <4 6>; ++ function = LED_FUNCTION_WLAN; ++ }; ++ }; ++ }; + }; + + &ir { +-- +2.34.1 + diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0036-FROMLIST-v1-iio-adc-meson-fix-voltage-reference-sele.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0036-FROMLIST-v1-iio-adc-meson-fix-voltage-reference-sele.patch deleted file mode 100644 index 59d76c848f..0000000000 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0036-FROMLIST-v1-iio-adc-meson-fix-voltage-reference-sele.patch +++ /dev/null @@ -1,66 +0,0 @@ -From ff1b40e46c3498843e616b364e8f985b0146255f Mon Sep 17 00:00:00 2001 -From: Martin Blumenstingl -Date: Sat, 23 Mar 2024 20:04:49 +0100 -Subject: [PATCH 36/53] FROMLIST(v1): iio: adc: meson: fix voltage reference - selection field name typo - -The field should be called "vref_voltage", without a typo in the word -voltage. No functional changes intended. - -Signed-off-by: Martin Blumenstingl ---- - drivers/iio/adc/meson_saradc.c | 10 +++++----- - 1 file changed, 5 insertions(+), 5 deletions(-) - -diff --git a/drivers/iio/adc/meson_saradc.c b/drivers/iio/adc/meson_saradc.c -index 13b473d8c6c7..2615d74534df 100644 ---- a/drivers/iio/adc/meson_saradc.c -+++ b/drivers/iio/adc/meson_saradc.c -@@ -327,7 +327,7 @@ struct meson_sar_adc_param { - u8 vref_select; - u8 cmv_select; - u8 adc_eoc; -- enum meson_sar_adc_vref_sel vref_volatge; -+ enum meson_sar_adc_vref_sel vref_voltage; - }; - - struct meson_sar_adc_data { -@@ -1001,7 +1001,7 @@ static int meson_sar_adc_init(struct iio_dev *indio_dev) - } - - regval = FIELD_PREP(MESON_SAR_ADC_REG11_VREF_VOLTAGE, -- priv->param->vref_volatge); -+ priv->param->vref_voltage); - regmap_update_bits(priv->regmap, MESON_SAR_ADC_REG11, - MESON_SAR_ADC_REG11_VREF_VOLTAGE, regval); - -@@ -1225,7 +1225,7 @@ static const struct meson_sar_adc_param meson_sar_adc_gxbb_param = { - .regmap_config = &meson_sar_adc_regmap_config_gxbb, - .resolution = 10, - .has_reg11 = true, -- .vref_volatge = 1, -+ .vref_voltage = 1, - .cmv_select = 1, - }; - -@@ -1237,7 +1237,7 @@ static const struct meson_sar_adc_param meson_sar_adc_gxl_param = { - .resolution = 12, - .disable_ring_counter = 1, - .has_reg11 = true, -- .vref_volatge = 1, -+ .vref_voltage = 1, - .cmv_select = 1, - }; - -@@ -1249,7 +1249,7 @@ static const struct meson_sar_adc_param meson_sar_adc_axg_param = { - .resolution = 12, - .disable_ring_counter = 1, - .has_reg11 = true, -- .vref_volatge = 1, -+ .vref_voltage = 1, - .has_vref_select = true, - .vref_select = VREF_VDDA, - .cmv_select = 1, --- -2.34.1 - diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0036-WIP-arm64-dts-meson-gxm-tx9-pro-support-the-fd628-di.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0036-WIP-arm64-dts-meson-gxm-tx9-pro-support-the-fd628-di.patch new file mode 100644 index 0000000000..61dda53477 --- /dev/null +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0036-WIP-arm64-dts-meson-gxm-tx9-pro-support-the-fd628-di.patch @@ -0,0 +1,99 @@ +From 6bf5753f848d4c9e66d5e55929b307715ee1d5c5 Mon Sep 17 00:00:00 2001 +From: Christian Hewitt +Date: Thu, 9 Feb 2023 10:11:39 +0000 +Subject: [PATCH 36/37] WIP: arm64: dts: meson-gxm-tx9-pro: support the fd628 + display + +The TX9-Pro has an FD628 display. Add support using the tm166xx +kernel driver and userspace tools [0]. + +[0] https://github.com/jefflessard/tm16xx-display + +Signed-off-by: Christian Hewitt +--- + .../boot/dts/amlogic/meson-gxm-tx9-pro.dts | 62 +++++++++++++++++++ + 1 file changed, 62 insertions(+) + +diff --git a/arch/arm64/boot/dts/amlogic/meson-gxm-tx9-pro.dts b/arch/arm64/boot/dts/amlogic/meson-gxm-tx9-pro.dts +index 9a62176cfe5a..08603b035868 100644 +--- a/arch/arm64/boot/dts/amlogic/meson-gxm-tx9-pro.dts ++++ b/arch/arm64/boot/dts/amlogic/meson-gxm-tx9-pro.dts +@@ -9,6 +9,7 @@ + #include "meson-gxm.dtsi" + #include "meson-gx-p23x-q20x.dtsi" + #include ++#include + + / { + compatible = "oranth,tx9-pro", "amlogic,s912", "amlogic,meson-gxm"; +@@ -37,6 +38,67 @@ button { + gpios = <&gpio_ao GPIOAO_2 GPIO_ACTIVE_LOW>; + }; + }; ++ ++ display_client: spi { ++ compatible = "spi-gpio"; ++ sck-gpios = <&gpio 76 GPIO_ACTIVE_HIGH>; ++ mosi-gpios = <&gpio 75 GPIO_ACTIVE_HIGH>; ++ cs-gpios = <&gpio 53 GPIO_ACTIVE_LOW>; ++ num-chipselects = <1>; ++ ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ display@0 { ++ compatible = "fdhisi,fd628"; ++ reg = <0x0>; ++ spi-3wire; ++ spi-lsb-first; ++ spi-rx-delay-us = <1>; ++ spi-max-frequency = <500000>; ++ ++ tm16xx,digits = [00 01 02 03]; ++ tm16xx,segment-mapping = [03 01 02 06 04 05 00]; ++ ++ #address-cells = <2>; ++ #size-cells = <0>; ++ ++ led@4,0 { ++ reg = <4 0>; ++ function = LED_FUNCTION_ALARM; ++ }; ++ ++ led@4,1 { ++ reg = <4 1>; ++ function = LED_FUNCTION_USB; ++ }; ++ ++ led@4,2 { ++ reg = <4 2>; ++ function = "play"; ++ }; ++ ++ led@4,3 { ++ reg = <4 3>; ++ function = "pause"; ++ }; ++ ++ led@4,4 { ++ reg = <4 4>; ++ function = "colon"; ++ }; ++ ++ led@4,5 { ++ reg = <4 5>; ++ function = LED_FUNCTION_LAN; ++ }; ++ ++ led@4,6 { ++ reg = <4 6>; ++ function = LED_FUNCTION_WLAN; ++ }; ++ }; ++ }; + }; + + ðmac { +-- +2.34.1 + diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0037-FROMLIST-v1-iio-adc-consistently-use-bool-and-enum-i.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0037-FROMLIST-v1-iio-adc-consistently-use-bool-and-enum-i.patch deleted file mode 100644 index 2f725545a8..0000000000 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0037-FROMLIST-v1-iio-adc-consistently-use-bool-and-enum-i.patch +++ /dev/null @@ -1,142 +0,0 @@ -From e75fe79643d8d1be19c91d195b9fa1cc16bfffa8 Mon Sep 17 00:00:00 2001 -From: Martin Blumenstingl -Date: Sat, 23 Mar 2024 20:30:02 +0100 -Subject: [PATCH 37/53] FROMLIST(v1): iio: adc: consistently use bool and enum - in struct meson_sar_adc_param - -Consistently use bool for any register bit that enables/disables -functionality and enum for register values where there's a choice -between different settings. The aim is to make the code easier to read -and understand by being more consistent. No functional changes intended. - -Signed-off-by: Martin Blumenstingl ---- - drivers/iio/adc/meson_saradc.c | 47 +++++++++++++++++++--------------- - 1 file changed, 27 insertions(+), 20 deletions(-) - -diff --git a/drivers/iio/adc/meson_saradc.c b/drivers/iio/adc/meson_saradc.c -index 2615d74534df..6b2af0c2bbc7 100644 ---- a/drivers/iio/adc/meson_saradc.c -+++ b/drivers/iio/adc/meson_saradc.c -@@ -156,9 +156,9 @@ - #define MESON_SAR_ADC_REG11 0x2c - #define MESON_SAR_ADC_REG11_BANDGAP_EN BIT(13) - #define MESON_SAR_ADC_REG11_CMV_SEL BIT(6) -- #define MESON_SAR_ADC_REG11_VREF_VOLTAGE BIT(5) -- #define MESON_SAR_ADC_REG11_EOC BIT(1) -- #define MESON_SAR_ADC_REG11_VREF_SEL BIT(0) -+ #define MESON_SAR_ADC_REG11_VREF_VOLTAGE BIT(5) -+ #define MESON_SAR_ADC_REG11_EOC BIT(1) -+ #define MESON_SAR_ADC_REG11_VREF_SEL BIT(0) - - #define MESON_SAR_ADC_REG13 0x34 - #define MESON_SAR_ADC_REG13_12BIT_CALIBRATION_MASK GENMASK(13, 8) -@@ -224,6 +224,11 @@ enum meson_sar_adc_vref_sel { - VREF_VDDA = 1, - }; - -+enum meson_sar_adc_vref_voltage { -+ VREF_VOLTAGE_0V9 = 0, -+ VREF_VOLTAGE_1V8 = 1, -+}; -+ - enum meson_sar_adc_avg_mode { - NO_AVERAGING = 0x0, - MEAN_AVERAGING = 0x1, -@@ -321,13 +326,13 @@ struct meson_sar_adc_param { - u8 temperature_trimming_bits; - unsigned int temperature_multiplier; - unsigned int temperature_divider; -- u8 disable_ring_counter; -+ bool disable_ring_counter; - bool has_reg11; - bool has_vref_select; -- u8 vref_select; -- u8 cmv_select; -- u8 adc_eoc; -- enum meson_sar_adc_vref_sel vref_voltage; -+ bool cmv_select; -+ bool adc_eoc; -+ enum meson_sar_adc_vref_sel vref_select; -+ enum meson_sar_adc_vref_voltage vref_voltage; - }; - - struct meson_sar_adc_data { -@@ -982,14 +987,16 @@ static int meson_sar_adc_init(struct iio_dev *indio_dev) - MESON_SAR_ADC_DELTA_10_TS_REVE0, 0); - } - -- regval = FIELD_PREP(MESON_SAR_ADC_REG3_CTRL_CONT_RING_COUNTER_EN, -- priv->param->disable_ring_counter); -+ if (priv->param->disable_ring_counter) -+ regval = MESON_SAR_ADC_REG3_CTRL_CONT_RING_COUNTER_EN; -+ else -+ regval = 0; - regmap_update_bits(priv->regmap, MESON_SAR_ADC_REG3, - MESON_SAR_ADC_REG3_CTRL_CONT_RING_COUNTER_EN, - regval); - - if (priv->param->has_reg11) { -- regval = FIELD_PREP(MESON_SAR_ADC_REG11_EOC, priv->param->adc_eoc); -+ regval = priv->param->adc_eoc ? MESON_SAR_ADC_REG11_EOC : 0; - regmap_update_bits(priv->regmap, MESON_SAR_ADC_REG11, - MESON_SAR_ADC_REG11_EOC, regval); - -@@ -1005,8 +1012,7 @@ static int meson_sar_adc_init(struct iio_dev *indio_dev) - regmap_update_bits(priv->regmap, MESON_SAR_ADC_REG11, - MESON_SAR_ADC_REG11_VREF_VOLTAGE, regval); - -- regval = FIELD_PREP(MESON_SAR_ADC_REG11_CMV_SEL, -- priv->param->cmv_select); -+ regval = priv->param->cmv_select ? MESON_SAR_ADC_REG11_CMV_SEL : 0; - regmap_update_bits(priv->regmap, MESON_SAR_ADC_REG11, - MESON_SAR_ADC_REG11_CMV_SEL, regval); - } -@@ -1225,8 +1231,8 @@ static const struct meson_sar_adc_param meson_sar_adc_gxbb_param = { - .regmap_config = &meson_sar_adc_regmap_config_gxbb, - .resolution = 10, - .has_reg11 = true, -- .vref_voltage = 1, -- .cmv_select = 1, -+ .vref_voltage = VREF_VOLTAGE_1V8, -+ .cmv_select = true, - }; - - static const struct meson_sar_adc_param meson_sar_adc_gxl_param = { -@@ -1237,8 +1243,8 @@ static const struct meson_sar_adc_param meson_sar_adc_gxl_param = { - .resolution = 12, - .disable_ring_counter = 1, - .has_reg11 = true, -- .vref_voltage = 1, -- .cmv_select = 1, -+ .vref_voltage = VREF_VOLTAGE_1V8, -+ .cmv_select = true, - }; - - static const struct meson_sar_adc_param meson_sar_adc_axg_param = { -@@ -1249,10 +1255,10 @@ static const struct meson_sar_adc_param meson_sar_adc_axg_param = { - .resolution = 12, - .disable_ring_counter = 1, - .has_reg11 = true, -- .vref_voltage = 1, -+ .vref_voltage = VREF_VOLTAGE_1V8, - .has_vref_select = true, - .vref_select = VREF_VDDA, -- .cmv_select = 1, -+ .cmv_select = true, - }; - - static const struct meson_sar_adc_param meson_sar_adc_g12a_param = { -@@ -1263,7 +1269,8 @@ static const struct meson_sar_adc_param meson_sar_adc_g12a_param = { - .resolution = 12, - .disable_ring_counter = 1, - .has_reg11 = true, -- .adc_eoc = 1, -+ .vref_voltage = VREF_VOLTAGE_0V9, -+ .adc_eoc = true, - .has_vref_select = true, - .vref_select = VREF_VDDA, - }; --- -2.34.1 - diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0037-WIP-arm64-dts-meson-g12a-x96-max-support-the-fd628-d.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0037-WIP-arm64-dts-meson-g12a-x96-max-support-the-fd628-d.patch new file mode 100644 index 0000000000..3a095c0d42 --- /dev/null +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0037-WIP-arm64-dts-meson-g12a-x96-max-support-the-fd628-d.patch @@ -0,0 +1,100 @@ +From 7f3cc57dc50d31414a284761cfb5372942229571 Mon Sep 17 00:00:00 2001 +From: Christian Hewitt +Date: Wed, 11 Jun 2025 11:47:31 +0000 +Subject: [PATCH 37/37] WIP: arm64: dts: meson-g12a-x96-max: support the fd628 + display + +The X96-Max has an FD628 display. Add support using the tm166xx +kernel driver and userspace tools [0]. + +[0] https://github.com/jefflessard/tm16xx-display + +Signed-off-by: Christian Hewitt +--- + .../boot/dts/amlogic/meson-g12a-x96-max.dts | 63 +++++++++++++++++++ + 1 file changed, 63 insertions(+) + +diff --git a/arch/arm64/boot/dts/amlogic/meson-g12a-x96-max.dts b/arch/arm64/boot/dts/amlogic/meson-g12a-x96-max.dts +index 5ab460a3e637..879276d6f6e9 100644 +--- a/arch/arm64/boot/dts/amlogic/meson-g12a-x96-max.dts ++++ b/arch/arm64/boot/dts/amlogic/meson-g12a-x96-max.dts +@@ -7,6 +7,7 @@ + + #include "meson-g12a.dtsi" + #include ++#include + #include + #include + +@@ -54,6 +55,68 @@ hdmi_connector_in: endpoint { + }; + }; + ++ display_client: spi { ++ compatible = "spi-gpio"; ++ sck-gpios = <&gpio 64 GPIO_ACTIVE_HIGH>; ++ mosi-gpios = <&gpio 63 GPIO_ACTIVE_HIGH>; ++ cs-gpios = <&gpio_ao 10 GPIO_ACTIVE_LOW>; ++ num-chipselects = <1>; ++ ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ display@0 { ++ compatible = "fdhisi,fd628"; ++ reg = <0x0>; ++ spi-3wire; ++ spi-lsb-first; ++ spi-rx-delay-us = <1>; ++ spi-max-frequency = <500000>; ++ ++ tm16xx,transposed; ++ tm16xx,digits = [00 01 02 03]; ++ tm16xx,segment-mapping = [00 01 02 03 04 05 06]; ++ ++ #address-cells = <2>; ++ #size-cells = <0>; ++ ++ led@4,0 { ++ reg = <4 0>; ++ function = "apps"; ++ }; ++ ++ led@4,1 { ++ reg = <4 1>; ++ function = "setup"; ++ }; ++ ++ led@4,2 { ++ reg = <4 2>; ++ function = LED_FUNCTION_USB; ++ }; ++ ++ led@4,3 { ++ reg = <4 3>; ++ function = LED_FUNCTION_SD; ++ }; ++ ++ led@4,4 { ++ reg = <4 4>; ++ function = "colon"; ++ }; ++ ++ led@4,5 { ++ reg = <4 5>; ++ function = "hdmi"; ++ }; ++ ++ led@4,6 { ++ reg = <4 6>; ++ function = "video"; ++ }; ++ }; ++ }; ++ + emmc_pwrseq: emmc-pwrseq { + compatible = "mmc-pwrseq-emmc"; + reset-gpios = <&gpio BOOT_12 GPIO_ACTIVE_LOW>; +-- +2.34.1 + diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0038-FROMLIST-v1-iio-adc-meson-simplify-MESON_SAR_ADC_REG.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0038-FROMLIST-v1-iio-adc-meson-simplify-MESON_SAR_ADC_REG.patch deleted file mode 100644 index 1f5bbecb3f..0000000000 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0038-FROMLIST-v1-iio-adc-meson-simplify-MESON_SAR_ADC_REG.patch +++ /dev/null @@ -1,135 +0,0 @@ -From c6a0829ea93c2460d1fcc79eb59f9704832a073c Mon Sep 17 00:00:00 2001 -From: Martin Blumenstingl -Date: Sat, 23 Mar 2024 20:35:58 +0100 -Subject: [PATCH 38/53] FROMLIST(v1): iio: adc: meson: simplify - MESON_SAR_ADC_REG11 register access - -Simply check the max_register value to decide whether -MESON_SAR_ADC_REG11 is present on the current IP revision. This allows -dropping two additional bool fields from struct meson_sar_adc_param -which previously had to be manually kept in sync. No functional changes -intended. - -Signed-off-by: Martin Blumenstingl ---- - drivers/iio/adc/meson_saradc.c | 29 ++++++++--------------------- - 1 file changed, 8 insertions(+), 21 deletions(-) - -diff --git a/drivers/iio/adc/meson_saradc.c b/drivers/iio/adc/meson_saradc.c -index 6b2af0c2bbc7..8c1e542c0ab7 100644 ---- a/drivers/iio/adc/meson_saradc.c -+++ b/drivers/iio/adc/meson_saradc.c -@@ -320,14 +320,12 @@ static const struct iio_chan_spec meson_sar_adc_and_temp_iio_channels[] = { - struct meson_sar_adc_param { - bool has_bl30_integration; - unsigned long clock_rate; -- u32 bandgap_reg; - unsigned int resolution; - const struct regmap_config *regmap_config; - u8 temperature_trimming_bits; - unsigned int temperature_multiplier; - unsigned int temperature_divider; - bool disable_ring_counter; -- bool has_reg11; - bool has_vref_select; - bool cmv_select; - bool adc_eoc; -@@ -995,7 +993,7 @@ static int meson_sar_adc_init(struct iio_dev *indio_dev) - MESON_SAR_ADC_REG3_CTRL_CONT_RING_COUNTER_EN, - regval); - -- if (priv->param->has_reg11) { -+ if (priv->param->regmap_config->max_register >= MESON_SAR_ADC_REG11) { - regval = priv->param->adc_eoc ? MESON_SAR_ADC_REG11_EOC : 0; - regmap_update_bits(priv->regmap, MESON_SAR_ADC_REG11, - MESON_SAR_ADC_REG11_EOC, regval); -@@ -1031,16 +1029,15 @@ static int meson_sar_adc_init(struct iio_dev *indio_dev) - static void meson_sar_adc_set_bandgap(struct iio_dev *indio_dev, bool on_off) - { - struct meson_sar_adc_priv *priv = iio_priv(indio_dev); -- const struct meson_sar_adc_param *param = priv->param; -- u32 enable_mask; - -- if (param->bandgap_reg == MESON_SAR_ADC_REG11) -- enable_mask = MESON_SAR_ADC_REG11_BANDGAP_EN; -+ if (priv->param->regmap_config->max_register >= MESON_SAR_ADC_REG11) -+ regmap_update_bits(priv->regmap, MESON_SAR_ADC_REG11, -+ MESON_SAR_ADC_REG11_BANDGAP_EN, -+ on_off ? MESON_SAR_ADC_REG11_BANDGAP_EN : 0); - else -- enable_mask = MESON_SAR_ADC_DELTA_10_TS_VBG_EN; -- -- regmap_update_bits(priv->regmap, param->bandgap_reg, enable_mask, -- on_off ? enable_mask : 0); -+ regmap_update_bits(priv->regmap, MESON_SAR_ADC_DELTA_10, -+ MESON_SAR_ADC_DELTA_10_TS_VBG_EN, -+ on_off ? MESON_SAR_ADC_DELTA_10_TS_VBG_EN : 0); - } - - static int meson_sar_adc_hw_enable(struct iio_dev *indio_dev) -@@ -1205,7 +1202,6 @@ static const struct iio_info meson_sar_adc_iio_info = { - static const struct meson_sar_adc_param meson_sar_adc_meson8_param = { - .has_bl30_integration = false, - .clock_rate = 1150000, -- .bandgap_reg = MESON_SAR_ADC_DELTA_10, - .regmap_config = &meson_sar_adc_regmap_config_meson8, - .resolution = 10, - .temperature_trimming_bits = 4, -@@ -1216,7 +1212,6 @@ static const struct meson_sar_adc_param meson_sar_adc_meson8_param = { - static const struct meson_sar_adc_param meson_sar_adc_meson8b_param = { - .has_bl30_integration = false, - .clock_rate = 1150000, -- .bandgap_reg = MESON_SAR_ADC_DELTA_10, - .regmap_config = &meson_sar_adc_regmap_config_meson8, - .resolution = 10, - .temperature_trimming_bits = 5, -@@ -1227,10 +1222,8 @@ static const struct meson_sar_adc_param meson_sar_adc_meson8b_param = { - static const struct meson_sar_adc_param meson_sar_adc_gxbb_param = { - .has_bl30_integration = true, - .clock_rate = 1200000, -- .bandgap_reg = MESON_SAR_ADC_REG11, - .regmap_config = &meson_sar_adc_regmap_config_gxbb, - .resolution = 10, -- .has_reg11 = true, - .vref_voltage = VREF_VOLTAGE_1V8, - .cmv_select = true, - }; -@@ -1238,11 +1231,9 @@ static const struct meson_sar_adc_param meson_sar_adc_gxbb_param = { - static const struct meson_sar_adc_param meson_sar_adc_gxl_param = { - .has_bl30_integration = true, - .clock_rate = 1200000, -- .bandgap_reg = MESON_SAR_ADC_REG11, - .regmap_config = &meson_sar_adc_regmap_config_gxbb, - .resolution = 12, - .disable_ring_counter = 1, -- .has_reg11 = true, - .vref_voltage = VREF_VOLTAGE_1V8, - .cmv_select = true, - }; -@@ -1250,11 +1241,9 @@ static const struct meson_sar_adc_param meson_sar_adc_gxl_param = { - static const struct meson_sar_adc_param meson_sar_adc_axg_param = { - .has_bl30_integration = true, - .clock_rate = 1200000, -- .bandgap_reg = MESON_SAR_ADC_REG11, - .regmap_config = &meson_sar_adc_regmap_config_gxbb, - .resolution = 12, - .disable_ring_counter = 1, -- .has_reg11 = true, - .vref_voltage = VREF_VOLTAGE_1V8, - .has_vref_select = true, - .vref_select = VREF_VDDA, -@@ -1264,11 +1253,9 @@ static const struct meson_sar_adc_param meson_sar_adc_axg_param = { - static const struct meson_sar_adc_param meson_sar_adc_g12a_param = { - .has_bl30_integration = false, - .clock_rate = 1200000, -- .bandgap_reg = MESON_SAR_ADC_REG11, - .regmap_config = &meson_sar_adc_regmap_config_gxbb, - .resolution = 12, - .disable_ring_counter = 1, -- .has_reg11 = true, - .vref_voltage = VREF_VOLTAGE_0V9, - .adc_eoc = true, - .has_vref_select = true, --- -2.34.1 - diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0039-WIP-dt-bindings-arm-amlogic-add-support-for-Dreambox.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0039-WIP-dt-bindings-arm-amlogic-add-support-for-Dreambox.patch deleted file mode 100644 index 1b54ea90ba..0000000000 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0039-WIP-dt-bindings-arm-amlogic-add-support-for-Dreambox.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 8d6f4eb8a8a7bd35dd10bb4d942b0e3182042ac1 Mon Sep 17 00:00:00 2001 -From: Christian Hewitt -Date: Mon, 5 Apr 2021 13:48:34 +0000 -Subject: [PATCH 39/53] WIP: dt-bindings: arm: amlogic: add support for - Dreambox One/Two - -The Dreambox One and Dreambox Two are DVBS/T2 receiver boxes based -on the Amlogic W400 reference board with an S922X chip. - -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 caab7ceeda45..922380d6139e 100644 ---- a/Documentation/devicetree/bindings/arm/amlogic.yaml -+++ b/Documentation/devicetree/bindings/arm/amlogic.yaml -@@ -175,6 +175,8 @@ properties: - - azw,gtking - - azw,gtking-pro - - bananapi,bpi-m2s -+ - dream,dreambox-one -+ - dream,dreambox-two - - hardkernel,odroid-go-ultra - - hardkernel,odroid-n2 - - hardkernel,odroid-n2l --- -2.34.1 - diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0040-WIP-arm64-dts-meson-add-initial-device-trees-for-Dre.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0040-WIP-arm64-dts-meson-add-initial-device-trees-for-Dre.patch deleted file mode 100644 index 39f5c63037..0000000000 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0040-WIP-arm64-dts-meson-add-initial-device-trees-for-Dre.patch +++ /dev/null @@ -1,272 +0,0 @@ -From ffbb462ad7261792d8642717b1d17407afe81d94 Mon Sep 17 00:00:00 2001 -From: Christian Hewitt -Date: Mon, 5 Apr 2021 13:51:20 +0000 -Subject: [PATCH 40/53] WIP: arm64: dts: meson: add initial device-trees for - Dreambox One/Two - -Dreambox One and Dreambox Two are based on the Amlogic W400 reference -board with an S922X chip and the following specs: - -- 2GB DDR3 RAM -- 16GB eMMC -- 10/100/1000 Base-T Ethernet -- AP6356 Wireless (802.11 b/g/n/ac, BT 5.0) -- HDMI 2.1 video -- S/PDIF optical output -- 2x DVB-S2/T2 -- Smartcard Reader Slot -- 2x USB 2.0 port (1x micro-USB for service) -- 1x USB 3.0 port -- IR receiver -- 1x Power LED (blue) -- 1x Power button (top) -- 1x Update/Reset button (underside) -- 1x micro SD card slot - -Dreambox Two differences: - -- 3" Colour LCD display (MIPI-DSI) -- Common Interface Slot - -Signed-off-by: Christian Hewitt ---- - arch/arm64/boot/dts/amlogic/Makefile | 2 + - .../dts/amlogic/meson-g12b-dreambox-one.dts | 17 ++ - .../dts/amlogic/meson-g12b-dreambox-two.dts | 20 +++ - .../boot/dts/amlogic/meson-g12b-dreambox.dtsi | 160 ++++++++++++++++++ - 4 files changed, 199 insertions(+) - create mode 100644 arch/arm64/boot/dts/amlogic/meson-g12b-dreambox-one.dts - create mode 100644 arch/arm64/boot/dts/amlogic/meson-g12b-dreambox-two.dts - create mode 100644 arch/arm64/boot/dts/amlogic/meson-g12b-dreambox.dtsi - -diff --git a/arch/arm64/boot/dts/amlogic/Makefile b/arch/arm64/boot/dts/amlogic/Makefile -index cc8b34bd583d..edb22c57f11d 100644 ---- a/arch/arm64/boot/dts/amlogic/Makefile -+++ b/arch/arm64/boot/dts/amlogic/Makefile -@@ -15,6 +15,8 @@ dtb-$(CONFIG_ARCH_MESON) += meson-g12a-x96-max.dtb - dtb-$(CONFIG_ARCH_MESON) += meson-g12b-a311d-bananapi-m2s.dtb - dtb-$(CONFIG_ARCH_MESON) += meson-g12b-a311d-khadas-vim3.dtb - dtb-$(CONFIG_ARCH_MESON) += meson-g12b-bananapi-cm4-cm4io.dtb -+dtb-$(CONFIG_ARCH_MESON) += meson-g12b-dreambox-one.dtb -+dtb-$(CONFIG_ARCH_MESON) += meson-g12b-dreambox-two.dtb - dtb-$(CONFIG_ARCH_MESON) += meson-g12b-gsking-x.dtb - dtb-$(CONFIG_ARCH_MESON) += meson-g12b-gtking-pro.dtb - dtb-$(CONFIG_ARCH_MESON) += meson-g12b-gtking.dtb -diff --git a/arch/arm64/boot/dts/amlogic/meson-g12b-dreambox-one.dts b/arch/arm64/boot/dts/amlogic/meson-g12b-dreambox-one.dts -new file mode 100644 -index 000000000000..ecfa1c683dde ---- /dev/null -+++ b/arch/arm64/boot/dts/amlogic/meson-g12b-dreambox-one.dts -@@ -0,0 +1,17 @@ -+// SPDX-License-Identifier: (GPL-2.0+ OR MIT) -+/* -+ * Copyright (c) 2019 Christian Hewitt -+ */ -+ -+/dts-v1/; -+ -+#include "meson-g12b-dreambox.dtsi" -+ -+/ { -+ compatible = "dream,dreambox-one", "amlogic,s922x", "amlogic,g12b"; -+ model = "Dreambox One"; -+}; -+ -+&sd_emmc_a { -+ sd-uhs-sdr12; -+}; -diff --git a/arch/arm64/boot/dts/amlogic/meson-g12b-dreambox-two.dts b/arch/arm64/boot/dts/amlogic/meson-g12b-dreambox-two.dts -new file mode 100644 -index 000000000000..df0d71983c3d ---- /dev/null -+++ b/arch/arm64/boot/dts/amlogic/meson-g12b-dreambox-two.dts -@@ -0,0 +1,20 @@ -+// SPDX-License-Identifier: (GPL-2.0+ OR MIT) -+/* -+ * Copyright (c) 2019 Christian Hewitt -+ */ -+ -+/dts-v1/; -+ -+#include "meson-g12b-dreambox.dtsi" -+ -+/ { -+ compatible = "dream,dreambox-two", "amlogic,s922x", "amlogic,g12b"; -+ model = "Dreambox Two"; -+}; -+ -+&sd_emmc_a { -+ sd-uhs-sdr12; -+ sd-uhs-sdr25; -+ sd-uhs-sdr50; -+ sd-uhs-sdr104; -+}; -diff --git a/arch/arm64/boot/dts/amlogic/meson-g12b-dreambox.dtsi b/arch/arm64/boot/dts/amlogic/meson-g12b-dreambox.dtsi -new file mode 100644 -index 000000000000..a76045fd739c ---- /dev/null -+++ b/arch/arm64/boot/dts/amlogic/meson-g12b-dreambox.dtsi -@@ -0,0 +1,160 @@ -+// SPDX-License-Identifier: (GPL-2.0+ OR MIT) -+/* -+ * Copyright (c) 2021 Christian Hewitt -+ */ -+ -+#include "meson-g12b-w400.dtsi" -+#include -+#include -+#include -+ -+/ { -+ cvbs-connector { -+ status = "disabled"; -+ }; -+ -+ sdio_pwrseq: sdio-pwrseq { -+ compatible = "mmc-pwrseq-simple"; -+ reset-gpios = <&gpio GPIOA_11 GPIO_ACTIVE_LOW>; -+ clocks = <&wifi32k>; -+ clock-names = "ext_clock"; -+ }; -+ -+ spdif_dit: audio-codec-1 { -+ #sound-dai-cells = <0>; -+ compatible = "linux,spdif-dit"; -+ status = "okay"; -+ sound-name-prefix = "DIT"; -+ }; -+ -+ sound { -+ compatible = "amlogic,axg-sound-card"; -+ model = "DREAMBOX"; -+ 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", -+ "SPDIFOUT_A IN 0", "FRDDR_A OUT 3", -+ "SPDIFOUT_A IN 1", "FRDDR_B OUT 3", -+ "SPDIFOUT_A IN 2", "FRDDR_C OUT 3"; -+ -+ 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>; -+ }; -+ }; -+ -+ /* spdif hdmi or toslink interface */ -+ dai-link-4 { -+ sound-dai = <&spdifout_a>; -+ -+ codec-0 { -+ sound-dai = <&spdif_dit>; -+ }; -+ -+ codec-1 { -+ sound-dai = <&tohdmitx TOHDMITX_SPDIF_IN_A>; -+ }; -+ }; -+ -+ /* spdif hdmi interface */ -+ dai-link-5 { -+ sound-dai = <&spdifout_b>; -+ -+ codec { -+ sound-dai = <&tohdmitx TOHDMITX_SPDIF_IN_B>; -+ }; -+ }; -+ -+ /* hdmi glue */ -+ dai-link-6 { -+ sound-dai = <&tohdmitx TOHDMITX_I2S_OUT>; -+ -+ codec { -+ sound-dai = <&hdmi_tx>; -+ }; -+ }; -+ }; -+}; -+ -+&arb { -+ status = "okay"; -+}; -+ -+&clkc_audio { -+ status = "okay"; -+}; -+ -+&frddr_a { -+ status = "okay"; -+}; -+ -+&frddr_b { -+ status = "okay"; -+}; -+ -+&frddr_c { -+ status = "okay"; -+}; -+ -+&ir { -+ linux,rc-map-name = "rc-dreambox"; -+}; -+ -+&saradc { -+ status = "okay"; -+ vref-supply = <&vddao_1v8>; -+}; -+ -+&spdifout_a { -+ pinctrl-0 = <&spdif_out_h_pins>; -+ pinctrl-names = "default"; -+ status = "okay"; -+}; -+ -+&spdifout_b { -+ status = "okay"; -+}; -+ -+&tdmif_b { -+ status = "okay"; -+}; -+ -+&tdmout_b { -+ status = "okay"; -+}; -+ -+&tohdmitx { -+ status = "okay"; -+}; --- -2.34.1 - diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0041-WIP-arm64-dts-meson-increase-SD-speeds-on-Minix-Neo-.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0041-WIP-arm64-dts-meson-increase-SD-speeds-on-Minix-Neo-.patch deleted file mode 100644 index a837827fc4..0000000000 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0041-WIP-arm64-dts-meson-increase-SD-speeds-on-Minix-Neo-.patch +++ /dev/null @@ -1,36 +0,0 @@ -From 2fa9dc2253ed3266db28b0a3ebb5d942427ef7a9 Mon Sep 17 00:00:00 2001 -From: Christian Hewitt -Date: Mon, 1 Jan 2024 06:15:40 +0000 -Subject: [PATCH 41/53] WIP: arm64: dts: meson: increase SD speeds on Minix Neo - U9-H - -Lets see what happens/breaks when all the fancy modes are added - -Signed-off-by: Christian Hewitt ---- - arch/arm64/boot/dts/amlogic/meson-gxm-minix-neo-u9h.dts | 9 +++++++++ - 1 file changed, 9 insertions(+) - -diff --git a/arch/arm64/boot/dts/amlogic/meson-gxm-minix-neo-u9h.dts b/arch/arm64/boot/dts/amlogic/meson-gxm-minix-neo-u9h.dts -index b929682805dd..c3fb523fd18e 100644 ---- a/arch/arm64/boot/dts/amlogic/meson-gxm-minix-neo-u9h.dts -+++ b/arch/arm64/boot/dts/amlogic/meson-gxm-minix-neo-u9h.dts -@@ -106,6 +106,15 @@ brcmf: wifi@1 { - }; - }; - -+&sd_emmc_b { -+ /* experimental */ -+ sd-uhs-sdr12; -+ sd-uhs-sdr25; -+ sd-uhs-sdr50; -+ sd-uhs-sdr104; -+ max-frequency = <200000000>; -+}; -+ - &uart_A { - status = "okay"; - pinctrl-0 = <&uart_a_pins>, <&uart_a_cts_rts_pins>; --- -2.34.1 - diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0042-WIP-arm64-dts-meson-fixup-Minix-U9-H-wifi.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0042-WIP-arm64-dts-meson-fixup-Minix-U9-H-wifi.patch deleted file mode 100644 index fbda4e066e..0000000000 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0042-WIP-arm64-dts-meson-fixup-Minix-U9-H-wifi.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 6302dc4b0ec1ce8d343ca620f1fc82e8fa5e1dda Mon Sep 17 00:00:00 2001 -From: Christian Hewitt -Date: Fri, 5 Jan 2024 03:07:58 +0000 -Subject: [PATCH 42/53] WIP: arm64: dts: meson: fixup Minix U9-H wifi - -I think the 'drop compatible' change conflicted so remove this too. - -Signed-off-by: Christian Hewitt ---- - arch/arm64/boot/dts/amlogic/meson-gxm-minix-neo-u9h.dts | 7 ------- - 1 file changed, 7 deletions(-) - -diff --git a/arch/arm64/boot/dts/amlogic/meson-gxm-minix-neo-u9h.dts b/arch/arm64/boot/dts/amlogic/meson-gxm-minix-neo-u9h.dts -index c3fb523fd18e..bed70c5c2d9c 100644 ---- a/arch/arm64/boot/dts/amlogic/meson-gxm-minix-neo-u9h.dts -+++ b/arch/arm64/boot/dts/amlogic/meson-gxm-minix-neo-u9h.dts -@@ -99,13 +99,6 @@ rtc: rtc@51 { - }; - }; - --&sd_emmc_a { -- brcmf: wifi@1 { -- reg = <1>; -- compatible = "brcm,bcm4329-fmac"; -- }; --}; -- - &sd_emmc_b { - /* experimental */ - sd-uhs-sdr12; --- -2.34.1 - diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0046-WIP-arm64-dts-meson-drop-broadcom-compatible-from-re.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0046-WIP-arm64-dts-meson-drop-broadcom-compatible-from-re.patch deleted file mode 100644 index 449369e8d7..0000000000 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0046-WIP-arm64-dts-meson-drop-broadcom-compatible-from-re.patch +++ /dev/null @@ -1,126 +0,0 @@ -From e77b259c064cd7b8c672c96834fdb1c4d2a98ff4 Mon Sep 17 00:00:00 2001 -From: Christian Hewitt -Date: Wed, 3 Jan 2024 03:14:06 +0000 -Subject: [PATCH 46/53] WIP: arm64: dts: meson: drop broadcom compatible from - reference board SDIO nodes - -Remove the Broadcom compatible to allow Android STB boards using Qualcom QCA9377 -and Realtek RTL8189ES/FS SDIO modules to also have working WiFi when booting with -the reference board device-tree(s). Also do the same to the Vega S95 dtsi as this -is commonly used in the same way. - -Signed-off-by: Christian Hewitt ---- - arch/arm64/boot/dts/amlogic/meson-gxbb-p20x.dtsi | 3 +-- - arch/arm64/boot/dts/amlogic/meson-gxbb-vega-s95.dtsi | 3 +-- - arch/arm64/boot/dts/amlogic/meson-gxl-s905d-p230.dts | 3 +-- - arch/arm64/boot/dts/amlogic/meson-gxl-s905d-p231.dts | 3 +-- - arch/arm64/boot/dts/amlogic/meson-gxl-s905x-p212.dtsi | 3 +-- - arch/arm64/boot/dts/amlogic/meson-gxm-q200.dts | 3 +-- - arch/arm64/boot/dts/amlogic/meson-gxm-q201.dts | 3 +-- - 7 files changed, 7 insertions(+), 14 deletions(-) - -diff --git a/arch/arm64/boot/dts/amlogic/meson-gxbb-p20x.dtsi b/arch/arm64/boot/dts/amlogic/meson-gxbb-p20x.dtsi -index 52d57773a77f..1736bd2e96e2 100644 ---- a/arch/arm64/boot/dts/amlogic/meson-gxbb-p20x.dtsi -+++ b/arch/arm64/boot/dts/amlogic/meson-gxbb-p20x.dtsi -@@ -178,9 +178,8 @@ &sd_emmc_a { - vmmc-supply = <&vddao_3v3>; - vqmmc-supply = <&vddio_boot>; - -- brcmf: wifi@1 { -+ sdio: wifi@1 { - reg = <1>; -- compatible = "brcm,bcm4329-fmac"; - }; - }; - -diff --git a/arch/arm64/boot/dts/amlogic/meson-gxbb-vega-s95.dtsi b/arch/arm64/boot/dts/amlogic/meson-gxbb-vega-s95.dtsi -index 255e93a0b36d..b5e8b1cbafa9 100644 ---- a/arch/arm64/boot/dts/amlogic/meson-gxbb-vega-s95.dtsi -+++ b/arch/arm64/boot/dts/amlogic/meson-gxbb-vega-s95.dtsi -@@ -251,9 +251,8 @@ &sd_emmc_a { - vmmc-supply = <&vddao_3v3>; - vqmmc-supply = <&vddio_boot>; - -- brcmf: wifi@1 { -+ sdio: wifi@1 { - reg = <1>; -- compatible = "brcm,bcm4329-fmac"; - }; - }; - -diff --git a/arch/arm64/boot/dts/amlogic/meson-gxl-s905d-p230.dts b/arch/arm64/boot/dts/amlogic/meson-gxl-s905d-p230.dts -index c1470416faad..7dffeb5931c9 100644 ---- a/arch/arm64/boot/dts/amlogic/meson-gxl-s905d-p230.dts -+++ b/arch/arm64/boot/dts/amlogic/meson-gxl-s905d-p230.dts -@@ -102,8 +102,7 @@ hdmi_tx_tmds_out: endpoint { - }; - - &sd_emmc_a { -- brcmf: wifi@1 { -+ sdio: wifi@1 { - reg = <1>; -- compatible = "brcm,bcm4329-fmac"; - }; - }; -diff --git a/arch/arm64/boot/dts/amlogic/meson-gxl-s905d-p231.dts b/arch/arm64/boot/dts/amlogic/meson-gxl-s905d-p231.dts -index 92c425d0259c..ff9145d49090 100644 ---- a/arch/arm64/boot/dts/amlogic/meson-gxl-s905d-p231.dts -+++ b/arch/arm64/boot/dts/amlogic/meson-gxl-s905d-p231.dts -@@ -21,8 +21,7 @@ ðmac { - }; - - &sd_emmc_a { -- brcmf: wifi@1 { -+ sdio: wifi@1 { - reg = <1>; -- compatible = "brcm,bcm4329-fmac"; - }; - }; -diff --git a/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-p212.dtsi b/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-p212.dtsi -index b83b38b2d9e1..c74308499786 100644 ---- a/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-p212.dtsi -+++ b/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-p212.dtsi -@@ -138,9 +138,8 @@ &sd_emmc_a { - vmmc-supply = <&vddao_3v3>; - vqmmc-supply = <&vddio_boot>; - -- brcmf: wifi@1 { -+ sdio: wifi@1 { - reg = <1>; -- compatible = "brcm,bcm4329-fmac"; - }; - }; - -diff --git a/arch/arm64/boot/dts/amlogic/meson-gxm-q200.dts b/arch/arm64/boot/dts/amlogic/meson-gxm-q200.dts -index d4858afa0e9c..feb31207773f 100644 ---- a/arch/arm64/boot/dts/amlogic/meson-gxm-q200.dts -+++ b/arch/arm64/boot/dts/amlogic/meson-gxm-q200.dts -@@ -72,8 +72,7 @@ external_phy: ethernet-phy@0 { - }; - - &sd_emmc_a { -- brcmf: wifi@1 { -+ sdio: wifi@1 { - reg = <1>; -- compatible = "brcm,bcm4329-fmac"; - }; - }; -diff --git a/arch/arm64/boot/dts/amlogic/meson-gxm-q201.dts b/arch/arm64/boot/dts/amlogic/meson-gxm-q201.dts -index d02b80d77378..6c8bec1853ac 100644 ---- a/arch/arm64/boot/dts/amlogic/meson-gxm-q201.dts -+++ b/arch/arm64/boot/dts/amlogic/meson-gxm-q201.dts -@@ -21,8 +21,7 @@ ðmac { - }; - - &sd_emmc_a { -- brcmf: wifi@1 { -+ sdio: wifi@1 { - reg = <1>; -- compatible = "brcm,bcm4329-fmac"; - }; - }; --- -2.34.1 - diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0047-WIP-dt-bindings-arm-amlogic-add-OSMC-Vero-4K.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0047-WIP-dt-bindings-arm-amlogic-add-OSMC-Vero-4K.patch deleted file mode 100644 index cfa2555cd1..0000000000 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0047-WIP-dt-bindings-arm-amlogic-add-OSMC-Vero-4K.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 642e23b3f8a96c89390eb0ff05a6e46e63f9a98f Mon Sep 17 00:00:00 2001 -From: Christian Hewitt -Date: Wed, 19 Jan 2022 02:40:20 +0000 -Subject: [PATCH 47/53] WIP: dt-bindings: arm: amlogic: add OSMC Vero 4K - -Add support for the OSMC Vero 4K - -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 922380d6139e..73598f7992fd 100644 ---- a/Documentation/devicetree/bindings/arm/amlogic.yaml -+++ b/Documentation/devicetree/bindings/arm/amlogic.yaml -@@ -99,6 +99,7 @@ properties: - - libretech,aml-s905x-cc - - libretech,aml-s905x-cc-v2 - - nexbox,a95x -+ - osmc,vero4k - - const: amlogic,s905x - - const: amlogic,meson-gxl - --- -2.34.1 - diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0048-WIP-arm64-dts-meson-add-support-for-OSMC-Vero-4K.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0048-WIP-arm64-dts-meson-add-support-for-OSMC-Vero-4K.patch deleted file mode 100644 index 6dec1cb957..0000000000 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0048-WIP-arm64-dts-meson-add-support-for-OSMC-Vero-4K.patch +++ /dev/null @@ -1,259 +0,0 @@ -From e4062d9479c72b37e7093a424f969829018d5a48 Mon Sep 17 00:00:00 2001 -From: Christian Hewitt -Date: Wed, 19 Jan 2022 04:06:17 +0000 -Subject: [PATCH 48/53] WIP: arm64: dts: meson: add support for OSMC Vero 4K - -The OSMC Vero 4K device is based on the Amlogic S905X (P212) reference -design with the following specifications: - -- 2GB DDR4 RAM -- 16GB eMMC -- HDMI 2.1 video -- S/PDIF optical output -- AV output -- 10/100 Ethernet -- AP6255 Wireless (802.11 a/b/g/n/ac, BT 4.2) -- 2x USB 2.0 ports (1x OTG) -- IR receiver (internal) -- IR extender port (external) -- 1x micro SD card slot -- 1x Power LED (red) -- 1x Reset button (in AV jack) - -Signed-off-by: Christian Hewitt ---- - arch/arm64/boot/dts/amlogic/Makefile | 8 + - .../dts/amlogic/meson-gxl-s905x-vero4k.dts | 202 ++++++++++++++++++ - 2 files changed, 210 insertions(+) - create mode 100644 arch/arm64/boot/dts/amlogic/meson-gxl-s905x-vero4k.dts - -diff --git a/arch/arm64/boot/dts/amlogic/Makefile b/arch/arm64/boot/dts/amlogic/Makefile -index edb22c57f11d..936cd1989463 100644 ---- a/arch/arm64/boot/dts/amlogic/Makefile -+++ b/arch/arm64/boot/dts/amlogic/Makefile -@@ -49,6 +49,14 @@ dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905d-p231.dtb - dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905d-phicomm-n1.dtb - dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905d-sml5442tw.dtb - dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905d-vero4k-plus.dtb -+dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905l-p271.dtb -+dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905x-hwacom-amazetv.dtb -+dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905x-khadas-vim.dtb -+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 -+dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905x-vero4k.dtb - dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905w-jethome-jethub-j80.dtb - dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905w-p281.dtb - dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905w-tx3-mini.dtb -diff --git a/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-vero4k.dts b/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-vero4k.dts -new file mode 100644 -index 000000000000..a2be35d63c96 ---- /dev/null -+++ b/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-vero4k.dts -@@ -0,0 +1,202 @@ -+// SPDX-License-Identifier: (GPL-2.0+ OR MIT) -+/* -+ * Copyright (c) 2024 Christian Hewitt -+ */ -+ -+/dts-v1/; -+ -+#include "meson-gxl-s905x-p212.dtsi" -+#include -+#include -+#include -+ -+/ { -+ compatible = "osmc,vero4k", "amlogic,s905x", "amlogic,meson-gxl"; -+ model = "OSMC Vero 4K"; -+ -+ reserved-memory { -+ /* 32 MiB reserved for ARM Trusted Firmware (BL32) */ -+ secmon_reserved_bl32: secmon@5300000 { -+ reg = <0x0 0x05300000 0x0 0x2000000>; -+ no-map; -+ }; -+ }; -+ -+ gpio-keys-polled { -+ compatible = "gpio-keys-polled"; -+ #address-cells = <1>; -+ #size-cells = <0>; -+ poll-interval = <20>; -+ -+ button@0 { -+ label = "power"; -+ linux,code = ; -+ gpios = <&gpio_ao GPIOAO_2 GPIO_ACTIVE_HIGH>; -+ }; -+ }; -+ -+ leds { -+ compatible = "gpio-leds"; -+ -+ led-standby { -+ color = ; -+ function = LED_FUNCTION_POWER; -+ gpios = <&gpio GPIODV_24 GPIO_ACTIVE_LOW>; -+ default-state = "off"; -+ panic-indicator; -+ }; -+ }; -+ -+ dio2133: analog-amplifier { -+ compatible = "simple-audio-amplifier"; -+ sound-name-prefix = "AU2"; -+ VCC-supply = <&hdmi_5v>; -+ enable-gpios = <&gpio GPIOH_5 GPIO_ACTIVE_HIGH>; -+ }; -+ -+ spdif_dit: audio-codec-0 { -+ #sound-dai-cells = <0>; -+ compatible = "linux,spdif-dit"; -+ sound-name-prefix = "DIT"; -+ }; -+ -+ cvbs-connector { -+ 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>; -+ }; -+ }; -+ }; -+ -+ sound { -+ compatible = "amlogic,gx-sound-card"; -+ model = "VERO4K"; -+ audio-aux-devs = <&dio2133>; -+ audio-widgets = "Line", "Lineout"; -+ audio-routing = "AU2 INL", "ACODEC LOLP", -+ "AU2 INR", "ACODEC LORP", -+ "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_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>; -+ }; -+ -+ codec-1 { -+ sound-dai = <&aiu AIU_ACODEC 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>; -+ }; -+ }; -+ -+ dai-link-5 { -+ sound-dai = <&aiu AIU_ACODEC CTRL_OUT>; -+ -+ codec-0 { -+ sound-dai = <&acodec>; -+ }; -+ }; -+ }; -+}; -+ -+&acodec { -+ AVDD-supply = <&vddio_ao18>; -+ status = "okay"; -+}; -+ -+&aiu { -+ status = "okay"; -+ pinctrl-0 = <&spdif_out_h_pins>; -+ pinctrl-names = "default"; -+}; -+ -+&cec_AO { -+ status = "okay"; -+ pinctrl-0 = <&ao_cec_pins>; -+ pinctrl-names = "default"; -+ hdmi-phandle = <&hdmi_tx>; -+}; -+ -+&cvbs_vdac_port { -+ cvbs_vdac_out: endpoint { -+ remote-endpoint = <&cvbs_connector_in>; -+ }; -+}; -+ -+ðmac { -+ phy-mode = "rmii"; -+ phy-handle = <&internal_phy>; -+}; -+ -+&hdmi_tx { -+ status = "okay"; -+ pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>; -+ pinctrl-names = "default"; -+ hdmi-supply = <&hdmi_5v>; -+}; -+ -+&hdmi_tx_tmds_port { -+ hdmi_tx_tmds_out: endpoint { -+ remote-endpoint = <&hdmi_connector_in>; -+ }; -+}; -+ -+&internal_phy { -+ pinctrl-0 = <ð_link_led_pins>, <ð_act_led_pins>; -+ pinctrl-names = "default"; -+}; -+ -+/* This UART is brought out to the DB9 connector */ -+&uart_AO { -+ status = "okay"; -+}; --- -2.34.1 - diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0049-WIP-dt-bindings-arm-amlogic-add-S905L-and-p271-refer.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0049-WIP-dt-bindings-arm-amlogic-add-S905L-and-p271-refer.patch deleted file mode 100644 index 7a84ad883e..0000000000 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0049-WIP-dt-bindings-arm-amlogic-add-S905L-and-p271-refer.patch +++ /dev/null @@ -1,36 +0,0 @@ -From 1d5c42d5f84a1b022365b4ae00c3c6325a4b8f16 Mon Sep 17 00:00:00 2001 -From: Christian Hewitt -Date: Mon, 1 Jan 2024 07:13:19 +0000 -Subject: [PATCH 49/53] WIP: dt-bindings: arm: amlogic: add S905L and p271 - reference board - -Add bindings for the Amlogic S905L SoC and reference design board. S905L is similar -to P281 (S905W) and derived from P212 (S905X) but with silicon differences to omit -VP9 codec support and using a Mali 450-MP2 (not MP3). - -Signed-off-by: Christian Hewitt ---- - Documentation/devicetree/bindings/arm/amlogic.yaml | 7 +++++++ - 1 file changed, 7 insertions(+) - -diff --git a/Documentation/devicetree/bindings/arm/amlogic.yaml b/Documentation/devicetree/bindings/arm/amlogic.yaml -index 73598f7992fd..515d58587f7c 100644 ---- a/Documentation/devicetree/bindings/arm/amlogic.yaml -+++ b/Documentation/devicetree/bindings/arm/amlogic.yaml -@@ -81,6 +81,13 @@ properties: - - const: amlogic,s805x - - const: amlogic,meson-gxl - -+ - description: Boards with the Amlogic Meson GXL S905L SoC -+ items: -+ - enum: -+ - amlogic,p271 -+ - const: amlogic,s905l -+ - const: amlogic,meson-gxl -+ - - description: Boards with the Amlogic Meson GXL S905W SoC - items: - - enum: --- -2.34.1 - diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0050-WIP-soc-amlogic-meson-gx-socinfo-Add-S905L-ID.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0050-WIP-soc-amlogic-meson-gx-socinfo-Add-S905L-ID.patch deleted file mode 100644 index 4d95643b89..0000000000 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0050-WIP-soc-amlogic-meson-gx-socinfo-Add-S905L-ID.patch +++ /dev/null @@ -1,29 +0,0 @@ -From f5ab209b7240f1251e100f9e7919f165bdb26f96 Mon Sep 17 00:00:00 2001 -From: Christian Hewitt -Date: Mon, 1 Jan 2024 07:48:39 +0000 -Subject: [PATCH 50/53] WIP: soc: amlogic: meson-gx-socinfo: Add S905L ID - -Add the S905L SoC id observed in several P271 boards: - -LibreELEC kernel: soc soc0: Amlogic Meson GXLX (S905L) Revision 26:a (c1: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 6abb730344ab..7e255acf5430 100644 ---- a/drivers/soc/amlogic/meson-gx-socinfo.c -+++ b/drivers/soc/amlogic/meson-gx-socinfo.c -@@ -64,6 +64,7 @@ static const struct meson_gx_package_id { - { "962E", 0x24, 0x20, 0xf0 }, - { "A113X", 0x25, 0x37, 0xff }, - { "A113D", 0x25, 0x22, 0xff }, -+ { "S905L", 0x26, 0, 0x0 }, - { "S905D2", 0x28, 0x10, 0xf0 }, - { "S905Y2", 0x28, 0x30, 0xf0 }, - { "S905X2", 0x28, 0x40, 0xf0 }, --- -2.34.1 - diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0051-WIP-dt-bindings-iio-adc-amlogic-meson-saradc-Add-GXL.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0051-WIP-dt-bindings-iio-adc-amlogic-meson-saradc-Add-GXL.patch deleted file mode 100644 index 4ed165f218..0000000000 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0051-WIP-dt-bindings-iio-adc-amlogic-meson-saradc-Add-GXL.patch +++ /dev/null @@ -1,30 +0,0 @@ -From b2cbf810a3310389b2691797e487396aa1f621da Mon Sep 17 00:00:00 2001 -From: Martin Blumenstingl -Date: Sat, 23 Mar 2024 20:38:59 +0100 -Subject: [PATCH 51/53] WIP: dt-bindings: iio: adc: amlogic,meson-saradc: Add - GXLX SoC compatible - -Add a compatible string for the GXLX SoC. It's very similar to GXL but -has three additional bits in MESON_SAR_ADC_REG12 for the three MPLL -clocks. - -Signed-off-by: Martin Blumenstingl ---- - .../devicetree/bindings/iio/adc/amlogic,meson-saradc.yaml | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/Documentation/devicetree/bindings/iio/adc/amlogic,meson-saradc.yaml b/Documentation/devicetree/bindings/iio/adc/amlogic,meson-saradc.yaml -index 7e8328e9ce13..b2fef72267b4 100644 ---- a/Documentation/devicetree/bindings/iio/adc/amlogic,meson-saradc.yaml -+++ b/Documentation/devicetree/bindings/iio/adc/amlogic,meson-saradc.yaml -@@ -23,6 +23,7 @@ properties: - - amlogic,meson8m2-saradc - - amlogic,meson-gxbb-saradc - - amlogic,meson-gxl-saradc -+ - amlogic,meson-gxlx-saradc - - amlogic,meson-gxm-saradc - - amlogic,meson-axg-saradc - - amlogic,meson-g12a-saradc --- -2.34.1 - diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0052-WIP-iio-adc-meson-add-support-for-the-GXLX-SoC.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0052-WIP-iio-adc-meson-add-support-for-the-GXLX-SoC.patch deleted file mode 100644 index 3e79ff315e..0000000000 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0052-WIP-iio-adc-meson-add-support-for-the-GXLX-SoC.patch +++ /dev/null @@ -1,97 +0,0 @@ -From a3fe76499d3b186e1b964cc24fe49afc0c12eca7 Mon Sep 17 00:00:00 2001 -From: Martin Blumenstingl -Date: Sat, 23 Mar 2024 20:44:41 +0100 -Subject: [PATCH 52/53] WIP: iio: adc: meson: add support for the GXLX SoC - -The SARADC IP on the GXLX SoC itself is identical to the one found on -GXL SoCs. However, GXLX SoCs require poking the first three bits in the -MESON_SAR_ADC_REG12 register to get the three MPLL clocks (used as clock -generators for the audio frequencies) to work. - -WiP: the purpose of these three bits needs to be clarified - -Signed-off-by: Martin Blumenstingl ---- - drivers/iio/adc/meson_saradc.c | 31 +++++++++++++++++++++++++++++++ - 1 file changed, 31 insertions(+) - -diff --git a/drivers/iio/adc/meson_saradc.c b/drivers/iio/adc/meson_saradc.c -index 8c1e542c0ab7..6ad1a6f33f7d 100644 ---- a/drivers/iio/adc/meson_saradc.c -+++ b/drivers/iio/adc/meson_saradc.c -@@ -160,6 +160,11 @@ - #define MESON_SAR_ADC_REG11_EOC BIT(1) - #define MESON_SAR_ADC_REG11_VREF_SEL BIT(0) - -+#define MESON_SAR_ADC_REG12 0x30 -+ #define MESON_SAR_ADC_REG12_MPLL0_UNKNOWN BIT(0) -+ #define MESON_SAR_ADC_REG12_MPLL1_UNKNOWN BIT(1) -+ #define MESON_SAR_ADC_REG12_MPLL2_UNKNOWN BIT(2) -+ - #define MESON_SAR_ADC_REG13 0x34 - #define MESON_SAR_ADC_REG13_12BIT_CALIBRATION_MASK GENMASK(13, 8) - -@@ -329,6 +334,7 @@ struct meson_sar_adc_param { - bool has_vref_select; - bool cmv_select; - bool adc_eoc; -+ bool mpll_clock_bits; - enum meson_sar_adc_vref_sel vref_select; - enum meson_sar_adc_vref_voltage vref_voltage; - }; -@@ -1013,6 +1019,12 @@ static int meson_sar_adc_init(struct iio_dev *indio_dev) - regval = priv->param->cmv_select ? MESON_SAR_ADC_REG11_CMV_SEL : 0; - regmap_update_bits(priv->regmap, MESON_SAR_ADC_REG11, - MESON_SAR_ADC_REG11_CMV_SEL, regval); -+ -+ if (priv->param->mpll_clock_bits) -+ regmap_write(priv->regmap, MESON_SAR_ADC_REG12, -+ MESON_SAR_ADC_REG12_MPLL0_UNKNOWN | -+ MESON_SAR_ADC_REG12_MPLL1_UNKNOWN | -+ MESON_SAR_ADC_REG12_MPLL2_UNKNOWN); - } - - ret = clk_set_parent(priv->adc_sel_clk, priv->clkin); -@@ -1238,6 +1250,17 @@ static const struct meson_sar_adc_param meson_sar_adc_gxl_param = { - .cmv_select = true, - }; - -+static const struct meson_sar_adc_param meson_sar_adc_gxlx_param = { -+ .has_bl30_integration = true, -+ .clock_rate = 1200000, -+ .regmap_config = &meson_sar_adc_regmap_config_gxbb, -+ .resolution = 12, -+ .disable_ring_counter = 1, -+ .vref_voltage = VREF_VOLTAGE_1V8, -+ .cmv_select = true, -+ .mpll_clock_bits = true, -+}; -+ - static const struct meson_sar_adc_param meson_sar_adc_axg_param = { - .has_bl30_integration = true, - .clock_rate = 1200000, -@@ -1287,6 +1310,11 @@ static const struct meson_sar_adc_data meson_sar_adc_gxl_data = { - .name = "meson-gxl-saradc", - }; - -+static const struct meson_sar_adc_data meson_sar_adc_gxlx_data = { -+ .param = &meson_sar_adc_gxlx_param, -+ .name = "meson-gxlx-saradc", -+}; -+ - static const struct meson_sar_adc_data meson_sar_adc_gxm_data = { - .param = &meson_sar_adc_gxl_param, - .name = "meson-gxm-saradc", -@@ -1318,6 +1346,9 @@ static const struct of_device_id meson_sar_adc_of_match[] = { - }, { - .compatible = "amlogic,meson-gxl-saradc", - .data = &meson_sar_adc_gxl_data, -+ }, { -+ .compatible = "amlogic,meson-gxlx-saradc", -+ .data = &meson_sar_adc_gxlx_data, - }, { - .compatible = "amlogic,meson-gxm-saradc", - .data = &meson_sar_adc_gxm_data, --- -2.34.1 - diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0053-WIP-arm64-dts-meson-add-p271-support.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0053-WIP-arm64-dts-meson-add-p271-support.patch deleted file mode 100644 index a41d087366..0000000000 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0053-WIP-arm64-dts-meson-add-p271-support.patch +++ /dev/null @@ -1,73 +0,0 @@ -From 75671e34bec14c140e4e81ae742de16b2a29d174 Mon Sep 17 00:00:00 2001 -From: Christian Hewitt -Date: Mon, 1 Jan 2024 07:40:15 +0000 -Subject: [PATCH 53/53] WIP: arm64: dts: meson: add p271 support - -Add a device-tree for the Amlogic P271 (S905L) reference design board. This is -similar to the P212 (S905X) but with silicon differences to omit the VP9 codec -and use Mali 450-MP2 not MP3. The SoC is marked with S905L and a "2" (believed -to denote the MP2) and is sometimes wrongly described on some distributor stock -lists (and box vendor marketing) as an S905L2 chip. - -Signed-off-by: Christian Hewitt ---- - .../boot/dts/amlogic/meson-gxl-s905l-p271.dts | 47 +++++++++++++++++++ - 1 file changed, 47 insertions(+) - create mode 100644 arch/arm64/boot/dts/amlogic/meson-gxl-s905l-p271.dts - -diff --git a/arch/arm64/boot/dts/amlogic/meson-gxl-s905l-p271.dts b/arch/arm64/boot/dts/amlogic/meson-gxl-s905l-p271.dts -new file mode 100644 -index 000000000000..a902e4af7c15 ---- /dev/null -+++ b/arch/arm64/boot/dts/amlogic/meson-gxl-s905l-p271.dts -@@ -0,0 +1,47 @@ -+// SPDX-License-Identifier: (GPL-2.0+ OR MIT) -+/* -+ * Copyright (c) 2024 Christian Hewitt -+ */ -+ -+/dts-v1/; -+ -+#include "meson-gxl-s905x.dtsi" -+#include "meson-gx-p23x-q20x.dtsi" -+ -+/ { -+ compatible = "amlogic,p271", "amlogic,s905l", "amlogic,meson-gxl"; -+ model = "Amlogic Meson GXLX (S905L) P271 Development Board"; -+ -+ memory@0 { -+ device_type = "memory"; -+ reg = <0x0 0x0 0x0 0x40000000>; -+ }; -+ -+ sound { -+ model = "P271"; -+ }; -+}; -+ -+&apb { -+ mali: gpu@c0000 { -+ /* Mali 450-MP2 */ -+ interrupts = , -+ , -+ , -+ , -+ , -+ , -+ , -+ ; -+ interrupt-names = "gp", "gpmmu", "pp", "pmu", -+ "pp0", "ppmmu0", "pp1", "ppmmu1"; -+ }; -+}; -+ -+&saradc { -+ compatible = "amlogic,meson-gxlx-saradc", "amlogic,meson-saradc"; -+}; -+ -+&usb { -+ dr_mode = "host"; -+}; --- -2.34.1 - diff --git a/projects/Amlogic/linux/linux.aarch64.conf b/projects/Amlogic/linux/linux.aarch64.conf index fc3f856ff3..7248a88281 100644 --- a/projects/Amlogic/linux/linux.aarch64.conf +++ b/projects/Amlogic/linux/linux.aarch64.conf @@ -1,23 +1,27 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/arm64 6.8.0 Kernel Configuration +# Linux/arm64 6.16.0-rc3 Kernel Configuration # -CONFIG_CC_VERSION_TEXT="aarch64-libreelec-linux-gnu-gcc-13.2.0 (GCC) 13.2.0" +CONFIG_CC_VERSION_TEXT="aarch64-libreelec-linux-gnu-gcc-15.1.0 (GCC) 15.1.0" CONFIG_CC_IS_GCC=y -CONFIG_GCC_VERSION=130200 +CONFIG_GCC_VERSION=150100 CONFIG_CLANG_VERSION=0 CONFIG_AS_IS_GNU=y -CONFIG_AS_VERSION=24100 +CONFIG_AS_VERSION=24400 CONFIG_LD_IS_BFD=y -CONFIG_LD_VERSION=24100 +CONFIG_LD_VERSION=24400 CONFIG_LLD_VERSION=0 +CONFIG_RUSTC_VERSION=0 +CONFIG_RUSTC_LLVM_VERSION=0 CONFIG_CC_CAN_LINK=y -CONFIG_CC_CAN_LINK_STATIC=y CONFIG_CC_HAS_ASM_GOTO_OUTPUT=y CONFIG_CC_HAS_ASM_GOTO_TIED_OUTPUT=y -CONFIG_GCC_ASM_GOTO_OUTPUT_WORKAROUND=y +CONFIG_TOOLS_SUPPORT_RELR=y CONFIG_CC_HAS_ASM_INLINE=y CONFIG_CC_HAS_NO_PROFILE_FN_ATTR=y +CONFIG_CC_HAS_COUNTED_BY=y +CONFIG_CC_HAS_MULTIDIMENSIONAL_NONSTRING=y +CONFIG_LD_CAN_USE_KEEP_IN_OVERLAY=y CONFIG_PAHOLE_VERSION=0 CONFIG_IRQ_WORK=y CONFIG_BUILDTIME_TABLE_SORT=y @@ -41,7 +45,6 @@ CONFIG_POSIX_MQUEUE=y CONFIG_POSIX_MQUEUE_SYSCTL=y # CONFIG_WATCH_QUEUE is not set CONFIG_CROSS_MEMORY_ATTACH=y -# CONFIG_USELIB is not set # CONFIG_AUDIT is not set CONFIG_HAVE_ARCH_AUDITSYSCALL=y @@ -62,6 +65,7 @@ CONFIG_IRQ_MSI_IOMMU=y CONFIG_IRQ_FORCED_THREADING=y CONFIG_SPARSE_IRQ=y # CONFIG_GENERIC_IRQ_DEBUGFS is not set +CONFIG_GENERIC_IRQ_KEXEC_CLEAR_VM_FORWARD=y # end of IRQ subsystem CONFIG_GENERIC_TIME_VSYSCALL=y @@ -98,14 +102,14 @@ CONFIG_BPF_SYSCALL=y # CONFIG_BPF_PRELOAD is not set # end of BPF subsystem -CONFIG_PREEMPT_BUILD=y +CONFIG_PREEMPT_VOLUNTARY_BUILD=y +CONFIG_ARCH_HAS_PREEMPT_LAZY=y # CONFIG_PREEMPT_NONE is not set -# CONFIG_PREEMPT_VOLUNTARY is not set -CONFIG_PREEMPT=y -CONFIG_PREEMPT_COUNT=y -CONFIG_PREEMPTION=y +CONFIG_PREEMPT_VOLUNTARY=y +# CONFIG_PREEMPT is not set +# CONFIG_PREEMPT_LAZY is not set +# CONFIG_PREEMPT_RT is not set # CONFIG_PREEMPT_DYNAMIC is not set -# CONFIG_SCHED_CORE is not set # # CPU/Task time and stats accounting @@ -125,11 +129,10 @@ CONFIG_CPU_ISOLATION=y # RCU Subsystem # CONFIG_TREE_RCU=y -CONFIG_PREEMPT_RCU=y # CONFIG_RCU_EXPERT is not set CONFIG_TREE_SRCU=y CONFIG_TASKS_RCU_GENERIC=y -CONFIG_TASKS_RCU=y +CONFIG_NEED_TASKS_RCU=y CONFIG_TASKS_TRACE_RCU=y CONFIG_RCU_STALL_COMMON=y CONFIG_RCU_NEED_SEGCBLIST=y @@ -157,23 +160,26 @@ CONFIG_CC_NO_ARRAY_BOUNDS=y CONFIG_GCC_NO_STRINGOP_OVERFLOW=y CONFIG_CC_NO_STRINGOP_OVERFLOW=y CONFIG_ARCH_SUPPORTS_INT128=y +CONFIG_SLAB_OBJ_EXT=y CONFIG_CGROUPS=y CONFIG_PAGE_COUNTER=y # CONFIG_CGROUP_FAVOR_DYNMODS is not set CONFIG_MEMCG=y -CONFIG_MEMCG_KMEM=y +# CONFIG_MEMCG_V1 is not set CONFIG_BLK_CGROUP=y CONFIG_CGROUP_WRITEBACK=y CONFIG_CGROUP_SCHED=y +CONFIG_GROUP_SCHED_WEIGHT=y CONFIG_FAIR_GROUP_SCHED=y CONFIG_CFS_BANDWIDTH=y # CONFIG_RT_GROUP_SCHED is not set CONFIG_SCHED_MM_CID=y CONFIG_CGROUP_PIDS=y CONFIG_CGROUP_RDMA=y +# CONFIG_CGROUP_DMEM is not set CONFIG_CGROUP_FREEZER=y CONFIG_CPUSETS=y -CONFIG_PROC_PID_CPUSET=y +# CONFIG_CPUSETS_V1 is not set CONFIG_CGROUP_DEVICE=y CONFIG_CGROUP_CPUACCT=y CONFIG_CGROUP_PERF=y @@ -185,7 +191,7 @@ CONFIG_NAMESPACES=y CONFIG_UTS_NS=y CONFIG_TIME_NS=y CONFIG_IPC_NS=y -# CONFIG_USER_NS is not set +CONFIG_USER_NS=y CONFIG_PID_NS=y CONFIG_NET_NS=y # CONFIG_CHECKPOINT_RESTORE is not set @@ -214,19 +220,20 @@ CONFIG_LD_ORPHAN_WARN_LEVEL="warn" CONFIG_SYSCTL=y CONFIG_HAVE_UID16=y CONFIG_SYSCTL_EXCEPTION_TRACE=y +CONFIG_SYSFS_SYSCALL=y CONFIG_EXPERT=y CONFIG_UID16=y CONFIG_MULTIUSER=y CONFIG_SGETMASK_SYSCALL=y -CONFIG_SYSFS_SYSCALL=y CONFIG_FHANDLE=y CONFIG_POSIX_TIMERS=y CONFIG_PRINTK=y CONFIG_BUG=y CONFIG_ELF_CORE=y -CONFIG_BASE_FULL=y +# CONFIG_BASE_SMALL is not set CONFIG_FUTEX=y CONFIG_FUTEX_PI=y +CONFIG_FUTEX_PRIVATE_HASH=y CONFIG_EPOLL=y CONFIG_SIGNALFD=y CONFIG_TIMERFD=y @@ -244,8 +251,8 @@ CONFIG_CACHESTAT_SYSCALL=y CONFIG_KALLSYMS=y # CONFIG_KALLSYMS_SELFTEST is not set CONFIG_KALLSYMS_ALL=y -CONFIG_KALLSYMS_BASE_RELATIVE=y CONFIG_ARCH_HAS_MEMBARRIER_SYNC_CORE=y +CONFIG_ARCH_SUPPORTS_MSEAL_SYSTEM_MAPPINGS=y CONFIG_HAVE_PERF_EVENTS=y # @@ -263,15 +270,15 @@ CONFIG_PROFILING=y # # CONFIG_KEXEC is not set # CONFIG_KEXEC_FILE is not set -# CONFIG_CRASH_DUMP is not set +# CONFIG_KEXEC_HANDOVER is not set # end of Kexec and crash features # end of General setup CONFIG_ARM64=y +CONFIG_RUSTC_SUPPORTS_ARM64=y CONFIG_GCC_SUPPORTS_DYNAMIC_FTRACE_WITH_ARGS=y CONFIG_64BIT=y CONFIG_MMU=y -CONFIG_ARM64_PAGE_SHIFT=12 CONFIG_ARM64_CONT_PTE_SHIFT=4 CONFIG_ARM64_CONT_PMD_SHIFT=4 CONFIG_ARCH_MMAP_RND_BITS_MIN=18 @@ -298,12 +305,14 @@ CONFIG_BUILTIN_RETURN_ADDRESS_STRIPS_PAC=y # Platform selection # # CONFIG_ARCH_ACTIONS is not set +# CONFIG_ARCH_AIROHA is not set # CONFIG_ARCH_SUNXI is not set # CONFIG_ARCH_ALPINE is not set # CONFIG_ARCH_APPLE is not set # CONFIG_ARCH_BCM is not set # CONFIG_ARCH_BERLIN is not set # CONFIG_ARCH_BITMAIN is not set +# CONFIG_ARCH_BLAIZE is not set # CONFIG_ARCH_EXYNOS is not set # CONFIG_ARCH_SPARX5 is not set # CONFIG_ARCH_K3 is not set @@ -343,41 +352,39 @@ CONFIG_ARCH_MESON=y # # ARM errata workarounds via the alternatives framework # -CONFIG_AMPERE_ERRATUM_AC03_CPU_38=y +# CONFIG_AMPERE_ERRATUM_AC03_CPU_38 is not set +# CONFIG_AMPERE_ERRATUM_AC04_CPU_23 is not set CONFIG_ARM64_WORKAROUND_CLEAN_CACHE=y CONFIG_ARM64_ERRATUM_826319=y CONFIG_ARM64_ERRATUM_827319=y CONFIG_ARM64_ERRATUM_824069=y CONFIG_ARM64_ERRATUM_819472=y -CONFIG_ARM64_ERRATUM_832075=y -CONFIG_ARM64_ERRATUM_1742098=y +# CONFIG_ARM64_ERRATUM_832075 is not set +# CONFIG_ARM64_ERRATUM_1742098 is not set CONFIG_ARM64_ERRATUM_845719=y CONFIG_ARM64_ERRATUM_843419=y -CONFIG_ARM64_LD_HAS_FIX_ERRATUM_843419=y CONFIG_ARM64_ERRATUM_1024718=y CONFIG_ARM64_ERRATUM_1418040=y CONFIG_ARM64_WORKAROUND_SPECULATIVE_AT=y CONFIG_ARM64_ERRATUM_1165522=y -CONFIG_ARM64_ERRATUM_1319367=y +# CONFIG_ARM64_ERRATUM_1319367 is not set CONFIG_ARM64_ERRATUM_1530923=y CONFIG_ARM64_WORKAROUND_REPEAT_TLBI=y CONFIG_ARM64_ERRATUM_2441007=y CONFIG_ARM64_ERRATUM_1286807=y CONFIG_ARM64_ERRATUM_1463225=y -CONFIG_ARM64_ERRATUM_1542419=y -CONFIG_ARM64_ERRATUM_1508412=y -CONFIG_ARM64_ERRATUM_2051678=y +# CONFIG_ARM64_ERRATUM_1542419 is not set +# CONFIG_ARM64_ERRATUM_1508412 is not set +# CONFIG_ARM64_ERRATUM_2051678 is not set # CONFIG_ARM64_ERRATUM_2077057 is not set -CONFIG_ARM64_ERRATUM_2658417=y -CONFIG_ARM64_WORKAROUND_TSB_FLUSH_FAILURE=y -CONFIG_ARM64_ERRATUM_2054223=y -CONFIG_ARM64_ERRATUM_2067961=y -CONFIG_ARM64_ERRATUM_2441009=y -CONFIG_ARM64_ERRATUM_2457168=y -CONFIG_ARM64_ERRATUM_2645198=y -CONFIG_ARM64_WORKAROUND_SPECULATIVE_UNPRIV_LOAD=y -CONFIG_ARM64_ERRATUM_2966298=y -CONFIG_ARM64_ERRATUM_3117295=y +# CONFIG_ARM64_ERRATUM_2658417 is not set +# CONFIG_ARM64_ERRATUM_2054223 is not set +# CONFIG_ARM64_ERRATUM_2067961 is not set +# CONFIG_ARM64_ERRATUM_2441009 is not set +# CONFIG_ARM64_ERRATUM_2645198 is not set +# CONFIG_ARM64_ERRATUM_2966298 is not set +# CONFIG_ARM64_ERRATUM_3117295 is not set +CONFIG_ARM64_ERRATUM_3194386=y # CONFIG_CAVIUM_ERRATUM_22375 is not set # CONFIG_CAVIUM_ERRATUM_23154 is not set # CONFIG_CAVIUM_ERRATUM_27456 is not set @@ -385,11 +392,13 @@ CONFIG_ARM64_ERRATUM_3117295=y # CONFIG_CAVIUM_TX2_ERRATUM_219 is not set # CONFIG_FUJITSU_ERRATUM_010001 is not set # CONFIG_HISILICON_ERRATUM_161600802 is not set +# CONFIG_HISILICON_ERRATUM_162100801 is not set # CONFIG_QCOM_FALKOR_ERRATUM_1003 is not set # CONFIG_QCOM_FALKOR_ERRATUM_1009 is not set # CONFIG_QCOM_QDF2400_ERRATUM_0065 is not set # CONFIG_QCOM_FALKOR_ERRATUM_E1041 is not set # CONFIG_NVIDIA_CARMEL_CNP_ERRATUM is not set +# CONFIG_ROCKCHIP_ERRATUM_3568002 is not set # CONFIG_ROCKCHIP_ERRATUM_3588001 is not set # CONFIG_SOCIONEXT_SYNQUACER_PREITS is not set # end of ARM errata workarounds via the alternatives framework @@ -399,6 +408,7 @@ CONFIG_ARM64_4K_PAGES=y # CONFIG_ARM64_64K_PAGES is not set # CONFIG_ARM64_VA_BITS_39 is not set CONFIG_ARM64_VA_BITS_48=y +# CONFIG_ARM64_VA_BITS_52 is not set CONFIG_ARM64_VA_BITS=48 CONFIG_ARM64_PA_BITS_48=y CONFIG_ARM64_PA_BITS=48 @@ -406,15 +416,15 @@ CONFIG_ARM64_PA_BITS=48 CONFIG_CPU_LITTLE_ENDIAN=y CONFIG_SCHED_MC=y # CONFIG_SCHED_CLUSTER is not set -CONFIG_SCHED_SMT=y +# CONFIG_SCHED_SMT is not set CONFIG_NR_CPUS=8 CONFIG_HOTPLUG_CPU=y # CONFIG_NUMA is not set # CONFIG_HZ_100 is not set -CONFIG_HZ_250=y -# CONFIG_HZ_300 is not set +# CONFIG_HZ_250 is not set +CONFIG_HZ_300=y # CONFIG_HZ_1000 is not set -CONFIG_HZ=250 +CONFIG_HZ=300 CONFIG_SCHED_HRTICK=y CONFIG_ARCH_SPARSEMEM_ENABLE=y CONFIG_CC_HAVE_SHADOW_CALL_STACK=y @@ -425,7 +435,9 @@ CONFIG_ARCH_SUPPORTS_KEXEC_FILE=y CONFIG_ARCH_SUPPORTS_KEXEC_SIG=y CONFIG_ARCH_SUPPORTS_KEXEC_IMAGE_VERIFY_SIG=y CONFIG_ARCH_DEFAULT_KEXEC_IMAGE_VERIFY_SIG=y +CONFIG_ARCH_SUPPORTS_KEXEC_HANDOVER=y CONFIG_ARCH_SUPPORTS_CRASH_DUMP=y +CONFIG_ARCH_DEFAULT_CRASH_DUMP=y # CONFIG_XEN is not set CONFIG_ARCH_FORCE_MAX_ORDER=10 CONFIG_UNMAP_KERNEL_AT_EL0=y @@ -446,7 +458,6 @@ CONFIG_ARMV8_DEPRECATED=y # CONFIG_ARM64_HW_AFDBM=y CONFIG_ARM64_PAN=y -CONFIG_AS_HAS_LSE_ATOMICS=y CONFIG_ARM64_LSE_ATOMICS=y CONFIG_ARM64_USE_LSE_ATOMICS=y # end of ARMv8.1 architectural features @@ -454,8 +465,6 @@ CONFIG_ARM64_USE_LSE_ATOMICS=y # # ARMv8.2 architectural features # -CONFIG_AS_HAS_ARMV8_2=y -CONFIG_AS_HAS_SHA3=y # CONFIG_ARM64_PMEM is not set CONFIG_ARM64_RAS_EXTN=y CONFIG_ARM64_CNP=y @@ -464,40 +473,51 @@ CONFIG_ARM64_CNP=y # # ARMv8.3 architectural features # -CONFIG_ARM64_PTR_AUTH=y -CONFIG_ARM64_PTR_AUTH_KERNEL=y +# CONFIG_ARM64_PTR_AUTH is not set CONFIG_CC_HAS_BRANCH_PROT_PAC_RET=y -CONFIG_CC_HAS_SIGN_RETURN_ADDRESS=y -CONFIG_AS_HAS_ARMV8_3=y CONFIG_AS_HAS_CFI_NEGATE_RA_STATE=y -CONFIG_AS_HAS_LDAPR=y # end of ARMv8.3 architectural features # # ARMv8.4 architectural features # -CONFIG_ARM64_AMU_EXTN=y -CONFIG_AS_HAS_ARMV8_4=y -CONFIG_ARM64_TLB_RANGE=y +# CONFIG_ARM64_AMU_EXTN is not set +# CONFIG_ARM64_TLB_RANGE is not set # end of ARMv8.4 architectural features # # ARMv8.5 architectural features # CONFIG_AS_HAS_ARMV8_5=y -CONFIG_ARM64_BTI=y +# CONFIG_ARM64_BTI is not set CONFIG_CC_HAS_BRANCH_PROT_PAC_RET_BTI=y -CONFIG_ARM64_E0PD=y +# CONFIG_ARM64_E0PD is not set CONFIG_ARM64_AS_HAS_MTE=y -CONFIG_ARM64_MTE=y +# CONFIG_ARM64_MTE is not set # end of ARMv8.5 architectural features # # ARMv8.7 architectural features # -CONFIG_ARM64_EPAN=y +# CONFIG_ARM64_EPAN is not set # end of ARMv8.7 architectural features +CONFIG_AS_HAS_MOPS=y + +# +# ARMv8.9 architectural features +# +# CONFIG_ARM64_POE is not set +CONFIG_ARCH_PKEY_BITS=3 +CONFIG_ARM64_HAFT=y +# end of ARMv8.9 architectural features + +# +# v9.4 architectural features +# +# CONFIG_ARM64_GCS is not set +# end of v9.4 architectural features + CONFIG_ARM64_SVE=y CONFIG_ARM64_SME=y CONFIG_ARM64_PSEUDO_NMI=y @@ -507,6 +527,7 @@ CONFIG_RANDOMIZE_BASE=y CONFIG_RANDOMIZE_MODULE_REGION_FULL=y CONFIG_CC_HAVE_STACKPROTECTOR_SYSREG=y CONFIG_STACKPROTECTOR_PER_TASK=y +CONFIG_ARM64_CONTPTE=y # end of Kernel Features # @@ -514,6 +535,7 @@ CONFIG_STACKPROTECTOR_PER_TASK=y # CONFIG_CMDLINE="" # CONFIG_EFI is not set +# CONFIG_COMPRESSED_INSTALL is not set # end of Boot options # @@ -549,14 +571,18 @@ CONFIG_ARCH_SUSPEND_POSSIBLE=y # CPU Idle # CONFIG_CPU_IDLE=y +CONFIG_CPU_IDLE_MULTIPLE_DRIVERS=y # CONFIG_CPU_IDLE_GOV_LADDER is not set CONFIG_CPU_IDLE_GOV_MENU=y # CONFIG_CPU_IDLE_GOV_TEO is not set +CONFIG_DT_IDLE_STATES=y +CONFIG_DT_IDLE_GENPD=y # # ARM CPU Idle Drivers # -# CONFIG_ARM_PSCI_CPUIDLE is not set +CONFIG_ARM_PSCI_CPUIDLE=y +CONFIG_ARM_PSCI_CPUIDLE_DOMAIN=y # end of ARM CPU Idle Drivers # end of CPU Idle @@ -584,18 +610,19 @@ CONFIG_CPU_FREQ_GOV_ONDEMAND=y # CPU frequency scaling drivers # CONFIG_CPUFREQ_DT=y +# CONFIG_CPUFREQ_VIRT is not set CONFIG_CPUFREQ_DT_PLATDEV=y 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_CPU_MITIGATIONS=y # # General architecture-dependent options # -CONFIG_ARCH_HAS_SUBPAGE_FAULTS=y +CONFIG_HOTPLUG_SMT=y CONFIG_HOTPLUG_CORE_SYNC=y CONFIG_HOTPLUG_CORE_SYNC_DEAD=y # CONFIG_KPROBES is not set @@ -605,7 +632,6 @@ CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y CONFIG_HAVE_IOREMAP_PROT=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 @@ -623,6 +649,7 @@ CONFIG_ARCH_WANTS_NO_INSTR=y CONFIG_HAVE_ASM_MODVERSIONS=y CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y CONFIG_HAVE_RSEQ=y +CONFIG_HAVE_RUST=y CONFIG_HAVE_FUNCTION_ARG_ACCESS_API=y CONFIG_HAVE_HW_BREAKPOINT=y CONFIG_HAVE_PERF_EVENTS_NMI=y @@ -666,6 +693,7 @@ CONFIG_ARCH_WANT_HUGE_PMD_SHARE=y CONFIG_ARCH_WANT_PMD_MKWRITE=y CONFIG_HAVE_MOD_ARCH_SPECIFIC=y CONFIG_MODULES_USE_ELF_RELA=y +CONFIG_ARCH_WANTS_EXECMEM_LATE=y CONFIG_HAVE_SOFTIRQ_ON_OWN_STACK=y CONFIG_SOFTIRQ_ON_OWN_STACK=y CONFIG_ARCH_HAS_ELF_RANDOMIZE=y @@ -673,13 +701,17 @@ 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_HAVE_PAGE_SIZE_4KB=y +CONFIG_PAGE_SIZE_4KB=y CONFIG_PAGE_SIZE_LESS_THAN_64KB=y CONFIG_PAGE_SIZE_LESS_THAN_256KB=y +CONFIG_PAGE_SHIFT=12 CONFIG_ARCH_WANT_DEFAULT_TOPDOWN_MMAP_LAYOUT=y CONFIG_CLONE_BACKWARDS=y CONFIG_OLD_SIGSUSPEND3=y CONFIG_COMPAT_OLD_SIGACTION=y CONFIG_COMPAT_32BIT_TIME=y +CONFIG_ARCH_SUPPORTS_RT=y CONFIG_HAVE_ARCH_VMAP_STACK=y CONFIG_VMAP_STACK=y CONFIG_HAVE_ARCH_RANDOMIZE_KSTACK_OFFSET=y @@ -693,6 +725,9 @@ CONFIG_HAVE_ARCH_COMPILER_H=y CONFIG_HAVE_ARCH_PREL32_RELOCATIONS=y # CONFIG_LOCK_EVENT_COUNTS is not set CONFIG_ARCH_HAS_RELR=y +CONFIG_RELR=y +CONFIG_ARCH_HAS_MEM_ENCRYPT=y +CONFIG_ARCH_HAS_CC_PLATFORM=y CONFIG_HAVE_PREEMPT_DYNAMIC=y CONFIG_HAVE_PREEMPT_DYNAMIC_KEY=y CONFIG_ARCH_WANT_LD_ORPHAN_WARN=y @@ -700,6 +735,8 @@ CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y CONFIG_ARCH_SUPPORTS_PAGE_TABLE_CHECK=y CONFIG_ARCH_HAVE_TRACE_MMIO_ACCESS=y CONFIG_ARCH_HAS_HW_PTE_YOUNG=y +CONFIG_ARCH_HAS_NONLEAF_PMD_YOUNG=y +CONFIG_ARCH_HAS_KERNEL_FPU_SUPPORT=y # # GCOV-based kernel profiling @@ -713,10 +750,11 @@ CONFIG_GCC_PLUGINS=y # CONFIG_GCC_PLUGIN_LATENT_ENTROPY is not set CONFIG_FUNCTION_ALIGNMENT_4B=y CONFIG_FUNCTION_ALIGNMENT=4 +CONFIG_CC_HAS_MIN_FUNCTION_ALIGNMENT=y +CONFIG_CC_HAS_SANE_FUNCTION_ALIGNMENT=y # end of General architecture-dependent options CONFIG_RT_MUTEXES=y -CONFIG_BASE_SMALL=0 CONFIG_MODULES=y # CONFIG_MODULE_DEBUG is not set # CONFIG_MODULE_FORCE_LOAD is not set @@ -726,10 +764,7 @@ CONFIG_MODULE_UNLOAD=y # CONFIG_MODVERSIONS is not set # CONFIG_MODULE_SRCVERSION_ALL is not set # CONFIG_MODULE_SIG is not set -CONFIG_MODULE_COMPRESS_NONE=y -# CONFIG_MODULE_COMPRESS_GZIP is not set -# CONFIG_MODULE_COMPRESS_XZ is not set -# CONFIG_MODULE_COMPRESS_ZSTD is not set +# CONFIG_MODULE_COMPRESS is not set # CONFIG_MODULE_ALLOW_MISSING_NAMESPACE_IMPORTS is not set CONFIG_MODPROBE_PATH="/sbin/modprobe" # CONFIG_TRIM_UNUSED_KSYMS is not set @@ -741,11 +776,9 @@ CONFIG_BLK_CGROUP_PUNT_BIO=y CONFIG_BLK_DEV_BSG_COMMON=y CONFIG_BLK_DEV_BSGLIB=y CONFIG_BLK_DEV_INTEGRITY=y -CONFIG_BLK_DEV_INTEGRITY_T10=y CONFIG_BLK_DEV_WRITE_MOUNTED=y # CONFIG_BLK_DEV_ZONED is not set CONFIG_BLK_DEV_THROTTLING=y -# CONFIG_BLK_DEV_THROTTLING_LOW is not set # CONFIG_BLK_WBT is not set CONFIG_BLK_CGROUP_IOLATENCY=y # CONFIG_BLK_CGROUP_IOCOST is not set @@ -778,10 +811,12 @@ CONFIG_LDM_PARTITION=y CONFIG_EFI_PARTITION=y # CONFIG_SYSV68_PARTITION is not set # CONFIG_CMDLINE_PARTITION is not set +# CONFIG_OF_PARTITION is not set # end of Partition Types -CONFIG_BLK_MQ_PCI=y CONFIG_BLK_PM=y +CONFIG_BLOCK_HOLDER_DEPRECATED=y +CONFIG_BLK_MQ_STACKING=y # # IO Schedulers @@ -793,7 +828,57 @@ CONFIG_MQ_IOSCHED_KYBER=y CONFIG_PADATA=y CONFIG_ASN1=y -CONFIG_UNINLINE_SPIN_UNLOCK=y +CONFIG_ARCH_INLINE_SPIN_TRYLOCK=y +CONFIG_ARCH_INLINE_SPIN_TRYLOCK_BH=y +CONFIG_ARCH_INLINE_SPIN_LOCK=y +CONFIG_ARCH_INLINE_SPIN_LOCK_BH=y +CONFIG_ARCH_INLINE_SPIN_LOCK_IRQ=y +CONFIG_ARCH_INLINE_SPIN_LOCK_IRQSAVE=y +CONFIG_ARCH_INLINE_SPIN_UNLOCK=y +CONFIG_ARCH_INLINE_SPIN_UNLOCK_BH=y +CONFIG_ARCH_INLINE_SPIN_UNLOCK_IRQ=y +CONFIG_ARCH_INLINE_SPIN_UNLOCK_IRQRESTORE=y +CONFIG_ARCH_INLINE_READ_LOCK=y +CONFIG_ARCH_INLINE_READ_LOCK_BH=y +CONFIG_ARCH_INLINE_READ_LOCK_IRQ=y +CONFIG_ARCH_INLINE_READ_LOCK_IRQSAVE=y +CONFIG_ARCH_INLINE_READ_UNLOCK=y +CONFIG_ARCH_INLINE_READ_UNLOCK_BH=y +CONFIG_ARCH_INLINE_READ_UNLOCK_IRQ=y +CONFIG_ARCH_INLINE_READ_UNLOCK_IRQRESTORE=y +CONFIG_ARCH_INLINE_WRITE_LOCK=y +CONFIG_ARCH_INLINE_WRITE_LOCK_BH=y +CONFIG_ARCH_INLINE_WRITE_LOCK_IRQ=y +CONFIG_ARCH_INLINE_WRITE_LOCK_IRQSAVE=y +CONFIG_ARCH_INLINE_WRITE_UNLOCK=y +CONFIG_ARCH_INLINE_WRITE_UNLOCK_BH=y +CONFIG_ARCH_INLINE_WRITE_UNLOCK_IRQ=y +CONFIG_ARCH_INLINE_WRITE_UNLOCK_IRQRESTORE=y +CONFIG_INLINE_SPIN_TRYLOCK=y +CONFIG_INLINE_SPIN_TRYLOCK_BH=y +CONFIG_INLINE_SPIN_LOCK=y +CONFIG_INLINE_SPIN_LOCK_BH=y +CONFIG_INLINE_SPIN_LOCK_IRQ=y +CONFIG_INLINE_SPIN_LOCK_IRQSAVE=y +CONFIG_INLINE_SPIN_UNLOCK_BH=y +CONFIG_INLINE_SPIN_UNLOCK_IRQ=y +CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE=y +CONFIG_INLINE_READ_LOCK=y +CONFIG_INLINE_READ_LOCK_BH=y +CONFIG_INLINE_READ_LOCK_IRQ=y +CONFIG_INLINE_READ_LOCK_IRQSAVE=y +CONFIG_INLINE_READ_UNLOCK=y +CONFIG_INLINE_READ_UNLOCK_BH=y +CONFIG_INLINE_READ_UNLOCK_IRQ=y +CONFIG_INLINE_READ_UNLOCK_IRQRESTORE=y +CONFIG_INLINE_WRITE_LOCK=y +CONFIG_INLINE_WRITE_LOCK_BH=y +CONFIG_INLINE_WRITE_LOCK_IRQ=y +CONFIG_INLINE_WRITE_LOCK_IRQSAVE=y +CONFIG_INLINE_WRITE_UNLOCK=y +CONFIG_INLINE_WRITE_UNLOCK_BH=y +CONFIG_INLINE_WRITE_UNLOCK_IRQ=y +CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE=y CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y CONFIG_MUTEX_SPIN_ON_OWNER=y CONFIG_RWSEM_SPIN_ON_OWNER=y @@ -832,10 +917,12 @@ CONFIG_SWAP=y # Slab allocator options # CONFIG_SLUB=y +CONFIG_KVFREE_RCU_BATCHED=y # CONFIG_SLUB_TINY is not set CONFIG_SLAB_MERGE_DEFAULT=y # CONFIG_SLAB_FREELIST_RANDOM is not set # CONFIG_SLAB_FREELIST_HARDENED is not set +# CONFIG_SLAB_BUCKETS is not set # CONFIG_SLUB_STATS is not set CONFIG_SLUB_CPU_PARTIAL=y # CONFIG_RANDOM_KMALLOC_CACHES is not set @@ -847,15 +934,16 @@ CONFIG_SPARSEMEM=y CONFIG_SPARSEMEM_EXTREME=y CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y CONFIG_SPARSEMEM_VMEMMAP=y -CONFIG_HAVE_FAST_GUP=y +CONFIG_HAVE_GUP_FAST=y CONFIG_ARCH_KEEP_MEMBLOCK=y CONFIG_MEMORY_ISOLATION=y CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y # CONFIG_MEMORY_HOTPLUG is not set CONFIG_ARCH_MHP_MEMMAP_ON_MEMORY_ENABLE=y -CONFIG_SPLIT_PTLOCK_CPUS=4 +CONFIG_SPLIT_PTE_PTLOCKS=y CONFIG_ARCH_ENABLE_SPLIT_PMD_PTLOCK=y +CONFIG_SPLIT_PMD_PTLOCKS=y CONFIG_COMPACTION=y CONFIG_COMPACT_UNEVICTABLE_DEFAULT=1 # CONFIG_PAGE_REPORTING is not set @@ -870,17 +958,23 @@ CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE=y CONFIG_MEMORY_FAILURE=y # CONFIG_HWPOISON_INJECT is not set CONFIG_ARCH_WANTS_THP_SWAP=y +CONFIG_MM_ID=y CONFIG_TRANSPARENT_HUGEPAGE=y -CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS=y -# CONFIG_TRANSPARENT_HUGEPAGE_MADVISE is not set +# CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS is not set +CONFIG_TRANSPARENT_HUGEPAGE_MADVISE=y # CONFIG_TRANSPARENT_HUGEPAGE_NEVER is not set CONFIG_THP_SWAP=y # CONFIG_READ_ONLY_THP_FOR_FS is not set +# CONFIG_NO_PAGE_MAPCOUNT is not set +CONFIG_PAGE_MAPCOUNT=y +CONFIG_PGTABLE_HAS_HUGE_LEAVES=y +CONFIG_ARCH_SUPPORTS_HUGE_PFNMAP=y +CONFIG_ARCH_SUPPORTS_PMD_PFNMAP=y CONFIG_CMA=y -# CONFIG_CMA_DEBUG is not set CONFIG_CMA_DEBUGFS=y # CONFIG_CMA_SYSFS is not set CONFIG_CMA_AREAS=7 +CONFIG_PAGE_BLOCK_ORDER=10 CONFIG_GENERIC_EARLY_IOREMAP=y # CONFIG_DEFERRED_STRUCT_PAGE_INIT is not set # CONFIG_IDLE_PAGE_TRACKING is not set @@ -890,8 +984,7 @@ CONFIG_ARCH_HAS_PTE_DEVMAP=y CONFIG_ARCH_HAS_ZONE_DMA_SET=y CONFIG_ZONE_DMA=y CONFIG_ZONE_DMA32=y -CONFIG_ARCH_USES_HIGH_VMA_FLAGS=y -CONFIG_ARCH_USES_PG_ARCH_X=y +CONFIG_VMAP_PFN=y CONFIG_VM_EVENT_COUNTERS=y # CONFIG_PERCPU_STATS is not set # CONFIG_GUP_TEST is not set @@ -908,6 +1001,7 @@ CONFIG_LRU_GEN_WALKS_MMU=y CONFIG_ARCH_SUPPORTS_PER_VMA_LOCK=y CONFIG_PER_VMA_LOCK=y CONFIG_LOCK_MM_AND_FIND_VMA=y +CONFIG_EXECMEM=y # # Data Access Monitoring @@ -922,6 +1016,7 @@ CONFIG_NET_INGRESS=y CONFIG_NET_EGRESS=y CONFIG_NET_XGRESS=y CONFIG_SKB_EXTENSIONS=y +CONFIG_NET_DEVMEM=y # # Networking options @@ -929,14 +1024,21 @@ CONFIG_SKB_EXTENSIONS=y CONFIG_PACKET=y # CONFIG_PACKET_DIAG is not set CONFIG_UNIX=y -CONFIG_UNIX_SCM=y CONFIG_AF_UNIX_OOB=y # CONFIG_UNIX_DIAG is not set CONFIG_TLS=y # CONFIG_TLS_DEVICE is not set # CONFIG_TLS_TOE is not set -# CONFIG_XFRM_USER is not set +CONFIG_XFRM=y +CONFIG_XFRM_ALGO=y +CONFIG_XFRM_USER=y +# CONFIG_XFRM_INTERFACE is not set +# CONFIG_XFRM_SUB_POLICY is not set +# CONFIG_XFRM_MIGRATE is not set +# CONFIG_XFRM_STATISTICS is not set +CONFIG_XFRM_ESP=y # CONFIG_NET_KEY is not set +# CONFIG_XFRM_IPTFS is not set # CONFIG_XDP_SOCKETS is not set CONFIG_NET_HANDSHAKE=y CONFIG_INET=y @@ -964,7 +1066,9 @@ CONFIG_NET_UDP_TUNNEL=m CONFIG_NET_FOU=m # CONFIG_NET_FOU_IP_TUNNELS is not set # CONFIG_INET_AH is not set -# CONFIG_INET_ESP is not set +CONFIG_INET_ESP=y +# CONFIG_INET_ESP_OFFLOAD is not set +# CONFIG_INET_ESPINTCP is not set # CONFIG_INET_IPCOMP is not set CONFIG_INET_TABLE_PERTURB_ORDER=16 CONFIG_INET_TUNNEL=m @@ -1005,7 +1109,8 @@ CONFIG_IPV6_SIT=m CONFIG_IPV6_NDISC_NODETYPE=y # CONFIG_IPV6_TUNNEL is not set CONFIG_IPV6_FOU=m -# CONFIG_IPV6_MULTIPLE_TABLES is not set +CONFIG_IPV6_MULTIPLE_TABLES=y +# CONFIG_IPV6_SUBTREES is not set # CONFIG_IPV6_MROUTE is not set # CONFIG_IPV6_SEG6_LWTUNNEL is not set # CONFIG_IPV6_SEG6_HMAC is not set @@ -1052,23 +1157,26 @@ CONFIG_NF_CONNTRACK_NETBIOS_NS=m # CONFIG_NF_CONNTRACK_PPTP is not set # CONFIG_NF_CONNTRACK_SANE is not set CONFIG_NF_CONNTRACK_SIP=m -# CONFIG_NF_CONNTRACK_TFTP is not set +CONFIG_NF_CONNTRACK_TFTP=m CONFIG_NF_CT_NETLINK=m # CONFIG_NETFILTER_NETLINK_GLUE_CT is not set CONFIG_NF_NAT=m CONFIG_NF_NAT_FTP=m CONFIG_NF_NAT_IRC=m CONFIG_NF_NAT_SIP=m +CONFIG_NF_NAT_TFTP=m +CONFIG_NF_NAT_REDIRECT=y CONFIG_NF_NAT_MASQUERADE=y # CONFIG_NF_TABLES is not set CONFIG_NETFILTER_XTABLES=m -CONFIG_NETFILTER_XTABLES_COMPAT=y +# CONFIG_NETFILTER_XTABLES_COMPAT is not set # # Xtables combined modules # -# CONFIG_NETFILTER_XT_MARK is not set +CONFIG_NETFILTER_XT_MARK=m # CONFIG_NETFILTER_XT_CONNMARK is not set +CONFIG_NETFILTER_XT_SET=m # # Xtables targets @@ -1076,6 +1184,7 @@ CONFIG_NETFILTER_XTABLES_COMPAT=y # CONFIG_NETFILTER_XT_TARGET_CHECKSUM is not set # CONFIG_NETFILTER_XT_TARGET_CLASSIFY is not set # CONFIG_NETFILTER_XT_TARGET_CONNMARK is not set +# CONFIG_NETFILTER_XT_TARGET_CT is not set # CONFIG_NETFILTER_XT_TARGET_DSCP is not set # CONFIG_NETFILTER_XT_TARGET_HL is not set # CONFIG_NETFILTER_XT_TARGET_HMARK is not set @@ -1087,11 +1196,13 @@ CONFIG_NETFILTER_XT_NAT=m # CONFIG_NETFILTER_XT_TARGET_NETMAP is not set # CONFIG_NETFILTER_XT_TARGET_NFLOG is not set # CONFIG_NETFILTER_XT_TARGET_NFQUEUE is not set +# CONFIG_NETFILTER_XT_TARGET_NOTRACK is not set # CONFIG_NETFILTER_XT_TARGET_RATEEST is not set -# CONFIG_NETFILTER_XT_TARGET_REDIRECT is not set +CONFIG_NETFILTER_XT_TARGET_REDIRECT=m CONFIG_NETFILTER_XT_TARGET_MASQUERADE=m # CONFIG_NETFILTER_XT_TARGET_TEE is not set # CONFIG_NETFILTER_XT_TARGET_TPROXY is not set +# CONFIG_NETFILTER_XT_TARGET_TRACE is not set # CONFIG_NETFILTER_XT_TARGET_TCPMSS is not set # CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP is not set @@ -1119,6 +1230,7 @@ CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m # CONFIG_NETFILTER_XT_MATCH_HL is not set # CONFIG_NETFILTER_XT_MATCH_IPCOMP is not set CONFIG_NETFILTER_XT_MATCH_IPRANGE=m +CONFIG_NETFILTER_XT_MATCH_IPVS=m # CONFIG_NETFILTER_XT_MATCH_L2TP is not set # CONFIG_NETFILTER_XT_MATCH_LENGTH is not set CONFIG_NETFILTER_XT_MATCH_LIMIT=m @@ -1128,6 +1240,7 @@ CONFIG_NETFILTER_XT_MATCH_LIMIT=m # CONFIG_NETFILTER_XT_MATCH_NFACCT is not set # CONFIG_NETFILTER_XT_MATCH_OSF is not set CONFIG_NETFILTER_XT_MATCH_OWNER=m +# CONFIG_NETFILTER_XT_MATCH_POLICY is not set # CONFIG_NETFILTER_XT_MATCH_PHYSDEV is not set # CONFIG_NETFILTER_XT_MATCH_PKTTYPE is not set # CONFIG_NETFILTER_XT_MATCH_QUOTA is not set @@ -1144,13 +1257,78 @@ CONFIG_NETFILTER_XT_MATCH_STATE=m # CONFIG_NETFILTER_XT_MATCH_U32 is not set # end of Core Netfilter Configuration -# CONFIG_IP_SET is not set -# CONFIG_IP_VS is not set +CONFIG_IP_SET=m +CONFIG_IP_SET_MAX=256 +# CONFIG_IP_SET_BITMAP_IP is not set +# CONFIG_IP_SET_BITMAP_IPMAC is not set +# CONFIG_IP_SET_BITMAP_PORT is not set +# CONFIG_IP_SET_HASH_IP is not set +# CONFIG_IP_SET_HASH_IPMARK is not set +# CONFIG_IP_SET_HASH_IPPORT is not set +# CONFIG_IP_SET_HASH_IPPORTIP is not set +# CONFIG_IP_SET_HASH_IPPORTNET is not set +# CONFIG_IP_SET_HASH_IPMAC is not set +# CONFIG_IP_SET_HASH_MAC is not set +# CONFIG_IP_SET_HASH_NETPORTNET is not set +CONFIG_IP_SET_HASH_NET=m +# CONFIG_IP_SET_HASH_NETNET is not set +# CONFIG_IP_SET_HASH_NETPORT is not set +# CONFIG_IP_SET_HASH_NETIFACE is not set +# CONFIG_IP_SET_LIST_SET is not set +CONFIG_IP_VS=m +# CONFIG_IP_VS_IPV6 is not set +# CONFIG_IP_VS_DEBUG is not set +CONFIG_IP_VS_TAB_BITS=12 + +# +# IPVS transport protocol load balancing support +# +CONFIG_IP_VS_PROTO_TCP=y +CONFIG_IP_VS_PROTO_UDP=y +# CONFIG_IP_VS_PROTO_ESP is not set +# CONFIG_IP_VS_PROTO_AH is not set +# CONFIG_IP_VS_PROTO_SCTP is not set + +# +# IPVS scheduler +# +CONFIG_IP_VS_RR=m +# CONFIG_IP_VS_WRR is not set +# CONFIG_IP_VS_LC is not set +# CONFIG_IP_VS_WLC is not set +# CONFIG_IP_VS_FO is not set +# CONFIG_IP_VS_OVF is not set +# CONFIG_IP_VS_LBLC is not set +# CONFIG_IP_VS_LBLCR is not set +# CONFIG_IP_VS_DH is not set +# CONFIG_IP_VS_SH is not set +# CONFIG_IP_VS_MH is not set +# CONFIG_IP_VS_SED is not set +# CONFIG_IP_VS_NQ is not set +# CONFIG_IP_VS_TWOS is not set + +# +# IPVS SH scheduler +# +CONFIG_IP_VS_SH_TAB_BITS=8 + +# +# IPVS MH scheduler +# +CONFIG_IP_VS_MH_TAB_INDEX=12 + +# +# IPVS application helper +# +# CONFIG_IP_VS_FTP is not set +CONFIG_IP_VS_NFCT=y +# CONFIG_IP_VS_PE_SIP is not set # # IP: Netfilter Configuration # CONFIG_NF_DEFRAG_IPV4=m +CONFIG_IP_NF_IPTABLES_LEGACY=m # CONFIG_NF_SOCKET_IPV4 is not set # CONFIG_NF_TPROXY_IPV4 is not set # CONFIG_NF_DUP_IPV4 is not set @@ -1168,17 +1346,19 @@ CONFIG_IP_NF_TARGET_REJECT=m CONFIG_IP_NF_NAT=m CONFIG_IP_NF_TARGET_MASQUERADE=m # CONFIG_IP_NF_TARGET_NETMAP is not set -# CONFIG_IP_NF_TARGET_REDIRECT is not set +CONFIG_IP_NF_TARGET_REDIRECT=m CONFIG_IP_NF_MANGLE=m # CONFIG_IP_NF_TARGET_ECN is not set # CONFIG_IP_NF_TARGET_TTL is not set -# CONFIG_IP_NF_RAW is not set +CONFIG_IP_NF_RAW=m # CONFIG_IP_NF_ARPTABLES is not set +# CONFIG_IP_NF_ARPFILTER is not set # end of IP: Netfilter Configuration # # IPv6: Netfilter Configuration # +CONFIG_IP6_NF_IPTABLES_LEGACY=m # CONFIG_NF_SOCKET_IPV6 is not set # CONFIG_NF_TPROXY_IPV6 is not set # CONFIG_NF_DUP_IPV6 is not set @@ -1200,16 +1380,16 @@ CONFIG_IP6_NF_FILTER=m CONFIG_IP6_NF_TARGET_REJECT=m # CONFIG_IP6_NF_TARGET_SYNPROXY is not set CONFIG_IP6_NF_MANGLE=m -# CONFIG_IP6_NF_RAW is not set +CONFIG_IP6_NF_RAW=m CONFIG_IP6_NF_NAT=m -# CONFIG_IP6_NF_TARGET_MASQUERADE is not set +CONFIG_IP6_NF_TARGET_MASQUERADE=m # CONFIG_IP6_NF_TARGET_NPT is not set # end of IPv6: Netfilter Configuration CONFIG_NF_DEFRAG_IPV6=m # CONFIG_NF_CONNTRACK_BRIDGE is not set +# CONFIG_BRIDGE_NF_EBTABLES_LEGACY is not set # CONFIG_BRIDGE_NF_EBTABLES is not set -# CONFIG_IP_DCCP is not set # CONFIG_IP_SCTP is not set # CONFIG_RDS is not set # CONFIG_TIPC is not set @@ -1218,7 +1398,7 @@ CONFIG_NF_DEFRAG_IPV6=m CONFIG_STP=m CONFIG_BRIDGE=m CONFIG_BRIDGE_IGMP_SNOOPING=y -# CONFIG_BRIDGE_VLAN_FILTERING is not set +CONFIG_BRIDGE_VLAN_FILTERING=y # CONFIG_BRIDGE_MRP is not set # CONFIG_BRIDGE_CFM is not set # CONFIG_NET_DSA is not set @@ -1270,12 +1450,13 @@ CONFIG_NET_SCH_FQ_CODEL=y # # Classification # +CONFIG_NET_CLS=y # CONFIG_NET_CLS_BASIC is not set # CONFIG_NET_CLS_ROUTE4 is not set # CONFIG_NET_CLS_FW is not set # CONFIG_NET_CLS_U32 is not set # CONFIG_NET_CLS_FLOW is not set -# CONFIG_NET_CLS_CGROUP is not set +CONFIG_NET_CLS_CGROUP=m # CONFIG_NET_CLS_BPF is not set # CONFIG_NET_CLS_FLOWER is not set # CONFIG_NET_CLS_MATCHALL is not set @@ -1292,7 +1473,7 @@ CONFIG_DNS_RESOLVER=y # CONFIG_NET_NSH is not set # CONFIG_HSR is not set # CONFIG_NET_SWITCHDEV is not set -# CONFIG_NET_L3_MASTER_DEV is not set +CONFIG_NET_L3_MASTER_DEV=y # CONFIG_QRTR is not set # CONFIG_NET_NCSI is not set CONFIG_PCPU_DEV_REFCNT=y @@ -1301,8 +1482,8 @@ CONFIG_RPS=y CONFIG_RFS_ACCEL=y CONFIG_SOCK_RX_QUEUE_MAPPING=y CONFIG_XPS=y -# CONFIG_CGROUP_NET_PRIO is not set -# CONFIG_CGROUP_NET_CLASSID is not set +CONFIG_CGROUP_NET_PRIO=y +CONFIG_CGROUP_NET_CLASSID=y CONFIG_NET_RX_BUSY_POLL=y CONFIG_BQL=y # CONFIG_BPF_STREAM_PARSER is not set @@ -1323,13 +1504,12 @@ CONFIG_BT_RFCOMM=m CONFIG_BT_RFCOMM_TTY=y # CONFIG_BT_BNEP is not set CONFIG_BT_HIDP=m -CONFIG_BT_HS=y CONFIG_BT_LE=y CONFIG_BT_LE_L2CAP_ECRED=y # CONFIG_BT_LEDS is not set # CONFIG_BT_MSFTEXT is not set # CONFIG_BT_AOSPEXT is not set -# CONFIG_BT_DEBUGFS is not set +CONFIG_BT_DEBUGFS=y # CONFIG_BT_SELFTEST is not set # @@ -1361,6 +1541,7 @@ CONFIG_BT_HCIUART_RTL=y CONFIG_BT_HCIUART_QCA=y # CONFIG_BT_HCIUART_AG6XX is not set # CONFIG_BT_HCIUART_MRVL is not set +CONFIG_BT_HCIUART_AML=y # CONFIG_BT_HCIBCM203X is not set # CONFIG_BT_HCIBCM4377 is not set # CONFIG_BT_HCIBPA10X is not set @@ -1371,6 +1552,7 @@ CONFIG_BT_HCIUART_QCA=y CONFIG_BT_MTKSDIO=m CONFIG_BT_MTKUART=m # CONFIG_BT_NXPUART is not set +# CONFIG_BT_INTEL_PCIE is not set # end of Bluetooth device drivers # CONFIG_AF_RXRPC is not set @@ -1379,10 +1561,8 @@ CONFIG_STREAM_PARSER=y # CONFIG_MCTP is not set CONFIG_FIB_RULES=y CONFIG_WIRELESS=y -CONFIG_WIRELESS_EXT=y CONFIG_WEXT_CORE=y CONFIG_WEXT_PROC=y -CONFIG_WEXT_PRIV=y CONFIG_CFG80211=m # CONFIG_NL80211_TESTMODE is not set # CONFIG_CFG80211_DEVELOPER_WARNINGS is not set @@ -1393,8 +1573,6 @@ CONFIG_CFG80211_DEFAULT_PS=y # CONFIG_CFG80211_DEBUGFS is not set # CONFIG_CFG80211_CRDA_SUPPORT is not set CONFIG_CFG80211_WEXT=y -CONFIG_LIB80211=m -# CONFIG_LIB80211_DEBUG is not set CONFIG_MAC80211=m CONFIG_MAC80211_HAS_RC=y CONFIG_MAC80211_RC_MINSTREL=y @@ -1402,7 +1580,6 @@ CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y CONFIG_MAC80211_RC_DEFAULT="minstrel_ht" # CONFIG_MAC80211_MESH is not set CONFIG_MAC80211_LEDS=y -# CONFIG_MAC80211_MESSAGE_TRACING is not set # CONFIG_MAC80211_DEBUG_MENU is not set CONFIG_MAC80211_STA_HASH_MAX_SIZE=0 CONFIG_RFKILL=m @@ -1430,6 +1607,7 @@ CONFIG_ETHTOOL_NETLINK=y # CONFIG_ARM_AMBA=y CONFIG_HAVE_PCI=y +CONFIG_GENERIC_PCI_IOMAP=y CONFIG_PCI=y CONFIG_PCI_DOMAINS=y CONFIG_PCI_DOMAINS_GENERIC=y @@ -1445,9 +1623,12 @@ CONFIG_PCI_MSI=y CONFIG_PCI_QUIRKS=y # CONFIG_PCI_DEBUG is not set # CONFIG_PCI_STUB is not set +# CONFIG_PCI_DOE is not set # CONFIG_PCI_IOV is not set +# CONFIG_PCI_NPEM is not set # CONFIG_PCI_PRI is not set # CONFIG_PCI_PASID is not set +# CONFIG_PCIE_TPH is not set # CONFIG_PCI_DYNAMIC_OF_NODES is not set # CONFIG_PCIE_BUS_TUNE_OFF is not set CONFIG_PCIE_BUS_DEFAULT=y @@ -1466,7 +1647,6 @@ CONFIG_VGA_ARB_MAX_GPUS=16 # CONFIG_PCI_HOST_THUNDER_ECAM is not set # CONFIG_PCI_FTPCI100 is not set # CONFIG_PCI_HOST_GENERIC is not set -# CONFIG_PCIE_MICROCHIP_HOST is not set # CONFIG_PCI_XGENE is not set # CONFIG_PCIE_XILINX is not set @@ -1480,8 +1660,10 @@ CONFIG_VGA_ARB_MAX_GPUS=16 # DesignWare-based PCIe controllers # CONFIG_PCIE_DW=y +# CONFIG_PCIE_DW_DEBUGFS is not set CONFIG_PCIE_DW_HOST=y # CONFIG_PCIE_AL is not set +# CONFIG_PCIE_AMD_MDB is not set CONFIG_PCI_MESON=y # CONFIG_PCI_HISI is not set # CONFIG_PCIE_KIRIN is not set @@ -1492,6 +1674,12 @@ CONFIG_PCI_MESON=y # Mobiveil-based PCIe controllers # # end of Mobiveil-based PCIe controllers + +# +# PLDA-based PCIe controllers +# +# CONFIG_PCIE_MICROCHIP_HOST is not set +# end of PLDA-based PCIe controllers # end of PCI controller drivers # @@ -1506,6 +1694,7 @@ CONFIG_PCI_MESON=y # CONFIG_PCI_SW_SWITCHTEC is not set # end of PCI switch controller drivers +# CONFIG_PCI_PWRCTRL_SLOT is not set # CONFIG_CXL_BUS is not set # CONFIG_PCCARD is not set # CONFIG_RAPIDIO is not set @@ -1513,6 +1702,7 @@ CONFIG_PCI_MESON=y # # Generic Driver Options # +CONFIG_AUXILIARY_BUS=y # CONFIG_UEVENT_HELPER is not set CONFIG_DEVTMPFS=y CONFIG_DEVTMPFS_MOUNT=y @@ -1546,7 +1736,6 @@ CONFIG_REGMAP=y CONFIG_REGMAP_I2C=y CONFIG_REGMAP_SPI=y CONFIG_REGMAP_MMIO=y -CONFIG_REGMAP_IRQ=y CONFIG_DMA_SHARED_BUFFER=y # CONFIG_DMA_FENCE_TRACE is not set CONFIG_GENERIC_ARCH_TOPOLOGY=y @@ -1580,6 +1769,7 @@ CONFIG_GENERIC_ARCH_TOPOLOGY=y # end of ARM System Control and Management Interface Protocol CONFIG_ARM_SCPI_PROTOCOL=y +# CONFIG_ARM_SDE_INTERFACE is not set # CONFIG_FIRMWARE_MEMMAP is not set # CONFIG_FW_CFG_SYSFS is not set # CONFIG_ARM_FFA_TRANSPORT is not set @@ -1604,6 +1794,7 @@ CONFIG_ARM_SMCCC_SOC_ID=y # end of Tegra firmware driver # end of Firmware Drivers +# CONFIG_FWCTL is not set # CONFIG_GNSS is not set CONFIG_MTD=y # CONFIG_MTD_TESTS is not set @@ -1655,7 +1846,6 @@ CONFIG_MTD_CFI_I2=y # Mapping drivers for chip access # # CONFIG_MTD_COMPLEX_MAPPINGS is not set -# CONFIG_MTD_INTEL_VR_NOR is not set # CONFIG_MTD_PLATRAM is not set # end of Mapping drivers for chip access @@ -1724,6 +1914,7 @@ CONFIG_BLK_DEV=y # CONFIG_BLK_DEV_NULL_BLK is not set CONFIG_CDROM=y # CONFIG_BLK_DEV_PCIESSD_MTIP32XX is not set +# CONFIG_ZRAM is not set CONFIG_BLK_DEV_LOOP=y CONFIG_BLK_DEV_LOOP_MIN_COUNT=0 # CONFIG_BLK_DEV_DRBD is not set @@ -1751,6 +1942,8 @@ CONFIG_BLK_DEV_RAM_SIZE=4096 # CONFIG_AD525X_DPOT is not set # CONFIG_DUMMY_IRQ is not set # CONFIG_PHANTOM is not set +# CONFIG_RPMB is not set +# CONFIG_TI_FPC202 is not set # CONFIG_TIFM_CORE is not set # CONFIG_ICS932S401 is not set # CONFIG_ENCLOSURE_SERVICES is not set @@ -1771,7 +1964,9 @@ CONFIG_BLK_DEV_RAM_SIZE=4096 # CONFIG_XILINX_SDFEC is not set # CONFIG_HISI_HIKEY_USB is not set # CONFIG_OPEN_DICE is not set +# CONFIG_NTSYNC is not set # CONFIG_VCPU_STALL_DETECTOR is not set +# CONFIG_MCHP_LAN966X_PCI is not set # CONFIG_C2PORT is not set # @@ -1780,26 +1975,18 @@ CONFIG_BLK_DEV_RAM_SIZE=4096 CONFIG_EEPROM_AT24=m # CONFIG_EEPROM_AT25 is not set # CONFIG_EEPROM_MAX6875 is not set -CONFIG_EEPROM_93CX6=m +CONFIG_EEPROM_93CX6=y # CONFIG_EEPROM_93XX46 is not set # CONFIG_EEPROM_IDT_89HPESX is not set # CONFIG_EEPROM_EE1004 is not set # end of EEPROM support # CONFIG_CB710_CORE is not set - -# -# Texas Instruments shared transport line discipline -# -# CONFIG_TI_ST is not set -# end of Texas Instruments shared transport line discipline - # CONFIG_SENSORS_LIS3_SPI is not set # CONFIG_SENSORS_LIS3_I2C is not set # CONFIG_ALTERA_STAPL is not set # CONFIG_VMWARE_VMCI is not set # CONFIG_GENWQE is not set -# CONFIG_ECHO is not set # CONFIG_BCM_VK is not set # CONFIG_MISC_ALCOR_PCI is not set # CONFIG_MISC_RTSX_PCI is not set @@ -1807,6 +1994,8 @@ CONFIG_EEPROM_93CX6=m # CONFIG_UACCE is not set # CONFIG_PVPANIC is not set # CONFIG_GP_PCI1XXXX is not set +# CONFIG_KEBA_CP500 is not set +# CONFIG_AMD_SBRMI_I2C is not set # end of Misc devices # @@ -1994,7 +2183,35 @@ CONFIG_MD=y # CONFIG_BLK_DEV_MD is not set CONFIG_MD_BITMAP_FILE=y # CONFIG_BCACHE is not set -# CONFIG_BLK_DEV_DM is not set +CONFIG_BLK_DEV_DM_BUILTIN=y +CONFIG_BLK_DEV_DM=m +# CONFIG_DM_DEBUG is not set +CONFIG_DM_BUFIO=m +# CONFIG_DM_DEBUG_BLOCK_MANAGER_LOCKING is not set +CONFIG_DM_BIO_PRISON=m +CONFIG_DM_PERSISTENT_DATA=m +# CONFIG_DM_UNSTRIPED is not set +# CONFIG_DM_CRYPT is not set +# CONFIG_DM_SNAPSHOT is not set +CONFIG_DM_THIN_PROVISIONING=m +# CONFIG_DM_CACHE is not set +# CONFIG_DM_WRITECACHE is not set +# CONFIG_DM_EBS is not set +# CONFIG_DM_ERA is not set +# CONFIG_DM_CLONE is not set +# CONFIG_DM_MIRROR is not set +# CONFIG_DM_RAID is not set +# CONFIG_DM_ZERO is not set +# CONFIG_DM_MULTIPATH is not set +# CONFIG_DM_DELAY is not set +# CONFIG_DM_DUST is not set +# CONFIG_DM_UEVENT is not set +# CONFIG_DM_FLAKEY is not set +# CONFIG_DM_VERITY is not set +# CONFIG_DM_SWITCH is not set +# CONFIG_DM_LOG_WRITES is not set +# CONFIG_DM_INTEGRITY is not set +# CONFIG_DM_VDO is not set # CONFIG_TARGET_CORE is not set # CONFIG_FUSION is not set @@ -2009,19 +2226,23 @@ CONFIG_NETDEVICES=y CONFIG_MII=y CONFIG_NET_CORE=y # CONFIG_BONDING is not set -# CONFIG_DUMMY is not set +CONFIG_DUMMY=m CONFIG_WIREGUARD=m # CONFIG_WIREGUARD_DEBUG is not set +# CONFIG_OVPN is not set # CONFIG_EQUALIZER is not set # CONFIG_NET_FC is not set # CONFIG_NET_TEAM is not set CONFIG_MACVLAN=m # CONFIG_MACVTAP is not set -# CONFIG_IPVLAN is not set +CONFIG_IPVLAN_L3S=y +CONFIG_IPVLAN=m +# CONFIG_IPVTAP is not set CONFIG_VXLAN=m # CONFIG_GENEVE is not set # CONFIG_BAREUDP is not set # CONFIG_GTP is not set +# CONFIG_PFCP is not set # CONFIG_AMT is not set # CONFIG_MACSEC is not set CONFIG_NETCONSOLE=y @@ -2034,6 +2255,7 @@ CONFIG_TUN=y CONFIG_VETH=m CONFIG_NLMON=m # CONFIG_NETKIT is not set +# CONFIG_NET_VRF is not set # CONFIG_ARCNET is not set CONFIG_ETHERNET=y # CONFIG_NET_VENDOR_3COM is not set @@ -2072,6 +2294,7 @@ CONFIG_NET_VENDOR_ASIX=y # CONFIG_NET_VENDOR_LITEX is not set # CONFIG_NET_VENDOR_MARVELL is not set # CONFIG_NET_VENDOR_MELLANOX is not set +# CONFIG_NET_VENDOR_META is not set # CONFIG_NET_VENDOR_MICREL is not set # CONFIG_NET_VENDOR_MICROCHIP is not set # CONFIG_NET_VENDOR_MICROSEMI is not set @@ -2095,6 +2318,8 @@ CONFIG_NET_VENDOR_REALTEK=y # CONFIG_8139CP is not set # CONFIG_8139TOO is not set CONFIG_R8169=y +# CONFIG_R8169_LEDS is not set +# CONFIG_RTASE is not set # CONFIG_NET_VENDOR_RENESAS is not set # CONFIG_NET_VENDOR_ROCKER is not set # CONFIG_NET_VENDOR_SAMSUNG is not set @@ -2135,6 +2360,8 @@ CONFIG_FIXED_PHY=y # # MII PHY device drivers # +# CONFIG_AS21XXX_PHY is not set +# CONFIG_AIR_EN8811H_PHY is not set # CONFIG_AMD_PHY is not set CONFIG_MESON_GXL_PHY=y # CONFIG_ADIN_PHY is not set @@ -2158,6 +2385,7 @@ CONFIG_MARVELL_PHY=y # CONFIG_MARVELL_88Q2XXX_PHY is not set # CONFIG_MARVELL_88X2222_PHY is not set # CONFIG_MAXLINEAR_GPHY is not set +# CONFIG_MAXLINEAR_86110_PHY is not set # CONFIG_MEDIATEK_GE_PHY is not set CONFIG_MICREL_PHY=y # CONFIG_MICROCHIP_T1S_PHY is not set @@ -2171,8 +2399,12 @@ CONFIG_MICROSEMI_PHY=y # CONFIG_NXP_TJA11XX_PHY is not set # CONFIG_NCN26000_PHY is not set # CONFIG_AT803X_PHY is not set +# CONFIG_QCA83XX_PHY is not set +# CONFIG_QCA808X_PHY is not set +# CONFIG_QCA807X_PHY is not set # CONFIG_QSEMI_PHY is not set CONFIG_REALTEK_PHY=y +CONFIG_REALTEK_PHY_HWMON=y # CONFIG_RENESAS_PHY is not set # CONFIG_ROCKCHIP_PHY is not set CONFIG_SMSC_PHY=y @@ -2189,11 +2421,9 @@ CONFIG_SMSC_PHY=y # CONFIG_XILINX_GMII2RGMII is not set # CONFIG_MICREL_KS8995MA is not set # CONFIG_PSE_CONTROLLER is not set -CONFIG_MDIO_DEVICE=y CONFIG_MDIO_BUS=y CONFIG_FWNODE_MDIO=y CONFIG_OF_MDIO=y -CONFIG_MDIO_DEVRES=y CONFIG_MDIO_BITBANG=y # CONFIG_MDIO_BCM_UNIMAC is not set CONFIG_MDIO_GPIO=y @@ -2314,6 +2544,7 @@ CONFIG_ATH10K_SDIO=m CONFIG_ATH10K_USB=m # CONFIG_ATH10K_DEBUG is not set # CONFIG_ATH10K_DEBUGFS is not set +CONFIG_ATH10K_LEDS=y CONFIG_WCN36XX=m # CONFIG_WCN36XX_DEBUGFS is not set # CONFIG_ATH11K is not set @@ -2347,7 +2578,6 @@ CONFIG_BRCMFMAC_PROTO_BCDC=y CONFIG_BRCMFMAC_SDIO=y # CONFIG_BRCMFMAC_USB is not set # CONFIG_BRCMFMAC_PCIE is not set -# CONFIG_BRCM_TRACING is not set CONFIG_BRCMDBG=y CONFIG_WLAN_VENDOR_INTEL=y # CONFIG_IPW2100 is not set @@ -2437,11 +2667,13 @@ CONFIG_RTL8188EE=m CONFIG_RTL8192EE=m CONFIG_RTL8821AE=m CONFIG_RTL8192CU=m +CONFIG_RTL8192DU=m CONFIG_RTLWIFI=m CONFIG_RTLWIFI_PCI=m CONFIG_RTLWIFI_USB=m CONFIG_RTLWIFI_DEBUG=y CONFIG_RTL8192C_COMMON=m +CONFIG_RTL8192D_COMMON=m CONFIG_RTL8723_COMMON=m CONFIG_RTLBTCOEXIST=m CONFIG_RTL8XXXU=m @@ -2452,8 +2684,13 @@ CONFIG_RTW88_SDIO=m CONFIG_RTW88_USB=m CONFIG_RTW88_8822B=m CONFIG_RTW88_8822C=m +CONFIG_RTW88_8723X=m CONFIG_RTW88_8723D=m CONFIG_RTW88_8821C=m +CONFIG_RTW88_88XXA=m +CONFIG_RTW88_8821A=m +CONFIG_RTW88_8812A=m +CONFIG_RTW88_8814A=m # CONFIG_RTW88_8822BE is not set CONFIG_RTW88_8822BS=m CONFIG_RTW88_8822BU=m @@ -2462,12 +2699,18 @@ CONFIG_RTW88_8822CS=m CONFIG_RTW88_8822CU=m # CONFIG_RTW88_8723DE is not set # CONFIG_RTW88_8723DS is not set +# CONFIG_RTW88_8723CS is not set CONFIG_RTW88_8723DU=m # CONFIG_RTW88_8821CE is not set CONFIG_RTW88_8821CS=m CONFIG_RTW88_8821CU=m +CONFIG_RTW88_8821AU=m +CONFIG_RTW88_8812AU=m +# CONFIG_RTW88_8814AE is not set +CONFIG_RTW88_8814AU=m # CONFIG_RTW88_DEBUG is not set # CONFIG_RTW88_DEBUGFS is not set +CONFIG_RTW88_LEDS=y # CONFIG_RTW89 is not set CONFIG_WLAN_VENDOR_RSI=y # CONFIG_RSI_91X is not set @@ -2511,7 +2754,6 @@ CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 CONFIG_INPUT_JOYDEV=y CONFIG_INPUT_EVDEV=y -# CONFIG_INPUT_EVBUG is not set # # Input Device Drivers @@ -2534,7 +2776,6 @@ CONFIG_KEYBOARD_GPIO_POLLED=m # CONFIG_KEYBOARD_LM8323 is not set # CONFIG_KEYBOARD_LM8333 is not set # CONFIG_KEYBOARD_MAX7359 is not set -# CONFIG_KEYBOARD_MCS is not set # CONFIG_KEYBOARD_MPR121 is not set # CONFIG_KEYBOARD_NEWTON is not set # CONFIG_KEYBOARD_OPENCORES is not set @@ -2637,7 +2878,7 @@ CONFIG_RMI4_F11=y CONFIG_RMI4_F12=y CONFIG_RMI4_F30=y # CONFIG_RMI4_F34 is not set -# CONFIG_RMI4_F3A is not set +CONFIG_RMI4_F3A=y # CONFIG_RMI4_F54 is not set # CONFIG_RMI4_F55 is not set @@ -2668,7 +2909,6 @@ CONFIG_VT=y CONFIG_CONSOLE_TRANSLATIONS=y CONFIG_VT_CONSOLE=y CONFIG_VT_CONSOLE_SLEEP=y -CONFIG_HW_CONSOLE=y CONFIG_VT_HW_CONSOLE_BINDING=y CONFIG_UNIX98_PTYS=y # CONFIG_LEGACY_PTYS is not set @@ -2765,7 +3005,6 @@ CONFIG_DEVPORT=y # CONFIG_I2C=y CONFIG_I2C_BOARDINFO=y -CONFIG_I2C_COMPAT=y CONFIG_I2C_CHARDEV=y CONFIG_I2C_MUX=y @@ -2801,7 +3040,6 @@ CONFIG_I2C_ALGOBIT=y # CONFIG_I2C_AMD8111 is not set # CONFIG_I2C_I801 is not set # CONFIG_I2C_ISCH is not set -# CONFIG_I2C_PIIX4 is not set # CONFIG_I2C_NFORCE2 is not set # CONFIG_I2C_NVIDIA_GPU is not set # CONFIG_I2C_SIS5595 is not set @@ -2873,6 +3111,7 @@ CONFIG_SPI_BITBANG=y # CONFIG_SPI_CADENCE is not set # CONFIG_SPI_CADENCE_QUADSPI is not set # CONFIG_SPI_CADENCE_XSPI is not set +# CONFIG_SPI_CH341 is not set # CONFIG_SPI_DESIGNWARE is not set CONFIG_SPI_GPIO=y # CONFIG_SPI_FSL_SPI is not set @@ -2883,7 +3122,6 @@ CONFIG_SPI_MESON_SPIFC=y # CONFIG_SPI_OC_TINY is not set # CONFIG_SPI_PCI1XXXX is not set CONFIG_SPI_PL022=y -# CONFIG_SPI_PXA2XX is not set # CONFIG_SPI_SC18IS602 is not set # CONFIG_SPI_SIFIVE is not set # CONFIG_SPI_SN_F_OSPI is not set @@ -2919,10 +3157,7 @@ CONFIG_PPS=y # CONFIG_PPS_CLIENT_KTIMER is not set # CONFIG_PPS_CLIENT_LDISC is not set # CONFIG_PPS_CLIENT_GPIO is not set - -# -# PPS generators support -# +# CONFIG_PPS_GENERATOR is not set # # PTP clock support @@ -2940,6 +3175,7 @@ CONFIG_PINMUX=y CONFIG_PINCONF=y CONFIG_GENERIC_PINCONF=y # CONFIG_DEBUG_PINCTRL is not set +# CONFIG_PINCTRL_AW9523 is not set # CONFIG_PINCTRL_CY8C95X0 is not set # CONFIG_PINCTRL_MCP23S08 is not set # CONFIG_PINCTRL_MICROCHIP_SGPIO is not set @@ -2956,6 +3192,7 @@ CONFIG_PINCTRL_MESON_AXG_PMX=y CONFIG_PINCTRL_MESON_G12A=y CONFIG_PINCTRL_MESON_A1=y CONFIG_PINCTRL_MESON_S4=y +CONFIG_PINCTRL_AMLOGIC_A4=y CONFIG_PINCTRL_AMLOGIC_C3=y CONFIG_PINCTRL_AMLOGIC_T7=y @@ -2990,6 +3227,7 @@ CONFIG_GPIO_GENERIC_PLATFORM=y # CONFIG_GPIO_LOGICVC is not set # CONFIG_GPIO_MB86S7X is not set # CONFIG_GPIO_PL061 is not set +# CONFIG_GPIO_POLARFIRE_SOC is not set # CONFIG_GPIO_SIFIVE is not set # CONFIG_GPIO_SYSCON is not set # CONFIG_GPIO_XGENE is not set @@ -3041,6 +3279,7 @@ CONFIG_GPIO_PCA953X=m # # USB GPIO expanders # +# CONFIG_GPIO_MPSSE is not set # end of USB GPIO expanders # @@ -3052,6 +3291,13 @@ CONFIG_GPIO_PCA953X=m # CONFIG_GPIO_SIM is not set # end of Virtual GPIO drivers +# +# GPIO Debugging utilities +# +# CONFIG_GPIO_SLOPPY_LOGIC_ANALYZER is not set +# CONFIG_GPIO_VIRTUSER is not set +# end of GPIO Debugging utilities + # CONFIG_W1 is not set CONFIG_POWER_RESET=y CONFIG_POWER_RESET_GPIO=y @@ -3060,12 +3306,14 @@ CONFIG_POWER_RESET_GPIO_RESTART=y # CONFIG_POWER_RESET_LTC2952 is not set CONFIG_POWER_RESET_REGULATOR=y CONFIG_POWER_RESET_RESTART=y +# CONFIG_POWER_RESET_TORADEX_EC is not set # CONFIG_POWER_RESET_XGENE is not set CONFIG_POWER_RESET_SYSCON=y CONFIG_POWER_RESET_SYSCON_POWEROFF=y CONFIG_REBOOT_MODE=y CONFIG_SYSCON_REBOOT_MODE=y # CONFIG_NVMEM_REBOOT_MODE is not set +# CONFIG_POWER_SEQUENCING is not set CONFIG_POWER_SUPPLY=y # CONFIG_POWER_SUPPLY_DEBUG is not set CONFIG_POWER_SUPPLY_HWMON=y @@ -3073,6 +3321,7 @@ CONFIG_POWER_SUPPLY_HWMON=y # CONFIG_IP5XXX_POWER is not set # CONFIG_TEST_POWER is not set # CONFIG_CHARGER_ADP5061 is not set +# CONFIG_BATTERY_CHAGALL is not set # CONFIG_BATTERY_CW2015 is not set # CONFIG_BATTERY_DS2780 is not set # CONFIG_BATTERY_DS2781 is not set @@ -3084,6 +3333,7 @@ CONFIG_POWER_SUPPLY_HWMON=y # CONFIG_BATTERY_BQ27XXX is not set # CONFIG_BATTERY_MAX17040 is not set # CONFIG_BATTERY_MAX17042 is not set +# CONFIG_BATTERY_MAX1720X is not set # CONFIG_CHARGER_MAX8903 is not set # CONFIG_CHARGER_LP8727 is not set # CONFIG_CHARGER_GPIO is not set @@ -3092,6 +3342,7 @@ CONFIG_POWER_SUPPLY_HWMON=y # CONFIG_CHARGER_LTC4162L is not set # CONFIG_CHARGER_DETECTOR_MAX14656 is not set # CONFIG_CHARGER_MAX77976 is not set +# CONFIG_CHARGER_MAX8971 is not set # CONFIG_CHARGER_BQ2415X is not set # CONFIG_CHARGER_BQ24190 is not set # CONFIG_CHARGER_BQ24257 is not set @@ -3120,7 +3371,6 @@ CONFIG_HWMON=y # CONFIG_SENSORS_AD7314 is not set # CONFIG_SENSORS_AD7414 is not set # CONFIG_SENSORS_AD7418 is not set -# CONFIG_SENSORS_ADM1021 is not set # CONFIG_SENSORS_ADM1025 is not set # CONFIG_SENSORS_ADM1026 is not set # CONFIG_SENSORS_ADM1029 is not set @@ -3137,9 +3387,11 @@ CONFIG_HWMON=y # CONFIG_SENSORS_AQUACOMPUTER_D5NEXT is not set # CONFIG_SENSORS_AS370 is not set # CONFIG_SENSORS_ASC7621 is not set +# CONFIG_SENSORS_ASUS_ROG_RYUJIN is not set # CONFIG_SENSORS_AXI_FAN_CONTROL is not set CONFIG_SENSORS_ARM_SCPI=y # CONFIG_SENSORS_ATXP1 is not set +# CONFIG_SENSORS_CHIPCAP2 is not set # CONFIG_SENSORS_CORSAIR_CPRO is not set # CONFIG_SENSORS_CORSAIR_PSU is not set # CONFIG_SENSORS_DRIVETEMP is not set @@ -3158,7 +3410,9 @@ CONFIG_SENSORS_ARM_SCPI=y CONFIG_SENSORS_GPIO_FAN=m # CONFIG_SENSORS_HIH6130 is not set # CONFIG_SENSORS_HS3001 is not set +# CONFIG_SENSORS_HTU31 is not set # CONFIG_SENSORS_IIO_HWMON is not set +# CONFIG_SENSORS_ISL28022 is not set # CONFIG_SENSORS_IT87 is not set # CONFIG_SENSORS_JC42 is not set # CONFIG_SENSORS_POWERZ is not set @@ -3176,6 +3430,7 @@ CONFIG_SENSORS_GPIO_FAN=m # CONFIG_SENSORS_LTC4245 is not set # CONFIG_SENSORS_LTC4260 is not set # CONFIG_SENSORS_LTC4261 is not set +# CONFIG_SENSORS_LTC4282 is not set # CONFIG_SENSORS_MAX1111 is not set # CONFIG_SENSORS_MAX127 is not set # CONFIG_SENSORS_MAX16065 is not set @@ -3189,7 +3444,6 @@ CONFIG_SENSORS_GPIO_FAN=m # CONFIG_SENSORS_MAX6620 is not set # CONFIG_SENSORS_MAX6621 is not set # CONFIG_SENSORS_MAX6639 is not set -# CONFIG_SENSORS_MAX6642 is not set # CONFIG_SENSORS_MAX6650 is not set # CONFIG_SENSORS_MAX6697 is not set # CONFIG_SENSORS_MAX31790 is not set @@ -3221,17 +3475,19 @@ CONFIG_SENSORS_GPIO_FAN=m # CONFIG_SENSORS_NCT6683 is not set # CONFIG_SENSORS_NCT6775 is not set # CONFIG_SENSORS_NCT6775_I2C is not set +# CONFIG_SENSORS_NCT7363 is not set # CONFIG_SENSORS_NCT7802 is not set # CONFIG_SENSORS_NCT7904 is not set # CONFIG_SENSORS_NPCM7XX is not set # CONFIG_SENSORS_NZXT_KRAKEN2 is not set +# CONFIG_SENSORS_NZXT_KRAKEN3 is not set # CONFIG_SENSORS_NZXT_SMART2 is not set # CONFIG_SENSORS_OCC_P8_I2C is not set # CONFIG_SENSORS_PCF8591 is not set # CONFIG_PMBUS is not set +# CONFIG_SENSORS_PT5161L is not set CONFIG_SENSORS_PWM_FAN=m # CONFIG_SENSORS_SBTSI is not set -# CONFIG_SENSORS_SBRMI is not set # CONFIG_SENSORS_SHT15 is not set # CONFIG_SENSORS_SHT21 is not set # CONFIG_SENSORS_SHT3x is not set @@ -3257,6 +3513,7 @@ CONFIG_SENSORS_PWM_FAN=m # CONFIG_SENSORS_INA2XX is not set # CONFIG_SENSORS_INA238 is not set # CONFIG_SENSORS_INA3221 is not set +# CONFIG_SENSORS_SPD5118 is not set # CONFIG_SENSORS_TC74 is not set # CONFIG_SENSORS_THMC50 is not set # CONFIG_SENSORS_TMP102 is not set @@ -3283,10 +3540,10 @@ CONFIG_THERMAL=y # CONFIG_THERMAL_NETLINK is not set # CONFIG_THERMAL_STATISTICS is not set # CONFIG_THERMAL_DEBUGFS is not set +# CONFIG_THERMAL_CORE_TESTING is not set CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS=0 CONFIG_THERMAL_HWMON=y CONFIG_THERMAL_OF=y -# CONFIG_THERMAL_WRITABLE_TRIPS is not set CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y # CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE is not set # CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE is not set @@ -3371,7 +3628,8 @@ CONFIG_BCMA_DRIVER_PCI=y # # Multifunction device drivers # -CONFIG_MFD_CORE=y +CONFIG_MFD_CORE=m +# CONFIG_MFD_ADP5585 is not set # CONFIG_MFD_ACT8945A is not set # CONFIG_MFD_AS3711 is not set # CONFIG_MFD_SMPRO is not set @@ -3408,13 +3666,16 @@ CONFIG_MFD_CORE=y # CONFIG_MFD_88PM800 is not set # CONFIG_MFD_88PM805 is not set # CONFIG_MFD_88PM860X is not set +# CONFIG_MFD_88PM886_PMIC is not set # CONFIG_MFD_MAX14577 is not set # CONFIG_MFD_MAX77541 is not set # CONFIG_MFD_MAX77620 is not set # CONFIG_MFD_MAX77650 is not set # CONFIG_MFD_MAX77686 is not set # CONFIG_MFD_MAX77693 is not set +# CONFIG_MFD_MAX77705 is not set # CONFIG_MFD_MAX77714 is not set +# CONFIG_MFD_MAX77759 is not set # CONFIG_MFD_MAX77843 is not set # CONFIG_MFD_MAX8907 is not set # CONFIG_MFD_MAX8925 is not set @@ -3430,7 +3691,6 @@ CONFIG_MFD_CORE=y # CONFIG_MFD_VIPERBOARD is not set # CONFIG_MFD_NTXEC is not set # CONFIG_MFD_RETU is not set -# CONFIG_MFD_PCF50633 is not set # CONFIG_MFD_SY7636A is not set # CONFIG_MFD_RDC321X is not set # CONFIG_MFD_RT4831 is not set @@ -3440,7 +3700,7 @@ CONFIG_MFD_CORE=y # CONFIG_MFD_RK8XX_I2C is not set # CONFIG_MFD_RK8XX_SPI is not set # CONFIG_MFD_RN5T618 is not set -CONFIG_MFD_SEC_CORE=y +# CONFIG_MFD_SEC_I2C is not set # CONFIG_MFD_SI476X_CORE is not set # CONFIG_MFD_SM501 is not set # CONFIG_MFD_SKY81452 is not set @@ -3484,13 +3744,17 @@ CONFIG_MFD_SYSCON=y # CONFIG_MFD_ROHM_BD718XX is not set # CONFIG_MFD_ROHM_BD71828 is not set # CONFIG_MFD_ROHM_BD957XMUF is not set +# CONFIG_MFD_ROHM_BD96801 is not set # CONFIG_MFD_STPMIC1 is not set # CONFIG_MFD_STMFX is not set # CONFIG_MFD_ATC260X_I2C is not set CONFIG_MFD_KHADAS_MCU=m # CONFIG_MFD_QCOM_PM8008 is not set +# CONFIG_MFD_CS40L50_I2C is not set +# CONFIG_MFD_CS40L50_SPI is not set # CONFIG_RAVE_SP_CORE is not set # CONFIG_MFD_INTEL_M10_BMC_SPI is not set +# CONFIG_MFD_QNAP_MCU is not set # CONFIG_MFD_RSMU_I2C is not set # CONFIG_MFD_RSMU_SPI is not set # end of Multifunction device drivers @@ -3504,6 +3768,7 @@ CONFIG_REGULATOR_FIXED_VOLTAGE=y # CONFIG_REGULATOR_88PG86X is not set # CONFIG_REGULATOR_ACT8865 is not set # CONFIG_REGULATOR_AD5398 is not set +# CONFIG_REGULATOR_ADP5055 is not set # CONFIG_REGULATOR_AW37503 is not set # CONFIG_REGULATOR_DA9121 is not set # CONFIG_REGULATOR_DA9210 is not set @@ -3538,6 +3803,7 @@ CONFIG_REGULATOR_GPIO=y # CONFIG_REGULATOR_MT6311 is not set # CONFIG_REGULATOR_MT6315 is not set # CONFIG_REGULATOR_PCA9450 is not set +# CONFIG_REGULATOR_PF9453 is not set # CONFIG_REGULATOR_PF8X00 is not set # CONFIG_REGULATOR_PFUZE100 is not set # CONFIG_REGULATOR_PV88060 is not set @@ -3560,9 +3826,6 @@ CONFIG_REGULATOR_PWM=y # CONFIG_REGULATOR_RTMV20 is not set # CONFIG_REGULATOR_RTQ6752 is not set # CONFIG_REGULATOR_RTQ2208 is not set -# CONFIG_REGULATOR_S2MPA01 is not set -# CONFIG_REGULATOR_S2MPS11 is not set -# CONFIG_REGULATOR_S5M8767 is not set # CONFIG_REGULATOR_SLG51000 is not set # CONFIG_REGULATOR_SY8106A is not set # CONFIG_REGULATOR_SY8824X is not set @@ -3623,9 +3886,10 @@ CONFIG_CEC_NOTIFIER=y # CONFIG_MEDIA_CEC_RC is not set CONFIG_MEDIA_CEC_SUPPORT=y # CONFIG_CEC_CH7322 is not set +# CONFIG_CEC_NXP_TDA9950 is not set CONFIG_CEC_MESON_AO=y CONFIG_CEC_MESON_G12A_AO=y -# CONFIG_CEC_GPIO is not set +# CONFIG_USB_EXTRON_DA_HD_4K_PLUS_CEC is not set # CONFIG_USB_PULSE8_CEC is not set # CONFIG_USB_RAINSHADOW_CEC is not set # end of CEC support @@ -3806,6 +4070,9 @@ CONFIG_VIDEO_MEM2MEM_DEINTERLACE=m # # Amlogic media platform drivers # +# CONFIG_VIDEO_C3_ISP is not set +# CONFIG_VIDEO_C3_MIPI_ADAPTER is not set +# CONFIG_VIDEO_C3_MIPI_CSI2 is not set # CONFIG_VIDEO_MESON_GE2D is not set # @@ -3862,6 +4129,11 @@ CONFIG_VIDEO_MEM2MEM_DEINTERLACE=m # Qualcomm media platform drivers # +# +# Raspberry Pi media platform drivers +# +# CONFIG_VIDEO_RP1_CFE is not set + # # Renesas media platform drivers # @@ -4071,6 +4343,8 @@ CONFIG_VIDEO_CX25840=m # CONFIG_VIDEO_DS90UB913 is not set # CONFIG_VIDEO_DS90UB953 is not set # CONFIG_VIDEO_DS90UB960 is not set +# CONFIG_VIDEO_MAX96714 is not set +# CONFIG_VIDEO_MAX96717 is not set # end of Video serializers and deserializers # @@ -4299,43 +4573,66 @@ CONFIG_DVB_DUMMY_FE=m # Graphics support # CONFIG_APERTURE_HELPERS=y -CONFIG_VIDEO_CMDLINE=y -CONFIG_VIDEO_NOMODESET=y +CONFIG_VIDEO=y CONFIG_AUXDISPLAY=y # CONFIG_HD44780 is not set -# CONFIG_IMG_ASCII_LCD is not set -# CONFIG_HT16K33 is not set # CONFIG_LCD2S is not set -CONFIG_TM1628=m # CONFIG_CHARLCD_BL_OFF is not set # CONFIG_CHARLCD_BL_ON is not set CONFIG_CHARLCD_BL_FLASH=y +# CONFIG_IMG_ASCII_LCD is not set +# CONFIG_HT16K33 is not set +# CONFIG_MAX6959 is not set +# CONFIG_SEG_LED_GPIO is not set CONFIG_DRM=y -CONFIG_DRM_MIPI_DSI=y + +# +# DRM debugging options +# +# CONFIG_DRM_WERROR is not set # CONFIG_DRM_DEBUG_MM is not set +# end of DRM debugging options + +CONFIG_DRM_MIPI_DSI=y CONFIG_DRM_KMS_HELPER=y +# CONFIG_DRM_PANIC is not set # CONFIG_DRM_DEBUG_DP_MST_TOPOLOGY_REFS is not set CONFIG_DRM_DEBUG_MODESET_LOCK=y +CONFIG_DRM_CLIENT=y +CONFIG_DRM_CLIENT_LIB=y +CONFIG_DRM_CLIENT_SELECTION=y +CONFIG_DRM_CLIENT_SETUP=y + +# +# Supported DRM clients +# CONFIG_DRM_FBDEV_EMULATION=y CONFIG_DRM_FBDEV_OVERALLOC=100 # CONFIG_DRM_FBDEV_LEAK_PHYS_SMEM is not set +# CONFIG_DRM_CLIENT_LOG is not set +CONFIG_DRM_CLIENT_DEFAULT_FBDEV=y +CONFIG_DRM_CLIENT_DEFAULT="fbdev" +# end of Supported DRM clients + CONFIG_DRM_LOAD_EDID_FIRMWARE=y CONFIG_DRM_DISPLAY_HELPER=y +CONFIG_DRM_BRIDGE_CONNECTOR=y +# CONFIG_DRM_DISPLAY_DP_AUX_CEC is not set +# CONFIG_DRM_DISPLAY_DP_AUX_CHARDEV is not set +CONFIG_DRM_DISPLAY_HDMI_AUDIO_HELPER=y CONFIG_DRM_DISPLAY_HDMI_HELPER=y -# CONFIG_DRM_DP_AUX_CHARDEV is not set -# CONFIG_DRM_DP_CEC is not set +CONFIG_DRM_DISPLAY_HDMI_STATE_HELPER=y +CONFIG_DRM_EXEC=m +CONFIG_DRM_GPUVM=m CONFIG_DRM_GEM_DMA_HELPER=y CONFIG_DRM_GEM_SHMEM_HELPER=m CONFIG_DRM_SCHED=y # -# I2C encoder or helper chips +# Drivers for system framebuffers # -# CONFIG_DRM_I2C_CH7006 is not set -# CONFIG_DRM_I2C_SIL164 is not set -# CONFIG_DRM_I2C_NXP_TDA998X is not set -# CONFIG_DRM_I2C_NXP_TDA9950 is not set -# end of I2C encoder or helper chips +# CONFIG_DRM_SIMPLEDRM is not set +# end of Drivers for system framebuffers # # ARM devices @@ -4367,35 +4664,42 @@ CONFIG_DRM_PANEL=y # CONFIG_DRM_PANEL_AUO_A030JTN01 is not set # CONFIG_DRM_PANEL_BOE_BF060Y8M_AJ0 is not set # CONFIG_DRM_PANEL_BOE_HIMAX8279D is not set +# CONFIG_DRM_PANEL_BOE_TD4320 is not set +# CONFIG_DRM_PANEL_BOE_TH101MB31UIG002_28A is not set # CONFIG_DRM_PANEL_BOE_TV101WUM_NL6 is not set -# CONFIG_DRM_PANEL_DSI_CM 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_BOE_TV101WUM_LL2 is not set # CONFIG_DRM_PANEL_EBBG_FT8719 is not set # CONFIG_DRM_PANEL_ELIDA_KD35T133 is not set # CONFIG_DRM_PANEL_FEIXIN_K101_IM2BA02 is not set # CONFIG_DRM_PANEL_FEIYANG_FY07024DI26A30D is not set +# CONFIG_DRM_PANEL_DSI_CM is not set +# CONFIG_DRM_PANEL_LVDS is not set +# CONFIG_DRM_PANEL_HIMAX_HX8279 is not set +# CONFIG_DRM_PANEL_HIMAX_HX83102 is not set +# CONFIG_DRM_PANEL_HIMAX_HX83112A is not set # CONFIG_DRM_PANEL_HIMAX_HX8394 is not set # CONFIG_DRM_PANEL_ILITEK_IL9322 is not set # CONFIG_DRM_PANEL_ILITEK_ILI9341 is not set # CONFIG_DRM_PANEL_ILITEK_ILI9805 is not set +# CONFIG_DRM_PANEL_ILITEK_ILI9806E is not set # CONFIG_DRM_PANEL_ILITEK_ILI9881C is not set # CONFIG_DRM_PANEL_ILITEK_ILI9882T is not set # CONFIG_DRM_PANEL_INNOLUX_EJ030NA is not set # CONFIG_DRM_PANEL_INNOLUX_P079ZCA is not set # CONFIG_DRM_PANEL_JADARD_JD9365DA_H3 is not set -# CONFIG_DRM_PANEL_JDI_LT070ME05000 is not set # CONFIG_DRM_PANEL_JDI_LPM102A188A is not set +# CONFIG_DRM_PANEL_JDI_LT070ME05000 is not set # CONFIG_DRM_PANEL_JDI_R63452 is not set # CONFIG_DRM_PANEL_KHADAS_TS050 is not set # CONFIG_DRM_PANEL_KINGDISPLAY_KD097D04 is not set # CONFIG_DRM_PANEL_LEADTEK_LTK050H3146W is not set # CONFIG_DRM_PANEL_LEADTEK_LTK500HD1829 is not set -# CONFIG_DRM_PANEL_SAMSUNG_LD9040 is not set +# CONFIG_DRM_PANEL_LINCOLNTECH_LCD197 is not set # CONFIG_DRM_PANEL_LG_LB035Q02 is not set # CONFIG_DRM_PANEL_LG_LG4573 is not set +# CONFIG_DRM_PANEL_LG_SW43408 is not set # CONFIG_DRM_PANEL_MAGNACHIP_D53E6EA8966 is not set +# CONFIG_DRM_PANEL_MANTIX_MLAF057WE51 is not set # CONFIG_DRM_PANEL_NEC_NL8048HL11 is not set # CONFIG_DRM_PANEL_NEWVISION_NV3051D is not set # CONFIG_DRM_PANEL_NEWVISION_NV3052C is not set @@ -4404,8 +4708,9 @@ CONFIG_DRM_PANEL=y # CONFIG_DRM_PANEL_NOVATEK_NT35950 is not set # CONFIG_DRM_PANEL_NOVATEK_NT36523 is not set # CONFIG_DRM_PANEL_NOVATEK_NT36672A is not set +# CONFIG_DRM_PANEL_NOVATEK_NT36672E is not set +# CONFIG_DRM_PANEL_NOVATEK_NT37801 is not set # CONFIG_DRM_PANEL_NOVATEK_NT39016 is not set -# CONFIG_DRM_PANEL_MANTIX_MLAF057WE51 is not set # CONFIG_DRM_PANEL_OLIMEX_LCD_OLINUXINO is not set # CONFIG_DRM_PANEL_ORISETECH_OTA5601A is not set # CONFIG_DRM_PANEL_ORISETECH_OTM8009A is not set @@ -4413,18 +4718,26 @@ CONFIG_DRM_PANEL=y # CONFIG_DRM_PANEL_PANASONIC_VVX10F034N00 is not set # CONFIG_DRM_PANEL_RASPBERRYPI_TOUCHSCREEN is not set # CONFIG_DRM_PANEL_RAYDIUM_RM67191 is not set +# CONFIG_DRM_PANEL_RAYDIUM_RM67200 is not set # CONFIG_DRM_PANEL_RAYDIUM_RM68200 is not set # CONFIG_DRM_PANEL_RAYDIUM_RM692E5 is not set +# CONFIG_DRM_PANEL_RAYDIUM_RM69380 is not set # CONFIG_DRM_PANEL_RONBO_RB070D30 is not set +# CONFIG_DRM_PANEL_SAMSUNG_AMS581VF01 is not set +# CONFIG_DRM_PANEL_SAMSUNG_AMS639RQ08 is not set +# CONFIG_DRM_PANEL_SAMSUNG_S6E88A0_AMS427AP24 is not set +# CONFIG_DRM_PANEL_SAMSUNG_S6E88A0_AMS452EF01 is not set # CONFIG_DRM_PANEL_SAMSUNG_ATNA33XC20 is not set # CONFIG_DRM_PANEL_SAMSUNG_DB7430 is not set +# CONFIG_DRM_PANEL_SAMSUNG_LD9040 is not set +# CONFIG_DRM_PANEL_SAMSUNG_S6E3FA7 is not set # CONFIG_DRM_PANEL_SAMSUNG_S6D16D0 is not set # CONFIG_DRM_PANEL_SAMSUNG_S6D27A1 is not set # CONFIG_DRM_PANEL_SAMSUNG_S6D7AA0 is not set # CONFIG_DRM_PANEL_SAMSUNG_S6E3HA2 is not set +# CONFIG_DRM_PANEL_SAMSUNG_S6E3HA8 is not set # CONFIG_DRM_PANEL_SAMSUNG_S6E63J0X03 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 # CONFIG_DRM_PANEL_SAMSUNG_SOFEF00 is not set # CONFIG_DRM_PANEL_SEIKO_43WVF1G is not set @@ -4435,19 +4748,24 @@ CONFIG_DRM_PANEL=y # CONFIG_DRM_PANEL_SITRONIX_ST7701 is not set # CONFIG_DRM_PANEL_SITRONIX_ST7703 is not set # CONFIG_DRM_PANEL_SITRONIX_ST7789V is not set -# CONFIG_DRM_PANEL_SYNAPTICS_R63353 is not set # CONFIG_DRM_PANEL_SONY_ACX565AKM is not set # CONFIG_DRM_PANEL_SONY_TD4353_JDI is not set # CONFIG_DRM_PANEL_SONY_TULIP_TRULY_NT35521 is not set # CONFIG_DRM_PANEL_STARTEK_KD070FHFID015 is not set +# CONFIG_DRM_PANEL_EDP is not set +# CONFIG_DRM_PANEL_SIMPLE is not set +# CONFIG_DRM_PANEL_SUMMIT is not set +# CONFIG_DRM_PANEL_SYNAPTICS_R63353 is not set # CONFIG_DRM_PANEL_TDO_TL070WSH30 is not set # CONFIG_DRM_PANEL_TPO_TD028TTEC1 is not set # CONFIG_DRM_PANEL_TPO_TD043MTEA1 is not set # CONFIG_DRM_PANEL_TPO_TPG110 is not set # CONFIG_DRM_PANEL_TRULY_NT35597_WQXGA is not set -# CONFIG_DRM_PANEL_VISIONOX_RM69299 is not set -# CONFIG_DRM_PANEL_VISIONOX_VTDR6130 is not set +# CONFIG_DRM_PANEL_VISIONOX_G2647FB105 is not set # CONFIG_DRM_PANEL_VISIONOX_R66451 is not set +# CONFIG_DRM_PANEL_VISIONOX_RM69299 is not set +# CONFIG_DRM_PANEL_VISIONOX_RM692E5 is not set +# CONFIG_DRM_PANEL_VISIONOX_VTDR6130 is not set # CONFIG_DRM_PANEL_WIDECHIPS_WS2401 is not set # CONFIG_DRM_PANEL_XINPENG_XPP055C272 is not set # end of Display Panels @@ -4461,6 +4779,8 @@ CONFIG_DRM_PANEL_BRIDGE=y # CONFIG_DRM_CHIPONE_ICN6211 is not set # CONFIG_DRM_CHRONTEL_CH7033 is not set CONFIG_DRM_DISPLAY_CONNECTOR=y +# CONFIG_DRM_I2C_NXP_TDA998X is not set +# CONFIG_DRM_ITE_IT6263 is not set # CONFIG_DRM_ITE_IT6505 is not set # CONFIG_DRM_LONTIUM_LT8912B is not set # CONFIG_DRM_LONTIUM_LT9211 is not set @@ -4485,6 +4805,7 @@ CONFIG_DRM_DISPLAY_CONNECTOR=y # CONFIG_DRM_TOSHIBA_TC358768 is not set # CONFIG_DRM_TOSHIBA_TC358775 is not set # CONFIG_DRM_TI_DLPC3433 is not set +# CONFIG_DRM_TI_TDP158 is not set # CONFIG_DRM_TI_TFP410 is not set # CONFIG_DRM_TI_SN65DSI83 is not set # CONFIG_DRM_TI_SN65DSI86 is not set @@ -4516,7 +4837,6 @@ CONFIG_DRM_MESON_DW_MIPI_DSI=y # CONFIG_DRM_CIRRUS_QEMU is not set # CONFIG_DRM_GM12U320 is not set # CONFIG_DRM_PANEL_MIPI_DBI is not set -# CONFIG_DRM_SIMPLEDRM is not set # CONFIG_TINYDRM_HX8357D is not set # CONFIG_TINYDRM_ILI9163 is not set # CONFIG_TINYDRM_ILI9225 is not set @@ -4524,13 +4844,16 @@ CONFIG_DRM_MESON_DW_MIPI_DSI=y # CONFIG_TINYDRM_ILI9486 is not set # CONFIG_TINYDRM_MI0283QT is not set # CONFIG_TINYDRM_REPAPER is not set -# CONFIG_TINYDRM_ST7586 is not set -# CONFIG_TINYDRM_ST7735R is not set +# CONFIG_TINYDRM_SHARP_MEMORY is not set # CONFIG_DRM_PL111 is not set CONFIG_DRM_LIMA=m CONFIG_DRM_PANFROST=m +CONFIG_DRM_PANTHOR=m # CONFIG_DRM_TIDSS is not set # CONFIG_DRM_GUD is not set +# CONFIG_DRM_ST7571_I2C is not set +# CONFIG_DRM_ST7586 is not set +# CONFIG_DRM_ST7735R is not set # CONFIG_DRM_SSD130X is not set # CONFIG_DRM_POWERVR is not set CONFIG_DRM_PANEL_ORIENTATION_QUIRKS=y @@ -4588,6 +4911,7 @@ CONFIG_FB_SYS_IMAGEBLIT=y CONFIG_FB_SYSMEM_FOPS=y CONFIG_FB_DEFERRED_IO=y CONFIG_FB_DMAMEM_HELPERS=y +CONFIG_FB_DMAMEM_HELPERS_DEFERRED=y CONFIG_FB_IOMEM_FOPS=y CONFIG_FB_IOMEM_HELPERS=y CONFIG_FB_SYSMEM_HELPERS=y @@ -4602,11 +4926,13 @@ CONFIG_FB_MODE_HELPERS=y # CONFIG_LCD_CLASS_DEVICE is not set CONFIG_BACKLIGHT_CLASS_DEVICE=y # CONFIG_BACKLIGHT_KTD253 is not set +# CONFIG_BACKLIGHT_KTD2801 is not set # CONFIG_BACKLIGHT_KTZ8866 is not set # CONFIG_BACKLIGHT_PWM is not set # CONFIG_BACKLIGHT_QCOM_WLED is not set # CONFIG_BACKLIGHT_ADP8860 is not set # CONFIG_BACKLIGHT_ADP8870 is not set +# CONFIG_BACKLIGHT_LM3509 is not set # CONFIG_BACKLIGHT_LM3630A is not set # CONFIG_BACKLIGHT_LM3639 is not set # CONFIG_BACKLIGHT_LP855X is not set @@ -4656,10 +4982,10 @@ CONFIG_SND_MAX_CARDS=32 CONFIG_SND_SUPPORT_OLD_API=y CONFIG_SND_PROC_FS=y CONFIG_SND_VERBOSE_PROCFS=y -# CONFIG_SND_VERBOSE_PRINTK is not set CONFIG_SND_CTL_FAST_LOOKUP=y # CONFIG_SND_DEBUG is not set # CONFIG_SND_CTL_INPUT_VALIDATION is not set +# CONFIG_SND_UTIMER is not set CONFIG_SND_VMASTER=y # CONFIG_SND_SEQUENCER is not set # CONFIG_SND_DRIVERS is not set @@ -4688,6 +5014,7 @@ CONFIG_SND_USB_PODHD=m CONFIG_SND_USB_TONEPORT=m CONFIG_SND_USB_VARIAX=m CONFIG_SND_SOC=y +# CONFIG_SND_SOC_USB is not set # CONFIG_SND_SOC_ADI is not set # CONFIG_SND_SOC_AMD_ACP is not set # CONFIG_SND_AMD_ACP_CONFIG is not set @@ -4715,6 +5042,12 @@ CONFIG_SND_SOC=y # CONFIG_SND_SOC_CHV3_I2S is not set # CONFIG_SND_I2S_HI6210_I2S is not set + +# +# SoC Audio for Loongson CPUs +# +# end of SoC Audio for Loongson CPUs + # CONFIG_SND_SOC_IMG is not set # CONFIG_SND_SOC_MTK_BTCVSD is not set @@ -4741,6 +5074,7 @@ CONFIG_SND_MESON_G12A_TOHDMITX=y CONFIG_SND_SOC_MESON_T9015=y # end of ASoC support for Amlogic platforms +CONFIG_SND_SOC_SDCA_OPTIONAL=y # CONFIG_SND_SOC_SOF_TOPLEVEL is not set # @@ -4760,6 +5094,7 @@ CONFIG_SND_SOC_I2C_AND_SPI=y # CONFIG_SND_SOC_AC97_CODEC is not set # CONFIG_SND_SOC_ADAU1372_I2C is not set # CONFIG_SND_SOC_ADAU1372_SPI is not set +# CONFIG_SND_SOC_ADAU1373 is not set # CONFIG_SND_SOC_ADAU1701 is not set # CONFIG_SND_SOC_ADAU1761_I2C is not set # CONFIG_SND_SOC_ADAU1761_SPI is not set @@ -4772,6 +5107,7 @@ CONFIG_SND_SOC_I2C_AND_SPI=y # CONFIG_SND_SOC_AK4458 is not set # CONFIG_SND_SOC_AK4554 is not set # CONFIG_SND_SOC_AK4613 is not set +# CONFIG_SND_SOC_AK4619 is not set # CONFIG_SND_SOC_AK4642 is not set # CONFIG_SND_SOC_AK5386 is not set # CONFIG_SND_SOC_AK5558 is not set @@ -4779,7 +5115,9 @@ CONFIG_SND_SOC_I2C_AND_SPI=y # CONFIG_SND_SOC_AUDIO_IIO_AUX is not set # CONFIG_SND_SOC_AW8738 is not set # CONFIG_SND_SOC_AW88395 is not set +# CONFIG_SND_SOC_AW88166 is not set # CONFIG_SND_SOC_AW88261 is not set +# CONFIG_SND_SOC_AW88081 is not set # CONFIG_SND_SOC_AW87390 is not set # CONFIG_SND_SOC_AW88399 is not set # CONFIG_SND_SOC_BD28623 is not set @@ -4802,6 +5140,7 @@ CONFIG_SND_SOC_I2C_AND_SPI=y # CONFIG_SND_SOC_CS42L56 is not set # CONFIG_SND_SOC_CS42L73 is not set # CONFIG_SND_SOC_CS42L83 is not set +# CONFIG_SND_SOC_CS42L84 is not set # CONFIG_SND_SOC_CS4234 is not set # CONFIG_SND_SOC_CS4265 is not set # CONFIG_SND_SOC_CS4270 is not set @@ -4811,23 +5150,28 @@ CONFIG_SND_SOC_I2C_AND_SPI=y # CONFIG_SND_SOC_CS43130 is not set # CONFIG_SND_SOC_CS4341 is not set # CONFIG_SND_SOC_CS4349 is not set +# CONFIG_SND_SOC_CS48L32 is not set # CONFIG_SND_SOC_CS53L30 is not set +# CONFIG_SND_SOC_CS530X_I2C is not set # CONFIG_SND_SOC_CX2072X is not set # CONFIG_SND_SOC_DA7213 is not set # CONFIG_SND_SOC_DMIC is not set CONFIG_SND_SOC_HDMI_CODEC=y CONFIG_SND_SOC_ES7134=y # CONFIG_SND_SOC_ES7241 is not set +# CONFIG_SND_SOC_ES8311 is not set # CONFIG_SND_SOC_ES8316 is not set +# CONFIG_SND_SOC_ES8323 is not set # CONFIG_SND_SOC_ES8326 is not set CONFIG_SND_SOC_ES8328=y CONFIG_SND_SOC_ES8328_I2C=y # CONFIG_SND_SOC_ES8328_SPI is not set +# CONFIG_SND_SOC_ES8375 is not set +# CONFIG_SND_SOC_ES8389 is not set # CONFIG_SND_SOC_GTM601 is not set # CONFIG_SND_SOC_HDA is not set # CONFIG_SND_SOC_ICS43432 is not set # CONFIG_SND_SOC_IDT821034 is not set -# CONFIG_SND_SOC_INNO_RK3036 is not set # CONFIG_SND_SOC_MAX98088 is not set # CONFIG_SND_SOC_MAX98090 is not set CONFIG_SND_SOC_MAX98357A=y @@ -4853,20 +5197,24 @@ CONFIG_SND_SOC_MAX98357A=y # CONFIG_SND_SOC_PCM3168A_I2C is not set # CONFIG_SND_SOC_PCM3168A_SPI is not set CONFIG_SND_SOC_PCM5102A=m -# CONFIG_SND_SOC_PCM512x_I2C is not set +CONFIG_SND_SOC_PCM512x=m +CONFIG_SND_SOC_PCM512x_I2C=m # CONFIG_SND_SOC_PCM512x_SPI is not set +# CONFIG_SND_SOC_PCM6240 is not set # CONFIG_SND_SOC_PEB2466 is not set -# CONFIG_SND_SOC_RK3328 is not set # CONFIG_SND_SOC_RT5616 is not set # 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_RT9123 is not set +# CONFIG_SND_SOC_RT9123P is not set # CONFIG_SND_SOC_RTQ9128 is not set # CONFIG_SND_SOC_SGTL5000 is not set CONFIG_SND_SOC_SIMPLE_AMPLIFIER=y # CONFIG_SND_SOC_SIMPLE_MUX is not set # CONFIG_SND_SOC_SMA1303 is not set +# CONFIG_SND_SOC_SMA1307 is not set CONFIG_SND_SOC_SPDIF=y # CONFIG_SND_SOC_SRC4XXX_I2C is not set # CONFIG_SND_SOC_SSM2305 is not set @@ -4905,6 +5253,7 @@ CONFIG_SND_SOC_SPDIF=y # CONFIG_SND_SOC_TSCS42XX is not set # CONFIG_SND_SOC_TSCS454 is not set # CONFIG_SND_SOC_UDA1334 is not set +# CONFIG_SND_SOC_UDA1342 is not set # CONFIG_SND_SOC_WM8510 is not set # CONFIG_SND_SOC_WM8523 is not set # CONFIG_SND_SOC_WM8524 is not set @@ -4934,6 +5283,7 @@ CONFIG_SND_SOC_SPDIF=y # CONFIG_SND_SOC_ZL38060 is not set # CONFIG_SND_SOC_MAX9759 is not set # CONFIG_SND_SOC_MT6351 is not set +# CONFIG_SND_SOC_MT6357 is not set # CONFIG_SND_SOC_MT6358 is not set # CONFIG_SND_SOC_MT6660 is not set # CONFIG_SND_SOC_NAU8315 is not set @@ -4942,6 +5292,8 @@ CONFIG_SND_SOC_SPDIF=y # CONFIG_SND_SOC_NAU8821 is not set # CONFIG_SND_SOC_NAU8822 is not set # CONFIG_SND_SOC_NAU8824 is not set +# CONFIG_SND_SOC_NTP8918 is not set +# CONFIG_SND_SOC_NTP8835 is not set # CONFIG_SND_SOC_TPA6130A2 is not set # CONFIG_SND_SOC_LPASS_WSA_MACRO is not set # CONFIG_SND_SOC_LPASS_VA_MACRO is not set @@ -4997,11 +5349,13 @@ CONFIG_HID_EZKEY=y # CONFIG_HID_GFRM is not set # CONFIG_HID_GLORIOUS is not set # CONFIG_HID_HOLTEK is not set +# CONFIG_HID_GOODIX_SPI is not set # CONFIG_HID_GOOGLE_STADIA_FF is not set # CONFIG_HID_VIVALDI is not set # CONFIG_HID_GT683R is not set # CONFIG_HID_KEYTOUCH is not set CONFIG_HID_KYE=y +# CONFIG_HID_KYSONA is not set # CONFIG_HID_UCLOGIC is not set # CONFIG_HID_WALTOP is not set # CONFIG_HID_VIEWSONIC is not set @@ -5015,7 +5369,6 @@ CONFIG_HID_TWINHAN=y CONFIG_HID_KENSINGTON=y # CONFIG_HID_LCPOWER is not set # CONFIG_HID_LED is not set -CONFIG_HID_LENOVO=y # CONFIG_HID_LETSKETCH is not set CONFIG_HID_LOGITECH=y CONFIG_HID_LOGITECH_DJ=y @@ -5032,13 +5385,12 @@ CONFIG_LOGIWHEELS_FF=y CONFIG_HID_MICROSOFT=y CONFIG_HID_MONTEREY=y CONFIG_HID_MULTITOUCH=m -CONFIG_HID_NINTENDO=y +CONFIG_HID_NINTENDO=m CONFIG_NINTENDO_FF=y # CONFIG_HID_NTI is not set # CONFIG_HID_NTRIG is not set # CONFIG_HID_NVIDIA_SHIELD is not set CONFIG_HID_ORTEK=y -CONFIG_HID_OUYA=y CONFIG_HID_PANTHERLORD=y CONFIG_PANTHERLORD_FF=y CONFIG_HID_PENMOUNT=y @@ -5076,6 +5428,7 @@ CONFIG_HID_TOPSEED=y # CONFIG_HID_U2FZERO is not set # CONFIG_HID_WACOM is not set CONFIG_HID_WIIMOTE=m +# CONFIG_HID_WINWING is not set CONFIG_HID_XINMO=y # CONFIG_HID_ZEROPLUS is not set CONFIG_HID_ZYDACRON=y @@ -5090,6 +5443,8 @@ CONFIG_HID_ZYDACRON=y # # end of HID-BPF support +# CONFIG_I2C_HID is not set + # # USB HID support # @@ -5098,7 +5453,6 @@ CONFIG_USB_HID=y CONFIG_USB_HIDDEV=y # end of USB HID support -# CONFIG_I2C_HID is not set CONFIG_USB_OHCI_LITTLE_ENDIAN=y CONFIG_USB_SUPPORT=y CONFIG_USB_COMMON=y @@ -5120,8 +5474,9 @@ CONFIG_USB_OTG=y # CONFIG_USB_OTG_PRODUCTLIST is not set # CONFIG_USB_OTG_DISABLE_EXTERNAL_HUB is not set # CONFIG_USB_OTG_FSM is not set -# CONFIG_USB_LEDS_TRIGGER_USBPORT is not set +CONFIG_USB_LEDS_TRIGGER_USBPORT=y CONFIG_USB_AUTOSUSPEND_DELAY=2 +CONFIG_USB_DEFAULT_AUTHORIZATION_MODE=1 CONFIG_USB_MON=m # @@ -5130,8 +5485,8 @@ CONFIG_USB_MON=m # CONFIG_USB_C67X00_HCD is not set CONFIG_USB_XHCI_HCD=y # CONFIG_USB_XHCI_DBGCAP is not set -# CONFIG_USB_XHCI_PCI_RENESAS is not set CONFIG_USB_XHCI_PLATFORM=y +# CONFIG_USB_XHCI_SIDEBAND is not set CONFIG_USB_EHCI_HCD=y CONFIG_USB_EHCI_ROOT_HUB_TT=y CONFIG_USB_EHCI_TT_NEWSCHED=y @@ -5157,11 +5512,7 @@ CONFIG_USB_WDM=m # CONFIG_USB_TMC is not set # -# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may -# - -# -# also be needed; see USB_STORAGE Help for more info +# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed; see USB_STORAGE Help for more info # CONFIG_USB_STORAGE=y # CONFIG_USB_STORAGE_DEBUG is not set @@ -5300,7 +5651,8 @@ CONFIG_USB_SERIAL_PL2303=m # CONFIG_USB_HSIC_USB4604 is not set # CONFIG_USB_LINK_LAYER_TEST is not set # CONFIG_USB_CHAOSKEY is not set -CONFIG_USB_ONBOARD_HUB=y +CONFIG_USB_ONBOARD_DEV=y +# CONFIG_USB_ONBOARD_DEV_USB5744 is not set # # USB Physical Layer drivers @@ -5325,12 +5677,9 @@ CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2 # CONFIG_USB_GR_UDC is not set # CONFIG_USB_R8A66597 is not set # CONFIG_USB_PXA27X is not set -# CONFIG_USB_MV_UDC is not set -# CONFIG_USB_MV_U3D is not set # CONFIG_USB_SNP_UDC_PLAT is not set # CONFIG_USB_M66592 is not set # CONFIG_USB_BDC_UDC is not set -# CONFIG_USB_NET2272 is not set # CONFIG_USB_GADGET_XILINX is not set # CONFIG_USB_MAX3420_UDC is not set # CONFIG_USB_DUMMY_HCD is not set @@ -5382,8 +5731,11 @@ CONFIG_TYPEC_UCSI=m # CONFIG_TYPEC_MUX_FSA4480 is not set # CONFIG_TYPEC_MUX_GPIO_SBU is not set # CONFIG_TYPEC_MUX_PI3USB30532 is not set +# CONFIG_TYPEC_MUX_IT5205 is not set # CONFIG_TYPEC_MUX_NB7VPQ904M is not set +# CONFIG_TYPEC_MUX_PS883X is not set # CONFIG_TYPEC_MUX_PTN36502 is not set +# CONFIG_TYPEC_MUX_TUSB1046 is not set # CONFIG_TYPEC_MUX_WCD939X_USBSS is not set # end of USB Type-C Multiplexer/DeMultiplexer Switch support @@ -5391,6 +5743,7 @@ CONFIG_TYPEC_UCSI=m # USB Type-C Alternate Mode drivers # # CONFIG_TYPEC_DP_ALTMODE is not set +# CONFIG_TYPEC_TBT_ALTMODE is not set # end of USB Type-C Alternate Mode drivers CONFIG_USB_ROLE_SWITCH=y @@ -5451,6 +5804,7 @@ CONFIG_LEDS_GPIO=y # CONFIG_LEDS_LP50XX is not set # CONFIG_LEDS_LP55XX_COMMON is not set # CONFIG_LEDS_LP8860 is not set +# CONFIG_LEDS_LP8864 is not set # CONFIG_LEDS_PCA955X is not set # CONFIG_LEDS_PCA963X is not set # CONFIG_LEDS_PCA995X is not set @@ -5475,6 +5829,7 @@ CONFIG_LEDS_SYSCON=y # CONFIG_LEDS_USER is not set # CONFIG_LEDS_SPI_BYTE is not set # CONFIG_LEDS_LM3697 is not set +# CONFIG_LEDS_ST1202 is not set # # Flash and Torch LED drivers @@ -5486,12 +5841,15 @@ CONFIG_LEDS_SYSCON=y # CONFIG_LEDS_RT4505 is not set # CONFIG_LEDS_RT8515 is not set # CONFIG_LEDS_SGM3140 is not set +# CONFIG_LEDS_SY7802 is not set +# CONFIG_LEDS_TPS6131X is not set # # RGB LED drivers # # CONFIG_LEDS_GROUP_MULTICOLOR is not set # CONFIG_LEDS_KTD202X is not set +# CONFIG_LEDS_NCP5623 is not set # CONFIG_LEDS_PWM_MULTICOLOR is not set # CONFIG_LEDS_QCOM_LPG is not set @@ -5499,15 +5857,15 @@ CONFIG_LEDS_SYSCON=y # LED Triggers # CONFIG_LEDS_TRIGGERS=y -# CONFIG_LEDS_TRIGGER_TIMER is not set -# CONFIG_LEDS_TRIGGER_ONESHOT is not set -# CONFIG_LEDS_TRIGGER_DISK is not set -# CONFIG_LEDS_TRIGGER_MTD is not set +CONFIG_LEDS_TRIGGER_TIMER=y +CONFIG_LEDS_TRIGGER_ONESHOT=y +CONFIG_LEDS_TRIGGER_DISK=y +CONFIG_LEDS_TRIGGER_MTD=y CONFIG_LEDS_TRIGGER_HEARTBEAT=y # CONFIG_LEDS_TRIGGER_BACKLIGHT is not set CONFIG_LEDS_TRIGGER_CPU=y -# CONFIG_LEDS_TRIGGER_ACTIVITY is not set -# CONFIG_LEDS_TRIGGER_GPIO is not set +CONFIG_LEDS_TRIGGER_ACTIVITY=y +CONFIG_LEDS_TRIGGER_GPIO=y CONFIG_LEDS_TRIGGER_DEFAULT_ON=y # @@ -5515,14 +5873,14 @@ CONFIG_LEDS_TRIGGER_DEFAULT_ON=y # # CONFIG_LEDS_TRIGGER_TRANSIENT is not set # CONFIG_LEDS_TRIGGER_CAMERA is not set -# CONFIG_LEDS_TRIGGER_PANIC is not set -# CONFIG_LEDS_TRIGGER_NETDEV is not set +CONFIG_LEDS_TRIGGER_PANIC=y +CONFIG_LEDS_TRIGGER_NETDEV=y # CONFIG_LEDS_TRIGGER_PATTERN is not set -# CONFIG_LEDS_TRIGGER_AUDIO is not set # CONFIG_LEDS_TRIGGER_TTY is not set +# CONFIG_LEDS_TRIGGER_INPUT_EVENTS is not set # -# Simple LED drivers +# Simatic LED drivers # # CONFIG_ACCESSIBILITY is not set # CONFIG_INFINIBAND is not set @@ -5574,13 +5932,14 @@ CONFIG_RTC_DRV_PCF8563=m # CONFIG_RTC_DRV_S35390A is not set # CONFIG_RTC_DRV_FM3130 is not set # CONFIG_RTC_DRV_RX8010 is not set +# CONFIG_RTC_DRV_RX8111 is not set # CONFIG_RTC_DRV_RX8581 is not set # CONFIG_RTC_DRV_RX8025 is not set # CONFIG_RTC_DRV_EM3027 is not set # CONFIG_RTC_DRV_RV3028 is not set # CONFIG_RTC_DRV_RV3032 is not set # CONFIG_RTC_DRV_RV8803 is not set -# CONFIG_RTC_DRV_S5M is not set +# CONFIG_RTC_DRV_SD2405AL is not set # CONFIG_RTC_DRV_SD3078 is not set # @@ -5643,6 +6002,7 @@ CONFIG_RTC_DRV_PL031=y # HID Sensor RTC drivers # # CONFIG_RTC_DRV_GOLDFISH is not set +CONFIG_RTC_DRV_AMLOGIC_A4=y # CONFIG_DMADEVICES is not set # @@ -5670,22 +6030,13 @@ CONFIG_DMABUF_HEAPS_CMA=y # # Microsoft Hyper-V guest support # +# CONFIG_HYPERV is not set # end of Microsoft Hyper-V guest support # CONFIG_GREYBUS is not set # CONFIG_COMEDI is not set CONFIG_STAGING=y -# CONFIG_PRISM2_USB is not set -CONFIG_RTLLIB=m -CONFIG_RTLLIB_CRYPTO_CCMP=m -CONFIG_RTLLIB_CRYPTO_TKIP=m -CONFIG_RTLLIB_CRYPTO_WEP=m -# CONFIG_RTL8192E is not set CONFIG_RTL8723BS=m -CONFIG_R8712U=m -# CONFIG_RTS5208 is not set -# CONFIG_VT6655 is not set -# CONFIG_VT6656 is not set # # IIO staging drivers @@ -5695,7 +6046,6 @@ CONFIG_R8712U=m # Accelerometers # # CONFIG_ADIS16203 is not set -# CONFIG_ADIS16240 is not set # end of Accelerometers # @@ -5734,18 +6084,15 @@ CONFIG_VIDEO_MESON_VDEC=m # StarFive media platform drivers # # CONFIG_STAGING_MEDIA_DEPRECATED is not set -# CONFIG_STAGING_BOARD is not set -# CONFIG_LTE_GDM724X is not set # CONFIG_FB_TFT is not set -# CONFIG_KS7010 is not set -# CONFIG_PI433 is not set # CONFIG_XIL_AXIS_FIFO is not set -# CONFIG_FIELDBUS_DEV is not set # CONFIG_VME_BUS is not set +# CONFIG_GPIB is not set # CONFIG_GOLDFISH is not set # CONFIG_CHROME_PLATFORMS is not set # CONFIG_MELLANOX_PLATFORM is not set # CONFIG_SURFACE_PLATFORMS is not set +CONFIG_ARM64_PLATFORM_DEVICES=y CONFIG_HAVE_CLK=y CONFIG_HAVE_CLK_PREPARE=y CONFIG_COMMON_CLK=y @@ -5768,7 +6115,6 @@ CONFIG_COMMON_CLK_SCPI=y # CONFIG_COMMON_CLK_CDCE706 is not set # CONFIG_COMMON_CLK_CDCE925 is not set # CONFIG_COMMON_CLK_CS2000_CP is not set -# CONFIG_COMMON_CLK_S2MPS11 is not set # CONFIG_COMMON_CLK_AXI_CLKGEN is not set # CONFIG_COMMON_CLK_XGENE is not set CONFIG_COMMON_CLK_PWM=y @@ -5789,6 +6135,7 @@ CONFIG_COMMON_CLK_MESON_PHASE=y CONFIG_COMMON_CLK_MESON_PLL=y CONFIG_COMMON_CLK_MESON_SCLK_DIV=y CONFIG_COMMON_CLK_MESON_VID_PLL_DIV=y +CONFIG_COMMON_CLK_MESON_VCLK=y CONFIG_COMMON_CLK_MESON_CLKC_UTILS=y CONFIG_COMMON_CLK_MESON_AO_CLKC=y CONFIG_COMMON_CLK_MESON_EE_CLKC=y @@ -5798,6 +6145,8 @@ CONFIG_COMMON_CLK_AXG=y CONFIG_COMMON_CLK_AXG_AUDIO=y # CONFIG_COMMON_CLK_A1_PLL is not set # CONFIG_COMMON_CLK_A1_PERIPHERALS is not set +# CONFIG_COMMON_CLK_C3_PLL is not set +# CONFIG_COMMON_CLK_C3_PERIPHERALS is not set CONFIG_COMMON_CLK_G12A=y CONFIG_COMMON_CLK_S4_PLL=y CONFIG_COMMON_CLK_S4_PERIPHERALS=y @@ -5815,14 +6164,16 @@ CONFIG_TIMER_PROBE=y CONFIG_ARM_ARCH_TIMER=y CONFIG_ARM_ARCH_TIMER_EVTSTREAM=y CONFIG_ARM_ARCH_TIMER_OOL_WORKAROUND=y -CONFIG_FSL_ERRATUM_A008585=y +# CONFIG_FSL_ERRATUM_A008585 is not set # CONFIG_HISILICON_ERRATUM_161010101 is not set CONFIG_ARM64_ERRATUM_858921=y +# CONFIG_ARM_TIMER_SP804 is not set # end of Clock Source drivers CONFIG_MAILBOX=y CONFIG_ARM_MHU=y # CONFIG_ARM_MHU_V2 is not set +# CONFIG_ARM_MHU_V3 is not set CONFIG_PLATFORM_MHU=y # CONFIG_PL320_MBOX is not set # CONFIG_ALTERA_MBOX is not set @@ -5847,9 +6198,9 @@ CONFIG_IOMMU_DEFAULT_DMA_STRICT=y # CONFIG_IOMMU_DEFAULT_PASSTHROUGH is not set CONFIG_OF_IOMMU=y CONFIG_IOMMU_DMA=y -# CONFIG_IOMMUFD is not set # CONFIG_ARM_SMMU is not set # CONFIG_ARM_SMMU_V3 is not set +# CONFIG_IOMMUFD is not set # # Remoteproc drivers @@ -5911,6 +6262,7 @@ CONFIG_MESON_GX_SOCINFO=y # # Qualcomm SoC drivers # +# CONFIG_QCOM_PBS is not set # end of Qualcomm SoC drivers # CONFIG_SOC_TI is not set @@ -5928,7 +6280,6 @@ CONFIG_MESON_GX_SOCINFO=y # # Amlogic PM Domains # -CONFIG_MESON_GX_PM_DOMAINS=y CONFIG_MESON_EE_PM_DOMAINS=y CONFIG_MESON_SECURE_PM_DOMAINS=y # end of Amlogic PM Domains @@ -5974,6 +6325,7 @@ CONFIG_EXTCON=y # CONFIG_EXTCON_ADC_JACK is not set # CONFIG_EXTCON_FSA9480 is not set # CONFIG_EXTCON_GPIO is not set +# CONFIG_EXTCON_LC824206XA is not set # CONFIG_EXTCON_MAX3355 is not set # CONFIG_EXTCON_PTN5150 is not set # CONFIG_EXTCON_RT8973A is not set @@ -6011,6 +6363,8 @@ CONFIG_IIO_CONSUMERS_PER_TRIGGER=2 # CONFIG_ADXL367_I2C is not set # CONFIG_ADXL372_SPI is not set # CONFIG_ADXL372_I2C is not set +# CONFIG_ADXL380_SPI is not set +# CONFIG_ADXL380_I2C is not set # CONFIG_BMA180 is not set # CONFIG_BMA220 is not set # CONFIG_BMA400 is not set @@ -6047,31 +6401,42 @@ CONFIG_IIO_CONSUMERS_PER_TRIGGER=2 # # Analog to digital converters # +# CONFIG_AD4000 is not set +# CONFIG_AD4030 is not set # CONFIG_AD4130 is not set +# CONFIG_AD4695 is not set +# CONFIG_AD4851 is not set # CONFIG_AD7091R5 is not set # CONFIG_AD7091R8 is not set # CONFIG_AD7124 is not set +# CONFIG_AD7173 is not set +# CONFIG_AD7191 is not set # CONFIG_AD7192 is not set # CONFIG_AD7266 is not set # CONFIG_AD7280 is not set # CONFIG_AD7291 is not set # CONFIG_AD7292 is not set # CONFIG_AD7298 is not set +# CONFIG_AD7380 is not set # CONFIG_AD7476 is not set # CONFIG_AD7606_IFACE_PARALLEL is not set # CONFIG_AD7606_IFACE_SPI is not set +# CONFIG_AD7625 is not set # CONFIG_AD7766 is not set # CONFIG_AD7768_1 is not set +# CONFIG_AD7779 is not set # CONFIG_AD7780 is not set # CONFIG_AD7791 is not set # CONFIG_AD7793 is not set # CONFIG_AD7887 is not set # CONFIG_AD7923 is not set +# CONFIG_AD7944 is not set # CONFIG_AD7949 is not set # CONFIG_AD799X is not set -# CONFIG_ADI_AXI_ADC is not set +# CONFIG_AD9467 is not set # CONFIG_CC10001_ADC is not set # CONFIG_ENVELOPE_DETECTOR is not set +# CONFIG_GEHC_PMC_ADC is not set # CONFIG_HI8435 is not set # CONFIG_HX711 is not set # CONFIG_INA2XX_ADC is not set @@ -6095,26 +6460,33 @@ CONFIG_IIO_CONSUMERS_PER_TRIGGER=2 # CONFIG_MCP3911 is not set CONFIG_MESON_SARADC=y # CONFIG_NAU7802 is not set +# CONFIG_NCT7201 is not set +# CONFIG_PAC1921 is not set +# CONFIG_PAC1934 is not set # CONFIG_QCOM_SPMI_IADC is not set # CONFIG_QCOM_SPMI_VADC is not set # CONFIG_QCOM_SPMI_ADC5 is not set +# CONFIG_ROHM_BD79124 is not set # CONFIG_RICHTEK_RTQ6056 is not set # CONFIG_SD_ADC_MODULATOR is not set # CONFIG_TI_ADC081C is not set # CONFIG_TI_ADC0832 is not set # CONFIG_TI_ADC084S021 is not set -# CONFIG_TI_ADC12138 is not set # CONFIG_TI_ADC108S102 is not set +# CONFIG_TI_ADC12138 is not set # CONFIG_TI_ADC128S052 is not set # CONFIG_TI_ADC161S626 is not set # CONFIG_TI_ADS1015 is not set -# CONFIG_TI_ADS7924 is not set # CONFIG_TI_ADS1100 is not set +# CONFIG_TI_ADS1119 is not set +# CONFIG_TI_ADS124S08 is not set +# CONFIG_TI_ADS1298 is not set +# CONFIG_TI_ADS131E08 is not set +# CONFIG_TI_ADS7138 is not set +# CONFIG_TI_ADS7924 is not set # CONFIG_TI_ADS7950 is not set # CONFIG_TI_ADS8344 is not set # CONFIG_TI_ADS8688 is not set -# CONFIG_TI_ADS124S08 is not set -# CONFIG_TI_ADS131E08 is not set # CONFIG_TI_LMP92064 is not set # CONFIG_TI_TLC4541 is not set # CONFIG_TI_TSC2046 is not set @@ -6158,10 +6530,13 @@ CONFIG_MESON_SARADC=y # CONFIG_ATLAS_EZO_SENSOR is not set # CONFIG_BME680 is not set # CONFIG_CCS811 is not set +# CONFIG_ENS160 is not set # CONFIG_IAQCORE is not set +# CONFIG_MHZ19B is not set # CONFIG_PMS7003 is not set # CONFIG_SCD30_CORE is not set # CONFIG_SCD4X is not set +# CONFIG_SEN0322 is not set # CONFIG_SENSIRION_SGP30 is not set # CONFIG_SENSIRION_SGP40 is not set # CONFIG_SPS30_I2C is not set @@ -6189,6 +6564,8 @@ CONFIG_MESON_SARADC=y # # Digital to analog converters # +# CONFIG_AD3530R is not set +# CONFIG_AD3552R_HS is not set # CONFIG_AD3552R is not set # CONFIG_AD5064 is not set # CONFIG_AD5360 is not set @@ -6200,6 +6577,7 @@ CONFIG_MESON_SARADC=y # CONFIG_AD5593R is not set # CONFIG_AD5504 is not set # CONFIG_AD5624R_SPI is not set +# CONFIG_AD9739A is not set # CONFIG_LTC2688 is not set # CONFIG_AD5686_SPI is not set # CONFIG_AD5696_I2C is not set @@ -6212,11 +6590,14 @@ CONFIG_MESON_SARADC=y # CONFIG_AD5791 is not set # CONFIG_AD7293 is not set # CONFIG_AD7303 is not set +# CONFIG_AD8460 is not set # CONFIG_AD8801 is not set +# CONFIG_BD79703 is not set # CONFIG_DPOT_DAC is not set # CONFIG_DS4424 is not set # CONFIG_LTC1660 is not set # CONFIG_LTC2632 is not set +# CONFIG_LTC2664 is not set # CONFIG_M62332 is not set # CONFIG_MAX517 is not set # CONFIG_MAX5522 is not set @@ -6259,6 +6640,7 @@ CONFIG_MESON_SARADC=y # CONFIG_ADF4350 is not set # CONFIG_ADF4371 is not set # CONFIG_ADF4377 is not set +# CONFIG_ADMFM2000 is not set # CONFIG_ADMV1013 is not set # CONFIG_ADMV1014 is not set # CONFIG_ADMV4420 is not set @@ -6301,6 +6683,7 @@ CONFIG_MESON_SARADC=y # # CONFIG_AM2315 is not set # CONFIG_DHT11 is not set +# CONFIG_ENS210 is not set # CONFIG_HDC100X is not set # CONFIG_HDC2010 is not set # CONFIG_HDC3020 is not set @@ -6317,8 +6700,11 @@ CONFIG_MESON_SARADC=y # CONFIG_ADIS16460 is not set # CONFIG_ADIS16475 is not set # CONFIG_ADIS16480 is not set +# CONFIG_ADIS16550 is not set # CONFIG_BMI160_I2C is not set # CONFIG_BMI160_SPI is not set +# CONFIG_BMI270_I2C is not set +# CONFIG_BMI270_SPI is not set # CONFIG_BMI323_I2C is not set # CONFIG_BMI323_SPI is not set # CONFIG_BOSCH_BNO055_SERIAL is not set @@ -6330,6 +6716,7 @@ CONFIG_MESON_SARADC=y # CONFIG_INV_ICM42600_SPI is not set # CONFIG_INV_MPU6050_I2C is not set # CONFIG_INV_MPU6050_SPI is not set +# CONFIG_SMI240 is not set # CONFIG_IIO_ST_LSM6DSX is not set # CONFIG_IIO_ST_LSM9DS0 is not set # end of Inertial measurement units @@ -6339,11 +6726,15 @@ CONFIG_MESON_SARADC=y # # CONFIG_ADJD_S311 is not set # CONFIG_ADUX1020 is not set +# CONFIG_AL3000A is not set # CONFIG_AL3010 is not set # CONFIG_AL3320A is not set +# CONFIG_APDS9160 is not set # CONFIG_APDS9300 is not set +# CONFIG_APDS9306 is not set # CONFIG_APDS9960 is not set # CONFIG_AS73211 is not set +# CONFIG_BH1745 is not set # CONFIG_BH1750 is not set # CONFIG_BH1780 is not set # CONFIG_CM32181 is not set @@ -6358,7 +6749,6 @@ CONFIG_MESON_SARADC=y # CONFIG_ISL29125 is not set # CONFIG_ISL76682 is not set # CONFIG_JSA1212 is not set -# CONFIG_ROHM_BU27008 is not set # CONFIG_ROHM_BU27034 is not set # CONFIG_RPR0521 is not set # CONFIG_LTR390 is not set @@ -6370,6 +6760,7 @@ CONFIG_MESON_SARADC=y # CONFIG_NOA1305 is not set # CONFIG_OPT3001 is not set # CONFIG_OPT4001 is not set +# CONFIG_OPT4060 is not set # CONFIG_PA12203001 is not set # CONFIG_SI1133 is not set # CONFIG_SI1145 is not set @@ -6385,7 +6776,9 @@ CONFIG_MESON_SARADC=y # CONFIG_US5182D is not set # CONFIG_VCNL4000 is not set # CONFIG_VCNL4035 is not set +# CONFIG_VEML3235 is not set # CONFIG_VEML6030 is not set +# CONFIG_VEML6040 is not set # CONFIG_VEML6070 is not set # CONFIG_VEML6075 is not set # CONFIG_VL6180 is not set @@ -6395,9 +6788,11 @@ CONFIG_MESON_SARADC=y # # Magnetometer sensors # +# CONFIG_AF8133J is not set # CONFIG_AK8974 is not set # CONFIG_AK8975 is not set # CONFIG_AK09911 is not set +# CONFIG_ALS31300 is not set # CONFIG_BMC150_MAGN_I2C is not set # CONFIG_BMC150_MAGN_SPI is not set # CONFIG_MAG3110 is not set @@ -6407,6 +6802,7 @@ CONFIG_MESON_SARADC=y # CONFIG_SENSORS_HMC5843_SPI is not set # CONFIG_SENSORS_RM3100_I2C is not set # CONFIG_SENSORS_RM3100_SPI is not set +# CONFIG_SI7210 is not set # CONFIG_TI_TMAG5273 is not set # CONFIG_YAMAHA_YAS530 is not set # end of Magnetometer sensors @@ -6474,6 +6870,7 @@ CONFIG_MESON_SARADC=y # CONFIG_MPRLS0025PA is not set # CONFIG_MS5611 is not set # CONFIG_MS5637 is not set +# CONFIG_SDP500 is not set # CONFIG_IIO_ST_PRESS is not set # CONFIG_T5403 is not set # CONFIG_HP206C is not set @@ -6489,6 +6886,7 @@ CONFIG_MESON_SARADC=y # # Proximity and distance sensors # +# CONFIG_HX9023S is not set # CONFIG_IRSD200 is not set # CONFIG_ISL29501 is not set # CONFIG_LIDAR_LITE_V2 is not set @@ -6503,6 +6901,7 @@ CONFIG_MESON_SARADC=y # CONFIG_SRF08 is not set # CONFIG_VCNL3020 is not set # CONFIG_VL53L0X_I2C is not set +# CONFIG_AW96103 is not set # end of Proximity and distance sensors # @@ -6534,12 +6933,13 @@ CONFIG_MESON_SARADC=y # CONFIG_NTB is not set CONFIG_PWM=y -CONFIG_PWM_SYSFS=y # CONFIG_PWM_DEBUG is not set # CONFIG_PWM_ATMEL_TCB is not set # CONFIG_PWM_CLK is not set # CONFIG_PWM_DWC is not set # CONFIG_PWM_FSL_FTM is not set +# CONFIG_PWM_GPIO is not set +# CONFIG_PWM_MC33XS2410 is not set CONFIG_PWM_MESON=y # CONFIG_PWM_PCA9685 is not set # CONFIG_PWM_XILINX is not set @@ -6553,7 +6953,7 @@ CONFIG_ARM_GIC_MAX_NR=1 CONFIG_ARM_GIC_V2M=y CONFIG_ARM_GIC_V3=y CONFIG_ARM_GIC_V3_ITS=y -CONFIG_ARM_GIC_V3_ITS_PCI=y +CONFIG_IRQ_MSI_LIB=y # CONFIG_AL_FIC is not set # CONFIG_XILINX_INTC is not set CONFIG_PARTITION_PERCPU=y @@ -6562,11 +6962,14 @@ CONFIG_MESON_IRQ_GPIO=y # CONFIG_IPACK_BUS is not set CONFIG_RESET_CONTROLLER=y -CONFIG_RESET_MESON=y -CONFIG_RESET_MESON_AUDIO_ARB=y +# CONFIG_RESET_GPIO is not set # CONFIG_RESET_SIMPLE is not set # CONFIG_RESET_TI_SYSCON is not set # CONFIG_RESET_TI_TPS380X is not set +CONFIG_RESET_MESON_COMMON=y +CONFIG_RESET_MESON=y +CONFIG_RESET_MESON_AUX=y +CONFIG_RESET_MESON_AUDIO_ARB=y # # PHY Subsystem @@ -6574,6 +6977,7 @@ CONFIG_RESET_MESON_AUDIO_ARB=y CONFIG_GENERIC_PHY=y CONFIG_GENERIC_PHY_MIPI_DPHY=y # CONFIG_PHY_CAN_TRANSCEIVER is not set +# CONFIG_PHY_NXP_PTN3222 is not set CONFIG_PHY_MESON8B_USB2=y CONFIG_PHY_MESON_GXL_USB2=y CONFIG_PHY_MESON_G12A_MIPI_DPHY_ANALOG=y @@ -6596,7 +7000,6 @@ CONFIG_PHY_MESON_AXG_MIPI_DPHY=y # CONFIG_PHY_CADENCE_SALVO is not set # CONFIG_PHY_PXA_28NM_HSIC is not set # CONFIG_PHY_PXA_28NM_USB2 is not set -# CONFIG_PHY_LAN966X_SERDES is not set # CONFIG_PHY_CPCAP_USB is not set # CONFIG_PHY_MAPPHONE_MDM6600 is not set # CONFIG_PHY_OCELOT_SERDES is not set @@ -6612,6 +7015,7 @@ CONFIG_PHY_MESON_AXG_MIPI_DPHY=y # CONFIG_ARM_CCI_PMU is not set # CONFIG_ARM_CCN is not set # CONFIG_ARM_CMN is not set +# CONFIG_ARM_NI is not set # CONFIG_ARM_PMU is not set # CONFIG_ARM_SMMU_V3_PMU is not set # CONFIG_ARM_DSU_PMU is not set @@ -6643,6 +7047,7 @@ CONFIG_NVMEM_LAYOUTS=y # # CONFIG_NVMEM_LAYOUT_SL28_VPD is not set # CONFIG_NVMEM_LAYOUT_ONIE_TLV is not set +# CONFIG_NVMEM_LAYOUT_U_BOOT_ENV is not set # end of Layout Types CONFIG_NVMEM_MESON_EFUSE=y @@ -6705,7 +7110,6 @@ CONFIG_EXT4_FS_SECURITY=y CONFIG_JBD2=y # CONFIG_JBD2_DEBUG is not set CONFIG_FS_MBCACHE=y -# CONFIG_REISERFS_FS is not set CONFIG_JFS_FS=m # CONFIG_JFS_POSIX_ACL is not set # CONFIG_JFS_SECURITY is not set @@ -6727,6 +7131,7 @@ CONFIG_BTRFS_FS_POSIX_ACL=y # CONFIG_BTRFS_FS_RUN_SANITY_TESTS is not set # CONFIG_BTRFS_DEBUG is not set # CONFIG_BTRFS_ASSERT is not set +# CONFIG_BTRFS_EXPERIMENTAL is not set # CONFIG_BTRFS_FS_REF_VERIFY is not set # CONFIG_NILFS2_FS is not set CONFIG_F2FS_FS=m @@ -6748,11 +7153,14 @@ CONFIG_FSNOTIFY=y CONFIG_DNOTIFY=y CONFIG_INOTIFY_USER=y CONFIG_FANOTIFY=y +# CONFIG_FANOTIFY_ACCESS_PERMISSIONS is not set # CONFIG_QUOTA is not set CONFIG_AUTOFS_FS=y CONFIG_FUSE_FS=m # CONFIG_CUSE is not set # CONFIG_VIRTIO_FS is not set +CONFIG_FUSE_PASSTHROUGH=y +CONFIG_FUSE_IO_URING=y CONFIG_OVERLAY_FS=m # CONFIG_OVERLAY_FS_REDIRECT_DIR is not set CONFIG_OVERLAY_FS_REDIRECT_ALWAYS_FOLLOW=y @@ -6766,9 +7174,9 @@ CONFIG_OVERLAY_FS_REDIRECT_ALWAYS_FOLLOW=y # CONFIG_NETFS_SUPPORT=y # CONFIG_NETFS_STATS is not set +# CONFIG_NETFS_DEBUG is not set CONFIG_FSCACHE=y # CONFIG_FSCACHE_STATS is not set -# CONFIG_FSCACHE_DEBUG is not set # CONFIG_CACHEFILES is not set # end of Caches @@ -6792,11 +7200,11 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" # CONFIG_FAT_DEFAULT_UTF8 is not set CONFIG_EXFAT_FS=m CONFIG_EXFAT_DEFAULT_IOCHARSET="utf8" -# CONFIG_NTFS_FS is not set CONFIG_NTFS3_FS=m # CONFIG_NTFS3_64BIT_CLUSTER is not set # CONFIG_NTFS3_LZX_XPRESS is not set # CONFIG_NTFS3_FS_POSIX_ACL is not set +# CONFIG_NTFS_FS is not set # end of DOS/FAT/EXFAT/NT Filesystems # @@ -6841,6 +7249,7 @@ CONFIG_SQUASHFS_COMPILE_DECOMP_SINGLE=y # CONFIG_SQUASHFS_COMPILE_DECOMP_MULTI is not set # CONFIG_SQUASHFS_COMPILE_DECOMP_MULTI_PERCPU is not set # CONFIG_SQUASHFS_XATTR is not set +# CONFIG_SQUASHFS_COMP_CACHE_FULL is not set CONFIG_SQUASHFS_ZLIB=y CONFIG_SQUASHFS_LZ4=y CONFIG_SQUASHFS_LZO=y @@ -6857,7 +7266,6 @@ CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3 # CONFIG_QNX6FS_FS is not set # CONFIG_ROMFS_FS is not set # CONFIG_PSTORE is not set -# CONFIG_SYSV_FS is not set # CONFIG_UFS_FS is not set # CONFIG_EROFS_FS is not set CONFIG_NETWORK_FILESYSTEMS=y @@ -6870,6 +7278,7 @@ CONFIG_NFS_SWAP=y CONFIG_NFS_V4_1=y CONFIG_NFS_V4_2=y CONFIG_PNFS_FILE_LAYOUT=y +CONFIG_PNFS_BLOCK=m CONFIG_PNFS_FLEXFILE_LAYOUT=y CONFIG_NFS_V4_1_IMPLEMENTATION_ID_DOMAIN="kernel.org" CONFIG_NFS_V4_1_MIGRATION=y @@ -6906,6 +7315,7 @@ CONFIG_CIFS_DEBUG=y # CONFIG_CIFS_SWN_UPCALL is not set CONFIG_CIFS_FSCACHE=y # CONFIG_CIFS_ROOT is not set +# CONFIG_CIFS_COMPRESSION is not set # CONFIG_SMB_SERVER is not set CONFIG_SMBFS=y # CONFIG_CODA_FS is not set @@ -6978,10 +7388,12 @@ CONFIG_KEYS=y # CONFIG_ENCRYPTED_KEYS is not set CONFIG_KEY_DH_OPERATIONS=y # CONFIG_SECURITY_DMESG_RESTRICT is not set +CONFIG_PROC_MEM_ALWAYS_FORCE=y +# CONFIG_PROC_MEM_FORCE_PTRACE is not set +# CONFIG_PROC_MEM_NO_FORCE is not set +# CONFIG_MSEAL_SYSTEM_MAPPINGS is not set # CONFIG_SECURITY is not set # CONFIG_SECURITYFS is not set -# CONFIG_HARDENED_USERCOPY is not set -# CONFIG_FORTIFY_SOURCE is not set # CONFIG_STATIC_USERMODEHELPER is not set CONFIG_DEFAULT_SECURITY_DAC=y CONFIG_LSM="yama,loadpin,safesetid,integrity,selinux,smack,tomoyo,apparmor" @@ -7006,6 +7418,13 @@ CONFIG_CC_HAS_ZERO_CALL_USED_REGS=y # CONFIG_ZERO_CALL_USED_REGS is not set # end of Memory initialization +# +# Bounds checking +# +# CONFIG_FORTIFY_SOURCE is not set +# CONFIG_HARDENED_USERCOPY is not set +# end of Bounds checking + # # Hardening of kernel data structures # @@ -7029,6 +7448,7 @@ CONFIG_CRYPTO_ALGAPI=y CONFIG_CRYPTO_ALGAPI2=y CONFIG_CRYPTO_AEAD=y CONFIG_CRYPTO_AEAD2=y +CONFIG_CRYPTO_SIG=y CONFIG_CRYPTO_SIG2=y CONFIG_CRYPTO_SKCIPHER=y CONFIG_CRYPTO_SKCIPHER2=y @@ -7045,13 +7465,13 @@ CONFIG_CRYPTO_ACOMP2=y CONFIG_CRYPTO_MANAGER=y CONFIG_CRYPTO_MANAGER2=y # CONFIG_CRYPTO_USER is not set -CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y +# CONFIG_CRYPTO_SELFTESTS is not set CONFIG_CRYPTO_NULL=y -CONFIG_CRYPTO_NULL2=y CONFIG_CRYPTO_PCRYPT=y CONFIG_CRYPTO_CRYPTD=y -# CONFIG_CRYPTO_AUTHENC is not set -# CONFIG_CRYPTO_TEST is not set +CONFIG_CRYPTO_AUTHENC=y +# CONFIG_CRYPTO_KRB5ENC is not set +# CONFIG_CRYPTO_BENCHMARK is not set CONFIG_CRYPTO_ENGINE=y # end of Crypto core or helper @@ -7065,7 +7485,6 @@ CONFIG_CRYPTO_ECC=m CONFIG_CRYPTO_ECDH=m # CONFIG_CRYPTO_ECDSA is not set # CONFIG_CRYPTO_ECRDSA is not set -# CONFIG_CRYPTO_SM2 is not set # CONFIG_CRYPTO_CURVE25519 is not set # end of Public-key cryptography @@ -7102,7 +7521,6 @@ CONFIG_CRYPTO_CTR=y CONFIG_CRYPTO_CTS=m CONFIG_CRYPTO_ECB=y # CONFIG_CRYPTO_HCTR2 is not set -# CONFIG_CRYPTO_KEYWRAP is not set # CONFIG_CRYPTO_LRW is not set # CONFIG_CRYPTO_PCBC is not set # CONFIG_CRYPTO_XTS is not set @@ -7118,7 +7536,7 @@ CONFIG_CRYPTO_CCM=y CONFIG_CRYPTO_GCM=y CONFIG_CRYPTO_GENIV=y CONFIG_CRYPTO_SEQIV=y -CONFIG_CRYPTO_ECHAINIV=m +CONFIG_CRYPTO_ECHAINIV=y # CONFIG_CRYPTO_ESSIV is not set # end of AEAD (authenticated encryption with associated data) ciphers @@ -7133,16 +7551,13 @@ CONFIG_CRYPTO_MD4=y CONFIG_CRYPTO_MD5=y CONFIG_CRYPTO_MICHAEL_MIC=m CONFIG_CRYPTO_POLYVAL=y -# CONFIG_CRYPTO_POLY1305 is not set # CONFIG_CRYPTO_RMD160 is not set CONFIG_CRYPTO_SHA1=y CONFIG_CRYPTO_SHA256=y CONFIG_CRYPTO_SHA512=y CONFIG_CRYPTO_SHA3=y -CONFIG_CRYPTO_SM3=y # CONFIG_CRYPTO_SM3_GENERIC is not set # CONFIG_CRYPTO_STREEBOG is not set -# CONFIG_CRYPTO_VMAC is not set # CONFIG_CRYPTO_WP512 is not set # CONFIG_CRYPTO_XCBC is not set CONFIG_CRYPTO_XXHASH=y @@ -7153,8 +7568,6 @@ CONFIG_CRYPTO_XXHASH=y # CONFIG_CRYPTO_CRC32C=y CONFIG_CRYPTO_CRC32=y -CONFIG_CRYPTO_CRCT10DIF=y -CONFIG_CRYPTO_CRC64_ROCKSOFT=y # end of CRCs (cyclic redundancy checks) # @@ -7197,16 +7610,12 @@ CONFIG_CRYPTO_USER_API_ENABLE_OBSOLETE=y CONFIG_CRYPTO_HASH_INFO=y CONFIG_CRYPTO_NHPOLY1305_NEON=y -CONFIG_CRYPTO_CHACHA20_NEON=y # # Accelerated Cryptographic Algorithms for CPU (arm64) # CONFIG_CRYPTO_GHASH_ARM64_CE=y -CONFIG_CRYPTO_POLY1305_NEON=y CONFIG_CRYPTO_SHA1_ARM64_CE=y -CONFIG_CRYPTO_SHA256_ARM64=y -CONFIG_CRYPTO_SHA2_ARM64_CE=y CONFIG_CRYPTO_SHA512_ARM64=y CONFIG_CRYPTO_SHA512_ARM64_CE=y # CONFIG_CRYPTO_SHA3_ARM64 is not set @@ -7224,7 +7633,6 @@ CONFIG_CRYPTO_SM4_ARM64_NEON_BLK=y CONFIG_CRYPTO_AES_ARM64_CE_CCM=y # CONFIG_CRYPTO_SM4_ARM64_CE_CCM is not set # CONFIG_CRYPTO_SM4_ARM64_CE_GCM is not set -CONFIG_CRYPTO_CRCT10DIF_ARM64_CE=y # end of Accelerated Cryptographic Algorithms for CPU (arm64) CONFIG_CRYPTO_HW=y @@ -7240,7 +7648,6 @@ CONFIG_CRYPTO_HW=y # CONFIG_CRYPTO_DEV_QAT_DH895xCCVF is not set # CONFIG_CRYPTO_DEV_QAT_C3XXXVF is not set # CONFIG_CRYPTO_DEV_QAT_C62XVF is not set -# CONFIG_CRYPTO_DEV_CAVIUM_ZIP is not set # CONFIG_CRYPTO_DEV_SAFEXCEL is not set # CONFIG_CRYPTO_DEV_CCREE is not set # CONFIG_CRYPTO_DEV_HISI_SEC is not set @@ -7265,6 +7672,7 @@ CONFIG_SYSTEM_TRUSTED_KEYS="" # CONFIG_SYSTEM_BLACKLIST_KEYRING is not set # end of Certificates for signature checking +# CONFIG_CRYPTO_KRB5 is not set CONFIG_BINARY_PRINTF=y # @@ -7282,7 +7690,6 @@ CONFIG_GENERIC_NET_UTILS=y CONFIG_CORDIC=m # CONFIG_PRIME_NUMBERS is not set CONFIG_RATIONAL=y -CONFIG_GENERIC_PCI_IOMAP=y CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y CONFIG_ARCH_HAS_FAST_MULTIPLIER=y CONFIG_ARCH_USE_SYM_ANNOTATIONS=y @@ -7299,34 +7706,38 @@ CONFIG_CRYPTO_LIB_BLAKE2S_GENERIC=y CONFIG_CRYPTO_ARCH_HAVE_LIB_CHACHA=y CONFIG_CRYPTO_LIB_CHACHA_GENERIC=y CONFIG_CRYPTO_LIB_CHACHA=y -CONFIG_CRYPTO_LIB_CURVE25519_GENERIC=y -CONFIG_CRYPTO_LIB_CURVE25519=y +CONFIG_CRYPTO_LIB_CURVE25519_GENERIC=m +CONFIG_CRYPTO_LIB_CURVE25519_INTERNAL=m +CONFIG_CRYPTO_LIB_CURVE25519=m CONFIG_CRYPTO_LIB_DES=y CONFIG_CRYPTO_LIB_POLY1305_RSIZE=9 CONFIG_CRYPTO_ARCH_HAVE_LIB_POLY1305=y CONFIG_CRYPTO_LIB_POLY1305_GENERIC=y -CONFIG_CRYPTO_LIB_POLY1305=y -CONFIG_CRYPTO_LIB_CHACHA20POLY1305=y +CONFIG_CRYPTO_LIB_POLY1305=m +CONFIG_CRYPTO_LIB_CHACHA20POLY1305=m CONFIG_CRYPTO_LIB_SHA1=y CONFIG_CRYPTO_LIB_SHA256=y +CONFIG_CRYPTO_ARCH_HAVE_LIB_SHA256=y +CONFIG_CRYPTO_ARCH_HAVE_LIB_SHA256_SIMD=y +CONFIG_CRYPTO_LIB_SHA256_GENERIC=y +CONFIG_CRYPTO_LIB_SM3=y +CONFIG_CRYPTO_CHACHA20_NEON=y +CONFIG_CRYPTO_POLY1305_NEON=m +CONFIG_CRYPTO_SHA256_ARM64=y # end of Crypto library routines CONFIG_CRC_CCITT=m CONFIG_CRC16=y CONFIG_CRC_T10DIF=y -CONFIG_CRC64_ROCKSOFT=y +CONFIG_ARCH_HAS_CRC_T10DIF=y +CONFIG_CRC_T10DIF_ARCH=y CONFIG_CRC_ITU_T=y CONFIG_CRC32=y -# CONFIG_CRC32_SELFTEST is not set -CONFIG_CRC32_SLICEBY8=y -# CONFIG_CRC32_SLICEBY4 is not set -# CONFIG_CRC32_SARWATE is not set -# CONFIG_CRC32_BIT is not set +CONFIG_ARCH_HAS_CRC32=y +CONFIG_CRC32_ARCH=y CONFIG_CRC64=y -# CONFIG_CRC4 is not set CONFIG_CRC7=y -CONFIG_LIBCRC32C=m -# CONFIG_CRC8 is not set +CONFIG_CRC_OPTIMIZATIONS=y CONFIG_XXHASH=y CONFIG_AUDIT_ARCH_COMPAT_GENERIC=y # CONFIG_RANDOM32_SELFTEST is not set @@ -7343,8 +7754,11 @@ CONFIG_XZ_DEC=y # CONFIG_XZ_DEC_POWERPC is not set # CONFIG_XZ_DEC_ARM is not set # CONFIG_XZ_DEC_ARMTHUMB is not set +CONFIG_XZ_DEC_ARM64=y # CONFIG_XZ_DEC_SPARC is not set +# CONFIG_XZ_DEC_RISCV is not set # CONFIG_XZ_DEC_MICROLZMA is not set +CONFIG_XZ_DEC_BCJ=y # CONFIG_XZ_DEC_TEST is not set CONFIG_GENERIC_ALLOCATOR=y CONFIG_XARRAY_MULTI=y @@ -7353,20 +7767,21 @@ CONFIG_HAS_IOMEM=y CONFIG_HAS_IOPORT=y CONFIG_HAS_IOPORT_MAP=y CONFIG_HAS_DMA=y -CONFIG_DMA_OPS=y +CONFIG_DMA_OPS_HELPERS=y CONFIG_NEED_SG_DMA_FLAGS=y CONFIG_NEED_SG_DMA_LENGTH=y CONFIG_NEED_DMA_MAP_STATE=y CONFIG_ARCH_DMA_ADDR_T_64BIT=y CONFIG_DMA_DECLARE_COHERENT=y CONFIG_ARCH_HAS_SETUP_DMA_OPS=y -CONFIG_ARCH_HAS_TEARDOWN_DMA_OPS=y CONFIG_ARCH_HAS_SYNC_DMA_FOR_DEVICE=y CONFIG_ARCH_HAS_SYNC_DMA_FOR_CPU=y CONFIG_ARCH_HAS_DMA_PREP_COHERENT=y +CONFIG_ARCH_HAS_FORCE_DMA_UNENCRYPTED=y CONFIG_SWIOTLB=y # CONFIG_SWIOTLB_DYNAMIC is not set CONFIG_DMA_BOUNCE_UNALIGNED_KMALLOC=y +CONFIG_DMA_NEED_SYNC=y # CONFIG_DMA_RESTRICTED_POOL is not set CONFIG_DMA_NONCOHERENT_MMAP=y CONFIG_DMA_COHERENT_POOL=y @@ -7385,7 +7800,6 @@ CONFIG_CMA_ALIGNMENT=8 # CONFIG_DMA_API_DEBUG is not set # CONFIG_DMA_MAP_BENCHMARK is not set CONFIG_SGL_ALLOC=y -# CONFIG_FORCE_NR_CPUS is not set CONFIG_CPU_RMAP=y CONFIG_DQL=y CONFIG_GLOB=y @@ -7394,11 +7808,14 @@ CONFIG_NLATTR=y CONFIG_CLZ_TAB=y # CONFIG_IRQ_POLL is not set CONFIG_MPILIB=y +CONFIG_DIMLIB=y CONFIG_LIBFDT=y CONFIG_OID_REGISTRY=y CONFIG_HAVE_GENERIC_VDSO=y CONFIG_GENERIC_GETTIMEOFDAY=y CONFIG_GENERIC_VDSO_TIME_NS=y +CONFIG_VDSO_GETRANDOM=y +CONFIG_GENERIC_VDSO_DATA_STORE=y CONFIG_FONT_SUPPORT=y # CONFIG_FONTS is not set CONFIG_FONT_8x8=y @@ -7413,6 +7830,7 @@ CONFIG_SBITMAP=y CONFIG_GENERIC_IOREMAP=y CONFIG_GENERIC_LIB_DEVMEM_IS_ALLOWED=y +CONFIG_UNION_FIND=y # # Kernel hacking @@ -7471,7 +7889,7 @@ CONFIG_DEBUG_FS_ALLOW_ALL=y # CONFIG_DEBUG_FS_ALLOW_NONE is not set CONFIG_HAVE_ARCH_KGDB=y # CONFIG_KGDB is not set -CONFIG_ARCH_HAS_UBSAN_SANITIZE_ALL=y +CONFIG_ARCH_HAS_UBSAN=y # CONFIG_UBSAN is not set CONFIG_HAVE_ARCH_KCSAN=y CONFIG_HAVE_KCSAN_COMPILER=y @@ -7484,6 +7902,7 @@ CONFIG_HAVE_KCSAN_COMPILER=y # CONFIG_NET_DEV_REFCNT_TRACKER is not set # CONFIG_NET_NS_REFCNT_TRACKER is not set # CONFIG_DEBUG_NET is not set +# CONFIG_DEBUG_NET_SMALL_RTNL is not set # end of Networking Debugging # @@ -7498,7 +7917,7 @@ CONFIG_SLUB_DEBUG=y # CONFIG_DEBUG_RODATA_TEST is not set CONFIG_ARCH_HAS_DEBUG_WX=y # CONFIG_DEBUG_WX is not set -CONFIG_GENERIC_PTDUMP=y +CONFIG_ARCH_HAS_PTDUMP=y # CONFIG_PTDUMP_DEBUGFS is not set CONFIG_HAVE_DEBUG_KMEMLEAK=y # CONFIG_DEBUG_KMEMLEAK is not set @@ -7508,15 +7927,16 @@ CONFIG_HAVE_DEBUG_KMEMLEAK=y # CONFIG_DEBUG_STACK_USAGE is not set # CONFIG_SCHED_STACK_END_CHECK is not set CONFIG_ARCH_HAS_DEBUG_VM_PGTABLE=y +# CONFIG_DEBUG_VFS is not set # CONFIG_DEBUG_VM is not set # CONFIG_DEBUG_VM_PGTABLE is not set CONFIG_ARCH_HAS_DEBUG_VIRTUAL=y # CONFIG_DEBUG_VIRTUAL is not set # CONFIG_DEBUG_MEMORY_INIT is not set # CONFIG_DEBUG_PER_CPU_MAPS is not set +# CONFIG_MEM_ALLOC_PROFILING is not set CONFIG_HAVE_ARCH_KASAN=y CONFIG_HAVE_ARCH_KASAN_SW_TAGS=y -CONFIG_HAVE_ARCH_KASAN_HW_TAGS=y CONFIG_HAVE_ARCH_KASAN_VMALLOC=y CONFIG_CC_HAS_KASAN_GENERIC=y CONFIG_CC_HAS_KASAN_SW_TAGS=y @@ -7546,32 +7966,21 @@ CONFIG_HAVE_HARDLOCKUP_DETECTOR_BUDDY=y # # Scheduler Debugging # -# CONFIG_SCHED_DEBUG is not set # CONFIG_SCHEDSTATS is not set # end of Scheduler Debugging -# CONFIG_DEBUG_TIMEKEEPING is not set -CONFIG_DEBUG_PREEMPT=y - # # Lock Debugging (spinlocks, mutexes, etc...) # CONFIG_LOCK_DEBUGGING_SUPPORT=y # CONFIG_PROVE_LOCKING is not set # CONFIG_LOCK_STAT is not set -CONFIG_DEBUG_RT_MUTEXES=y -CONFIG_DEBUG_SPINLOCK=y -CONFIG_DEBUG_MUTEXES=y -CONFIG_DEBUG_WW_MUTEX_SLOWPATH=y -CONFIG_DEBUG_RWSEMS=y -CONFIG_DEBUG_LOCK_ALLOC=y -CONFIG_LOCKDEP=y -CONFIG_LOCKDEP_BITS=15 -CONFIG_LOCKDEP_CHAINS_BITS=16 -CONFIG_LOCKDEP_STACK_TRACE_BITS=19 -CONFIG_LOCKDEP_STACK_TRACE_HASH_BITS=14 -CONFIG_LOCKDEP_CIRCULAR_QUEUE_BITS=12 -# CONFIG_DEBUG_LOCKDEP is not set +# CONFIG_DEBUG_RT_MUTEXES is not set +# CONFIG_DEBUG_SPINLOCK is not set +# CONFIG_DEBUG_MUTEXES is not set +# CONFIG_DEBUG_WW_MUTEX_SLOWPATH is not set +# CONFIG_DEBUG_RWSEMS is not set +# CONFIG_DEBUG_LOCK_ALLOC is not set # CONFIG_DEBUG_ATOMIC_SLEEP is not set # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set # CONFIG_LOCK_TORTURE_TEST is not set @@ -7611,14 +8020,17 @@ CONFIG_RCU_EXP_CPU_STALL_TIMEOUT=0 # CONFIG_DEBUG_WQ_FORCE_RR_CPU is not set # CONFIG_CPU_HOTPLUG_STATE_CONTROL is not set # CONFIG_LATENCYTOP is not set +CONFIG_USER_STACKTRACE_SUPPORT=y CONFIG_HAVE_FUNCTION_TRACER=y CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y -CONFIG_HAVE_FUNCTION_GRAPH_RETVAL=y +CONFIG_HAVE_FUNCTION_GRAPH_FREGS=y +CONFIG_HAVE_FTRACE_GRAPH_FUNC=y CONFIG_HAVE_DYNAMIC_FTRACE=y CONFIG_HAVE_DYNAMIC_FTRACE_WITH_ARGS=y CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y CONFIG_HAVE_SYSCALL_TRACEPOINTS=y CONFIG_HAVE_C_RECORDMCOUNT=y +CONFIG_HAVE_BUILDTIME_MCOUNT_SORT=y CONFIG_TRACING_SUPPORT=y # CONFIG_FTRACE is not set # CONFIG_SAMPLES is not set @@ -7641,7 +8053,6 @@ CONFIG_HAVE_SAMPLE_FTRACE_DIRECT_MULTI=y # CONFIG_NOTIFIER_ERROR_INJECTION is not set # CONFIG_FAULT_INJECTION is not set CONFIG_ARCH_HAS_KCOV=y -CONFIG_CC_HAS_SANCOV_TRACE_PC=y # CONFIG_KCOV is not set # CONFIG_RUNTIME_TESTING_MENU is not set CONFIG_ARCH_USE_MEMTEST=y @@ -7653,3 +8064,5 @@ CONFIG_ARCH_USE_MEMTEST=y # # end of Rust hacking # end of Kernel hacking + +CONFIG_IO_URING_ZCRX=y