diff --git a/packages/linux/package.mk b/packages/linux/package.mk index ac4a567b07..010f5eef09 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="90ca7a874a9093e500cc6147cecd85ad2e6a2852" # 6.1.5 - PKG_SHA256="6fed4ac4f4585ebac26e82022f377fca29f8b4dc8042e34db1f67b53f4f5d2d8" + PKG_VERSION="d60c95efffe84428e3611431bf688f50bfc13f4e" # 6.1.11 + PKG_SHA256="e6d5524d72b0ccb047a429f4d46a119a823622507c14985e95f8aa3e2600a779" 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/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 ac02c1bdd0..982ffa724e 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 ff14abfd54075d016f8d46e30e3395dd5613024b Mon Sep 17 00:00:00 2001 +From 96c275bc11a788a05f203a350cb554a249e51eae Mon Sep 17 00:00:00 2001 From: Christian Hewitt Date: Sat, 13 Apr 2019 05:41:51 +0000 -Subject: [PATCH 01/92] LOCAL: set meson-gx cma pool to 896MB +Subject: [PATCH 001/111] LOCAL: set meson-gx cma pool to 896MB This change sets the CMA pool to a larger 896MB! value for vdec use diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0002-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 57320dc9c5..f65ff8a4ed 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 184621c6007e47fb0415a05668f132006c80caa9 Mon Sep 17 00:00:00 2001 +From b381fd01e0f8121106c943ce2e97965b5a8f1eb5 Mon Sep 17 00:00:00 2001 From: Christian Hewitt Date: Wed, 14 Aug 2019 19:58:14 +0000 -Subject: [PATCH 02/92] LOCAL: set meson-g12 cma pool to 896MB +Subject: [PATCH 002/111] LOCAL: set meson-g12 cma pool to 896MB This change sets the CMA pool to a larger 896MB! value for vdec use diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0003-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 9a45459612..6778e6233d 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 b1e12b3742785eecdda1b58e2445c3d83eccf445 Mon Sep 17 00:00:00 2001 +From 254a90493072296f96a1f3ff12a2909fce8845fd Mon Sep 17 00:00:00 2001 From: Christian Hewitt Date: Sat, 13 Apr 2019 05:45:18 +0000 -Subject: [PATCH 03/92] LOCAL: arm64: fix Kodi sysinfo CPU information +Subject: [PATCH 003/111] LOCAL: arm64: fix Kodi sysinfo CPU information This allows the CPU information to show in the Kodi sysinfo screen, e.g. 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 035330c67b..ed1331a70c 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 a859d1225bad98a5398a4777acc0cb64d32dfe04 Mon Sep 17 00:00:00 2001 +From d9578c193745e8bc6351705b4048c666906abb9e Mon Sep 17 00:00:00 2001 From: Neil Armstrong Date: Thu, 3 Nov 2016 15:29:23 +0100 -Subject: [PATCH 04/92] LOCAL: arm64: meson: add Amlogic Meson GX PM Suspend +Subject: [PATCH 004/111] 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 e447255c7b..4771d37c32 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 87dbe21ffcdcd929dcb86f31453fcb400c954cd7 Mon Sep 17 00:00:00 2001 +From db9cc13e36dbbf385e625e69571ef987a3322c0d Mon Sep 17 00:00:00 2001 From: Neil Armstrong Date: Thu, 3 Nov 2016 15:29:25 +0100 -Subject: [PATCH 05/92] LOCAL: arm64: dts: meson: add support for GX PM and +Subject: [PATCH 005/111] LOCAL: arm64: dts: meson: add support for GX PM and Virtual RTC Signed-off-by: Neil Armstrong diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-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 93904ce28f..b6617f3511 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 6f466ee418a0ce0de01ac2671efc5e73364b83eb Mon Sep 17 00:00:00 2001 +From 8031cf2c53a83213f9e2334041d03e9284cac733 Mon Sep 17 00:00:00 2001 From: Christian Hewitt Date: Thu, 21 Jan 2021 01:35:36 +0000 -Subject: [PATCH 06/92] LOCAL: arm64: dts: meson: add rtc/vrtc aliases to +Subject: [PATCH 006/111] 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 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 4a00f8151d..911f6d4426 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 14ad2621e7d5d7d96ef6ead4ed2dd2658d75acc6 Mon Sep 17 00:00:00 2001 +From e94b053abcbd21ae957cb23de89cc82e5d3a045c Mon Sep 17 00:00:00 2001 From: Christian Hewitt Date: Sat, 6 Nov 2021 13:01:08 +0000 -Subject: [PATCH 07/92] LOCAL: arm64: dts: meson: add rtc/vrtc aliases to +Subject: [PATCH 007/111] 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 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 78feda119d..fa331cf0f4 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,8 +1,8 @@ -From b9ec4238130625734e858f024ca9f5d87642bb62 Mon Sep 17 00:00:00 2001 +From d2f7e226584a6b78399478299fd5ba3a2e1d671c Mon Sep 17 00:00:00 2001 From: Christian Hewitt Date: Mon, 1 Feb 2021 19:27:40 +0000 -Subject: [PATCH 08/92] LOCAL: arm64: dts: meson: add rtc/vrtc aliases to Minix - NEO U9-H +Subject: [PATCH 008/111] 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-ALSA-Assign-internal-PCM-chmap-ELD-IEC958-kctl.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0009-LOCAL-ALSA-Assign-internal-PCM-chmap-ELD-IEC958-kctl.patch index cce938e5d7..3c2fd9628d 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0009-LOCAL-ALSA-Assign-internal-PCM-chmap-ELD-IEC958-kctl.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0009-LOCAL-ALSA-Assign-internal-PCM-chmap-ELD-IEC958-kctl.patch @@ -1,8 +1,8 @@ -From 0cade3f576c5486cc914c32c7478af90aedf31bb Mon Sep 17 00:00:00 2001 +From 76e432285ba1ec0f38c73ba98557f65363ad6049 Mon Sep 17 00:00:00 2001 From: Anssi Hannula Date: Sun, 17 Apr 2022 04:37:48 +0000 -Subject: [PATCH 09/92] LOCAL: ALSA: Assign internal PCM chmap/ELD/IEC958 kctls - to device 0 +Subject: [PATCH 009/111] LOCAL: ALSA: Assign internal PCM chmap/ELD/IEC958 + kctls to device 0 On SoC sound devices utilizing codec2codec DAI links with a HDMI codec the kctls for chmap, ELD, IEC958 are currently created using the diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0010-LOCAL-usb-hub-disable-autosuspend-for-Genesys-Logic-.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0010-LOCAL-usb-hub-disable-autosuspend-for-Genesys-Logic-.patch index be94e4d9f1..7454a8ba82 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0010-LOCAL-usb-hub-disable-autosuspend-for-Genesys-Logic-.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0010-LOCAL-usb-hub-disable-autosuspend-for-Genesys-Logic-.patch @@ -1,8 +1,8 @@ -From 72ea6f5c5fe299d105ebee91103ae26a7473af46 Mon Sep 17 00:00:00 2001 +From 13366cc3b3163c1f4523074ef23d85d0022ceed2 Mon Sep 17 00:00:00 2001 From: Christian Hewitt Date: Mon, 3 Jan 2022 10:44:17 +0000 -Subject: [PATCH 10/92] LOCAL: usb: hub: disable autosuspend for Genesys Logic - Hubs +Subject: [PATCH 010/111] LOCAL: usb: hub: disable autosuspend for Genesys + Logic Hubs Disable autosuspend in Genesys Logic hubs to allow USB devices on the Odroid C2 board to be used. The alternative to this patch is setting @@ -17,18 +17,18 @@ Signed-off-by: Christian Hewitt 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c -index bbab424b0d55..ccfd0b312867 100644 +index 0aaaadb02cc6..1ca434aed00b 100644 --- a/drivers/usb/core/hub.c +++ b/drivers/usb/core/hub.c -@@ -5797,7 +5797,7 @@ static const struct usb_device_id hub_id_table[] = { +@@ -5800,7 +5800,7 @@ static const struct usb_device_id hub_id_table[] = { | USB_DEVICE_ID_MATCH_INT_CLASS, .idVendor = USB_VENDOR_GENESYS_LOGIC, .bInterfaceClass = USB_CLASS_HUB, - .driver_info = HUB_QUIRK_CHECK_PORT_AUTOSUSPEND}, + .driver_info = HUB_QUIRK_DISABLE_AUTOSUSPEND}, - { .match_flags = USB_DEVICE_ID_MATCH_DEV_CLASS, - .bDeviceClass = USB_CLASS_HUB}, - { .match_flags = USB_DEVICE_ID_MATCH_INT_CLASS, + { .match_flags = USB_DEVICE_ID_MATCH_VENDOR + | USB_DEVICE_ID_MATCH_PRODUCT, + .idVendor = USB_VENDOR_TEXAS_INSTRUMENTS, -- 2.34.1 diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0011-LOCAL-of-partial-revert-of-fdt.c-changes.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0011-LOCAL-of-partial-revert-of-fdt.c-changes.patch index 58b6370169..0116ee959d 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0011-LOCAL-of-partial-revert-of-fdt.c-changes.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0011-LOCAL-of-partial-revert-of-fdt.c-changes.patch @@ -1,7 +1,7 @@ -From 0efd3bd51c74ee027a993d1a51501dd20c70e9ac Mon Sep 17 00:00:00 2001 +From 3a73eb6db4399030da096bd884c382be9a8fac93 Mon Sep 17 00:00:00 2001 From: Stefan Agner Date: Wed, 15 Sep 2021 05:00:45 +0000 -Subject: [PATCH 11/92] LOCAL: of: partial revert of fdt.c changes +Subject: [PATCH 011/111] LOCAL: of: partial revert of fdt.c changes This resolves reports similar to the below which are present in dmesg since Linux 5.10; which are also causing crashes in some distros: @@ -14,10 +14,10 @@ Signed-off-by: Christian Hewitt 1 file changed, 9 deletions(-) diff --git a/drivers/of/fdt.c b/drivers/of/fdt.c -index 4f88e8bbdd27..efa14615b865 100644 +index d1a68b6d03b3..81508e8b34d2 100644 --- a/drivers/of/fdt.c +++ b/drivers/of/fdt.c -@@ -481,15 +481,6 @@ static int __init early_init_dt_reserve_memory(phys_addr_t base, +@@ -480,15 +480,6 @@ static int __init early_init_dt_reserve_memory(phys_addr_t base, phys_addr_t size, bool nomap) { if (nomap) { diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0033-FROMLIST-v1-Revert-arm64-dts-meson-sm1-odroid-hc4-di.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0012-FROMGIT-6.2-Revert-arm64-dts-meson-sm1-odroid-hc4-di.patch similarity index 87% rename from projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0033-FROMLIST-v1-Revert-arm64-dts-meson-sm1-odroid-hc4-di.patch rename to projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0012-FROMGIT-6.2-Revert-arm64-dts-meson-sm1-odroid-hc4-di.patch index 1683033310..ec4e4889ba 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0033-FROMLIST-v1-Revert-arm64-dts-meson-sm1-odroid-hc4-di.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0012-FROMGIT-6.2-Revert-arm64-dts-meson-sm1-odroid-hc4-di.patch @@ -1,8 +1,8 @@ -From d84e72164608f4cf0b022afd3435fa67a0e529c1 Mon Sep 17 00:00:00 2001 +From 3837d793e505f1578b55b89ee079b89cd89fb274 Mon Sep 17 00:00:00 2001 From: Pierre-Olivier Mercier Date: Wed, 4 Jan 2023 15:19:06 +0000 -Subject: [PATCH 33/92] FROMLIST(v1): Revert "arm64: dts: meson-sm1-odroid-hc4: - disable unused USB PHY0" +Subject: [PATCH 012/111] FROMGIT(6.2): Revert "arm64: dts: + meson-sm1-odroid-hc4: disable unused USB PHY0" This reverts commit 703e84d6615a4a95fb504c8f2e4c9426b86f3930. diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0012-REVERT-mmc-meson-gx-add-SDIO-interrupt-support.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0012-REVERT-mmc-meson-gx-add-SDIO-interrupt-support.patch deleted file mode 100644 index b17ff56aec..0000000000 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0012-REVERT-mmc-meson-gx-add-SDIO-interrupt-support.patch +++ /dev/null @@ -1,197 +0,0 @@ -From 95ad58d671ddc3b20f6de9a90659a12bfed01548 Mon Sep 17 00:00:00 2001 -From: Christian Hewitt -Date: Sat, 14 Jan 2023 12:25:33 +0000 -Subject: [PATCH 12/92] REVERT: mmc: meson-gx: add SDIO interrupt support - -This reverts commit 066ecde6d826b443f492570e080cba3f2212280d. - -See https://lore.kernel.org/linux-amlogic/52861a84-0fe2-37f0-d66a-145f2ebe1d79@gmail.com/T/#m9c6a0aa6b221bcbf51457e612456c6fff5eeacfa ---- - drivers/mmc/host/meson-gx-mmc.c | 70 +++++---------------------------- - 1 file changed, 10 insertions(+), 60 deletions(-) - -diff --git a/drivers/mmc/host/meson-gx-mmc.c b/drivers/mmc/host/meson-gx-mmc.c -index 6e5ea0213b47..a8258ea5364c 100644 ---- a/drivers/mmc/host/meson-gx-mmc.c -+++ b/drivers/mmc/host/meson-gx-mmc.c -@@ -41,17 +41,14 @@ - #define CLK_V2_TX_DELAY_MASK GENMASK(19, 16) - #define CLK_V2_RX_DELAY_MASK GENMASK(23, 20) - #define CLK_V2_ALWAYS_ON BIT(24) --#define CLK_V2_IRQ_SDIO_SLEEP BIT(25) - - #define CLK_V3_TX_DELAY_MASK GENMASK(21, 16) - #define CLK_V3_RX_DELAY_MASK GENMASK(27, 22) - #define CLK_V3_ALWAYS_ON BIT(28) --#define CLK_V3_IRQ_SDIO_SLEEP BIT(29) - - #define CLK_TX_DELAY_MASK(h) (h->data->tx_delay_mask) - #define CLK_RX_DELAY_MASK(h) (h->data->rx_delay_mask) - #define CLK_ALWAYS_ON(h) (h->data->always_on) --#define CLK_IRQ_SDIO_SLEEP(h) (h->data->irq_sdio_sleep) - - #define SD_EMMC_DELAY 0x4 - #define SD_EMMC_ADJUST 0x8 -@@ -138,7 +135,6 @@ struct meson_mmc_data { - unsigned int rx_delay_mask; - unsigned int always_on; - unsigned int adjust; -- unsigned int irq_sdio_sleep; - }; - - struct sd_emmc_desc { -@@ -178,7 +174,6 @@ struct meson_host { - bool vqmmc_enabled; - bool needs_pre_post_req; - -- spinlock_t lock; - }; - - #define CMD_CFG_LENGTH_MASK GENMASK(8, 0) -@@ -435,7 +430,6 @@ static int meson_mmc_clk_init(struct meson_host *host) - clk_reg |= FIELD_PREP(CLK_CORE_PHASE_MASK, CLK_PHASE_180); - clk_reg |= FIELD_PREP(CLK_TX_PHASE_MASK, CLK_PHASE_0); - clk_reg |= FIELD_PREP(CLK_RX_PHASE_MASK, CLK_PHASE_0); -- clk_reg |= CLK_IRQ_SDIO_SLEEP(host); - writel(clk_reg, host->regs + SD_EMMC_CLOCK); - - /* get the mux parents */ -@@ -934,54 +928,32 @@ static void meson_mmc_read_resp(struct mmc_host *mmc, struct mmc_command *cmd) - } - } - --static void __meson_mmc_enable_sdio_irq(struct mmc_host *mmc, int enable) --{ -- struct meson_host *host = mmc_priv(mmc); -- u32 reg_irqen = IRQ_EN_MASK; -- -- if (enable) -- reg_irqen |= IRQ_SDIO; -- writel(reg_irqen, host->regs + SD_EMMC_IRQ_EN); --} -- - static irqreturn_t meson_mmc_irq(int irq, void *dev_id) - { - struct meson_host *host = dev_id; - struct mmc_command *cmd; -+ struct mmc_data *data; - u32 status, raw_status; - irqreturn_t ret = IRQ_NONE; - - raw_status = readl(host->regs + SD_EMMC_STATUS); -- status = raw_status & (IRQ_EN_MASK | IRQ_SDIO); -+ status = raw_status & IRQ_EN_MASK; - - if (!status) { - dev_dbg(host->dev, - "Unexpected IRQ! irq_en 0x%08lx - status 0x%08x\n", -- IRQ_EN_MASK | IRQ_SDIO, raw_status); -+ IRQ_EN_MASK, raw_status); - return IRQ_NONE; - } - -- if (WARN_ON(!host)) -+ if (WARN_ON(!host) || WARN_ON(!host->cmd)) - return IRQ_NONE; - - /* ack all raised interrupts */ - writel(status, host->regs + SD_EMMC_STATUS); - - cmd = host->cmd; -- -- if (status & IRQ_SDIO) { -- spin_lock(&host->lock); -- __meson_mmc_enable_sdio_irq(host->mmc, 0); -- sdio_signal_irq(host->mmc); -- spin_unlock(&host->lock); -- status &= ~IRQ_SDIO; -- if (!status) -- return IRQ_HANDLED; -- } -- -- if (WARN_ON(!cmd)) -- return IRQ_NONE; -- -+ data = cmd->data; - cmd->error = 0; - if (status & IRQ_CRC_ERR) { - dev_dbg(host->dev, "CRC Error - status 0x%08x\n", status); -@@ -999,9 +971,12 @@ static irqreturn_t meson_mmc_irq(int irq, void *dev_id) - - meson_mmc_read_resp(host->mmc, cmd); - -- if (status & (IRQ_END_OF_CHAIN | IRQ_RESP_STATUS)) { -- struct mmc_data *data = cmd->data; -+ if (status & IRQ_SDIO) { -+ dev_dbg(host->dev, "IRQ: SDIO TODO.\n"); -+ ret = IRQ_HANDLED; -+ } - -+ if (status & (IRQ_END_OF_CHAIN | IRQ_RESP_STATUS)) { - if (data && !cmd->error) - data->bytes_xfered = data->blksz * data->blocks; - if (meson_mmc_bounce_buf_read(data) || -@@ -1144,21 +1119,6 @@ static int meson_mmc_voltage_switch(struct mmc_host *mmc, struct mmc_ios *ios) - return -EINVAL; - } - --static void meson_mmc_enable_sdio_irq(struct mmc_host *mmc, int enable) --{ -- struct meson_host *host = mmc_priv(mmc); -- unsigned long flags; -- -- spin_lock_irqsave(&host->lock, flags); -- __meson_mmc_enable_sdio_irq(mmc, enable); -- spin_unlock_irqrestore(&host->lock, flags); --} -- --static void meson_mmc_ack_sdio_irq(struct mmc_host *mmc) --{ -- meson_mmc_enable_sdio_irq(mmc, 1); --} -- - static const struct mmc_host_ops meson_mmc_ops = { - .request = meson_mmc_request, - .set_ios = meson_mmc_set_ios, -@@ -1168,8 +1128,6 @@ static const struct mmc_host_ops meson_mmc_ops = { - .execute_tuning = meson_mmc_resampling_tuning, - .card_busy = meson_mmc_card_busy, - .start_signal_voltage_switch = meson_mmc_voltage_switch, -- .enable_sdio_irq = meson_mmc_enable_sdio_irq, -- .ack_sdio_irq = meson_mmc_ack_sdio_irq, - }; - - static int meson_mmc_probe(struct platform_device *pdev) -@@ -1275,13 +1233,7 @@ static int meson_mmc_probe(struct platform_device *pdev) - if (ret) - goto err_init_clk; - -- spin_lock_init(&host->lock); -- - mmc->caps |= MMC_CAP_CMD23; -- -- if (mmc->caps & MMC_CAP_SDIO_IRQ) -- mmc->caps2 |= MMC_CAP2_SDIO_IRQ_NOTHREAD; -- - if (host->dram_access_quirk) { - /* Limit segments to 1 due to low available sram memory */ - mmc->max_segs = 1; -@@ -1374,7 +1326,6 @@ static const struct meson_mmc_data meson_gx_data = { - .rx_delay_mask = CLK_V2_RX_DELAY_MASK, - .always_on = CLK_V2_ALWAYS_ON, - .adjust = SD_EMMC_ADJUST, -- .irq_sdio_sleep = CLK_V2_IRQ_SDIO_SLEEP, - }; - - static const struct meson_mmc_data meson_axg_data = { -@@ -1382,7 +1333,6 @@ static const struct meson_mmc_data meson_axg_data = { - .rx_delay_mask = CLK_V3_RX_DELAY_MASK, - .always_on = CLK_V3_ALWAYS_ON, - .adjust = SD_EMMC_V3_ADJUST, -- .irq_sdio_sleep = CLK_V3_IRQ_SDIO_SLEEP, - }; - - static const struct of_device_id meson_mmc_of_match[] = { --- -2.34.1 - diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0013-FROMGIT-6.3-arm64-dts-meson-remove-CPU-opps-below-1G.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0013-FROMGIT-6.3-arm64-dts-meson-remove-CPU-opps-below-1G.patch new file mode 100644 index 0000000000..6a4ff68d0c --- /dev/null +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0013-FROMGIT-6.3-arm64-dts-meson-remove-CPU-opps-below-1G.patch @@ -0,0 +1,53 @@ +From e7055f8ff6e60ef492d6c1baef6cbfec6a346668 Mon Sep 17 00:00:00 2001 +From: Christian Hewitt +Date: Thu, 19 Jan 2023 05:03:53 +0000 +Subject: [PATCH 013/111] FROMGIT(6.3): arm64: dts: meson: remove CPU opps + below 1GHz for G12A boards + +Amlogic G12A devices experience CPU stalls and random board wedges when +the system idles and CPU cores clock down to lower opp points. Recent +vendor kernels include a change to remove 100-250MHz and other distro +sources also remove the 500/667MHz points. Unless all 100-667Mhz opps +are removed or the CPU governor forced to performance stalls are still +observed, so let's remove them to improve stability and uptime. + +Fixes: b190056fa9ee ("arm64: dts: meson-g12a: add cpus OPP table") +Signed-off-by: Christian Hewitt +--- + arch/arm64/boot/dts/amlogic/meson-g12a.dtsi | 20 -------------------- + 1 file changed, 20 deletions(-) + +diff --git a/arch/arm64/boot/dts/amlogic/meson-g12a.dtsi b/arch/arm64/boot/dts/amlogic/meson-g12a.dtsi +index fb0ab27d1f64..6eaceb717d61 100644 +--- a/arch/arm64/boot/dts/amlogic/meson-g12a.dtsi ++++ b/arch/arm64/boot/dts/amlogic/meson-g12a.dtsi +@@ -57,26 +57,6 @@ cpu_opp_table: opp-table { + compatible = "operating-points-v2"; + opp-shared; + +- opp-100000000 { +- opp-hz = /bits/ 64 <100000000>; +- opp-microvolt = <731000>; +- }; +- +- opp-250000000 { +- opp-hz = /bits/ 64 <250000000>; +- opp-microvolt = <731000>; +- }; +- +- opp-500000000 { +- opp-hz = /bits/ 64 <500000000>; +- opp-microvolt = <731000>; +- }; +- +- opp-667000000 { +- opp-hz = /bits/ 64 <666666666>; +- opp-microvolt = <731000>; +- }; +- + opp-1000000000 { + opp-hz = /bits/ 64 <1000000000>; + opp-microvolt = <731000>; +-- +2.34.1 + diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0035-WIP-arm64-dts-meson-add-Broadcom-WiFi-to-P212-dtsi.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0014-FROMGIT-6.3-arm64-dts-meson-add-Broadcom-WiFi-to-P21.patch similarity index 85% rename from projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0035-WIP-arm64-dts-meson-add-Broadcom-WiFi-to-P212-dtsi.patch rename to projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0014-FROMGIT-6.3-arm64-dts-meson-add-Broadcom-WiFi-to-P21.patch index 217c215dc3..163e349dc4 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0035-WIP-arm64-dts-meson-add-Broadcom-WiFi-to-P212-dtsi.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0014-FROMGIT-6.3-arm64-dts-meson-add-Broadcom-WiFi-to-P21.patch @@ -1,7 +1,8 @@ -From e5a4a0047f094aea697fcb6133b1112830afb5ab Mon Sep 17 00:00:00 2001 +From 673311690caf7aaf2c5436d1c1fe659923722266 Mon Sep 17 00:00:00 2001 From: Christian Hewitt Date: Thu, 13 Jan 2022 03:50:01 +0000 -Subject: [PATCH 35/92] WIP: arm64: dts: meson: add Broadcom WiFi to P212 dtsi +Subject: [PATCH 014/111] FROMGIT(6.3): arm64: dts: meson: add Broadcom WiFi to + P212 dtsi The P212 has a combined WiFi/BT module. The BT side is already enabled in the dtsi but the WiFi side is not. Let's enable the WiFi module. diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0036-WIP-arm64-dts-meson-move-pwm_ef-node-in-P212-dtsi.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0015-FROMGIT-6.3-arm64-dts-meson-move-pwm_ef-node-in-P212.patch similarity index 88% rename from projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0036-WIP-arm64-dts-meson-move-pwm_ef-node-in-P212-dtsi.patch rename to projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0015-FROMGIT-6.3-arm64-dts-meson-move-pwm_ef-node-in-P212.patch index c2ccd5ca7b..3749e4f44e 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0036-WIP-arm64-dts-meson-move-pwm_ef-node-in-P212-dtsi.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0015-FROMGIT-6.3-arm64-dts-meson-move-pwm_ef-node-in-P212.patch @@ -1,7 +1,8 @@ -From cf4221c578efbc38145eb0b0ab494b5345738262 Mon Sep 17 00:00:00 2001 +From c57576fe884da0e37c2d8e2cfb60384bf1ef1525 Mon Sep 17 00:00:00 2001 From: Christian Hewitt Date: Thu, 13 Jan 2022 03:56:12 +0000 -Subject: [PATCH 36/92] WIP: arm64: dts: meson: move pwm_ef node in P212 dtsi +Subject: [PATCH 015/111] FROMGIT(6.3): arm64: dts: meson: move pwm_ef node in + P212 dtsi Cosmetic-only change to alpha-sort the pwm_ef node. diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0037-WIP-arm64-dts-meson-remove-WiFi-BT-nodes-from-Khadas.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0016-FROMGIT-6.3-arm64-dts-meson-remove-WiFi-BT-nodes-fro.patch similarity index 87% rename from projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0037-WIP-arm64-dts-meson-remove-WiFi-BT-nodes-from-Khadas.patch rename to projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0016-FROMGIT-6.3-arm64-dts-meson-remove-WiFi-BT-nodes-fro.patch index df5cc85118..3b6a2fe719 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0037-WIP-arm64-dts-meson-remove-WiFi-BT-nodes-from-Khadas.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0016-FROMGIT-6.3-arm64-dts-meson-remove-WiFi-BT-nodes-fro.patch @@ -1,8 +1,8 @@ -From 3b9ee8fdaeec5b4c4cb6bc7c3f02a8831ee5439f Mon Sep 17 00:00:00 2001 +From 88b550fb8d8e2ae36f5dec1af6bcba7a354adfd9 Mon Sep 17 00:00:00 2001 From: Christian Hewitt Date: Thu, 13 Jan 2022 03:58:58 +0000 -Subject: [PATCH 37/92] WIP: arm64: dts: meson: remove WiFi/BT nodes from - Khadas VIM1 +Subject: [PATCH 016/111] FROMGIT(6.3): arm64: dts: meson: remove WiFi/BT nodes + from Khadas VIM1 The Broadcom WiFi/BT SDIO nodes are now inherited from the P212 common dtsi so we can remove them from the VIM1 board dts. diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0041-WIP-arm64-dts-meson-add-audio-playback-to-S905X-P212.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0017-FROMGIT-6.3-arm64-dts-meson-add-audio-playback-to-S9.patch similarity index 93% rename from projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0041-WIP-arm64-dts-meson-add-audio-playback-to-S905X-P212.patch rename to projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0017-FROMGIT-6.3-arm64-dts-meson-add-audio-playback-to-S9.patch index f8fce73288..9637f7cef4 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0041-WIP-arm64-dts-meson-add-audio-playback-to-S905X-P212.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0017-FROMGIT-6.3-arm64-dts-meson-add-audio-playback-to-S9.patch @@ -1,8 +1,8 @@ -From 8187f1b091c9b66ff30fa0d999b78e527a942ebc Mon Sep 17 00:00:00 2001 +From 0442a4911ff03670d8e6b7ad5aa4cc92bcb185bf Mon Sep 17 00:00:00 2001 From: Christian Hewitt Date: Thu, 13 Jan 2022 04:30:44 +0000 -Subject: [PATCH 41/92] WIP: arm64: dts: meson: add audio playback to - S905X-P212 dts +Subject: [PATCH 017/111] FROMGIT(6.3): arm64: dts: meson: add audio playback + to S905X-P212 dts Add support for the HDMI and Analogue i2s audio outputs. diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0021-FROMLIST-v6-dt-bindings-reset-meson-g12a-Add-missing.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0018-FROMGIT-6.3-dt-bindings-reset-meson-g12a-Add-missing.patch similarity index 88% rename from projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0021-FROMLIST-v6-dt-bindings-reset-meson-g12a-Add-missing.patch rename to projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0018-FROMGIT-6.3-dt-bindings-reset-meson-g12a-Add-missing.patch index d5ea29ddf1..d6514c83dd 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0021-FROMLIST-v6-dt-bindings-reset-meson-g12a-Add-missing.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0018-FROMGIT-6.3-dt-bindings-reset-meson-g12a-Add-missing.patch @@ -1,7 +1,7 @@ -From ceb50e98435f388832372b434660eec802e20b0f Mon Sep 17 00:00:00 2001 +From aabc97b6f87e7ec9c91be72d23a9e2d01fcae006 Mon Sep 17 00:00:00 2001 From: Tomeu Vizoso Date: Wed, 30 Nov 2022 12:03:14 +0000 -Subject: [PATCH 21/92] FROMLIST(v6): dt-bindings: reset: meson-g12a: Add +Subject: [PATCH 018/111] FROMGIT(6.3): dt-bindings: reset: meson-g12a: Add missing NNA reset Doesn't appear in the TRM I have, but it is used by the downstream diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0022-FROMLIST-v6-dt-bindings-power-Add-G12A-NNA-power-dom.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0019-FROMGIT-6.3-dt-bindings-power-Add-G12A-NNA-power-dom.patch similarity index 85% rename from projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0022-FROMLIST-v6-dt-bindings-power-Add-G12A-NNA-power-dom.patch rename to projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0019-FROMGIT-6.3-dt-bindings-power-Add-G12A-NNA-power-dom.patch index b5bbc31e3f..3ee256c1d3 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0022-FROMLIST-v6-dt-bindings-power-Add-G12A-NNA-power-dom.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0019-FROMGIT-6.3-dt-bindings-power-Add-G12A-NNA-power-dom.patch @@ -1,7 +1,7 @@ -From 5f95a5931e6459199c4524f477d76875b6191619 Mon Sep 17 00:00:00 2001 +From 5779ea2a58e718e36f7c1c908accb8d11e153587 Mon Sep 17 00:00:00 2001 From: Tomeu Vizoso Date: Wed, 30 Nov 2022 12:04:02 +0000 -Subject: [PATCH 22/92] FROMLIST(v6): dt-bindings: power: Add G12A NNA power +Subject: [PATCH 019/111] FROMGIT(6.3): dt-bindings: power: Add G12A NNA power domain Add define for the NNA power domain for the NPU in the G12A. diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0023-FROMLIST-v6-soc-amlogic-meson-pwrc-Add-NNA-power-dom.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0020-FROMGIT-6.3-soc-amlogic-meson-pwrc-Add-NNA-power-dom.patch similarity index 94% rename from projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0023-FROMLIST-v6-soc-amlogic-meson-pwrc-Add-NNA-power-dom.patch rename to projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0020-FROMGIT-6.3-soc-amlogic-meson-pwrc-Add-NNA-power-dom.patch index 49cdad7779..ec32d0796e 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0023-FROMLIST-v6-soc-amlogic-meson-pwrc-Add-NNA-power-dom.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0020-FROMGIT-6.3-soc-amlogic-meson-pwrc-Add-NNA-power-dom.patch @@ -1,7 +1,7 @@ -From bc98444729a3facb4c950f0eb14a5994fd1e73bf Mon Sep 17 00:00:00 2001 +From f55721060b899c1608b331ddb6f1e5b2286cdfd5 Mon Sep 17 00:00:00 2001 From: Tomeu Vizoso Date: Wed, 30 Nov 2022 12:04:51 +0000 -Subject: [PATCH 23/92] FROMLIST(v6): soc: amlogic: meson-pwrc: Add NNA power +Subject: [PATCH 020/111] FROMGIT(6.3): soc: amlogic: meson-pwrc: Add NNA power domain for A311D Based on power initialization sequence in downstream driver. diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0024-FROMLIST-v6-arm64-dts-Add-DT-node-for-the-VIPNano-QI.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0021-FROMGIT-6.3-arm64-dts-Add-DT-node-for-the-VIPNano-QI.patch similarity index 93% rename from projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0024-FROMLIST-v6-arm64-dts-Add-DT-node-for-the-VIPNano-QI.patch rename to projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0021-FROMGIT-6.3-arm64-dts-Add-DT-node-for-the-VIPNano-QI.patch index 49c4bfadf1..2027d881a4 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0024-FROMLIST-v6-arm64-dts-Add-DT-node-for-the-VIPNano-QI.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0021-FROMGIT-6.3-arm64-dts-Add-DT-node-for-the-VIPNano-QI.patch @@ -1,7 +1,7 @@ -From 4c9cf2ba95cf5dde129212e0a4f7228cda5db8ec Mon Sep 17 00:00:00 2001 +From 1375fb3e0e176ee81b4836662851680795dbb8ce Mon Sep 17 00:00:00 2001 From: Tomeu Vizoso Date: Wed, 30 Nov 2022 12:05:46 +0000 -Subject: [PATCH 24/92] FROMLIST(v6): arm64: dts: Add DT node for the +Subject: [PATCH 021/111] FROMGIT(6.3): arm64: dts: Add DT node for the VIPNano-QI on the A311D This "NPU" is very similar to the Vivante GPUs and Etnaviv works well diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0025-FROMLIST-v6-drm-etnaviv-Add-nn_core_count-to-chip-fe.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0022-FROMGIT-6.3-drm-etnaviv-Add-nn_core_count-to-chip-fe.patch similarity index 93% rename from projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0025-FROMLIST-v6-drm-etnaviv-Add-nn_core_count-to-chip-fe.patch rename to projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0022-FROMGIT-6.3-drm-etnaviv-Add-nn_core_count-to-chip-fe.patch index bb15430d0a..24e5c51165 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0025-FROMLIST-v6-drm-etnaviv-Add-nn_core_count-to-chip-fe.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0022-FROMGIT-6.3-drm-etnaviv-Add-nn_core_count-to-chip-fe.patch @@ -1,7 +1,7 @@ -From d10e70fc05550e96af4a5778266d9b03ec3a78a2 Mon Sep 17 00:00:00 2001 +From 040be3af745825591836564525c21c2168bf2067 Mon Sep 17 00:00:00 2001 From: Tomeu Vizoso Date: Sat, 3 Dec 2022 06:01:47 +0000 -Subject: [PATCH 25/92] FROMLIST(v6): drm/etnaviv: Add nn_core_count to chip +Subject: [PATCH 022/111] FROMGIT(6.3): drm/etnaviv: Add nn_core_count to chip feature struct We will use these for differentiating between GPUs and NPUs, as the diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0026-FROMLIST-v6-drm-etnaviv-Warn-when-probing-on-NPUs.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0023-FROMGIT-6.3-drm-etnaviv-Warn-when-probing-on-NPUs.patch similarity index 87% rename from projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0026-FROMLIST-v6-drm-etnaviv-Warn-when-probing-on-NPUs.patch rename to projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0023-FROMGIT-6.3-drm-etnaviv-Warn-when-probing-on-NPUs.patch index 2bc130ddf8..5289a0003c 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0026-FROMLIST-v6-drm-etnaviv-Warn-when-probing-on-NPUs.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0023-FROMGIT-6.3-drm-etnaviv-Warn-when-probing-on-NPUs.patch @@ -1,7 +1,7 @@ -From c39b01d9b9a85ca8ec4d4b91ec2cf50b80936027 Mon Sep 17 00:00:00 2001 +From 23de0a186d883057b2d9d1baaab20dd0799c66bf Mon Sep 17 00:00:00 2001 From: Tomeu Vizoso Date: Sat, 3 Dec 2022 06:02:31 +0000 -Subject: [PATCH 26/92] FROMLIST(v6): drm/etnaviv: Warn when probing on NPUs +Subject: [PATCH 023/111] FROMGIT(6.3): drm/etnaviv: Warn when probing on NPUs Userspace is still not making full use of the hardware, so we don't know yet if changes to the UAPI won't be needed. Warn about it. diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0027-FROMLIST-v6-drm-etnaviv-add-HWDB-entry-for-VIPNano-Q.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0024-FROMGIT-6.3-drm-etnaviv-add-HWDB-entry-for-VIPNano-Q.patch similarity index 93% rename from projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0027-FROMLIST-v6-drm-etnaviv-add-HWDB-entry-for-VIPNano-Q.patch rename to projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0024-FROMGIT-6.3-drm-etnaviv-add-HWDB-entry-for-VIPNano-Q.patch index e9cde5b5ad..26ea770d5a 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0027-FROMLIST-v6-drm-etnaviv-add-HWDB-entry-for-VIPNano-Q.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0024-FROMGIT-6.3-drm-etnaviv-add-HWDB-entry-for-VIPNano-Q.patch @@ -1,7 +1,7 @@ -From 856f72c12e899110274043d1d1032987fb06ba5d Mon Sep 17 00:00:00 2001 +From de2f35d7917a0c3a1ab70105ca19a37cd5e7f6e9 Mon Sep 17 00:00:00 2001 From: Tomeu Vizoso Date: Sat, 3 Dec 2022 06:03:16 +0000 -Subject: [PATCH 27/92] FROMLIST(v6): drm/etnaviv: add HWDB entry for +Subject: [PATCH 024/111] FROMGIT(6.3): drm/etnaviv: add HWDB entry for VIPNano-QI.7120.0055 This is a compute-only module marketed towards AI and vision diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0028-FROMLIST-v6-arm64-dts-Fix-NPU-power-domain-reference.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0025-FROMGIT-6.3-arm64-dts-Fix-NPU-power-domain-reference.patch similarity index 93% rename from projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0028-FROMLIST-v6-arm64-dts-Fix-NPU-power-domain-reference.patch rename to projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0025-FROMGIT-6.3-arm64-dts-Fix-NPU-power-domain-reference.patch index da799eb483..7f998accfd 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0028-FROMLIST-v6-arm64-dts-Fix-NPU-power-domain-reference.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0025-FROMGIT-6.3-arm64-dts-Fix-NPU-power-domain-reference.patch @@ -1,7 +1,7 @@ -From 66cbc9c2806ca408c3795c70a252e9802c365538 Mon Sep 17 00:00:00 2001 +From fbdbc0b5333c5a16a96e84c3f7b5af251adec4a5 Mon Sep 17 00:00:00 2001 From: Tomeu Vizoso Date: Sat, 3 Dec 2022 06:04:00 +0000 -Subject: [PATCH 28/92] FROMLIST(v6): arm64: dts: Fix NPU power domain +Subject: [PATCH 025/111] FROMGIT(6.3): arm64: dts: Fix NPU power domain references in Amlogic G12-based SoCs The power sequence is different between SoCs in that family, so get the diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0029-FROMLIST-v1-clk-meson-mpll-Switch-from-.round_rate-t.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0026-FROMGIT-6.3-clk-meson-mpll-Switch-from-.round_rate-t.patch similarity index 92% rename from projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0029-FROMLIST-v1-clk-meson-mpll-Switch-from-.round_rate-t.patch rename to projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0026-FROMGIT-6.3-clk-meson-mpll-Switch-from-.round_rate-t.patch index b5bfc6915a..67793e4b92 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0029-FROMLIST-v1-clk-meson-mpll-Switch-from-.round_rate-t.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0026-FROMGIT-6.3-clk-meson-mpll-Switch-from-.round_rate-t.patch @@ -1,8 +1,8 @@ -From e27dcbffd0a5e9fe9a0a5ce4b2f0351a24812ea5 Mon Sep 17 00:00:00 2001 +From 8278874258d78e4457481affb7ffd826e2408db2 Mon Sep 17 00:00:00 2001 From: Martin Blumenstingl Date: Mon, 26 Dec 2022 04:41:46 +0000 -Subject: [PATCH 29/92] FROMLIST(v1): clk: meson: mpll: Switch from .round_rate - to .determine_rate +Subject: [PATCH 026/111] FROMGIT(6.3): clk: meson: mpll: Switch from + .round_rate to .determine_rate clk_ops.round_rate will be removed at some point. It's replacement is .determine_rate. Switch clk-mpll over to use .determine_rate. diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0030-FROMLIST-v1-clk-meson-dualdiv-switch-from-.round_rat.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0027-FROMGIT-6.3-clk-meson-dualdiv-switch-from-.round_rat.patch similarity index 94% rename from projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0030-FROMLIST-v1-clk-meson-dualdiv-switch-from-.round_rat.patch rename to projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0027-FROMGIT-6.3-clk-meson-dualdiv-switch-from-.round_rat.patch index a66d3e6107..4507d3c694 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0030-FROMLIST-v1-clk-meson-dualdiv-switch-from-.round_rat.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0027-FROMGIT-6.3-clk-meson-dualdiv-switch-from-.round_rat.patch @@ -1,7 +1,7 @@ -From 618d9912efd9ad02acad0ba978ae52144c931af7 Mon Sep 17 00:00:00 2001 +From ceecaec793943916fdb1cfe79eafb3cf52dde66a Mon Sep 17 00:00:00 2001 From: Martin Blumenstingl Date: Mon, 26 Dec 2022 04:42:41 +0000 -Subject: [PATCH 30/92] FROMLIST(v1): clk: meson: dualdiv: switch from +Subject: [PATCH 027/111] FROMGIT(6.3): clk: meson: dualdiv: switch from .round_rate to .determine_rate clk_ops.round_rate will be removed at some point. It's replacement is diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0031-FROMLIST-v1-clk-meson-sclk-div-switch-from-.round_ra.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0028-FROMGIT-6.3-clk-meson-sclk-div-switch-from-.round_ra.patch similarity index 92% rename from projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0031-FROMLIST-v1-clk-meson-sclk-div-switch-from-.round_ra.patch rename to projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0028-FROMGIT-6.3-clk-meson-sclk-div-switch-from-.round_ra.patch index 8cf828d8d9..ea959d0738 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0031-FROMLIST-v1-clk-meson-sclk-div-switch-from-.round_ra.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0028-FROMGIT-6.3-clk-meson-sclk-div-switch-from-.round_ra.patch @@ -1,7 +1,7 @@ -From 5dfb053aef5c9f6d7a0ffd17004d9c7d18f6f9bb Mon Sep 17 00:00:00 2001 +From 8bb0710558620503e3ec7cafc38738f5a9b93d3c Mon Sep 17 00:00:00 2001 From: Martin Blumenstingl Date: Mon, 26 Dec 2022 04:43:33 +0000 -Subject: [PATCH 31/92] FROMLIST(v1): clk: meson: sclk-div: switch from +Subject: [PATCH 028/111] FROMGIT(6.3): clk: meson: sclk-div: switch from .round_rate to .determine_rate clk_ops.round_rate will be removed at some point. It's replacement is diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0032-FROMLIST-v1-clk-meson-clk-cpu-dyndiv-switch-from-.ro.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0029-FROMGIT-6.3-clk-meson-clk-cpu-dyndiv-switch-from-.ro.patch similarity index 92% rename from projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0032-FROMLIST-v1-clk-meson-clk-cpu-dyndiv-switch-from-.ro.patch rename to projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0029-FROMGIT-6.3-clk-meson-clk-cpu-dyndiv-switch-from-.ro.patch index 42f27b05ff..e102cbe4c2 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0032-FROMLIST-v1-clk-meson-clk-cpu-dyndiv-switch-from-.ro.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0029-FROMGIT-6.3-clk-meson-clk-cpu-dyndiv-switch-from-.ro.patch @@ -1,7 +1,7 @@ -From 0f23ef2ab5c65e129ba40ddd15d601e1f3c59776 Mon Sep 17 00:00:00 2001 +From 0c09663824b014b6c804bb8add4ab9cec14d800f Mon Sep 17 00:00:00 2001 From: Martin Blumenstingl Date: Mon, 26 Dec 2022 04:44:26 +0000 -Subject: [PATCH 32/92] FROMLIST(v1): clk: meson: clk-cpu-dyndiv: switch from +Subject: [PATCH 029/111] FROMGIT(6.3): clk: meson: clk-cpu-dyndiv: switch from .round_rate to .determine_rate clk_ops.round_rate will be removed at some point. It's replacement is diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0030-FROMGIT-6.3-arm64-dts-amlogic-meson-sm1-odroid-hc4-f.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0030-FROMGIT-6.3-arm64-dts-amlogic-meson-sm1-odroid-hc4-f.patch new file mode 100644 index 0000000000..e2607946ea --- /dev/null +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0030-FROMGIT-6.3-arm64-dts-amlogic-meson-sm1-odroid-hc4-f.patch @@ -0,0 +1,42 @@ +From b7216d87cf7ac3a8245e60686d6c366cf08ad0a4 Mon Sep 17 00:00:00 2001 +From: Neil Armstrong +Date: Tue, 24 Jan 2023 12:39:08 +0100 +Subject: [PATCH 030/111] FROMGIT(6.3): arm64: dts: amlogic: + meson-sm1-odroid-hc4: fix active fan thermal trip + +Add an active trip tied to the on-board fan cooling device, which is better +than describing it along the passive cooling maps. + +Fixes: 33b14f663df8 ("arm64: dts: meson: add initial device-tree for ODROID-HC4") +Reported-by: Ricardo Pardini +Signed-off-by: Neil Armstrong +--- + arch/arm64/boot/dts/amlogic/meson-sm1-odroid-hc4.dts | 10 +++++++++- + 1 file changed, 9 insertions(+), 1 deletion(-) + +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 a1f0c38ccadd..74088e7280fe 100644 +--- a/arch/arm64/boot/dts/amlogic/meson-sm1-odroid-hc4.dts ++++ b/arch/arm64/boot/dts/amlogic/meson-sm1-odroid-hc4.dts +@@ -76,9 +76,17 @@ sound { + }; + + &cpu_thermal { ++ trips { ++ cpu_active: cpu-active { ++ temperature = <60000>; /* millicelsius */ ++ hysteresis = <2000>; /* millicelsius */ ++ type = "active"; ++ }; ++ }; ++ + cooling-maps { + map { +- trip = <&cpu_passive>; ++ trip = <&cpu_active>; + cooling-device = <&fan0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; + }; + }; +-- +2.34.1 + diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0013-FROMLIST-v2-arm64-dts-meson-make-dts-use-gpio-fan-ma.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0031-FROMGIT-6.3-arm64-dts-meson-make-dts-use-gpio-fan-ma.patch similarity index 86% rename from projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0013-FROMLIST-v2-arm64-dts-meson-make-dts-use-gpio-fan-ma.patch rename to projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0031-FROMGIT-6.3-arm64-dts-meson-make-dts-use-gpio-fan-ma.patch index 61eb354676..1bba4651f5 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0013-FROMLIST-v2-arm64-dts-meson-make-dts-use-gpio-fan-ma.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0031-FROMGIT-6.3-arm64-dts-meson-make-dts-use-gpio-fan-ma.patch @@ -1,8 +1,8 @@ -From 9faf586f51d20766a18a6b17bd0ce263c2880ed2 Mon Sep 17 00:00:00 2001 +From 1319a6e3efd4430c98a8f140a88369575d9314c4 Mon Sep 17 00:00:00 2001 From: David Heidelberg Date: Sat, 27 Nov 2021 07:23:35 +0000 -Subject: [PATCH 13/92] FROMLIST(v2): arm64: dts: meson: make dts use gpio-fan - matrix instead of array +Subject: [PATCH 031/111] FROMGIT(6.3): arm64: dts: meson: make dts use + gpio-fan matrix instead of array No functional changes. diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0032-FROMGIT-6.3-arm64-dts-meson-radxa-zero-allow-usb-otg.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0032-FROMGIT-6.3-arm64-dts-meson-radxa-zero-allow-usb-otg.patch new file mode 100644 index 0000000000..80f421b536 --- /dev/null +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0032-FROMGIT-6.3-arm64-dts-meson-radxa-zero-allow-usb-otg.patch @@ -0,0 +1,27 @@ +From 90c3434be68f83289b15699de1ce6b7860992f4f Mon Sep 17 00:00:00 2001 +From: Christian Hewitt +Date: Thu, 26 Jan 2023 12:20:19 +0000 +Subject: [PATCH 032/111] FROMGIT(6.3): arm64: dts: meson: radxa-zero: allow + usb otg mode + +Setting dr_mode to "host" prevents otg which can be useful on a board +with limited connectivity options. So don't force host mode. + +Signed-off-by: Christian Hewitt +--- + arch/arm64/boot/dts/amlogic/meson-g12a-radxa-zero.dts | 1 - + 1 file changed, 1 deletion(-) + +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 e3bb6df42ff3..cf0a9be83fc4 100644 +--- a/arch/arm64/boot/dts/amlogic/meson-g12a-radxa-zero.dts ++++ b/arch/arm64/boot/dts/amlogic/meson-g12a-radxa-zero.dts +@@ -401,5 +401,4 @@ &uart_AO { + + &usb { + status = "okay"; +- dr_mode = "host"; + }; +-- +2.34.1 + diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0033-FROMGIT-6.3-arm64-dts-meson-bananapi-m5-switch-VDDIO.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0033-FROMGIT-6.3-arm64-dts-meson-bananapi-m5-switch-VDDIO.patch new file mode 100644 index 0000000000..7f298a89fe --- /dev/null +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0033-FROMGIT-6.3-arm64-dts-meson-bananapi-m5-switch-VDDIO.patch @@ -0,0 +1,38 @@ +From e2ea4a7a55108c60d9e90f3fdcb1adb3158a8bb3 Mon Sep 17 00:00:00 2001 +From: Christian Hewitt +Date: Thu, 26 Jan 2023 16:15:59 +0000 +Subject: [PATCH 033/111] FROMGIT(6.3): arm64: dts: meson: bananapi-m5: switch + VDDIO_C pin to OPEN_DRAIN + +For proper warm (re)boot from SD card the BPI-M5 board requires TFLASH_VDD_EN +and VDDIO_C pins to be switched to high impedance mode. This can be achieved +using OPEN_DRAIN instead of ACTIVE_HIGH to leave the GPIO pins in input mode +and retain high state (pin has the pull-up). + +This change is inspired by meson-sm1-odroid.dtsi where OPEN_DRAIN has been +used to resolve similar problems with the Odroid C4 board (TF_IO in the C4 +dts is the equivalent regulator). + +Fixes 976e920183e4 ("arm64: dts: meson-sm1: add Banana PI BPI-M5 board dts") +Suggested-by: Neil Armstrong +Signed-off-by: Christian Hewitt +--- + arch/arm64/boot/dts/amlogic/meson-sm1-bananapi-m5.dts | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/arch/arm64/boot/dts/amlogic/meson-sm1-bananapi-m5.dts b/arch/arm64/boot/dts/amlogic/meson-sm1-bananapi-m5.dts +index cadba194b149..e8a23861013f 100644 +--- a/arch/arm64/boot/dts/amlogic/meson-sm1-bananapi-m5.dts ++++ b/arch/arm64/boot/dts/amlogic/meson-sm1-bananapi-m5.dts +@@ -123,7 +123,7 @@ vddio_c: regulator-vddio_c { + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <3300000>; + +- enable-gpio = <&gpio_ao GPIOE_2 GPIO_ACTIVE_HIGH>; ++ enable-gpio = <&gpio_ao GPIOE_2 GPIO_OPEN_DRAIN>; + enable-active-high; + regulator-always-on; + +-- +2.34.1 + diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0034-FROMGIT-6.3-arm64-dts-meson-meson-sm1-bananapi-m5-co.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0034-FROMGIT-6.3-arm64-dts-meson-meson-sm1-bananapi-m5-co.patch new file mode 100644 index 0000000000..c0dc8fa7c2 --- /dev/null +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0034-FROMGIT-6.3-arm64-dts-meson-meson-sm1-bananapi-m5-co.patch @@ -0,0 +1,941 @@ +From 52c42f7f202692c55c448955875b326f9e885e49 Mon Sep 17 00:00:00 2001 +From: Christian Hewitt +Date: Wed, 25 Jan 2023 08:10:48 +0000 +Subject: [PATCH 034/111] FROMGIT(6.3): arm64: dts: meson: + meson-sm1-bananapi-m5: convert to dtsi + +Convert the BPI-M5 dts into meson-sm1-bananapi.dtsi to support the +addition of new boards based on the same design. + +Signed-off-by: Christian Hewitt +--- + .../dts/amlogic/meson-sm1-bananapi-m5.dts | 427 +---------------- + .../boot/dts/amlogic/meson-sm1-bananapi.dtsi | 435 ++++++++++++++++++ + 2 files changed, 436 insertions(+), 426 deletions(-) + create mode 100644 arch/arm64/boot/dts/amlogic/meson-sm1-bananapi.dtsi + +diff --git a/arch/arm64/boot/dts/amlogic/meson-sm1-bananapi-m5.dts b/arch/arm64/boot/dts/amlogic/meson-sm1-bananapi-m5.dts +index e8a23861013f..34b3238ee0a0 100644 +--- a/arch/arm64/boot/dts/amlogic/meson-sm1-bananapi-m5.dts ++++ b/arch/arm64/boot/dts/amlogic/meson-sm1-bananapi-m5.dts +@@ -6,10 +6,7 @@ + + /dts-v1/; + +-#include "meson-sm1.dtsi" +-#include +-#include +-#include ++#include "meson-sm1-bananapi.dtsi" + #include + #include + +@@ -17,28 +14,6 @@ / { + compatible = "bananapi,bpi-m5", "amlogic,sm1"; + model = "Banana Pi BPI-M5"; + +- adc_keys { +- compatible = "adc-keys"; +- io-channels = <&saradc 2>; +- io-channel-names = "buttons"; +- keyup-threshold-microvolt = <1800000>; +- +- key { +- label = "SW3"; +- linux,code = ; +- press-threshold-microvolt = <1700000>; +- }; +- }; +- +- aliases { +- serial0 = &uart_AO; +- ethernet0 = ðmac; +- }; +- +- chosen { +- stdout-path = "serial0:115200n8"; +- }; +- + /* TOFIX: handle CVBS_DET on SARADC channel 0 */ + cvbs-connector { + compatible = "composite-video-connector"; +@@ -50,150 +25,6 @@ cvbs_connector_in: endpoint { + }; + }; + +- emmc_pwrseq: emmc-pwrseq { +- compatible = "mmc-pwrseq-emmc"; +- reset-gpios = <&gpio BOOT_12 GPIO_ACTIVE_LOW>; +- }; +- +- gpio-keys { +- compatible = "gpio-keys"; +- +- key { +- label = "SW1"; +- linux,code = ; +- gpios = <&gpio_ao GPIOAO_3 GPIO_ACTIVE_LOW>; +- interrupt-parent = <&gpio_intc>; +- interrupts = <3 IRQ_TYPE_EDGE_BOTH>; +- }; +- }; +- +- hdmi-connector { +- compatible = "hdmi-connector"; +- type = "a"; +- +- port { +- hdmi_connector_in: endpoint { +- remote-endpoint = <&hdmi_tx_tmds_out>; +- }; +- }; +- }; +- +- leds { +- compatible = "gpio-leds"; +- +- green { +- color = ; +- function = LED_FUNCTION_STATUS; +- gpios = <&gpio_ao GPIOAO_2 GPIO_ACTIVE_LOW>; +- }; +- +- blue { +- color = ; +- function = LED_FUNCTION_STATUS; +- gpios = <&gpio_ao GPIOAO_11 GPIO_ACTIVE_LOW>; +- linux,default-trigger = "heartbeat"; +- }; +- }; +- +- memory@0 { +- device_type = "memory"; +- reg = <0x0 0x0 0x0 0x40000000>; +- }; +- +- emmc_1v8: regulator-emmc_1v8 { +- compatible = "regulator-fixed"; +- regulator-name = "EMMC_1V8"; +- regulator-min-microvolt = <1800000>; +- regulator-max-microvolt = <1800000>; +- vin-supply = <&vddao_3v3>; +- regulator-always-on; +- }; +- +- dc_in: regulator-dc_in { +- compatible = "regulator-fixed"; +- regulator-name = "DC_IN"; +- regulator-min-microvolt = <5000000>; +- regulator-max-microvolt = <5000000>; +- regulator-always-on; +- }; +- +- vddio_c: regulator-vddio_c { +- compatible = "regulator-gpio"; +- regulator-name = "VDDIO_C"; +- regulator-min-microvolt = <1800000>; +- regulator-max-microvolt = <3300000>; +- +- enable-gpio = <&gpio_ao GPIOE_2 GPIO_OPEN_DRAIN>; +- enable-active-high; +- regulator-always-on; +- +- gpios = <&gpio_ao GPIOAO_6 GPIO_OPEN_DRAIN>; +- gpios-states = <1>; +- +- states = <1800000 0>, +- <3300000 1>; +- }; +- +- tflash_vdd: regulator-tflash_vdd { +- compatible = "regulator-fixed"; +- regulator-name = "TFLASH_VDD"; +- regulator-min-microvolt = <3300000>; +- regulator-max-microvolt = <3300000>; +- vin-supply = <&dc_in>; +- gpio = <&gpio GPIOH_8 GPIO_OPEN_DRAIN>; +- enable-active-high; +- regulator-always-on; +- }; +- +- vddao_1v8: regulator-vddao_1v8 { +- compatible = "regulator-fixed"; +- regulator-name = "VDDAO_1V8"; +- regulator-min-microvolt = <1800000>; +- regulator-max-microvolt = <1800000>; +- vin-supply = <&vddao_3v3>; +- regulator-always-on; +- }; +- +- vddao_3v3: regulator-vddao_3v3 { +- compatible = "regulator-fixed"; +- regulator-name = "VDDAO_3V3"; +- regulator-min-microvolt = <3300000>; +- regulator-max-microvolt = <3300000>; +- vin-supply = <&dc_in>; +- regulator-always-on; +- }; +- +- vddcpu: regulator-vddcpu { +- /* +- * SY8120B1ABC DC/DC Regulator. +- */ +- compatible = "pwm-regulator"; +- +- regulator-name = "VDDCPU"; +- regulator-min-microvolt = <690000>; +- regulator-max-microvolt = <1050000>; +- +- pwm-supply = <&dc_in>; +- +- pwms = <&pwm_AO_cd 1 1250 0>; +- pwm-dutycycle-range = <100 0>; +- +- regulator-boot-on; +- regulator-always-on; +- }; +- +- /* USB Hub Power Enable */ +- vl_pwr_en: regulator-vl_pwr_en { +- compatible = "regulator-fixed"; +- regulator-name = "VL_PWR_EN"; +- regulator-min-microvolt = <5000000>; +- regulator-max-microvolt = <5000000>; +- vin-supply = <&dc_in>; +- +- gpio = <&gpio GPIOH_6 GPIO_ACTIVE_HIGH>; +- enable-active-high; +- }; +- + sound { + compatible = "amlogic,axg-sound-card"; + model = "BPI-M5"; +@@ -319,68 +150,17 @@ &acodec { + status = "okay"; + }; + +-&arb { +- status = "okay"; +-}; + + &clkc_audio { + status = "okay"; + }; + +-&cpu0 { +- cpu-supply = <&vddcpu>; +- operating-points-v2 = <&cpu_opp_table>; +- clocks = <&clkc CLKID_CPU_CLK>; +- clock-latency = <50000>; +-}; +- +-&cpu1 { +- cpu-supply = <&vddcpu>; +- operating-points-v2 = <&cpu_opp_table>; +- clocks = <&clkc CLKID_CPU1_CLK>; +- clock-latency = <50000>; +-}; +- +-&cpu2 { +- cpu-supply = <&vddcpu>; +- operating-points-v2 = <&cpu_opp_table>; +- clocks = <&clkc CLKID_CPU2_CLK>; +- clock-latency = <50000>; +-}; +- +-&cpu3 { +- cpu-supply = <&vddcpu>; +- operating-points-v2 = <&cpu_opp_table>; +- clocks = <&clkc CLKID_CPU3_CLK>; +- clock-latency = <50000>; +-}; +- + &cvbs_vdac_port { + cvbs_vdac_out: endpoint { + remote-endpoint = <&cvbs_connector_in>; + }; + }; + +-&ext_mdio { +- external_phy: ethernet-phy@0 { +- /* Realtek RTL8211F (0x001cc916) */ +- reg = <0>; +- max-speed = <1000>; +- +- interrupt-parent = <&gpio_intc>; +- /* MAC_INTR on GPIOZ_14 */ +- interrupts = <26 IRQ_TYPE_LEVEL_LOW>; +- }; +-}; +- +-ðmac { +- pinctrl-0 = <ð_pins>, <ð_rgmii_pins>; +- pinctrl-names = "default"; +- status = "okay"; +- phy-mode = "rgmii-txid"; +- phy-handle = <&external_phy>; +-}; +- + &frddr_a { + status = "okay"; + }; +@@ -393,192 +173,6 @@ &frddr_c { + status = "okay"; + }; + +-&gpio { +- gpio-line-names = +- /* GPIOZ */ +- "ETH_MDIO", /* GPIOZ_0 */ +- "ETH_MDC", /* GPIOZ_1 */ +- "ETH_RXCLK", /* GPIOZ_2 */ +- "ETH_RX_DV", /* GPIOZ_3 */ +- "ETH_RXD0", /* GPIOZ_4 */ +- "ETH_RXD1", /* GPIOZ_5 */ +- "ETH_RXD2", /* GPIOZ_6 */ +- "ETH_RXD3", /* GPIOZ_7 */ +- "ETH_TXCLK", /* GPIOZ_8 */ +- "ETH_TXEN", /* GPIOZ_9 */ +- "ETH_TXD0", /* GPIOZ_10 */ +- "ETH_TXD1", /* GPIOZ_11 */ +- "ETH_TXD2", /* GPIOZ_12 */ +- "ETH_TXD3", /* GPIOZ_13 */ +- "ETH_INTR", /* GPIOZ_14 */ +- "ETH_NRST", /* GPIOZ_15 */ +- /* GPIOH */ +- "HDMI_SDA", /* GPIOH_0 */ +- "HDMI_SCL", /* GPIOH_1 */ +- "HDMI_HPD", /* GPIOH_2 */ +- "HDMI_CEC", /* GPIOH_3 */ +- "VL-RST_N", /* GPIOH_4 */ +- "CON1-P36", /* GPIOH_5 */ +- "VL-PWREN", /* GPIOH_6 */ +- "WiFi_3V3_1V8", /* GPIOH_7 */ +- "TFLASH_VDD_EN", /* GPIOH_8 */ +- /* BOOT */ +- "eMMC_D0", /* BOOT_0 */ +- "eMMC_D1", /* BOOT_1 */ +- "eMMC_D2", /* BOOT_2 */ +- "eMMC_D3", /* BOOT_3 */ +- "eMMC_D4", /* BOOT_4 */ +- "eMMC_D5", /* BOOT_5 */ +- "eMMC_D6", /* BOOT_6 */ +- "eMMC_D7", /* BOOT_7 */ +- "eMMC_CLK", /* BOOT_8 */ +- "", +- "eMMC_CMD", /* BOOT_10 */ +- "", +- "eMMC_RST#", /* BOOT_12 */ +- "eMMC_DS", /* BOOT_13 */ +- "", "", +- /* GPIOC */ +- "SD_D0_B", /* GPIOC_0 */ +- "SD_D1_B", /* GPIOC_1 */ +- "SD_D2_B", /* GPIOC_2 */ +- "SD_D3_B", /* GPIOC_3 */ +- "SD_CLK_B", /* GPIOC_4 */ +- "SD_CMD_B", /* GPIOC_5 */ +- "CARD_EN_DET", /* GPIOC_6 */ +- "", +- /* GPIOA */ +- "", "", "", "", "", "", "", "", +- "", "", "", "", "", "", +- "CON1-P27", /* GPIOA_14 */ +- "CON1-P28", /* GPIOA_15 */ +- /* GPIOX */ +- "CON1-P16", /* GPIOX_0 */ +- "CON1-P18", /* GPIOX_1 */ +- "CON1-P22", /* GPIOX_2 */ +- "CON1-P11", /* GPIOX_3 */ +- "CON1-P13", /* GPIOX_4 */ +- "CON1-P07", /* GPIOX_5 */ +- "CON1-P33", /* GPIOX_6 */ +- "CON1-P15", /* GPIOX_7 */ +- "CON1-P19", /* GPIOX_8 */ +- "CON1-P21", /* GPIOX_9 */ +- "CON1-P24", /* GPIOX_10 */ +- "CON1-P23", /* GPIOX_11 */ +- "CON1-P08", /* GPIOX_12 */ +- "CON1-P10", /* GPIOX_13 */ +- "CON1-P29", /* GPIOX_14 */ +- "CON1-P31", /* GPIOX_15 */ +- "CON1-P26", /* GPIOX_16 */ +- "CON1-P03", /* GPIOX_17 */ +- "CON1-P05", /* GPIOX_18 */ +- "CON1-P32"; /* GPIOX_19 */ +- +- /* +- * WARNING: The USB Hub on the BPI-M5 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 { +- gpio-hog; +- gpios = ; +- output-high; +- line-name = "usb-hub-reset"; +- }; +-}; +- +-&gpio_ao { +- gpio-line-names = +- /* GPIOAO */ +- "DEBUG TX", /* GPIOAO_0 */ +- "DEBUG RX", /* GPIOAO_1 */ +- "SYS_LED2", /* GPIOAO_2 */ +- "UPDATE_KEY", /* GPIOAO_3 */ +- "CON1-P40", /* GPIOAO_4 */ +- "IR_IN", /* GPIOAO_5 */ +- "TF_3V3N_1V8_EN", /* GPIOAO_6 */ +- "CON1-P35", /* GPIOAO_7 */ +- "CON1-P12", /* GPIOAO_8 */ +- "CON1-P37", /* GPIOAO_9 */ +- "CON1-P38", /* GPIOAO_10 */ +- "SYS_LED", /* GPIOAO_11 */ +- /* GPIOE */ +- "VDDEE_PWM", /* GPIOE_0 */ +- "VDDCPU_PWM", /* GPIOE_1 */ +- "TF_PWR_EN"; /* GPIOE_2 */ +-}; +- +-&hdmi_tx { +- status = "okay"; +- pinctrl-0 = <&hdmitx_hpd_pins>, <&hdmitx_ddc_pins>; +- pinctrl-names = "default"; +- hdmi-supply = <&dc_in>; +-}; +- +-&hdmi_tx_tmds_port { +- hdmi_tx_tmds_out: endpoint { +- remote-endpoint = <&hdmi_connector_in>; +- }; +-}; +- +-&ir { +- status = "okay"; +- pinctrl-0 = <&remote_input_ao_pins>; +- pinctrl-names = "default"; +-}; +- +-&pwm_AO_cd { +- pinctrl-0 = <&pwm_ao_d_e_pins>; +- pinctrl-names = "default"; +- clocks = <&xtal>; +- clock-names = "clkin1"; +- status = "okay"; +-}; +- +-&saradc { +- status = "okay"; +- vref-supply = <&vddao_1v8>; +-}; +- +-/* SD card */ +-&sd_emmc_b { +- status = "okay"; +- pinctrl-0 = <&sdcard_c_pins>; +- pinctrl-1 = <&sdcard_clk_gate_c_pins>; +- pinctrl-names = "default", "clk-gate"; +- +- bus-width = <4>; +- cap-sd-highspeed; +- max-frequency = <50000000>; +- 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>; +-}; +- +-/* eMMC */ +-&sd_emmc_c { +- status = "okay"; +- pinctrl-0 = <&emmc_ctrl_pins>, <&emmc_data_8b_pins>, <&emmc_ds_pins>; +- pinctrl-1 = <&emmc_clk_gate_pins>; +- pinctrl-names = "default", "clk-gate"; +- +- bus-width = <8>; +- cap-mmc-highspeed; +- mmc-ddr-1_8v; +- mmc-hs200-1_8v; +- max-frequency = <200000000>; +- disable-wp; +- +- mmc-pwrseq = <&emmc_pwrseq>; +- vmmc-supply = <&vddao_3v3>; +- vqmmc-supply = <&emmc_1v8>; +-}; +- + &tdmif_b { + status = "okay"; + }; +@@ -626,22 +220,3 @@ &toddr_b { + &toddr_c { + status = "okay"; + }; +- +-&uart_AO { +- status = "okay"; +- pinctrl-0 = <&uart_ao_a_pins>; +- pinctrl-names = "default"; +-}; +- +-&usb { +- status = "okay"; +-}; +- +-&usb2_phy0 { +- phy-supply = <&dc_in>; +-}; +- +-&usb2_phy1 { +- /* Enable the hub which is connected to this port */ +- phy-supply = <&vl_pwr_en>; +-}; +diff --git a/arch/arm64/boot/dts/amlogic/meson-sm1-bananapi.dtsi b/arch/arm64/boot/dts/amlogic/meson-sm1-bananapi.dtsi +new file mode 100644 +index 000000000000..c914f1148185 +--- /dev/null ++++ b/arch/arm64/boot/dts/amlogic/meson-sm1-bananapi.dtsi +@@ -0,0 +1,435 @@ ++// SPDX-License-Identifier: (GPL-2.0+ OR MIT) ++/* ++ * Copyright (c) 2021 BayLibre SAS ++ * Author: Neil Armstrong ++ */ ++ ++#include "meson-sm1.dtsi" ++#include ++#include ++#include ++ ++/ { ++ adc_keys { ++ compatible = "adc-keys"; ++ io-channels = <&saradc 2>; ++ io-channel-names = "buttons"; ++ keyup-threshold-microvolt = <1800000>; ++ ++ key { ++ label = "SW3"; ++ linux,code = ; ++ press-threshold-microvolt = <1700000>; ++ }; ++ }; ++ ++ aliases { ++ serial0 = &uart_AO; ++ ethernet0 = ðmac; ++ }; ++ ++ chosen { ++ stdout-path = "serial0:115200n8"; ++ }; ++ ++ emmc_pwrseq: emmc-pwrseq { ++ compatible = "mmc-pwrseq-emmc"; ++ reset-gpios = <&gpio BOOT_12 GPIO_ACTIVE_LOW>; ++ }; ++ ++ gpio-keys { ++ compatible = "gpio-keys"; ++ ++ key { ++ label = "SW1"; ++ linux,code = ; ++ gpios = <&gpio_ao GPIOAO_3 GPIO_ACTIVE_LOW>; ++ interrupt-parent = <&gpio_intc>; ++ interrupts = <3 IRQ_TYPE_EDGE_BOTH>; ++ }; ++ }; ++ ++ hdmi-connector { ++ compatible = "hdmi-connector"; ++ type = "a"; ++ ++ port { ++ hdmi_connector_in: endpoint { ++ remote-endpoint = <&hdmi_tx_tmds_out>; ++ }; ++ }; ++ }; ++ ++ leds { ++ compatible = "gpio-leds"; ++ ++ led-green { ++ color = ; ++ function = LED_FUNCTION_STATUS; ++ gpios = <&gpio_ao GPIOAO_2 GPIO_ACTIVE_LOW>; ++ }; ++ ++ led-blue { ++ color = ; ++ function = LED_FUNCTION_STATUS; ++ gpios = <&gpio_ao GPIOAO_11 GPIO_ACTIVE_LOW>; ++ linux,default-trigger = "heartbeat"; ++ }; ++ }; ++ ++ memory@0 { ++ device_type = "memory"; ++ reg = <0x0 0x0 0x0 0x40000000>; ++ }; ++ ++ emmc_1v8: regulator-emmc_1v8 { ++ compatible = "regulator-fixed"; ++ regulator-name = "EMMC_1V8"; ++ regulator-min-microvolt = <1800000>; ++ regulator-max-microvolt = <1800000>; ++ vin-supply = <&vddao_3v3>; ++ regulator-always-on; ++ }; ++ ++ dc_in: regulator-dc_in { ++ compatible = "regulator-fixed"; ++ regulator-name = "DC_IN"; ++ regulator-min-microvolt = <5000000>; ++ regulator-max-microvolt = <5000000>; ++ regulator-always-on; ++ }; ++ ++ vddio_c: regulator-vddio_c { ++ compatible = "regulator-gpio"; ++ regulator-name = "VDDIO_C"; ++ regulator-min-microvolt = <1800000>; ++ regulator-max-microvolt = <3300000>; ++ ++ enable-gpio = <&gpio_ao GPIOE_2 GPIO_OPEN_DRAIN>; ++ enable-active-high; ++ regulator-always-on; ++ ++ gpios = <&gpio_ao GPIOAO_6 GPIO_OPEN_DRAIN>; ++ gpios-states = <1>; ++ ++ states = <1800000 0>, ++ <3300000 1>; ++ }; ++ ++ tflash_vdd: regulator-tflash_vdd { ++ compatible = "regulator-fixed"; ++ regulator-name = "TFLASH_VDD"; ++ regulator-min-microvolt = <3300000>; ++ regulator-max-microvolt = <3300000>; ++ vin-supply = <&dc_in>; ++ gpio = <&gpio GPIOH_8 GPIO_OPEN_DRAIN>; ++ enable-active-high; ++ regulator-always-on; ++ }; ++ ++ vddao_1v8: regulator-vddao_1v8 { ++ compatible = "regulator-fixed"; ++ regulator-name = "VDDAO_1V8"; ++ regulator-min-microvolt = <1800000>; ++ regulator-max-microvolt = <1800000>; ++ vin-supply = <&vddao_3v3>; ++ regulator-always-on; ++ }; ++ ++ vddao_3v3: regulator-vddao_3v3 { ++ compatible = "regulator-fixed"; ++ regulator-name = "VDDAO_3V3"; ++ regulator-min-microvolt = <3300000>; ++ regulator-max-microvolt = <3300000>; ++ vin-supply = <&dc_in>; ++ regulator-always-on; ++ }; ++ ++ vddcpu: regulator-vddcpu { ++ /* ++ * SY8120B1ABC DC/DC Regulator. ++ */ ++ compatible = "pwm-regulator"; ++ ++ regulator-name = "VDDCPU"; ++ regulator-min-microvolt = <690000>; ++ regulator-max-microvolt = <1050000>; ++ ++ pwm-supply = <&dc_in>; ++ ++ pwms = <&pwm_AO_cd 1 1250 0>; ++ pwm-dutycycle-range = <100 0>; ++ ++ regulator-boot-on; ++ regulator-always-on; ++ }; ++ ++ /* USB Hub Power Enable */ ++ vl_pwr_en: regulator-vl_pwr_en { ++ compatible = "regulator-fixed"; ++ regulator-name = "VL_PWR_EN"; ++ regulator-min-microvolt = <5000000>; ++ regulator-max-microvolt = <5000000>; ++ vin-supply = <&dc_in>; ++ ++ gpio = <&gpio GPIOH_6 GPIO_ACTIVE_HIGH>; ++ enable-active-high; ++ }; ++}; ++ ++&arb { ++ status = "okay"; ++}; ++ ++&cpu0 { ++ cpu-supply = <&vddcpu>; ++ operating-points-v2 = <&cpu_opp_table>; ++ clocks = <&clkc CLKID_CPU_CLK>; ++ clock-latency = <50000>; ++}; ++ ++&cpu1 { ++ cpu-supply = <&vddcpu>; ++ operating-points-v2 = <&cpu_opp_table>; ++ clocks = <&clkc CLKID_CPU1_CLK>; ++ clock-latency = <50000>; ++}; ++ ++&cpu2 { ++ cpu-supply = <&vddcpu>; ++ operating-points-v2 = <&cpu_opp_table>; ++ clocks = <&clkc CLKID_CPU2_CLK>; ++ clock-latency = <50000>; ++}; ++ ++&cpu3 { ++ cpu-supply = <&vddcpu>; ++ operating-points-v2 = <&cpu_opp_table>; ++ clocks = <&clkc CLKID_CPU3_CLK>; ++ clock-latency = <50000>; ++}; ++ ++&ext_mdio { ++ external_phy: ethernet-phy@0 { ++ /* Realtek RTL8211F (0x001cc916) */ ++ reg = <0>; ++ max-speed = <1000>; ++ ++ interrupt-parent = <&gpio_intc>; ++ /* MAC_INTR on GPIOZ_14 */ ++ interrupts = <26 IRQ_TYPE_LEVEL_LOW>; ++ }; ++}; ++ ++ðmac { ++ pinctrl-0 = <ð_pins>, <ð_rgmii_pins>; ++ pinctrl-names = "default"; ++ status = "okay"; ++ phy-mode = "rgmii-txid"; ++ phy-handle = <&external_phy>; ++}; ++ ++&gpio { ++ gpio-line-names = ++ /* GPIOZ */ ++ "ETH_MDIO", /* GPIOZ_0 */ ++ "ETH_MDC", /* GPIOZ_1 */ ++ "ETH_RXCLK", /* GPIOZ_2 */ ++ "ETH_RX_DV", /* GPIOZ_3 */ ++ "ETH_RXD0", /* GPIOZ_4 */ ++ "ETH_RXD1", /* GPIOZ_5 */ ++ "ETH_RXD2", /* GPIOZ_6 */ ++ "ETH_RXD3", /* GPIOZ_7 */ ++ "ETH_TXCLK", /* GPIOZ_8 */ ++ "ETH_TXEN", /* GPIOZ_9 */ ++ "ETH_TXD0", /* GPIOZ_10 */ ++ "ETH_TXD1", /* GPIOZ_11 */ ++ "ETH_TXD2", /* GPIOZ_12 */ ++ "ETH_TXD3", /* GPIOZ_13 */ ++ "ETH_INTR", /* GPIOZ_14 */ ++ "ETH_NRST", /* GPIOZ_15 */ ++ /* GPIOH */ ++ "HDMI_SDA", /* GPIOH_0 */ ++ "HDMI_SCL", /* GPIOH_1 */ ++ "HDMI_HPD", /* GPIOH_2 */ ++ "HDMI_CEC", /* GPIOH_3 */ ++ "VL-RST_N", /* GPIOH_4 */ ++ "CON1-P36", /* GPIOH_5 */ ++ "VL-PWREN", /* GPIOH_6 */ ++ "WiFi_3V3_1V8", /* GPIOH_7 */ ++ "TFLASH_VDD_EN", /* GPIOH_8 */ ++ /* BOOT */ ++ "eMMC_D0", /* BOOT_0 */ ++ "eMMC_D1", /* BOOT_1 */ ++ "eMMC_D2", /* BOOT_2 */ ++ "eMMC_D3", /* BOOT_3 */ ++ "eMMC_D4", /* BOOT_4 */ ++ "eMMC_D5", /* BOOT_5 */ ++ "eMMC_D6", /* BOOT_6 */ ++ "eMMC_D7", /* BOOT_7 */ ++ "eMMC_CLK", /* BOOT_8 */ ++ "", ++ "eMMC_CMD", /* BOOT_10 */ ++ "", ++ "eMMC_RST#", /* BOOT_12 */ ++ "eMMC_DS", /* BOOT_13 */ ++ "", "", ++ /* GPIOC */ ++ "SD_D0_B", /* GPIOC_0 */ ++ "SD_D1_B", /* GPIOC_1 */ ++ "SD_D2_B", /* GPIOC_2 */ ++ "SD_D3_B", /* GPIOC_3 */ ++ "SD_CLK_B", /* GPIOC_4 */ ++ "SD_CMD_B", /* GPIOC_5 */ ++ "CARD_EN_DET", /* GPIOC_6 */ ++ "", ++ /* GPIOA */ ++ "", "", "", "", "", "", "", "", ++ "", "", "", "", "", "", ++ "CON1-P27", /* GPIOA_14 */ ++ "CON1-P28", /* GPIOA_15 */ ++ /* GPIOX */ ++ "CON1-P16", /* GPIOX_0 */ ++ "CON1-P18", /* GPIOX_1 */ ++ "CON1-P22", /* GPIOX_2 */ ++ "CON1-P11", /* GPIOX_3 */ ++ "CON1-P13", /* GPIOX_4 */ ++ "CON1-P07", /* GPIOX_5 */ ++ "CON1-P33", /* GPIOX_6 */ ++ "CON1-P15", /* GPIOX_7 */ ++ "CON1-P19", /* GPIOX_8 */ ++ "CON1-P21", /* GPIOX_9 */ ++ "CON1-P24", /* GPIOX_10 */ ++ "CON1-P23", /* GPIOX_11 */ ++ "CON1-P08", /* GPIOX_12 */ ++ "CON1-P10", /* GPIOX_13 */ ++ "CON1-P29", /* GPIOX_14 */ ++ "CON1-P31", /* GPIOX_15 */ ++ "CON1-P26", /* GPIOX_16 */ ++ "CON1-P03", /* GPIOX_17 */ ++ "CON1-P05", /* GPIOX_18 */ ++ "CON1-P32"; /* GPIOX_19 */ ++ ++ /* ++ * WARNING: The USB Hub 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 to reset the Hub ++ * when the USB bus is powered down. ++ */ ++ usb-hub { ++ gpio-hog; ++ gpios = ; ++ output-high; ++ line-name = "usb-hub-reset"; ++ }; ++}; ++ ++&gpio_ao { ++ gpio-line-names = ++ /* GPIOAO */ ++ "DEBUG TX", /* GPIOAO_0 */ ++ "DEBUG RX", /* GPIOAO_1 */ ++ "SYS_LED2", /* GPIOAO_2 */ ++ "UPDATE_KEY", /* GPIOAO_3 */ ++ "CON1-P40", /* GPIOAO_4 */ ++ "IR_IN", /* GPIOAO_5 */ ++ "TF_3V3N_1V8_EN", /* GPIOAO_6 */ ++ "CON1-P35", /* GPIOAO_7 */ ++ "CON1-P12", /* GPIOAO_8 */ ++ "CON1-P37", /* GPIOAO_9 */ ++ "CON1-P38", /* GPIOAO_10 */ ++ "SYS_LED", /* GPIOAO_11 */ ++ /* GPIOE */ ++ "VDDEE_PWM", /* GPIOE_0 */ ++ "VDDCPU_PWM", /* GPIOE_1 */ ++ "TF_PWR_EN"; /* GPIOE_2 */ ++}; ++ ++&hdmi_tx { ++ status = "okay"; ++ pinctrl-0 = <&hdmitx_hpd_pins>, <&hdmitx_ddc_pins>; ++ pinctrl-names = "default"; ++ hdmi-supply = <&dc_in>; ++}; ++ ++&hdmi_tx_tmds_port { ++ hdmi_tx_tmds_out: endpoint { ++ remote-endpoint = <&hdmi_connector_in>; ++ }; ++}; ++ ++&ir { ++ status = "okay"; ++ pinctrl-0 = <&remote_input_ao_pins>; ++ pinctrl-names = "default"; ++}; ++ ++&pwm_AO_cd { ++ pinctrl-0 = <&pwm_ao_d_e_pins>; ++ pinctrl-names = "default"; ++ clocks = <&xtal>; ++ clock-names = "clkin1"; ++ status = "okay"; ++}; ++ ++&saradc { ++ status = "okay"; ++ vref-supply = <&vddao_1v8>; ++}; ++ ++/* SD card */ ++&sd_emmc_b { ++ status = "okay"; ++ pinctrl-0 = <&sdcard_c_pins>; ++ pinctrl-1 = <&sdcard_clk_gate_c_pins>; ++ pinctrl-names = "default", "clk-gate"; ++ ++ bus-width = <4>; ++ cap-sd-highspeed; ++ max-frequency = <50000000>; ++ 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>; ++}; ++ ++/* eMMC */ ++&sd_emmc_c { ++ status = "okay"; ++ pinctrl-0 = <&emmc_ctrl_pins>, <&emmc_data_8b_pins>, <&emmc_ds_pins>; ++ pinctrl-1 = <&emmc_clk_gate_pins>; ++ pinctrl-names = "default", "clk-gate"; ++ ++ bus-width = <8>; ++ cap-mmc-highspeed; ++ mmc-ddr-1_8v; ++ mmc-hs200-1_8v; ++ max-frequency = <200000000>; ++ disable-wp; ++ ++ mmc-pwrseq = <&emmc_pwrseq>; ++ vmmc-supply = <&vddao_3v3>; ++ vqmmc-supply = <&emmc_1v8>; ++}; ++ ++&uart_AO { ++ status = "okay"; ++ pinctrl-0 = <&uart_ao_a_pins>; ++ pinctrl-names = "default"; ++}; ++ ++&usb { ++ status = "okay"; ++}; ++ ++&usb2_phy0 { ++ phy-supply = <&dc_in>; ++}; ++ ++&usb2_phy1 { ++ /* Enable the hub which is connected to this port */ ++ phy-supply = <&vl_pwr_en>; ++}; +-- +2.34.1 + diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0035-FROMGIT-6.3-dt-bindings-arm-amlogic-add-support-for-.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0035-FROMGIT-6.3-dt-bindings-arm-amlogic-add-support-for-.patch new file mode 100644 index 0000000000..1576a33cbf --- /dev/null +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0035-FROMGIT-6.3-dt-bindings-arm-amlogic-add-support-for-.patch @@ -0,0 +1,28 @@ +From 88b6e2cd10d2bcb2921f959c8d2781feae9e8e7d Mon Sep 17 00:00:00 2001 +From: Christian Hewitt +Date: Wed, 25 Jan 2023 09:28:27 +0000 +Subject: [PATCH 035/111] FROMGIT(6.3): dt-bindings: arm: amlogic: add support + for BananaPi M2-Pro + +BPI-M2-PRO is based upon the BPI-M5 using the Amlogic SM1 (S905X3) chipset. + +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 9fda2436c618..d63f6b899f25 100644 +--- a/Documentation/devicetree/bindings/arm/amlogic.yaml ++++ b/Documentation/devicetree/bindings/arm/amlogic.yaml +@@ -175,6 +175,7 @@ properties: + - enum: + - amediatech,x96-air + - amediatech,x96-air-gbit ++ - bananapi,bpi-m2-pro + - bananapi,bpi-m5 + - cyx,a95xf3-air + - cyx,a95xf3-air-gbit +-- +2.34.1 + diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0036-FROMGIT-6.3-arm64-dts-meson-add-support-for-BananaPi.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0036-FROMGIT-6.3-arm64-dts-meson-add-support-for-BananaPi.patch new file mode 100644 index 0000000000..901e785480 --- /dev/null +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0036-FROMGIT-6.3-arm64-dts-meson-add-support-for-BananaPi.patch @@ -0,0 +1,139 @@ +From 1a6ff5c5aaf0f8f1e418766d09926eaac617e07e Mon Sep 17 00:00:00 2001 +From: Christian Hewitt +Date: Wed, 25 Jan 2023 08:13:28 +0000 +Subject: [PATCH 036/111] FROMGIT(6.3): arm64: dts: meson: add support for + BananaPi M2-Pro + +BPI-M2-PRO is based upon the BPI-M5 design except for a different +physical board layout and the following changes: + +- USB 3.0 ports reduced from 4x to 2x +- 3.5mm Combined CVBS/Audio Jack removed +- RTL8821BU WiFi/BT module (internal USB connected) + +Signed-off-by: Christian Hewitt +--- + arch/arm64/boot/dts/amlogic/Makefile | 1 + + .../dts/amlogic/meson-sm1-bananapi-m2-pro.dts | 98 +++++++++++++++++++ + 2 files changed, 99 insertions(+) + create mode 100644 arch/arm64/boot/dts/amlogic/meson-sm1-bananapi-m2-pro.dts + +diff --git a/arch/arm64/boot/dts/amlogic/Makefile b/arch/arm64/boot/dts/amlogic/Makefile +index e213aeebb774..5e5433718c6e 100644 +--- a/arch/arm64/boot/dts/amlogic/Makefile ++++ b/arch/arm64/boot/dts/amlogic/Makefile +@@ -59,6 +59,7 @@ dtb-$(CONFIG_ARCH_MESON) += meson-gxm-wetek-core2.dtb + dtb-$(CONFIG_ARCH_MESON) += meson-s4-s805x2-aq222.dtb + dtb-$(CONFIG_ARCH_MESON) += meson-sm1-a95xf3-air-gbit.dtb + dtb-$(CONFIG_ARCH_MESON) += meson-sm1-a95xf3-air.dtb ++dtb-$(CONFIG_ARCH_MESON) += meson-sm1-bananapi-m2-pro.dtb + dtb-$(CONFIG_ARCH_MESON) += meson-sm1-bananapi-m5.dtb + dtb-$(CONFIG_ARCH_MESON) += meson-sm1-h96-max.dtb + dtb-$(CONFIG_ARCH_MESON) += meson-sm1-khadas-vim3l.dtb +diff --git a/arch/arm64/boot/dts/amlogic/meson-sm1-bananapi-m2-pro.dts b/arch/arm64/boot/dts/amlogic/meson-sm1-bananapi-m2-pro.dts +new file mode 100644 +index 000000000000..4890d5d9a4f7 +--- /dev/null ++++ b/arch/arm64/boot/dts/amlogic/meson-sm1-bananapi-m2-pro.dts +@@ -0,0 +1,98 @@ ++// SPDX-License-Identifier: (GPL-2.0+ OR MIT) ++/* ++ * Copyright (c) 2021 BayLibre SAS ++ * Author: Neil Armstrong ++ */ ++ ++/dts-v1/; ++ ++#include "meson-sm1-bananapi.dtsi" ++#include ++ ++/ { ++ compatible = "bananapi,bpi-m2-pro", "amlogic,sm1"; ++ model = "Banana Pi BPI-M2-PRO"; ++ ++ sound { ++ compatible = "amlogic,axg-sound-card"; ++ model = "BPI-M2-PRO"; ++ audio-aux-devs = <&tdmout_b>; ++ audio-routing = "TDMOUT_B IN 0", "FRDDR_A OUT 1", ++ "TDMOUT_B IN 1", "FRDDR_B OUT 1", ++ "TDMOUT_B IN 2", "FRDDR_C OUT 1", ++ "TDM_B Playback", "TDMOUT_B OUT"; ++ ++ assigned-clocks = <&clkc CLKID_MPLL2>, ++ <&clkc CLKID_MPLL0>, ++ <&clkc CLKID_MPLL1>; ++ assigned-clock-parents = <0>, <0>, <0>; ++ assigned-clock-rates = <294912000>, ++ <270950400>, ++ <393216000>; ++ status = "okay"; ++ ++ dai-link-0 { ++ sound-dai = <&frddr_a>; ++ }; ++ ++ dai-link-1 { ++ sound-dai = <&frddr_b>; ++ }; ++ ++ dai-link-2 { ++ sound-dai = <&frddr_c>; ++ }; ++ ++ /* 8ch hdmi interface */ ++ dai-link-3 { ++ sound-dai = <&tdmif_b>; ++ dai-format = "i2s"; ++ dai-tdm-slot-tx-mask-0 = <1 1>; ++ dai-tdm-slot-tx-mask-1 = <1 1>; ++ dai-tdm-slot-tx-mask-2 = <1 1>; ++ dai-tdm-slot-tx-mask-3 = <1 1>; ++ mclk-fs = <256>; ++ ++ codec { ++ sound-dai = <&tohdmitx TOHDMITX_I2S_IN_B>; ++ }; ++ }; ++ ++ /* hdmi glue */ ++ dai-link-4 { ++ sound-dai = <&tohdmitx TOHDMITX_I2S_OUT>; ++ ++ codec { ++ sound-dai = <&hdmi_tx>; ++ }; ++ }; ++ }; ++}; ++ ++&clkc_audio { ++ status = "okay"; ++}; ++ ++&frddr_a { ++ status = "okay"; ++}; ++ ++&frddr_b { ++ status = "okay"; ++}; ++ ++&frddr_c { ++ 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-0050-WIP-dt-bindings-arm-amlogic-add-support-for-Radxa-Ze.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0037-FROMGIT-6.3-dt-bindings-arm-amlogic-add-support-for-.patch similarity index 74% rename from projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0050-WIP-dt-bindings-arm-amlogic-add-support-for-Radxa-Ze.patch rename to projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0037-FROMGIT-6.3-dt-bindings-arm-amlogic-add-support-for-.patch index 4fd82ce975..8b8ddb8af0 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0050-WIP-dt-bindings-arm-amlogic-add-support-for-Radxa-Ze.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0037-FROMGIT-6.3-dt-bindings-arm-amlogic-add-support-for-.patch @@ -1,19 +1,20 @@ -From 18e13ed0bc6e08e4e772758fff2e8114044cdf64 Mon Sep 17 00:00:00 2001 +From 1ade064f078d44502e8f1bdfb9629364803916aa Mon Sep 17 00:00:00 2001 From: Christian Hewitt Date: Wed, 16 Feb 2022 07:27:07 +0000 -Subject: [PATCH 50/92] WIP: dt-bindings: arm: amlogic: add support for Radxa - Zero2 +Subject: [PATCH 037/111] FROMGIT(6.3): dt-bindings: arm: amlogic: add support + for Radxa Zero2 The Radxa Zero2 is a small form-factor SBC using the Amlogic A311D chip. Signed-off-by: Christian Hewitt +Acked-by: Krzysztof Kozlowski --- 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 9fda2436c618..cf81dc06df2e 100644 +index d63f6b899f25..7ded40b309a4 100644 --- a/Documentation/devicetree/bindings/arm/amlogic.yaml +++ b/Documentation/devicetree/bindings/arm/amlogic.yaml @@ -154,6 +154,7 @@ properties: diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0051-WIP-arm64-dts-meson-add-support-for-Radxa-Zero2.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0038-FROMGIT-6.3-arm64-dts-meson-add-support-for-Radxa-Ze.patch similarity index 93% rename from projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0051-WIP-arm64-dts-meson-add-support-for-Radxa-Zero2.patch rename to projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0038-FROMGIT-6.3-arm64-dts-meson-add-support-for-Radxa-Ze.patch index 5e974df072..976289d496 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0051-WIP-arm64-dts-meson-add-support-for-Radxa-Zero2.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0038-FROMGIT-6.3-arm64-dts-meson-add-support-for-Radxa-Ze.patch @@ -1,7 +1,8 @@ -From 3d8adf4989896bf6166454e0e48d7ae04c4ae2ec Mon Sep 17 00:00:00 2001 +From 1b7061d7b6255b8752d04c671bda9d2a250f9637 Mon Sep 17 00:00:00 2001 From: Yuntian Zhang Date: Fri, 14 Jan 2022 15:50:02 +0000 -Subject: [PATCH 51/92] WIP: arm64: dts: meson: add support for Radxa Zero2 +Subject: [PATCH 038/111] FROMGIT(6.3): arm64: dts: meson: add support for + Radxa Zero2 Radxa Zero2 is a small form factor SBC based on the Amlogic A311D chipset that ships in a number of eMMC configurations: @@ -21,12 +22,12 @@ Signed-off-by: Yuntian Zhang Signed-off-by: Christian Hewitt --- arch/arm64/boot/dts/amlogic/Makefile | 1 + - .../dts/amlogic/meson-g12b-radxa-zero2.dts | 499 ++++++++++++++++++ - 2 files changed, 500 insertions(+) + .../dts/amlogic/meson-g12b-radxa-zero2.dts | 489 ++++++++++++++++++ + 2 files changed, 490 insertions(+) create mode 100644 arch/arm64/boot/dts/amlogic/meson-g12b-radxa-zero2.dts diff --git a/arch/arm64/boot/dts/amlogic/Makefile b/arch/arm64/boot/dts/amlogic/Makefile -index e213aeebb774..4aa1aa0e22a8 100644 +index 5e5433718c6e..5d5ec22a469e 100644 --- a/arch/arm64/boot/dts/amlogic/Makefile +++ b/arch/arm64/boot/dts/amlogic/Makefile @@ -14,6 +14,7 @@ dtb-$(CONFIG_ARCH_MESON) += meson-g12b-gtking-pro.dtb @@ -39,10 +40,10 @@ index e213aeebb774..4aa1aa0e22a8 100644 dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-kii-pro.dtb diff --git a/arch/arm64/boot/dts/amlogic/meson-g12b-radxa-zero2.dts b/arch/arm64/boot/dts/amlogic/meson-g12b-radxa-zero2.dts new file mode 100644 -index 000000000000..fefa6f2b7abf +index 000000000000..9a60c5ec2072 --- /dev/null +++ b/arch/arm64/boot/dts/amlogic/meson-g12b-radxa-zero2.dts -@@ -0,0 +1,499 @@ +@@ -0,0 +1,489 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) +/* + * Copyright (c) 2019 BayLibre, SAS @@ -99,17 +100,6 @@ index 000000000000..fefa6f2b7abf + }; + }; + -+ cvbs-connector { -+ status = "disabled"; -+ compatible = "composite-video-connector"; -+ -+ port { -+ cvbs_connector_in: endpoint { -+ remote-endpoint = <&cvbs_vdac_out>; -+ }; -+ }; -+ }; -+ + hdmi-connector { + compatible = "hdmi-connector"; + type = "a"; @@ -133,7 +123,7 @@ index 000000000000..fefa6f2b7abf + 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>; @@ -141,7 +131,7 @@ index 000000000000..fefa6f2b7abf + regulator-always-on; + }; + -+ vcc_1v8: regulator-vcc_1v8 { ++ vcc_1v8: regulator-vcc-1v8 { + compatible = "regulator-fixed"; + regulator-name = "VCC_1V8"; + regulator-min-microvolt = <1800000>; @@ -150,7 +140,7 @@ index 000000000000..fefa6f2b7abf + regulator-always-on; + }; + -+ vcc_3v3: regulator-vcc_3v3 { ++ vcc_3v3: regulator-vcc-3v3 { + compatible = "regulator-fixed"; + regulator-name = "VCC_3V3"; + regulator-min-microvolt = <3300000>; @@ -160,7 +150,7 @@ index 000000000000..fefa6f2b7abf + /* 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>; @@ -169,7 +159,7 @@ index 000000000000..fefa6f2b7abf + regulator-always-on; + }; + -+ vddao_3v3: regulator-vddao_3v3 { ++ vddao_3v3: regulator-vddao-3v3 { + compatible = "regulator-fixed"; + regulator-name = "VDDAO_3V3"; + regulator-min-microvolt = <3300000>; @@ -177,7 +167,7 @@ index 000000000000..fefa6f2b7abf + vin-supply = <&ao_5v>; + regulator-always-on; + }; -+ ++ + vddcpu_a: regulator-vddcpu-a { + /* + * MP8756GD Regulator. @@ -232,7 +222,6 @@ index 000000000000..fefa6f2b7abf + assigned-clock-rates = <294912000>, + <270950400>, + <393216000>; -+ status = "okay"; + + dai-link-0 { + sound-dai = <&frddr_a>; @@ -271,7 +260,7 @@ index 000000000000..fefa6f2b7abf + }; + }; + -+ wifi32k: wifi32k { ++ wifi32k: clock-0 { + compatible = "pwm-clock"; + #clock-cells = <0>; + clock-frequency = <32768>; @@ -343,12 +332,6 @@ index 000000000000..fefa6f2b7abf + clock-latency = <50000>; +}; + -+&cvbs_vdac_port { -+ cvbs_vdac_out: endpoint { -+ remote-endpoint = <&cvbs_connector_in>; -+ }; -+}; -+ +&frddr_a { + status = "okay"; +}; @@ -427,6 +410,14 @@ index 000000000000..fefa6f2b7abf + status = "okay"; +}; + ++&pwm_AO_ab { ++ pinctrl-0 = <&pwm_ao_a_pins>; ++ pinctrl-names = "default"; ++ clocks = <&xtal>; ++ clock-names = "clkin3"; ++ status = "okay"; ++}; ++ +&pwm_AO_cd { + pinctrl-0 = <&pwm_ao_d_e_pins>; + pinctrl-names = "default"; diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0039-FROMGIT-6.4-dt-bindings-net-add-amlogic-gxl-mdio-mul.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0039-FROMGIT-6.4-dt-bindings-net-add-amlogic-gxl-mdio-mul.patch new file mode 100644 index 0000000000..59feabac8e --- /dev/null +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0039-FROMGIT-6.4-dt-bindings-net-add-amlogic-gxl-mdio-mul.patch @@ -0,0 +1,89 @@ +From 3ae86059d42184d4f7a8c73b2b8468076304230a Mon Sep 17 00:00:00 2001 +From: Jerome Brunet +Date: Mon, 30 Jan 2023 16:16:15 +0100 +Subject: [PATCH 039/111] FROMGIT(6.4): dt-bindings: net: add amlogic gxl mdio + multiplexer + +Add documentation for the MDIO bus multiplexer found on the Amlogic GXL +SoC family + +Reviewed-by: Krzysztof Kozlowski +Signed-off-by: Jerome Brunet +--- + .../bindings/net/amlogic,gxl-mdio-mux.yaml | 64 +++++++++++++++++++ + 1 file changed, 64 insertions(+) + create mode 100644 Documentation/devicetree/bindings/net/amlogic,gxl-mdio-mux.yaml + +diff --git a/Documentation/devicetree/bindings/net/amlogic,gxl-mdio-mux.yaml b/Documentation/devicetree/bindings/net/amlogic,gxl-mdio-mux.yaml +new file mode 100644 +index 000000000000..27ae004dbea0 +--- /dev/null ++++ b/Documentation/devicetree/bindings/net/amlogic,gxl-mdio-mux.yaml +@@ -0,0 +1,64 @@ ++# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause ++%YAML 1.2 ++--- ++$id: http://devicetree.org/schemas/net/amlogic,gxl-mdio-mux.yaml# ++$schema: http://devicetree.org/meta-schemas/core.yaml# ++ ++title: Amlogic GXL MDIO bus multiplexer ++ ++maintainers: ++ - Jerome Brunet ++ ++description: ++ This is a special case of a MDIO bus multiplexer. It allows to choose between ++ the internal mdio bus leading to the embedded 10/100 PHY or the external ++ MDIO bus on the Amlogic GXL SoC family. ++ ++allOf: ++ - $ref: mdio-mux.yaml# ++ ++properties: ++ compatible: ++ const: amlogic,gxl-mdio-mux ++ ++ reg: ++ maxItems: 1 ++ ++ clocks: ++ maxItems: 1 ++ ++ clock-names: ++ items: ++ - const: ref ++ ++required: ++ - compatible ++ - reg ++ - clocks ++ - clock-names ++ ++unevaluatedProperties: false ++ ++examples: ++ - | ++ eth_phy_mux: mdio@558 { ++ compatible = "amlogic,gxl-mdio-mux"; ++ reg = <0x558 0xc>; ++ #address-cells = <1>; ++ #size-cells = <0>; ++ clocks = <&refclk>; ++ clock-names = "ref"; ++ mdio-parent-bus = <&mdio0>; ++ ++ external_mdio: mdio@0 { ++ reg = <0x0>; ++ #address-cells = <1>; ++ #size-cells = <0>; ++ }; ++ ++ internal_mdio: mdio@1 { ++ reg = <0x1>; ++ #address-cells = <1>; ++ #size-cells = <0>; ++ }; ++ }; +-- +2.34.1 + diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0040-FROMGIT-6.4-net-mdio-add-amlogic-gxl-mdio-mux-suppor.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0040-FROMGIT-6.4-net-mdio-add-amlogic-gxl-mdio-mux-suppor.patch new file mode 100644 index 0000000000..c40c537cdd --- /dev/null +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0040-FROMGIT-6.4-net-mdio-add-amlogic-gxl-mdio-mux-suppor.patch @@ -0,0 +1,225 @@ +From 5fefed97cf53d24b221ba5c4dd7d9dabb5adc25c Mon Sep 17 00:00:00 2001 +From: Jerome Brunet +Date: Mon, 30 Jan 2023 16:16:16 +0100 +Subject: [PATCH 040/111] FROMGIT(6.4): net: mdio: add amlogic gxl mdio mux + support + +Add support for the mdio mux and internal phy glue of the GXL SoC +family + +Reported-by: Da Xue +Signed-off-by: Jerome Brunet +Reviewed-by: Andrew Lunn +--- + drivers/net/mdio/Kconfig | 11 ++ + drivers/net/mdio/Makefile | 1 + + drivers/net/mdio/mdio-mux-meson-gxl.c | 164 ++++++++++++++++++++++++++ + 3 files changed, 176 insertions(+) + create mode 100644 drivers/net/mdio/mdio-mux-meson-gxl.c + +diff --git a/drivers/net/mdio/Kconfig b/drivers/net/mdio/Kconfig +index bfa16826a6e1..90309980686e 100644 +--- a/drivers/net/mdio/Kconfig ++++ b/drivers/net/mdio/Kconfig +@@ -215,6 +215,17 @@ config MDIO_BUS_MUX_MESON_G12A + the amlogic g12a SoC. The multiplexers connects either the external + or the internal MDIO bus to the parent bus. + ++config MDIO_BUS_MUX_MESON_GXL ++ tristate "Amlogic GXL based MDIO bus multiplexer" ++ depends on ARCH_MESON || COMPILE_TEST ++ depends on OF_MDIO && HAS_IOMEM && COMMON_CLK ++ select MDIO_BUS_MUX ++ default m if ARCH_MESON ++ help ++ This module provides a driver for the MDIO multiplexer/glue of ++ the amlogic GXL SoC. The multiplexer connects either the external ++ or the internal MDIO bus to the parent bus. ++ + config MDIO_BUS_MUX_BCM6368 + tristate "Broadcom BCM6368 MDIO bus multiplexers" + depends on OF && OF_MDIO && (BMIPS_GENERIC || COMPILE_TEST) +diff --git a/drivers/net/mdio/Makefile b/drivers/net/mdio/Makefile +index 15f8dc4042ce..7d4cb4c11e4e 100644 +--- a/drivers/net/mdio/Makefile ++++ b/drivers/net/mdio/Makefile +@@ -28,5 +28,6 @@ obj-$(CONFIG_MDIO_BUS_MUX_BCM6368) += mdio-mux-bcm6368.o + obj-$(CONFIG_MDIO_BUS_MUX_BCM_IPROC) += mdio-mux-bcm-iproc.o + obj-$(CONFIG_MDIO_BUS_MUX_GPIO) += mdio-mux-gpio.o + obj-$(CONFIG_MDIO_BUS_MUX_MESON_G12A) += mdio-mux-meson-g12a.o ++obj-$(CONFIG_MDIO_BUS_MUX_MESON_GXL) += mdio-mux-meson-gxl.o + obj-$(CONFIG_MDIO_BUS_MUX_MMIOREG) += mdio-mux-mmioreg.o + obj-$(CONFIG_MDIO_BUS_MUX_MULTIPLEXER) += mdio-mux-multiplexer.o +diff --git a/drivers/net/mdio/mdio-mux-meson-gxl.c b/drivers/net/mdio/mdio-mux-meson-gxl.c +new file mode 100644 +index 000000000000..76188575ca1f +--- /dev/null ++++ b/drivers/net/mdio/mdio-mux-meson-gxl.c +@@ -0,0 +1,164 @@ ++// SPDX-License-Identifier: GPL-2.0 ++/* Copyright (c) 2022 Baylibre, SAS. ++ * Author: Jerome Brunet ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#define ETH_REG2 0x0 ++#define REG2_PHYID GENMASK(21, 0) ++#define EPHY_GXL_ID 0x110181 ++#define REG2_LEDACT GENMASK(23, 22) ++#define REG2_LEDLINK GENMASK(25, 24) ++#define REG2_DIV4SEL BIT(27) ++#define REG2_ADCBYPASS BIT(30) ++#define REG2_CLKINSEL BIT(31) ++#define ETH_REG3 0x4 ++#define REG3_ENH BIT(3) ++#define REG3_CFGMODE GENMASK(6, 4) ++#define REG3_AUTOMDIX BIT(7) ++#define REG3_PHYADDR GENMASK(12, 8) ++#define REG3_PWRUPRST BIT(21) ++#define REG3_PWRDOWN BIT(22) ++#define REG3_LEDPOL BIT(23) ++#define REG3_PHYMDI BIT(26) ++#define REG3_CLKINEN BIT(29) ++#define REG3_PHYIP BIT(30) ++#define REG3_PHYEN BIT(31) ++#define ETH_REG4 0x8 ++#define REG4_PWRUPRSTSIG BIT(0) ++ ++#define MESON_GXL_MDIO_EXTERNAL_ID 0 ++#define MESON_GXL_MDIO_INTERNAL_ID 1 ++ ++struct gxl_mdio_mux { ++ void __iomem *regs; ++ void *mux_handle; ++}; ++ ++static void gxl_enable_internal_mdio(struct gxl_mdio_mux *priv) ++{ ++ u32 val; ++ ++ /* Setup the internal phy */ ++ val = (REG3_ENH | ++ FIELD_PREP(REG3_CFGMODE, 0x7) | ++ REG3_AUTOMDIX | ++ FIELD_PREP(REG3_PHYADDR, 8) | ++ REG3_LEDPOL | ++ REG3_PHYMDI | ++ REG3_CLKINEN | ++ REG3_PHYIP); ++ ++ writel(REG4_PWRUPRSTSIG, priv->regs + ETH_REG4); ++ writel(val, priv->regs + ETH_REG3); ++ mdelay(10); ++ ++ /* NOTE: The HW kept the phy id configurable at runtime. ++ * The id below is arbitrary. It is the one used in the vendor code. ++ * The only constraint is that it must match the one in ++ * drivers/net/phy/meson-gxl.c to properly match the PHY. ++ */ ++ writel(FIELD_PREP(REG2_PHYID, EPHY_GXL_ID), ++ priv->regs + ETH_REG2); ++ ++ /* Enable the internal phy */ ++ val |= REG3_PHYEN; ++ writel(val, priv->regs + ETH_REG3); ++ writel(0, priv->regs + ETH_REG4); ++ ++ /* The phy needs a bit of time to power up */ ++ mdelay(10); ++} ++ ++static void gxl_enable_external_mdio(struct gxl_mdio_mux *priv) ++{ ++ /* Reset the mdio bus mux to the external phy */ ++ writel(0, priv->regs + ETH_REG3); ++} ++ ++static int gxl_mdio_switch_fn(int current_child, int desired_child, ++ void *data) ++{ ++ struct gxl_mdio_mux *priv = dev_get_drvdata(data); ++ ++ if (current_child == desired_child) ++ return 0; ++ ++ switch (desired_child) { ++ case MESON_GXL_MDIO_EXTERNAL_ID: ++ gxl_enable_external_mdio(priv); ++ break; ++ case MESON_GXL_MDIO_INTERNAL_ID: ++ gxl_enable_internal_mdio(priv); ++ break; ++ default: ++ return -EINVAL; ++ } ++ ++ return 0; ++} ++ ++static const struct of_device_id gxl_mdio_mux_match[] = { ++ { .compatible = "amlogic,gxl-mdio-mux", }, ++ {}, ++}; ++MODULE_DEVICE_TABLE(of, gxl_mdio_mux_match); ++ ++static int gxl_mdio_mux_probe(struct platform_device *pdev) ++{ ++ struct device *dev = &pdev->dev; ++ struct gxl_mdio_mux *priv; ++ struct clk *rclk; ++ int ret; ++ ++ priv = devm_kzalloc(dev, sizeof(*priv), GFP_KERNEL); ++ if (!priv) ++ return -ENOMEM; ++ platform_set_drvdata(pdev, priv); ++ ++ priv->regs = devm_platform_ioremap_resource(pdev, 0); ++ if (IS_ERR(priv->regs)) ++ return PTR_ERR(priv->regs); ++ ++ rclk = devm_clk_get_enabled(dev, "ref"); ++ if (IS_ERR(rclk)) ++ return dev_err_probe(dev, PTR_ERR(rclk), ++ "failed to get reference clock\n"); ++ ++ ret = mdio_mux_init(dev, dev->of_node, gxl_mdio_switch_fn, ++ &priv->mux_handle, dev, NULL); ++ if (ret) ++ dev_err_probe(dev, ret, "mdio multiplexer init failed\n"); ++ ++ return ret; ++} ++ ++static int gxl_mdio_mux_remove(struct platform_device *pdev) ++{ ++ struct gxl_mdio_mux *priv = platform_get_drvdata(pdev); ++ ++ mdio_mux_uninit(priv->mux_handle); ++ ++ return 0; ++} ++ ++static struct platform_driver gxl_mdio_mux_driver = { ++ .probe = gxl_mdio_mux_probe, ++ .remove = gxl_mdio_mux_remove, ++ .driver = { ++ .name = "gxl-mdio-mux", ++ .of_match_table = gxl_mdio_mux_match, ++ }, ++}; ++module_platform_driver(gxl_mdio_mux_driver); ++ ++MODULE_DESCRIPTION("Amlogic GXL MDIO multiplexer driver"); ++MODULE_AUTHOR("Jerome Brunet "); ++MODULE_LICENSE("GPL"); +-- +2.34.1 + diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0014-FROMLIST-v1-mmc-meson-gx-fix-deferred-probing.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0041-FROMLIST-v1-mmc-meson-gx-fix-deferred-probing.patch similarity index 81% rename from projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0014-FROMLIST-v1-mmc-meson-gx-fix-deferred-probing.patch rename to projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0041-FROMLIST-v1-mmc-meson-gx-fix-deferred-probing.patch index a77f324a92..3c32f0dd46 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0014-FROMLIST-v1-mmc-meson-gx-fix-deferred-probing.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0041-FROMLIST-v1-mmc-meson-gx-fix-deferred-probing.patch @@ -1,7 +1,7 @@ -From f19c935ec550a795e05b2357b00edfef0bdfa398 Mon Sep 17 00:00:00 2001 +From 7562b64e26f1a0f87ad8540f471c09a3b89bebb0 Mon Sep 17 00:00:00 2001 From: Sergey Shtylyov Date: Fri, 24 Dec 2021 06:09:57 +0000 -Subject: [PATCH 14/92] FROMLIST(v1): mmc: meson-gx: fix deferred probing +Subject: [PATCH 041/111] FROMLIST(v1): mmc: meson-gx: fix deferred probing The driver overrides the error codes and IRQ0 returned by platform_get_irq() to -EINVAL, so if it returns -EPROBE_DEFER, the driver will fail the probe @@ -17,10 +17,10 @@ Reviewed-by: Martin Blumenstingl 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/mmc/host/meson-gx-mmc.c b/drivers/mmc/host/meson-gx-mmc.c -index a8258ea5364c..2454d92c4391 100644 +index 6e5ea0213b47..03d313a27a7a 100644 --- a/drivers/mmc/host/meson-gx-mmc.c +++ b/drivers/mmc/host/meson-gx-mmc.c -@@ -1183,8 +1183,8 @@ static int meson_mmc_probe(struct platform_device *pdev) +@@ -1225,8 +1225,8 @@ static int meson_mmc_probe(struct platform_device *pdev) } host->irq = platform_get_irq(pdev, 0); diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0015-FROMLIST-v5-dt-bindings-vendor-prefixes-Add-Titan-Mi.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0042-FROMLIST-v5-dt-bindings-vendor-prefixes-Add-Titan-Mi.patch similarity index 88% rename from projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0015-FROMLIST-v5-dt-bindings-vendor-prefixes-Add-Titan-Mi.patch rename to projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0042-FROMLIST-v5-dt-bindings-vendor-prefixes-Add-Titan-Mi.patch index 30f1bb5ac8..2e94e4ce69 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0015-FROMLIST-v5-dt-bindings-vendor-prefixes-Add-Titan-Mi.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0042-FROMLIST-v5-dt-bindings-vendor-prefixes-Add-Titan-Mi.patch @@ -1,7 +1,7 @@ -From f135d58914b0d5c93af9f93f9a9908a08fd87531 Mon Sep 17 00:00:00 2001 +From d1c8a0dc1f678fd6c32ef6592604f28a51b35453 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20F=C3=A4rber?= Date: Sun, 20 Feb 2022 08:23:12 +0000 -Subject: [PATCH 15/92] FROMLIST(v5): dt-bindings: vendor-prefixes: Add Titan +Subject: [PATCH 042/111] FROMLIST(v5): dt-bindings: vendor-prefixes: Add Titan Micro Electronics MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0016-FROMLIST-v5-dt-bindings-auxdisplay-Add-Titan-Micro-E.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0043-FROMLIST-v5-dt-bindings-auxdisplay-Add-Titan-Micro-E.patch similarity index 94% rename from projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0016-FROMLIST-v5-dt-bindings-auxdisplay-Add-Titan-Micro-E.patch rename to projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0043-FROMLIST-v5-dt-bindings-auxdisplay-Add-Titan-Micro-E.patch index 5a60ec3a98..8a0c0f402d 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0016-FROMLIST-v5-dt-bindings-auxdisplay-Add-Titan-Micro-E.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0043-FROMLIST-v5-dt-bindings-auxdisplay-Add-Titan-Micro-E.patch @@ -1,8 +1,8 @@ -From a2b6a10d9cedb6db79a6a5b3efc0f14fd2ac9387 Mon Sep 17 00:00:00 2001 +From 83eb54f6693f4540d2bbba0faf1573cf6ca54f62 Mon Sep 17 00:00:00 2001 From: Heiner Kallweit Date: Sun, 20 Feb 2022 08:24:47 +0000 -Subject: [PATCH 16/92] FROMLIST(v5): dt-bindings: auxdisplay: Add Titan Micro - Electronics TM1628 +Subject: [PATCH 043/111] 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 diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0017-FROMLIST-v5-docs-ABI-document-tm1628-attribute-displ.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0044-FROMLIST-v5-docs-ABI-document-tm1628-attribute-displ.patch similarity index 88% rename from projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0017-FROMLIST-v5-docs-ABI-document-tm1628-attribute-displ.patch rename to projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0044-FROMLIST-v5-docs-ABI-document-tm1628-attribute-displ.patch index 62a624f3a6..94678e1945 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0017-FROMLIST-v5-docs-ABI-document-tm1628-attribute-displ.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0044-FROMLIST-v5-docs-ABI-document-tm1628-attribute-displ.patch @@ -1,7 +1,7 @@ -From d6dadd1402bc7e9a112ac7f6e2776083d9d26fe0 Mon Sep 17 00:00:00 2001 +From 9b4992bc421b74d3d3b2452351f95dd159baa07f Mon Sep 17 00:00:00 2001 From: Heiner Kallweit Date: Sun, 20 Feb 2022 08:26:27 +0000 -Subject: [PATCH 17/92] FROMLIST(v5): docs: ABI: document tm1628 attribute +Subject: [PATCH 044/111] FROMLIST(v5): docs: ABI: document tm1628 attribute display-text Document the attribute for reading / writing the text to be displayed on diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0018-FROMLIST-v5-auxdisplay-add-support-for-Titanmec-TM16.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0045-FROMLIST-v5-auxdisplay-add-support-for-Titanmec-TM16.patch similarity index 98% rename from projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0018-FROMLIST-v5-auxdisplay-add-support-for-Titanmec-TM16.patch rename to projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0045-FROMLIST-v5-auxdisplay-add-support-for-Titanmec-TM16.patch index 4f00702eb3..423e5894d8 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0018-FROMLIST-v5-auxdisplay-add-support-for-Titanmec-TM16.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0045-FROMLIST-v5-auxdisplay-add-support-for-Titanmec-TM16.patch @@ -1,7 +1,7 @@ -From 7d01e16ca5d7a49b5030fb2c30c0dab7f311eb95 Mon Sep 17 00:00:00 2001 +From 46ce3710c69cd23dad35803f9ee51f92ef33a62a Mon Sep 17 00:00:00 2001 From: Heiner Kallweit Date: Mon, 4 Apr 2022 18:51:20 +0000 -Subject: [PATCH 18/92] FROMLIST(v5): auxdisplay: add support for Titanmec +Subject: [PATCH 045/111] FROMLIST(v5): auxdisplay: add support for Titanmec TM1628 7 segment display controller MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0045-WIP-drivers-meson-vdec-add-handling-to-HEVC-decoder-.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0045-WIP-drivers-meson-vdec-add-handling-to-HEVC-decoder-.patch deleted file mode 100644 index 90842bf015..0000000000 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0045-WIP-drivers-meson-vdec-add-handling-to-HEVC-decoder-.patch +++ /dev/null @@ -1,157 +0,0 @@ -From f5d5669ec148d7bb2459e50d2a988ae0e1fb03c2 Mon Sep 17 00:00:00 2001 -From: benjamin545 -Date: Mon, 2 Aug 2021 15:18:40 -0400 -Subject: [PATCH 45/92] WIP: drivers: meson: vdec: add handling to HEVC decoder - to show frames when ready - -..rather than when no longer referenced - -the HEVC decode driver would not show the next frame until it was no longer referenced, -this would cause a backup of frames that were ready to render but held up by one or more -frames that were still referenced. The decoded picture buffer would fill up and stall -playback as no new frames could be placed in the decoded picture buffer. ---- - drivers/staging/media/meson/vdec/codec_hevc.c | 52 ++++++++++++------- - 1 file changed, 34 insertions(+), 18 deletions(-) - -diff --git a/drivers/staging/media/meson/vdec/codec_hevc.c b/drivers/staging/media/meson/vdec/codec_hevc.c -index 3a6fd04a2d33..01218efde99b 100644 ---- a/drivers/staging/media/meson/vdec/codec_hevc.c -+++ b/drivers/staging/media/meson/vdec/codec_hevc.c -@@ -223,6 +223,7 @@ struct hevc_frame { - u32 poc; - - int referenced; -+ int show; - u32 num_reorder_pic; - - u32 cur_slice_idx; -@@ -448,9 +449,11 @@ static void codec_hevc_update_referenced(struct codec_hevc *hevc) - ((1 << (RPS_USED_BIT - 1)) - 1); - if (param->p.CUR_RPS[i] & (1 << (RPS_USED_BIT - 1))) { - poc_tmp = curr_poc - -- ((1 << (RPS_USED_BIT - 1)) - delt); -- } else -+ ((1 << (RPS_USED_BIT - 1)) - delt); -+ } else { - poc_tmp = curr_poc + delt; -+ } -+ - if (poc_tmp == frame->poc) { - is_referenced = 1; - break; -@@ -462,13 +465,13 @@ static void codec_hevc_update_referenced(struct codec_hevc *hevc) - } - - static struct hevc_frame * --codec_hevc_get_lowest_poc_frame(struct codec_hevc *hevc) -+codec_hevc_get_next_ready_frame(struct codec_hevc *hevc) - { - struct hevc_frame *tmp, *ret = NULL; - u32 poc = INT_MAX; - - list_for_each_entry(tmp, &hevc->ref_frames_list, list) { -- if (tmp->poc < poc) { -+ if ((tmp->poc < poc) && tmp->show) { - ret = tmp; - poc = tmp->poc; - } -@@ -478,28 +481,35 @@ codec_hevc_get_lowest_poc_frame(struct codec_hevc *hevc) - } - - /* Try to output as many frames as possible */ --static void codec_hevc_output_frames(struct amvdec_session *sess) -+static void codec_hevc_show_frames(struct amvdec_session *sess) - { -- struct hevc_frame *tmp; -+ struct hevc_frame *tmp, *n; - struct codec_hevc *hevc = sess->priv; - -- while ((tmp = codec_hevc_get_lowest_poc_frame(hevc))) { -+ while ((tmp = codec_hevc_get_next_ready_frame(hevc))) { - if (hevc->curr_poc && -- (tmp->referenced || -- tmp->num_reorder_pic >= hevc->frames_num)) -+ (hevc->frames_num <= tmp->num_reorder_pic)) - break; - - 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); -+ -+ tmp->show = 0; -+ hevc->frames_num--; -+ } -+ -+ /* clean output frame buffer */ -+ list_for_each_entry_safe(tmp, n, &hevc->ref_frames_list, list) { -+ if (tmp->referenced || tmp->show) -+ continue; -+ - list_del(&tmp->list); - kfree(tmp); -- hevc->frames_num--; - } - } - -- - static int - codec_hevc_setup_workspace(struct amvdec_session *sess, - struct codec_hevc *hevc) -@@ -650,14 +660,17 @@ static int codec_hevc_start(struct amvdec_session *sess) - static void codec_hevc_flush_output(struct amvdec_session *sess) - { - struct codec_hevc *hevc = sess->priv; -- struct hevc_frame *tmp; -+ struct hevc_frame *tmp, *n; - -- while (!list_empty(&hevc->ref_frames_list)) { -- tmp = codec_hevc_get_lowest_poc_frame(hevc); -+ while ((tmp = codec_hevc_get_next_ready_frame(hevc))) { - amvdec_dst_buf_done(sess, tmp->vbuf, V4L2_FIELD_NONE); -+ tmp->show = 0; -+ hevc->frames_num--; -+ } -+ -+ list_for_each_entry_safe(tmp, n, &hevc->ref_frames_list, list) { - list_del(&tmp->list); - kfree(tmp); -- hevc->frames_num--; - } - } - -@@ -719,6 +732,7 @@ codec_hevc_prepare_new_frame(struct amvdec_session *sess) - - new_frame->vbuf = vbuf; - new_frame->referenced = 1; -+ new_frame->show = 1; - new_frame->poc = hevc->curr_poc; - new_frame->cur_slice_type = params->p.slice_type; - new_frame->num_reorder_pic = params->p.sps_num_reorder_pics_0; -@@ -1267,7 +1281,7 @@ static int codec_hevc_process_segment(struct amvdec_session *sess) - /* First slice: new frame */ - if (slice_segment_address == 0) { - codec_hevc_update_referenced(hevc); -- codec_hevc_output_frames(sess); -+ codec_hevc_show_frames(sess); - - hevc->cur_frame = codec_hevc_prepare_new_frame(sess); - if (!hevc->cur_frame) -@@ -1370,9 +1384,11 @@ static void codec_hevc_fetch_rpm(struct amvdec_session *sess) - u16 *rpm_vaddr = hevc->workspace_vaddr + RPM_OFFSET; - int i, j; - -- for (i = 0; i < RPM_SIZE; i += 4) -+ for (i = 0; i < RPM_SIZE; i += 4) { - for (j = 0; j < 4; j++) -- hevc->rpm_param.l.data[i + j] = rpm_vaddr[i + 3 - j]; -+ hevc->rpm_param.l.data[i + j] = -+ rpm_vaddr[i + 3 - j]; -+ } - } - - static void codec_hevc_resume(struct amvdec_session *sess) --- -2.34.1 - diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0019-FROMLIST-v5-arm64-dts-meson-gxl-s905w-tx3-mini-add-s.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0046-FROMLIST-v5-arm64-dts-meson-gxl-s905w-tx3-mini-add-s.patch similarity index 92% rename from projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0019-FROMLIST-v5-arm64-dts-meson-gxl-s905w-tx3-mini-add-s.patch rename to projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0046-FROMLIST-v5-arm64-dts-meson-gxl-s905w-tx3-mini-add-s.patch index c4f51a2842..42c56d4326 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0019-FROMLIST-v5-arm64-dts-meson-gxl-s905w-tx3-mini-add-s.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0046-FROMLIST-v5-arm64-dts-meson-gxl-s905w-tx3-mini-add-s.patch @@ -1,8 +1,8 @@ -From 4c521341fbecf30baa20f2da32ada53aede0ed1e Mon Sep 17 00:00:00 2001 +From f4ef754dbd28b2764f3eb2307ddc6db41ff7cde5 Mon Sep 17 00:00:00 2001 From: Heiner Kallweit Date: Mon, 4 Apr 2022 18:52:34 +0000 -Subject: [PATCH 19/92] FROMLIST(v5): arm64: dts: meson-gxl-s905w-tx3-mini: add - support for the 7 segment display +Subject: [PATCH 046/111] 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. diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0046-WIP-drivers-meson-vdec-add-HEVC-support-to-GXBB.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0046-WIP-drivers-meson-vdec-add-HEVC-support-to-GXBB.patch deleted file mode 100644 index 3d868d8c91..0000000000 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0046-WIP-drivers-meson-vdec-add-HEVC-support-to-GXBB.patch +++ /dev/null @@ -1,39 +0,0 @@ -From 15e99400c562118a9ac674700a9da43bf57fae6d Mon Sep 17 00:00:00 2001 -From: Christian Hewitt -Date: Sun, 21 Nov 2021 19:12:07 +0000 -Subject: [PATCH 46/92] WIP: drivers: meson: vdec: add HEVC support to GXBB - -It's not clear whether the GXL firmware is the same one used with GXBB -but let's try it and see! - -Signed-off-by: Christian Hewitt ---- - drivers/staging/media/meson/vdec/vdec_platform.c | 12 ++++++++++++ - 1 file changed, 12 insertions(+) - -diff --git a/drivers/staging/media/meson/vdec/vdec_platform.c b/drivers/staging/media/meson/vdec/vdec_platform.c -index 8592cb3aaea9..810039a02b44 100644 ---- a/drivers/staging/media/meson/vdec/vdec_platform.c -+++ b/drivers/staging/media/meson/vdec/vdec_platform.c -@@ -16,6 +16,18 @@ - - static const struct amvdec_format vdec_formats_gxbb[] = { - { -+ .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, --- -2.34.1 - diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0020-FROMLIST-v5-MAINTAINERS-Add-entry-for-tm1628-auxdisp.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0047-FROMLIST-v5-MAINTAINERS-Add-entry-for-tm1628-auxdisp.patch similarity index 76% rename from projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0020-FROMLIST-v5-MAINTAINERS-Add-entry-for-tm1628-auxdisp.patch rename to projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0047-FROMLIST-v5-MAINTAINERS-Add-entry-for-tm1628-auxdisp.patch index e088d74799..3e5833d966 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0020-FROMLIST-v5-MAINTAINERS-Add-entry-for-tm1628-auxdisp.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0047-FROMLIST-v5-MAINTAINERS-Add-entry-for-tm1628-auxdisp.patch @@ -1,7 +1,7 @@ -From 0548abd0394d2185344898ac10bd8e43fc8a6a3a Mon Sep 17 00:00:00 2001 +From 6f65d3a38399d34407c53bfa3843e58de181bd5d Mon Sep 17 00:00:00 2001 From: Heiner Kallweit Date: Mon, 4 Apr 2022 18:53:32 +0000 -Subject: [PATCH 20/92] FROMLIST(v5): MAINTAINERS: Add entry for tm1628 +Subject: [PATCH 047/111] FROMLIST(v5): MAINTAINERS: Add entry for tm1628 auxdisplay driver Signed-off-by: Heiner Kallweit @@ -10,10 +10,10 @@ Signed-off-by: Heiner Kallweit 1 file changed, 7 insertions(+) diff --git a/MAINTAINERS b/MAINTAINERS -index 886d3f69ee64..c81d579853a6 100644 +index d4822ae39e39..e4d13fc30cf6 100644 --- a/MAINTAINERS +++ b/MAINTAINERS -@@ -20726,6 +20726,13 @@ W: http://sourceforge.net/projects/tlan/ +@@ -20728,6 +20728,13 @@ W: http://sourceforge.net/projects/tlan/ F: Documentation/networking/device_drivers/ethernet/ti/tlan.rst F: drivers/net/ethernet/ti/tlan.* diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0034-WIP-ASoC-hdmi-codec-reorder-channel-allocation-list.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0048-FROMLIST-v1-ASoC-hdmi-codec-reorder-channel-allocati.patch similarity index 97% rename from projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0034-WIP-ASoC-hdmi-codec-reorder-channel-allocation-list.patch rename to projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0048-FROMLIST-v1-ASoC-hdmi-codec-reorder-channel-allocati.patch index 5d16176a80..c6f32c9b5f 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0034-WIP-ASoC-hdmi-codec-reorder-channel-allocation-list.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0048-FROMLIST-v1-ASoC-hdmi-codec-reorder-channel-allocati.patch @@ -1,7 +1,8 @@ -From 6c22741ba7990df5127aecf0cf7dc0603b90159b Mon Sep 17 00:00:00 2001 +From 0c0b16bdfe46c648965eef0ac97d06ffb7552c8e Mon Sep 17 00:00:00 2001 From: Jonas Karlman Date: Sun, 23 Dec 2018 02:24:38 +0100 -Subject: [PATCH 34/92] WIP: ASoC: hdmi-codec: reorder channel allocation list +Subject: [PATCH 048/111] FROMLIST(v1): ASoC: hdmi-codec: reorder channel + allocation list Wrong channel allocation is selected by hdmi_codec_get_ch_alloc_table_idx(). diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0042-WIP-drivers-meson-vdec-remove-redundant-if-statement.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0049-FROMLIST-v1-media-meson-vdec-remove-redundant-if-sta.patch similarity index 65% rename from projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0042-WIP-drivers-meson-vdec-remove-redundant-if-statement.patch rename to projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0049-FROMLIST-v1-media-meson-vdec-remove-redundant-if-sta.patch index 67cbdc174b..e43fc7a0f3 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0042-WIP-drivers-meson-vdec-remove-redundant-if-statement.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0049-FROMLIST-v1-media-meson-vdec-remove-redundant-if-sta.patch @@ -1,11 +1,14 @@ -From f4cef56cd5fd2b91cd38d6a8f56a2c16081d0f5f Mon Sep 17 00:00:00 2001 -From: benjamin545 +From f8d0646502e7ed9c0748036a9dbd9f8b59934f08 Mon Sep 17 00:00:00 2001 +From: Benjamin Roszak Date: Thu, 15 Jul 2021 14:32:33 -0400 -Subject: [PATCH 42/92] WIP: drivers: meson: vdec: remove redundant if +Subject: [PATCH 049/111] FROMLIST(v1): media: meson: vdec: remove redundant if statement -checking if sess->fmt_out->pixfmt is V4L2_PIX_FMT_VP9 was already done -as a condition to enter the if statement where this additional check is performed +Checking if sess->fmt_out->pixfmt is V4L2_PIX_FMT_VP9 was already done as a +condition to enter the if statement where this additional check is made. + +Signed-off-by: Benjamin Roszak +Signed-off-by: Christian Hewitt --- drivers/staging/media/meson/vdec/esparser.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0049-WIP-arm64-dts-meson-radxa-zero-add-support-for-the-u.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0049-WIP-arm64-dts-meson-radxa-zero-add-support-for-the-u.patch deleted file mode 100644 index 9c3a4b2eed..0000000000 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0049-WIP-arm64-dts-meson-radxa-zero-add-support-for-the-u.patch +++ /dev/null @@ -1,94 +0,0 @@ -From 885a1a5806ff78e2ac3e3263a8542e7a46be0f82 Mon Sep 17 00:00:00 2001 -From: Christian Hewitt -Date: Tue, 17 Aug 2021 16:16:43 +0000 -Subject: [PATCH 49/92] WIP: arm64: dts: meson: radxa-zero: add support for the - usb type-c controller - -Radxa Zero uses an FUSB302 type-c controller, so lets enable it. - -NB: Polarity swapping via GPIO is not implemented in the current driver -(see drivers/usb/typec/tcpm/fusb302.c) so it is not possible to handle -GPIOAO_6 for USB3 polarity control. - -Suggested-by: Neil Armstrong -Signed-off-by: Christian Hewitt ---- - .../dts/amlogic/meson-g12a-radxa-zero.dts | 44 +++++++++++++++++++ - 1 file changed, 44 insertions(+) - -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 e3bb6df42ff3..5e3dc013409f 100644 ---- a/arch/arm64/boot/dts/amlogic/meson-g12a-radxa-zero.dts -+++ b/arch/arm64/boot/dts/amlogic/meson-g12a-radxa-zero.dts -@@ -60,6 +60,14 @@ sdio_pwrseq: sdio-pwrseq { - clock-names = "ext_clock"; - }; - -+ typec2_vbus: regulator-typec2_vbus { -+ compatible = "regulator-fixed"; -+ regulator-name = "TYPEC2_VBUS"; -+ regulator-min-microvolt = <5000000>; -+ regulator-max-microvolt = <5000000>; -+ vin-supply = <&ao_5v>; -+ }; -+ - ao_5v: regulator-ao_5v { - compatible = "regulator-fixed"; - regulator-name = "AO_5V"; -@@ -191,6 +199,18 @@ wifi32k: wifi32k { - }; - }; - -+&ao_pinctrl { -+ /* Ensure the TYPE C controller irq pin is not driven by the SoC */ -+ fusb302_irq_pins: fusb302_irq { -+ mux { -+ groups = "GPIOAO_5"; -+ function = "gpio_aobus"; -+ bias-pull-up; -+ output-disable; -+ }; -+ }; -+}; -+ - &arb { - status = "okay"; - }; -@@ -278,6 +298,22 @@ &ir { - pinctrl-names = "default"; - }; - -+&i2c_AO { -+ fusb302@22 { -+ compatible = "fcs,fusb302"; -+ reg = <0x22>; -+ -+ pinctrl-0 = <&fusb302_irq_pins>; -+ pinctrl-names = "default"; -+ interrupt-parent = <&gpio_intc>; -+ interrupts = <59 IRQ_TYPE_LEVEL_LOW>; -+ -+ vbus-supply = <&typec2_vbus>; -+ -+ status = "okay"; -+ }; -+}; -+ - &pwm_AO_cd { - pinctrl-0 = <&pwm_ao_d_e_pins>; - pinctrl-names = "default"; -@@ -403,3 +439,11 @@ &usb { - status = "okay"; - dr_mode = "host"; - }; -+ -+&usb2_phy0 { -+ phy-supply = <&typec2_vbus>; -+}; -+ -+&usb3_pcie_phy { -+ phy-supply = <&typec2_vbus>; -+}; --- -2.34.1 - diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0047-WIP-drivers-meson-vdec-check-if-parser-has-really-pa.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0050-FROMLIST-v1-media-meson-vdec-esparser-check-parsing-.patch similarity index 70% rename from projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0047-WIP-drivers-meson-vdec-check-if-parser-has-really-pa.patch rename to projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0050-FROMLIST-v1-media-meson-vdec-esparser-check-parsing-.patch index dcf2b72c93..7837004cf3 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0047-WIP-drivers-meson-vdec-check-if-parser-has-really-pa.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0050-FROMLIST-v1-media-meson-vdec-esparser-check-parsing-.patch @@ -1,16 +1,19 @@ -From 64002523532d6e5746c147fa3e7e7fc0c3c4222c Mon Sep 17 00:00:00 2001 +From 75ff9a5f57cdc8bd007529832601204f987c731d Mon Sep 17 00:00:00 2001 From: Neil Armstrong Date: Mon, 22 Nov 2021 09:15:21 +0000 -Subject: [PATCH 47/92] WIP: drivers: meson: vdec: check if parser has really - parser before marking input buffer as error +Subject: [PATCH 050/111] 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. Signed-off-by: Neil Armstrong +Signed-off-by: Christian Hewitt --- - drivers/staging/media/meson/vdec/esparser.c | 14 ++++++++++---- - 1 file changed, 10 insertions(+), 4 deletions(-) + drivers/staging/media/meson/vdec/esparser.c | 15 +++++++++++---- + 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/drivers/staging/media/meson/vdec/esparser.c b/drivers/staging/media/meson/vdec/esparser.c -index df5956c6141d..06f627b141fb 100644 +index 7b15fc54efe4..1904d58875ad 100644 --- a/drivers/staging/media/meson/vdec/esparser.c +++ b/drivers/staging/media/meson/vdec/esparser.c @@ -300,6 +300,7 @@ esparser_queue(struct amvdec_session *sess, struct vb2_v4l2_buffer *vbuf) @@ -21,7 +24,7 @@ index df5956c6141d..06f627b141fb 100644 /* * When max ref frame is held by VP9, this should be -= 3 to prevent a -@@ -354,15 +355,20 @@ esparser_queue(struct amvdec_session *sess, struct vb2_v4l2_buffer *vbuf) +@@ -353,15 +354,21 @@ esparser_queue(struct amvdec_session *sess, struct vb2_v4l2_buffer *vbuf) } pad_size = esparser_pad_start_code(core, vb, payload_size); @@ -37,7 +40,8 @@ index df5956c6141d..06f627b141fb 100644 - return 0; + if (ret < 0 || wp2 == wp) { -+ dev_err(core->dev, "esparser: input parsing error ret %d (%x <=> %x)\n", ret, wp, wp2); ++ dev_err(core->dev, "esparser: input parsing error ret %d (%x <=> %x)\n", ++ ret, wp, wp2); + amvdec_remove_ts(sess, vb->timestamp); + v4l2_m2m_buf_done(vbuf, VB2_BUF_STATE_ERROR); + diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0043-WIP-drivers-meson-vdec-improve-mmu-and-fbc-handling-.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0051-FROMLIST-v2-media-meson-vdec-implement-10bit-bitstre.patch similarity index 89% rename from projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0043-WIP-drivers-meson-vdec-improve-mmu-and-fbc-handling-.patch rename to projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0051-FROMLIST-v2-media-meson-vdec-implement-10bit-bitstre.patch index 328d13ea5f..fcdabc5e54 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0043-WIP-drivers-meson-vdec-improve-mmu-and-fbc-handling-.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0051-FROMLIST-v2-media-meson-vdec-implement-10bit-bitstre.patch @@ -1,19 +1,32 @@ -From 7f52e06b00d93a73a5e2b7eb2fdab2c978b00cc6 Mon Sep 17 00:00:00 2001 -From: benjamin545 -Date: Thu, 15 Jul 2021 16:32:39 -0400 -Subject: [PATCH 43/92] WIP: drivers: meson: vdec: improve mmu and fbc handling - and add 10 bit handling +From d8c0dea196a1c42845010a9364e6d58e572df2a2 Mon Sep 17 00:00:00 2001 +From: Benjamin Roszak +Date: Mon, 23 Jan 2023 10:56:46 +0000 +Subject: [PATCH 051/111] FROMLIST(v2): media: meson: vdec: implement 10bit + bitstream handling +In order to support 10bit bitstream decoding, buffers and MMU +handling must be cleaned up to support either downscale output +from compressed 10bit decoding to uncompressed 8bit NV12 output +or to compressed 10bit proprietary encoded frame format. + +For that, "am21c" name is moved to "amfbc" to reflect the upstream +Amlogic Compressed framebuffer modifier naming. + +Compressed frame buffers allocation is also cleaned up so it +can be shared with the HEVC decoder implementation. + +Signed-off-by: Benjamin Roszak +Signed-off-by: Christian Hewitt --- drivers/staging/media/meson/vdec/codec_h264.c | 3 +- - .../media/meson/vdec/codec_hevc_common.c | 164 +++++++++++------- + .../media/meson/vdec/codec_hevc_common.c | 161 +++++++++++------- .../media/meson/vdec/codec_hevc_common.h | 3 +- - drivers/staging/media/meson/vdec/codec_vp9.c | 36 ++-- + drivers/staging/media/meson/vdec/codec_vp9.c | 35 ++-- drivers/staging/media/meson/vdec/esparser.c | 1 + drivers/staging/media/meson/vdec/vdec.h | 1 + - .../staging/media/meson/vdec/vdec_helpers.c | 46 +++-- + .../staging/media/meson/vdec/vdec_helpers.c | 44 +++-- .../staging/media/meson/vdec/vdec_helpers.h | 10 +- - 8 files changed, 163 insertions(+), 101 deletions(-) + 8 files changed, 161 insertions(+), 97 deletions(-) diff --git a/drivers/staging/media/meson/vdec/codec_h264.c b/drivers/staging/media/meson/vdec/codec_h264.c index c61128fc4bb9..d53c9a464bde 100644 @@ -30,7 +43,7 @@ index c61128fc4bb9..d53c9a464bde 100644 /* diff --git a/drivers/staging/media/meson/vdec/codec_hevc_common.c b/drivers/staging/media/meson/vdec/codec_hevc_common.c -index 0315cc0911cd..d6ed82dc93ca 100644 +index 0315cc0911cd..1c74b4837dcb 100644 --- a/drivers/staging/media/meson/vdec/codec_hevc_common.c +++ b/drivers/staging/media/meson/vdec/codec_hevc_common.c @@ -30,8 +30,11 @@ const u16 vdec_hevc_parser_cmd[] = { @@ -80,7 +93,7 @@ index 0315cc0911cd..d6ed82dc93ca 100644 struct v4l2_m2m_buffer *buf; - u32 revision = core->platform->revision; u32 pixfmt_cap = sess->pixfmt_cap; -+ const u32 revision = core->platform->revision; ++ const u32 revision = core->platform->revision; int i; amvdec_write_dos(core, HEVCD_MPP_ANC2AXI_TBL_CONF_ADDR, @@ -93,14 +106,13 @@ index 0315cc0911cd..d6ed82dc93ca 100644 - else if (codec_hevc_use_downsample(pixfmt_cap, is_10bit)) - buf_y_paddr = comm->fbc_buffer_paddr[idx]; - else -- buf_y_paddr = vb2_dma_contig_plane_dma_addr(vb, 0); + if (codec_hevc_use_downsample(pixfmt_cap, is_10bit)) { + if (codec_hevc_use_mmu(revision, pixfmt_cap, is_10bit)) + buf_y_paddr = comm->mmu_header_paddr[idx]; + else + buf_y_paddr = comm->fbc_buffer_paddr[idx]; + } else { -+ buf_y_paddr = vb2_dma_contig_plane_dma_addr(vb, 0); + buf_y_paddr = vb2_dma_contig_plane_dma_addr(vb, 0); + } amvdec_write_dos(core, HEVCD_MPP_ANC2AXI_TBL_DATA, @@ -174,11 +186,11 @@ index 0315cc0911cd..d6ed82dc93ca 100644 int i; + use_mmu = codec_hevc_use_mmu(sess->core->platform->revision, -+ sess->pixfmt_cap, -+ sess->bitdepth == 10 ? 1 : 0); ++ sess->pixfmt_cap, ++ sess->bitdepth == 10 ? 1 : 0); + + am21_size = amvdec_amfbc_size(sess->width, sess->height, -+ sess->bitdepth == 10 ? 1 : 0, use_mmu); ++ sess->bitdepth == 10 ? 1 : 0, use_mmu); + for (i = 0; i < MAX_REF_PIC_NUM; ++i) { - if (comm->mmu_header_vaddr[i]) { @@ -194,12 +206,12 @@ index 0315cc0911cd..d6ed82dc93ca 100644 } } -@@ -213,33 +233,49 @@ void codec_hevc_free_mmu_headers(struct amvdec_session *sess, +@@ -213,33 +233,50 @@ void codec_hevc_free_mmu_headers(struct amvdec_session *sess, comm->mmu_map_paddr); comm->mmu_map_vaddr = NULL; } + -+ codec_hevc_free_mmu_headers(sess, comm); ++ codec_hevc_free_mmu_headers(sess, comm); } -EXPORT_SYMBOL_GPL(codec_hevc_free_mmu_headers); +EXPORT_SYMBOL_GPL(codec_hevc_free_fbc_buffers); @@ -222,16 +234,17 @@ index 0315cc0911cd..d6ed82dc93ca 100644 - if (!comm->mmu_map_vaddr) - return -ENOMEM; + use_mmu = codec_hevc_use_mmu(revision, sess->pixfmt_cap, -+ is_10bit); ++ is_10bit); + + am21_size = amvdec_amfbc_size(sess->width, sess->height, -+ is_10bit, use_mmu); ++ is_10bit, use_mmu); v4l2_m2m_for_each_dst_buf(sess->m2m_ctx, buf) { u32 idx = buf->vb.vb2_buf.index; dma_addr_t paddr; - void *vaddr = dma_alloc_coherent(dev, MMU_COMPRESS_HEADER_SIZE, - &paddr, GFP_KERNEL); ++ + void *vaddr = dma_alloc_coherent(dev, am21_size, &paddr, + GFP_KERNEL); if (!vaddr) { @@ -256,11 +269,11 @@ index 0315cc0911cd..d6ed82dc93ca 100644 } return 0; -@@ -250,21 +286,24 @@ int codec_hevc_setup_buffers(struct amvdec_session *sess, +@@ -250,21 +287,24 @@ int codec_hevc_setup_buffers(struct amvdec_session *sess, int is_10bit) { struct amvdec_core *core = sess->core; -+ struct device *dev = core->dev; ++ struct device *dev = core->dev; int ret; - if (codec_hevc_use_downsample(sess->pixfmt_cap, is_10bit)) { @@ -281,17 +294,16 @@ index 0315cc0911cd..d6ed82dc93ca 100644 - ret = codec_hevc_alloc_mmu_headers(sess, comm); - if (ret) { - codec_hevc_free_fbc_buffers(sess, comm); -- return ret; -- } + sess->pixfmt_cap, is_10bit) || + codec_hevc_use_downsample(sess->pixfmt_cap, is_10bit)) { + ret = codec_hevc_alloc_fbc_buffers(sess, comm); + if (ret) -+ return ret; + return ret; +- } } if (core->platform->revision == VDEC_REVISION_GXBB) -@@ -278,19 +317,24 @@ EXPORT_SYMBOL_GPL(codec_hevc_setup_buffers); +@@ -278,19 +318,24 @@ EXPORT_SYMBOL_GPL(codec_hevc_setup_buffers); void codec_hevc_fill_mmu_map(struct amvdec_session *sess, struct codec_hevc_common *comm, @@ -313,10 +325,10 @@ index 0315cc0911cd..d6ed82dc93ca 100644 - else - first_page = vb2_dma_contig_plane_dma_addr(vb, 0) >> PAGE_SHIFT; + use_mmu = codec_hevc_use_mmu(sess->core->platform->revision, -+ sess->pixfmt_cap, is_10bit); ++ sess->pixfmt_cap, is_10bit); + + size = amvdec_amfbc_size(sess->width, sess->height, is_10bit, -+ use_mmu); ++ use_mmu); + nb_pages = size / PAGE_SIZE; + first_page = comm->fbc_buffer_paddr[vb->index] >> PAGE_SHIFT; @@ -337,7 +349,7 @@ index cf072b8a9da2..13f9f1d90a94 100644 #endif diff --git a/drivers/staging/media/meson/vdec/codec_vp9.c b/drivers/staging/media/meson/vdec/codec_vp9.c -index 897f5d7a6aad..bfc312ec2a56 100644 +index 897f5d7a6aad..33b758cded77 100644 --- a/drivers/staging/media/meson/vdec/codec_vp9.c +++ b/drivers/staging/media/meson/vdec/codec_vp9.c @@ -458,12 +458,6 @@ struct codec_vp9 { @@ -360,20 +372,20 @@ index 897f5d7a6aad..bfc312ec2a56 100644 - if (codec_hevc_use_fbc(sess->pixfmt_cap, vp9->is_10bit)) { - val = amvdec_read_dos(core, HEVC_SAO_CTRL5) & ~0xff0200; - amvdec_write_dos(core, HEVC_SAO_CTRL5, val); -- amvdec_write_dos(core, HEVC_CM_BODY_START_ADDR, buf_y_paddr); -- } + if (codec_hevc_use_fbc(sess->pixfmt_cap, vp9->is_10bit)) -+ amvdec_write_dos(core, HEVC_CM_BODY_START_ADDR, buf_y_paddr); + amvdec_write_dos(core, HEVC_CM_BODY_START_ADDR, buf_y_paddr); +- } if (sess->pixfmt_cap == V4L2_PIX_FMT_NV12M) { buf_y_paddr = -@@ -920,8 +911,12 @@ static void codec_vp9_set_sao(struct amvdec_session *sess, +@@ -920,8 +911,13 @@ static void codec_vp9_set_sao(struct amvdec_session *sess, if (codec_hevc_use_mmu(core->platform->revision, sess->pixfmt_cap, vp9->is_10bit)) { - amvdec_write_dos(core, HEVC_CM_HEADER_START_ADDR, - vp9->common.mmu_header_paddr[vb->index]); + dma_addr_t header_adr; ++ + if (codec_hevc_use_downsample(sess->pixfmt_cap, vp9->is_10bit)) + header_adr = vp9->common.mmu_header_paddr[vb->index]; + else @@ -382,7 +394,7 @@ index 897f5d7a6aad..bfc312ec2a56 100644 /* use HEVC_CM_HEADER_START_ADDR */ amvdec_write_dos_bits(core, HEVC_SAO_CTRL5, BIT(10)); } -@@ -1148,9 +1143,13 @@ static void codec_vp9_set_mc(struct amvdec_session *sess, +@@ -1148,9 +1144,13 @@ static void codec_vp9_set_mc(struct amvdec_session *sess, { struct amvdec_core *core = sess->core; u32 scale = 0; @@ -391,12 +403,12 @@ index 897f5d7a6aad..bfc312ec2a56 100644 int i; + use_mmu = codec_hevc_use_mmu(core->platform->revision, -+ sess->pixfmt_cap, vp9->is_10bit); ++ sess->pixfmt_cap, vp9->is_10bit); + amvdec_write_dos(core, HEVCD_MPP_ANC_CANVAS_ACCCONFIG_ADDR, 1); codec_vp9_set_refs(sess, vp9); amvdec_write_dos(core, HEVCD_MPP_ANC_CANVAS_ACCCONFIG_ADDR, -@@ -1166,8 +1165,9 @@ static void codec_vp9_set_mc(struct amvdec_session *sess, +@@ -1166,8 +1166,9 @@ static void codec_vp9_set_mc(struct amvdec_session *sess, vp9->frame_refs[i]->height != vp9->height) scale = 1; @@ -408,7 +420,7 @@ index 897f5d7a6aad..bfc312ec2a56 100644 amvdec_write_dos(core, VP9D_MPP_REFINFO_DATA, vp9->frame_refs[i]->width); -@@ -1283,7 +1283,8 @@ static void codec_vp9_process_frame(struct amvdec_session *sess) +@@ -1283,7 +1284,8 @@ static void codec_vp9_process_frame(struct amvdec_session *sess) if (codec_hevc_use_mmu(core->platform->revision, sess->pixfmt_cap, vp9->is_10bit)) codec_hevc_fill_mmu_map(sess, &vp9->common, @@ -418,7 +430,7 @@ index 897f5d7a6aad..bfc312ec2a56 100644 intra_only = param->p.show_frame ? 0 : param->p.intra_only; -@@ -2132,7 +2133,8 @@ static irqreturn_t codec_vp9_threaded_isr(struct amvdec_session *sess) +@@ -2132,7 +2134,8 @@ static irqreturn_t codec_vp9_threaded_isr(struct amvdec_session *sess) codec_vp9_fetch_rpm(sess); if (codec_vp9_process_rpm(vp9)) { @@ -429,10 +441,10 @@ index 897f5d7a6aad..bfc312ec2a56 100644 /* No frame is actually processed */ vp9->cur_frame = NULL; diff --git a/drivers/staging/media/meson/vdec/esparser.c b/drivers/staging/media/meson/vdec/esparser.c -index 7b15fc54efe4..5d2273d53d02 100644 +index 1904d58875ad..3cd29ab4f979 100644 --- a/drivers/staging/media/meson/vdec/esparser.c +++ b/drivers/staging/media/meson/vdec/esparser.c -@@ -319,6 +319,7 @@ esparser_queue(struct amvdec_session *sess, struct vb2_v4l2_buffer *vbuf) +@@ -320,6 +320,7 @@ esparser_queue(struct amvdec_session *sess, struct vb2_v4l2_buffer *vbuf) if (esparser_vififo_get_free_space(sess) < payload_size || atomic_read(&sess->esparser_queued_bufs) >= num_dst_bufs) return -EAGAIN; @@ -453,7 +465,7 @@ index 0906b8fb5cc6..a48170fe4cff 100644 u8 quantization; u8 xfer_func; diff --git a/drivers/staging/media/meson/vdec/vdec_helpers.c b/drivers/staging/media/meson/vdec/vdec_helpers.c -index 7d2a75653250..d684057509bf 100644 +index 7d2a75653250..fef76142f0c5 100644 --- a/drivers/staging/media/meson/vdec/vdec_helpers.c +++ b/drivers/staging/media/meson/vdec/vdec_helpers.c @@ -50,32 +50,40 @@ void amvdec_write_parser(struct amvdec_core *core, u32 reg, u32 val) @@ -533,11 +545,10 @@ index 7d2a75653250..d684057509bf 100644 dpb_size <= sess->num_dst_bufs) { sess->fmt_out->codec_ops->resume(sess); - return; -- } + } else { + sess->status = STATUS_NEEDS_RESUME; + sess->changed_format = 0; -+ } + } - sess->changed_format = 0; sess->width = width; diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0044-WIP-drivers-meson-vdec-add-HEVC-decode-codec.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0052-FROMLIST-v2-media-meson-vdec-add-HEVC-decode-codec.patch similarity index 93% rename from projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0044-WIP-drivers-meson-vdec-add-HEVC-decode-codec.patch rename to projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0052-FROMLIST-v2-media-meson-vdec-add-HEVC-decode-codec.patch index 469abf3e13..6b466fbd21 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0044-WIP-drivers-meson-vdec-add-HEVC-decode-codec.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0052-FROMLIST-v2-media-meson-vdec-add-HEVC-decode-codec.patch @@ -1,16 +1,23 @@ -From 9324cfd9b3774304892f3635a58bba14b12ded95 Mon Sep 17 00:00:00 2001 -From: benjamin545 -Date: Thu, 15 Jul 2021 17:08:42 -0400 -Subject: [PATCH 44/92] WIP: drivers: meson: vdec: add HEVC decode codec +From 7054d1b911a184c16dc6fec862e7c3f46fe2c601 Mon Sep 17 00:00:00 2001 +From: Maxime Jourdan +Date: Mon, 23 Jan 2023 11:07:04 +0000 +Subject: [PATCH 052/111] 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. + +Signed-off-by: Maxime Jourdan +[codec alignment to upstream changes and frame handling improvements] +Signed-off-by: Benjamin Roszak --- drivers/staging/media/meson/vdec/Makefile | 2 +- - drivers/staging/media/meson/vdec/codec_hevc.c | 1440 +++++++++++++++++ + drivers/staging/media/meson/vdec/codec_hevc.c | 1462 +++++++++++++++++ drivers/staging/media/meson/vdec/codec_hevc.h | 13 + - drivers/staging/media/meson/vdec/esparser.c | 2 +- + drivers/staging/media/meson/vdec/esparser.c | 3 +- drivers/staging/media/meson/vdec/hevc_regs.h | 1 + - .../staging/media/meson/vdec/vdec_platform.c | 49 + - 6 files changed, 1505 insertions(+), 2 deletions(-) + .../staging/media/meson/vdec/vdec_platform.c | 37 + + 6 files changed, 1516 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 @@ -28,10 +35,10 @@ index 6e726af84ac9..16f848e456b9 100644 obj-$(CONFIG_VIDEO_MESON_VDEC) += meson-vdec.o diff --git a/drivers/staging/media/meson/vdec/codec_hevc.c b/drivers/staging/media/meson/vdec/codec_hevc.c new file mode 100644 -index 000000000000..3a6fd04a2d33 +index 000000000000..fcaaa1ad50b8 --- /dev/null +++ b/drivers/staging/media/meson/vdec/codec_hevc.c -@@ -0,0 +1,1440 @@ +@@ -0,0 +1,1462 @@ +// SPDX-License-Identifier: GPL-2.0+ +/* + * Copyright (C) 2018 Maxime Jourdan @@ -257,6 +264,7 @@ index 000000000000..3a6fd04a2d33 + u32 poc; + + int referenced; ++ int show; + u32 num_reorder_pic; + + u32 cur_slice_idx; @@ -268,6 +276,7 @@ index 000000000000..3a6fd04a2d33 +}; + +struct codec_hevc { ++ /* Protect the data structure */ + struct mutex lock; + + /* Common part of the HEVC decoder */ @@ -383,6 +392,7 @@ index 000000000000..3a6fd04a2d33 + + for (i = 0; i < num_ref_idx_l0_active; i++) { + int cidx; ++ + if (params->p.modification_flag & 0x1) + cidx = mod_list[i]; + else @@ -399,6 +409,7 @@ index 000000000000..3a6fd04a2d33 + if (params->p.modification_flag & 0x2) { + for (i = 0; i < num_ref_idx_l1_active; i++) { + int cidx; ++ + if (params->p.modification_flag & 0x1) + cidx = mod_list[num_ref_idx_l0_active + i]; + else @@ -411,6 +422,7 @@ index 000000000000..3a6fd04a2d33 + } else { + for (i = 0; i < num_ref_idx_l1_active; i++) { + int cidx = i % total_num; ++ + frame->ref_poc_list[1][frame->cur_slice_idx][i] = + cidx >= num_pos ? ref_picset0[cidx - num_pos] : + ref_picset1[cidx]; @@ -475,6 +487,7 @@ index 000000000000..3a6fd04a2d33 + + for (i = 0; i < MAX_REF_ACTIVE; i++) { + int delt; ++ + if (param->p.CUR_RPS[i] & 0x8000) + break; + @@ -482,9 +495,11 @@ index 000000000000..3a6fd04a2d33 + ((1 << (RPS_USED_BIT - 1)) - 1); + if (param->p.CUR_RPS[i] & (1 << (RPS_USED_BIT - 1))) { + poc_tmp = curr_poc - -+ ((1 << (RPS_USED_BIT - 1)) - delt); -+ } else ++ ((1 << (RPS_USED_BIT - 1)) - delt); ++ } else { + poc_tmp = curr_poc + delt; ++ } ++ + if (poc_tmp == frame->poc) { + is_referenced = 1; + break; @@ -496,13 +511,13 @@ index 000000000000..3a6fd04a2d33 +} + +static struct hevc_frame * -+codec_hevc_get_lowest_poc_frame(struct codec_hevc *hevc) ++codec_hevc_get_next_ready_frame(struct codec_hevc *hevc) +{ + struct hevc_frame *tmp, *ret = NULL; + u32 poc = INT_MAX; + + list_for_each_entry(tmp, &hevc->ref_frames_list, list) { -+ if (tmp->poc < poc) { ++ if ((tmp->poc < poc) && tmp->show) { + ret = tmp; + poc = tmp->poc; + } @@ -512,27 +527,34 @@ index 000000000000..3a6fd04a2d33 +} + +/* Try to output as many frames as possible */ -+static void codec_hevc_output_frames(struct amvdec_session *sess) ++static void codec_hevc_show_frames(struct amvdec_session *sess) +{ -+ struct hevc_frame *tmp; ++ struct hevc_frame *tmp, *n; + struct codec_hevc *hevc = sess->priv; + -+ while ((tmp = codec_hevc_get_lowest_poc_frame(hevc))) { ++ while ((tmp = codec_hevc_get_next_ready_frame(hevc))) { + if (hevc->curr_poc && -+ (tmp->referenced || -+ tmp->num_reorder_pic >= hevc->frames_num)) ++ (hevc->frames_num <= tmp->num_reorder_pic)) + break; + + 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); -+ list_del(&tmp->list); -+ kfree(tmp); ++ ++ tmp->show = 0; + hevc->frames_num--; + } -+} + ++ /* clean output frame buffer */ ++ list_for_each_entry_safe(tmp, n, &hevc->ref_frames_list, list) { ++ if (tmp->referenced || tmp->show) ++ continue; ++ ++ list_del(&tmp->list); ++ kfree(tmp); ++ } ++} + +static int +codec_hevc_setup_workspace(struct amvdec_session *sess, @@ -663,7 +685,6 @@ index 000000000000..3a6fd04a2d33 + hevc->aux_vaddr = dma_alloc_coherent(core->dev, SIZE_AUX, + &hevc->aux_paddr, GFP_KERNEL); + if (!hevc->aux_vaddr) { -+ dev_err(core->dev, "Failed to request HEVC AUX\n"); + ret = -ENOMEM; + goto free_hevc; + } @@ -684,14 +705,17 @@ index 000000000000..3a6fd04a2d33 +static void codec_hevc_flush_output(struct amvdec_session *sess) +{ + struct codec_hevc *hevc = sess->priv; -+ struct hevc_frame *tmp; ++ struct hevc_frame *tmp, *n; + -+ while (!list_empty(&hevc->ref_frames_list)) { -+ tmp = codec_hevc_get_lowest_poc_frame(hevc); ++ while ((tmp = codec_hevc_get_next_ready_frame(hevc))) { + amvdec_dst_buf_done(sess, tmp->vbuf, V4L2_FIELD_NONE); ++ tmp->show = 0; ++ hevc->frames_num--; ++ } ++ ++ list_for_each_entry_safe(tmp, n, &hevc->ref_frames_list, list) { + list_del(&tmp->list); + kfree(tmp); -+ hevc->frames_num--; + } +} + @@ -753,6 +777,7 @@ index 000000000000..3a6fd04a2d33 + + new_frame->vbuf = vbuf; + new_frame->referenced = 1; ++ new_frame->show = 1; + new_frame->poc = hevc->curr_poc; + new_frame->cur_slice_type = params->p.slice_type; + new_frame->num_reorder_pic = params->p.sps_num_reorder_pics_0; @@ -820,6 +845,7 @@ index 000000000000..3a6fd04a2d33 + if (codec_hevc_use_mmu(core->platform->revision, sess->pixfmt_cap, + hevc->is_10bit)) { + dma_addr_t header_adr = vb2_dma_contig_plane_dma_addr(vb, 0); ++ + if (codec_hevc_use_downsample(sess->pixfmt_cap, hevc->is_10bit)) + header_adr = hevc->common.mmu_header_paddr[vb->index]; + amvdec_write_dos(core, HEVC_CM_HEADER_START_ADDR, header_adr); @@ -898,8 +924,8 @@ index 000000000000..3a6fd04a2d33 + + slice_deblocking_filter_disabled_flag = (misc_flag0 >> + SLICE_DEBLOCKING_FILTER_DISABLED_FLAG_BIT) & 0x1; -+ if ((misc_flag0 & (1 << DEBLOCKING_FILTER_OVERRIDE_ENABLED_FLAG_BIT)) -+ && (misc_flag0 & (1 << DEBLOCKING_FILTER_OVERRIDE_FLAG_BIT))) { ++ if ((misc_flag0 & (1 << DEBLOCKING_FILTER_OVERRIDE_ENABLED_FLAG_BIT)) && ++ (misc_flag0 & (1 << DEBLOCKING_FILTER_OVERRIDE_FLAG_BIT))) { + val |= slice_deblocking_filter_disabled_flag << 2; + + if (!slice_deblocking_filter_disabled_flag) { @@ -912,15 +938,15 @@ index 000000000000..3a6fd04a2d33 + PPS_DEBLOCKING_FILTER_DISABLED_FLAG_BIT) & 0x1) << 2; + + if (((misc_flag0 >> PPS_DEBLOCKING_FILTER_DISABLED_FLAG_BIT) & -+ 0x1) == 0) { ++ 0x1) == 0) { + val |= (param->p.pps_beta_offset_div2 & 0xf) << 3; + val |= (param->p.pps_tc_offset_div2 & 0xf) << 7; + } + } -+ if ((misc_flag0 & (1 << PPS_LOOP_FILTER_ACROSS_SLICES_ENABLED_FLAG_BIT)) -+ && ((misc_flag0 & (1 << SLICE_SAO_LUMA_FLAG_BIT)) -+ || (misc_flag0 & (1 << SLICE_SAO_CHROMA_FLAG_BIT)) -+ || (!slice_deblocking_filter_disabled_flag))) { ++ if ((misc_flag0 & (1 << PPS_LOOP_FILTER_ACROSS_SLICES_ENABLED_FLAG_BIT)) && ++ ((misc_flag0 & (1 << SLICE_SAO_LUMA_FLAG_BIT)) || ++ (misc_flag0 & (1 << SLICE_SAO_CHROMA_FLAG_BIT)) || ++ (!slice_deblocking_filter_disabled_flag))) { + val |= + ((misc_flag0 >> + SLICE_LOOP_FILTER_ACROSS_SLICES_ENABLED_FLAG_BIT) @@ -1014,9 +1040,8 @@ index 000000000000..3a6fd04a2d33 + lcu_size_log2 == 5 ? 0x80 : 0x20; + dma_addr_t col_mv_rd_start_addr, col_mv_rd_ptr, col_mv_rd_end_addr; + dma_addr_t mpred_mv_wr_ptr; -+ u32 val; + -+ val = amvdec_read_dos(core, HEVC_MPRED_CURR_LCU); ++ amvdec_read_dos(core, HEVC_MPRED_CURR_LCU); + + col_mv_rd_start_addr = codec_hevc_get_frame_mv_paddr(hevc, col_frame); + mpred_mv_wr_ptr = codec_hevc_get_frame_mv_paddr(hevc, frame) + @@ -1144,7 +1169,7 @@ index 000000000000..3a6fd04a2d33 +} + +static void codec_hevc_set_ref_list(struct amvdec_session *sess, -+ u32 ref_num, u32 *ref_poc_list) ++ u32 ref_num, u32 *ref_poc_list) +{ + struct codec_hevc *hevc = sess->priv; + struct hevc_frame *ref_frame; @@ -1158,12 +1183,13 @@ index 000000000000..3a6fd04a2d33 + + if (!ref_frame) { + dev_warn(core->dev, "Couldn't find ref. frame %u\n", -+ ref_poc_list[i]); ++ ref_poc_list[i]); + continue; + } + + if (codec_hevc_use_fbc(sess->pixfmt_cap, hevc->is_10bit)) { -+ buf_id_y = buf_id_uv = ref_frame->vbuf->vb2_buf.index; ++ buf_id_y = ref_frame->vbuf->vb2_buf.index; ++ buf_id_uv = buf_id_y; + } else { + buf_id_y = ref_frame->vbuf->vb2_buf.index * 2; + buf_id_uv = buf_id_y + 1; @@ -1186,7 +1212,7 @@ index 000000000000..3a6fd04a2d33 + + amvdec_write_dos(core, HEVCD_MPP_ANC_CANVAS_ACCCONFIG_ADDR, 1); + codec_hevc_set_ref_list(sess, frame->ref_num[0], -+ frame->ref_poc_list[0][frame->cur_slice_idx]); ++ frame->ref_poc_list[0][frame->cur_slice_idx]); + + if (frame->cur_slice_type == P_SLICE) + return; @@ -1194,7 +1220,7 @@ index 000000000000..3a6fd04a2d33 + amvdec_write_dos(core, HEVCD_MPP_ANC_CANVAS_ACCCONFIG_ADDR, + BIT(12) | BIT(0)); + codec_hevc_set_ref_list(sess, frame->ref_num[1], -+ frame->ref_poc_list[1][frame->cur_slice_idx]); ++ frame->ref_poc_list[1][frame->cur_slice_idx]); +} + +static void codec_hevc_update_col_frame(struct codec_hevc *hevc) @@ -1301,7 +1327,7 @@ index 000000000000..3a6fd04a2d33 + /* First slice: new frame */ + if (slice_segment_address == 0) { + codec_hevc_update_referenced(hevc); -+ codec_hevc_output_frames(sess); ++ codec_hevc_show_frames(sess); + + hevc->cur_frame = codec_hevc_prepare_new_frame(sess); + if (!hevc->cur_frame) @@ -1366,7 +1392,8 @@ index 000000000000..3a6fd04a2d33 + + switch (param->p.chroma_format_idc) { + case 1: -+ sub_height = 2; /* fallthrough */ ++ sub_height = 2; ++ fallthrough; + case 2: + sub_width = 2; + break; @@ -1404,9 +1431,11 @@ index 000000000000..3a6fd04a2d33 + u16 *rpm_vaddr = hevc->workspace_vaddr + RPM_OFFSET; + int i, j; + -+ for (i = 0; i < RPM_SIZE; i += 4) ++ for (i = 0; i < RPM_SIZE; i += 4) { + for (j = 0; j < 4; j++) -+ hevc->rpm_param.l.data[i + j] = rpm_vaddr[i + 3 - j]; ++ hevc->rpm_param.l.data[i + j] = ++ rpm_vaddr[i + 3 - j]; ++ } +} + +static void codec_hevc_resume(struct amvdec_session *sess) @@ -1492,15 +1521,16 @@ index 000000000000..f2f9b2464df1 + +#endif diff --git a/drivers/staging/media/meson/vdec/esparser.c b/drivers/staging/media/meson/vdec/esparser.c -index 5d2273d53d02..df5956c6141d 100644 +index 3cd29ab4f979..6988348ce714 100644 --- a/drivers/staging/media/meson/vdec/esparser.c +++ b/drivers/staging/media/meson/vdec/esparser.c -@@ -309,7 +309,7 @@ esparser_queue(struct amvdec_session *sess, struct vb2_v4l2_buffer *vbuf) +@@ -310,7 +310,8 @@ esparser_queue(struct amvdec_session *sess, struct vb2_v4l2_buffer *vbuf) * they could pause when there is no capture buffer available and * resume on this notification. */ - if (sess->fmt_out->pixfmt == V4L2_PIX_FMT_VP9) { -+ if (sess->fmt_out->pixfmt == V4L2_PIX_FMT_VP9 || sess->fmt_out->pixfmt ==V4L2_PIX_FMT_HEVC) { ++ if (sess->fmt_out->pixfmt == V4L2_PIX_FMT_VP9 || ++ sess->fmt_out->pixfmt == V4L2_PIX_FMT_HEVC) { if (codec_ops->num_pending_bufs) num_dst_bufs = codec_ops->num_pending_bufs(sess); @@ -1517,10 +1547,10 @@ 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 88c9d72e1c83..8592cb3aaea9 100644 +index 88c9d72e1c83..ea2aa0e8cf0b 100644 --- a/drivers/staging/media/meson/vdec/vdec_platform.c +++ b/drivers/staging/media/meson/vdec/vdec_platform.c -@@ -11,6 +11,7 @@ +@@ -11,10 +11,23 @@ #include "vdec_hevc.h" #include "codec_mpeg12.h" #include "codec_h264.h" @@ -1528,11 +1558,7 @@ index 88c9d72e1c83..8592cb3aaea9 100644 #include "codec_vp9.h" static const struct amvdec_format vdec_formats_gxbb[] = { -@@ -64,6 +65,18 @@ static const struct amvdec_format vdec_formats_gxl[] = { - .pixfmts_cap = { V4L2_PIX_FMT_NV12M, 0 }, - .flags = V4L2_FMT_FLAG_COMPRESSED | - V4L2_FMT_FLAG_DYN_RESOLUTION, -+ }, { + { + .pixfmt = V4L2_PIX_FMT_HEVC, + .min_buffers = 4, + .max_buffers = 24, @@ -1544,48 +1570,11 @@ index 88c9d72e1c83..8592cb3aaea9 100644 + .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, -@@ -114,6 +127,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, + }, { -+ .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, -@@ -165,6 +190,18 @@ static const struct amvdec_format vdec_formats_g12a[] = { - .flags = V4L2_FMT_FLAG_COMPRESSED | - V4L2_FMT_FLAG_DYN_RESOLUTION, - }, { -+ .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/g12a_hevc_mmu.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, -@@ -214,6 +251,18 @@ static const struct amvdec_format vdec_formats_sm1[] = { +@@ -64,6 +77,18 @@ static const struct amvdec_format vdec_formats_gxl[] = { .pixfmts_cap = { V4L2_PIX_FMT_NV12M, 0 }, .flags = V4L2_FMT_FLAG_COMPRESSED | V4L2_FMT_FLAG_DYN_RESOLUTION, @@ -1597,7 +1586,26 @@ index 88c9d72e1c83..8592cb3aaea9 100644 + .max_height = 2160, + .vdec_ops = &vdec_hevc_ops, + .codec_ops = &codec_hevc_ops, -+ .firmware_path = "meson/vdec/sm1_hevc_mmu.bin", ++ .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, +@@ -114,6 +139,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, ++ }, { ++ .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, diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0052-WIP-arm64-dts-meson-add-support-for-the-NPU-on-Radxa.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0052-WIP-arm64-dts-meson-add-support-for-the-NPU-on-Radxa.patch deleted file mode 100644 index 2438b1b5f6..0000000000 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0052-WIP-arm64-dts-meson-add-support-for-the-NPU-on-Radxa.patch +++ /dev/null @@ -1,35 +0,0 @@ -From 7c9aedb198c2dc03679ca8bd3908790f1dbdffb5 Mon Sep 17 00:00:00 2001 -From: Christian Hewitt -Date: Wed, 30 Nov 2022 12:07:55 +0000 -Subject: [PATCH 52/92] WIP: arm64: dts: meson: add support for the NPU on - Radxa Zero2 - -Radxa Zero2 has an NPU on the A311D SoC, so lets enable it. - -NPU support depends upon [0]. - -[0] https://patchwork.kernel.org/project/linux-amlogic/cover/20221129085047.49813-1-tomeu.vizoso@collabora.com/ - -Signed-off-by: Christian Hewitt ---- - arch/arm64/boot/dts/amlogic/meson-g12b-radxa-zero2.dts | 4 ++++ - 1 file changed, 4 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 fefa6f2b7abf..7432c7f9255b 100644 ---- a/arch/arm64/boot/dts/amlogic/meson-g12b-radxa-zero2.dts -+++ b/arch/arm64/boot/dts/amlogic/meson-g12b-radxa-zero2.dts -@@ -366,6 +366,10 @@ &ir { - pinctrl-names = "default"; - }; - -+&npu { -+ status = "okay"; -+}; -+ - &pwm_ab { - pinctrl-0 = <&pwm_a_e_pins>; - pinctrl-names = "default"; --- -2.34.1 - diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0053-FROMLIST-v2-dt-bindings-media-rc-add-rc-dreambox-bin.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0053-FROMLIST-v2-dt-bindings-media-rc-add-rc-dreambox-bin.patch new file mode 100644 index 0000000000..7daef64397 --- /dev/null +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0053-FROMLIST-v2-dt-bindings-media-rc-add-rc-dreambox-bin.patch @@ -0,0 +1,28 @@ +From bdf45a337371af5b1a10fae377997fce17100356 Mon Sep 17 00:00:00 2001 +From: Christian Hewitt +Date: Wed, 1 Feb 2023 08:53:39 +0000 +Subject: [PATCH 053/111] FROMLIST(v2): dt-bindings: media: rc: add rc-dreambox + binding + +Add a binding for the rc-dreambox remote keymap + +Signed-off-by: Christian Hewitt +--- + Documentation/devicetree/bindings/media/rc.yaml | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/Documentation/devicetree/bindings/media/rc.yaml b/Documentation/devicetree/bindings/media/rc.yaml +index e732b7f3a635..e7d2ae5a7eb9 100644 +--- a/Documentation/devicetree/bindings/media/rc.yaml ++++ b/Documentation/devicetree/bindings/media/rc.yaml +@@ -55,6 +55,7 @@ properties: + - rc-dm1105-nec + - rc-dntv-live-dvb-t + - rc-dntv-live-dvbt-pro ++ - rc-dreambox + - rc-dtt200u + - rc-dvbsky + - rc-dvico-mce +-- +2.34.1 + diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0085-WIP-media-rc-add-common-keymap-for-Dreambox-RC10-and.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0054-FROMLIST-v2-media-rc-add-common-keymap-for-Dreambox-.patch similarity index 68% rename from projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0085-WIP-media-rc-add-common-keymap-for-Dreambox-RC10-and.patch rename to projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0054-FROMLIST-v2-media-rc-add-common-keymap-for-Dreambox-.patch index f437c60c36..7facf588e1 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0085-WIP-media-rc-add-common-keymap-for-Dreambox-RC10-and.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0054-FROMLIST-v2-media-rc-add-common-keymap-for-Dreambox-.patch @@ -1,41 +1,39 @@ -From 6d33dfefde64db49246af2d0a7cd9c87accfdf65 Mon Sep 17 00:00:00 2001 +From b4177ebf1b5659010688563561d678941183a53a Mon Sep 17 00:00:00 2001 From: Emanuel Strobel Date: Mon, 5 Apr 2021 17:57:57 +0000 -Subject: [PATCH 85/92] WIP: media: rc: add common keymap for Dreambox RC10 and - RC20/RC-BT remotes +Subject: [PATCH 054/111] FROMLIST(v2): media: rc: add common keymap for + Dreambox RC10/RC0 and RC20/RC-BT remotes -Add a common keymap and bindings for the RC10 and RC20/RC-BT remotes -used with the Dreambox One and Dreambox Two DVB-S/T boxes. The maps -are combined since the IR codes do not conflict and both boxes have -been sold with both remote designs. +Add a common keymap for the RC10/RC0 and RC20/RC-BT remotes used with +the Dreambox One and Dreambox Two DVB-S/T boxes. The maps are combined +since the IR codes do not conflict and both boxes have shipped with +both remote designs over time. + +Both remote types can be programmed to control TVs, so include non-IR +keys that are used to switch-to or toggle the remote mode: + +- DREAM in RC10/RC0 switches to (Dreambox) STB control mode +- TV in RC10/RC0 switches to TV control mode +- MODE in RC20/RC-BT toggles between STB/TV/BT control modes + +In the RC20 keymap the Android MIC (voice search) key maps to KEY_HELP +and EXIT is mapped to KEY_ESC to replicate the go-backwards navigation +behaviour in the Android vendor OS that ships on Dreambox devices. Signed-off-by: Emanuel Strobel Signed-off-by: Christian Hewitt --- - .../devicetree/bindings/media/rc.yaml | 1 + - drivers/media/rc/keymaps/Makefile | 1 + - drivers/media/rc/keymaps/rc-dreambox.c | 147 ++++++++++++++++++ - include/media/rc-map.h | 1 + - 4 files changed, 150 insertions(+) + drivers/media/rc/keymaps/Makefile | 1 + + drivers/media/rc/keymaps/rc-dreambox.c | 151 +++++++++++++++++++++++++ + include/media/rc-map.h | 1 + + 3 files changed, 153 insertions(+) create mode 100644 drivers/media/rc/keymaps/rc-dreambox.c -diff --git a/Documentation/devicetree/bindings/media/rc.yaml b/Documentation/devicetree/bindings/media/rc.yaml -index d4ef523cb3d5..f390a5d2c82d 100644 ---- a/Documentation/devicetree/bindings/media/rc.yaml -+++ b/Documentation/devicetree/bindings/media/rc.yaml -@@ -56,6 +56,7 @@ properties: - - rc-dm1105-nec - - rc-dntv-live-dvb-t - - rc-dntv-live-dvbt-pro -+ - rc-dreambox - - rc-dtt200u - - rc-dvbsky - - rc-dvico-mce diff --git a/drivers/media/rc/keymaps/Makefile b/drivers/media/rc/keymaps/Makefile -index 77d8b5a69815..03bc9a8d355e 100644 +index f513ff5caf4e..6931c89fca99 100644 --- a/drivers/media/rc/keymaps/Makefile +++ b/drivers/media/rc/keymaps/Makefile -@@ -38,6 +38,7 @@ obj-$(CONFIG_RC_MAP) += \ +@@ -37,6 +37,7 @@ obj-$(CONFIG_RC_MAP) += \ rc-dm1105-nec.o \ rc-dntv-live-dvb-t.o \ rc-dntv-live-dvbt-pro.o \ @@ -45,92 +43,49 @@ index 77d8b5a69815..03bc9a8d355e 100644 rc-dvico-mce.o \ diff --git a/drivers/media/rc/keymaps/rc-dreambox.c b/drivers/media/rc/keymaps/rc-dreambox.c new file mode 100644 -index 000000000000..0ccbed367ea3 +index 000000000000..dea024fa3a22 --- /dev/null +++ b/drivers/media/rc/keymaps/rc-dreambox.c -@@ -0,0 +1,147 @@ +@@ -0,0 +1,151 @@ +// SPDX-License-Identifier: GPL-2.0+ -+// -+// Copyright (c) 2021 Emanuel Strobel ++/* ++ * Copyright (c) 2021 Emanuel Strobel ++ */ + +#include +#include + -+// -+// Keytable for the Dreabox RC10 and RC20/RC-BT remote controls -+// ++/* ++ * Keytable for Dreambox RC10/RC0 and RC20/RC-BT remote controls ++ * ++ * Keys that are not IR addressable: ++ * ++ * // DREAM switches to STB control mode ++ * // TV switches to TV control mode ++ * // MODE toggles STB/TV/BT control modes ++ * ++ */ + +static struct rc_map_table dreambox[] = { -+ -+ /* Dreambox RC10 remote */ -+ -+ { 0x3401, KEY_POWER }, -+ -+ // DREAM -+ { 0x3426, KEY_HELP }, -+ // TV -+ -+ { 0x3404, KEY_1 }, -+ { 0x3405, KEY_2 }, -+ { 0x3406, KEY_3 }, -+ { 0x3408, KEY_4 }, -+ { 0x3409, KEY_5 }, -+ { 0x340a, KEY_6 }, -+ { 0x340c, KEY_7 }, -+ { 0x340d, KEY_8 }, -+ { 0x340e, KEY_9 }, -+ { 0x340b, KEY_PREVIOUS }, -+ { 0x3410, KEY_0 }, -+ { 0x340f, KEY_NEXT }, -+ -+ { 0x341f, KEY_RED }, -+ { 0x3420, KEY_GREEN }, -+ { 0x3421, KEY_YELLOW }, -+ { 0x3422, KEY_BLUE }, -+ -+ { 0x341b, KEY_INFO }, -+ { 0x341c, KEY_MENU }, -+ { 0x3430, KEY_AUDIO }, -+ { 0x3431, KEY_PVR }, -+ -+ { 0x3414, KEY_LEFT }, -+ { 0x3411, KEY_UP }, -+ { 0x3416, KEY_RIGHT }, -+ { 0x3419, KEY_DOWN }, -+ { 0x3415, KEY_OK }, -+ -+ { 0x3413, KEY_VOLUMEUP }, -+ { 0x3418, KEY_VOLUMEDOWN }, -+ -+ { 0x3412, KEY_ESC }, // EXIT -+ { 0x3407, KEY_MUTE }, -+ -+ { 0x3417, KEY_PAGEUP }, -+ { 0x341a, KEY_PAGEDOWN }, -+ -+ { 0x3432, KEY_PREVIOUSSONG }, -+ { 0x3433, KEY_PLAYPAUSE }, -+ { 0x3434, KEY_STOP }, -+ { 0x3435, KEY_NEXTSONG }, -+ -+ // TV -+ // RADIO -+ { 0x3425, KEY_TEXT }, -+ { 0x3436, KEY_RECORD }, -+ -+ /* Dreambox RC20/RC-BT */ -+ -+ { 0x321a, KEY_MUTE }, -+ // MODE ++ /* Dreambox RC10/RC0/RCU-BT remote */ + { 0x3200, KEY_POWER }, + -+ { 0x3223, KEY_PREVIOUSSONG }, -+ { 0x3224, KEY_PLAYPAUSE }, -+ { 0x3226, KEY_NEXTSONG }, ++ // DREAM ++ { 0x3290, KEY_HELP }, ++ // TV + -+ { 0x322a, KEY_RECORD }, -+ { 0x3225, KEY_STOP }, -+ { 0x3229, KEY_TEXT }, ++ { 0x3201, KEY_1 }, ++ { 0x3202, KEY_2 }, ++ { 0x3203, KEY_3 }, ++ { 0x3204, KEY_4 }, ++ { 0x3205, KEY_5 }, ++ { 0x3206, KEY_6 }, ++ { 0x3207, KEY_7 }, ++ { 0x3208, KEY_8 }, ++ { 0x3209, KEY_9 }, ++ { 0x320a, KEY_PREVIOUS }, ++ { 0x320b, KEY_0 }, ++ { 0x320c, KEY_NEXT }, + + { 0x321f, KEY_RED }, + { 0x3220, KEY_GREEN }, @@ -152,24 +107,71 @@ index 000000000000..0ccbed367ea3 + { 0x321c, KEY_VOLUMEDOWN }, + + { 0x321d, KEY_ESC }, // EXIT -+ { 0x3290, KEY_HELP }, ++ { 0x321a, KEY_MUTE }, + + { 0x321b, KEY_PAGEUP }, + { 0x321e, KEY_PAGEDOWN }, + -+ { 0x3201, KEY_1 }, -+ { 0x3202, KEY_2 }, -+ { 0x3203, KEY_3 }, -+ { 0x3204, KEY_4 }, -+ { 0x3205, KEY_5 }, -+ { 0x3206, KEY_6 }, -+ { 0x3207, KEY_7 }, -+ { 0x3208, KEY_8 }, -+ { 0x3209, KEY_9 }, -+ { 0x320a, KEY_PREVIOUS }, -+ { 0x320b, KEY_0 }, -+ { 0x320c, KEY_NEXT }, ++ { 0x3223, KEY_PREVIOUSSONG }, ++ { 0x3224, KEY_PLAYPAUSE }, ++ { 0x3225, KEY_STOP }, ++ { 0x3226, KEY_NEXTSONG }, + ++ { 0x3227, KEY_TV }, ++ { 0x3228, KEY_RADIO }, ++ { 0x3229, KEY_TEXT }, ++ { 0x322a, KEY_RECORD }, ++ ++ /* Dreambox RC20/RC-BT */ ++ { 0x3407, KEY_MUTE }, ++ // MODE ++ { 0x3401, KEY_POWER }, ++ ++ { 0x3432, KEY_PREVIOUSSONG }, ++ { 0x3433, KEY_PLAYPAUSE }, ++ { 0x3435, KEY_NEXTSONG }, ++ ++ { 0x3436, KEY_RECORD }, ++ { 0x3434, KEY_STOP }, ++ { 0x3425, KEY_TEXT }, ++ ++ { 0x341f, KEY_RED }, ++ { 0x3420, KEY_GREEN }, ++ { 0x3421, KEY_YELLOW }, ++ { 0x3422, KEY_BLUE }, ++ ++ { 0x341b, KEY_INFO }, ++ { 0x341c, KEY_MENU }, ++ { 0x3430, KEY_AUDIO }, ++ { 0x3431, KEY_PVR }, ++ ++ { 0x3414, KEY_LEFT }, ++ { 0x3411, KEY_UP }, ++ { 0x3416, KEY_RIGHT }, ++ { 0x3419, KEY_DOWN }, ++ { 0x3415, KEY_OK }, ++ ++ { 0x3413, KEY_VOLUMEUP }, ++ { 0x3418, KEY_VOLUMEDOWN }, ++ ++ { 0x3412, KEY_ESC }, // EXIT ++ { 0x3426, KEY_HELP }, // MIC ++ ++ { 0x3417, KEY_PAGEUP }, ++ { 0x341a, KEY_PAGEDOWN }, ++ ++ { 0x3404, KEY_1 }, ++ { 0x3405, KEY_2 }, ++ { 0x3406, KEY_3 }, ++ { 0x3408, KEY_4 }, ++ { 0x3409, KEY_5 }, ++ { 0x340a, KEY_6 }, ++ { 0x340c, KEY_7 }, ++ { 0x340d, KEY_8 }, ++ { 0x340e, KEY_9 }, ++ { 0x340b, KEY_PREVIOUS }, ++ { 0x3410, KEY_0 }, ++ { 0x340f, KEY_NEXT }, +}; + +static struct rc_map_list dreambox_map = { @@ -197,10 +199,10 @@ index 000000000000..0ccbed367ea3 +MODULE_LICENSE("GPL"); +MODULE_AUTHOR("Emanuel Strobel "); diff --git a/include/media/rc-map.h b/include/media/rc-map.h -index 43d254930daa..dadd4d27a760 100644 +index 793b54342dff..94ee968d4722 100644 --- a/include/media/rc-map.h +++ b/include/media/rc-map.h -@@ -242,6 +242,7 @@ struct rc_map *rc_map_get(const char *name); +@@ -241,6 +241,7 @@ struct rc_map *rc_map_get(const char *name); #define RC_MAP_DM1105_NEC "rc-dm1105-nec" #define RC_MAP_DNTV_LIVE_DVB_T "rc-dntv-live-dvb-t" #define RC_MAP_DNTV_LIVE_DVBT_PRO "rc-dntv-live-dvbt-pro" diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0055-FROMLIST-v2-dt-bindings-media-rc-add-rc-beelink-mxii.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0055-FROMLIST-v2-dt-bindings-media-rc-add-rc-beelink-mxii.patch new file mode 100644 index 0000000000..32e89034d7 --- /dev/null +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0055-FROMLIST-v2-dt-bindings-media-rc-add-rc-beelink-mxii.patch @@ -0,0 +1,28 @@ +From 9a0008048a5647e0e530a9cb91d7aad6d15dcc1d Mon Sep 17 00:00:00 2001 +From: Christian Hewitt +Date: Sat, 4 Feb 2023 06:42:20 +0000 +Subject: [PATCH 055/111] FROMLIST(v2): dt-bindings: media: rc: add + rc-beelink-mxiii + +Add a binding for the rc-beelink-mxiii remote keymap + +Signed-off-by: Christian Hewitt +--- + Documentation/devicetree/bindings/media/rc.yaml | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/Documentation/devicetree/bindings/media/rc.yaml b/Documentation/devicetree/bindings/media/rc.yaml +index e7d2ae5a7eb9..deeda4bb8dae 100644 +--- a/Documentation/devicetree/bindings/media/rc.yaml ++++ b/Documentation/devicetree/bindings/media/rc.yaml +@@ -39,6 +39,7 @@ properties: + - rc-avertv-303 + - rc-azurewave-ad-tu700 + - rc-beelink-gs1 ++ - rc-beelink-mxiii + - rc-behold + - rc-behold-columbus + - rc-budget-ci-old +-- +2.34.1 + diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0063-WIP-media-rc-add-keymap-for-Beelink-Mini-MXIII-remot.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0056-FROMLIST-v2-media-rc-add-Beelink-Mini-MXIII-keymap.patch similarity index 66% rename from projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0063-WIP-media-rc-add-keymap-for-Beelink-Mini-MXIII-remot.patch rename to projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0056-FROMLIST-v2-media-rc-add-Beelink-Mini-MXIII-keymap.patch index 95b6ab09ae..9de8f4b4ca 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0063-WIP-media-rc-add-keymap-for-Beelink-Mini-MXIII-remot.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0056-FROMLIST-v2-media-rc-add-Beelink-Mini-MXIII-keymap.patch @@ -1,35 +1,22 @@ -From f228cf6645db4c58217f1d8e763e09133d44a25b Mon Sep 17 00:00:00 2001 +From a0fe1da807693e90c1ebb1f1eeeef40e85da3f4f Mon Sep 17 00:00:00 2001 From: Christian Hewitt Date: Wed, 8 Dec 2021 15:33:47 +0000 -Subject: [PATCH 63/92] WIP: media: rc: add keymap for Beelink Mini MXIII - remote +Subject: [PATCH 056/111] FROMLIST(v2): media: rc: add Beelink Mini MXIII + keymap -Add a keymap and bindings for the simple IR (NEC) remote used with -the Beelink Mini MXIII Android STB device. +Add a keymap for the simple IR (NEC) remote used with the Beelink +Mini MXIII Android STB device. Signed-off-by: Christian Hewitt --- - .../devicetree/bindings/media/rc.yaml | 1 + - drivers/media/rc/keymaps/Makefile | 1 + - drivers/media/rc/keymaps/rc-beelink-mxiii.c | 54 +++++++++++++++++++ - include/media/rc-map.h | 1 + - 4 files changed, 57 insertions(+) + drivers/media/rc/keymaps/Makefile | 1 + + drivers/media/rc/keymaps/rc-beelink-mxiii.c | 57 +++++++++++++++++++++ + include/media/rc-map.h | 1 + + 3 files changed, 59 insertions(+) create mode 100644 drivers/media/rc/keymaps/rc-beelink-mxiii.c -diff --git a/Documentation/devicetree/bindings/media/rc.yaml b/Documentation/devicetree/bindings/media/rc.yaml -index e732b7f3a635..4f53fea766c6 100644 ---- a/Documentation/devicetree/bindings/media/rc.yaml -+++ b/Documentation/devicetree/bindings/media/rc.yaml -@@ -39,6 +39,7 @@ properties: - - rc-avertv-303 - - rc-azurewave-ad-tu700 - - rc-beelink-gs1 -+ - rc-beelink-mxiii - - rc-behold - - rc-behold-columbus - - rc-budget-ci-old diff --git a/drivers/media/rc/keymaps/Makefile b/drivers/media/rc/keymaps/Makefile -index f513ff5caf4e..f3bf9878d72c 100644 +index 6931c89fca99..f19558fdab0c 100644 --- a/drivers/media/rc/keymaps/Makefile +++ b/drivers/media/rc/keymaps/Makefile @@ -22,6 +22,7 @@ obj-$(CONFIG_RC_MAP) += \ @@ -42,20 +29,23 @@ index f513ff5caf4e..f3bf9878d72c 100644 rc-budget-ci-old.o \ diff --git a/drivers/media/rc/keymaps/rc-beelink-mxiii.c b/drivers/media/rc/keymaps/rc-beelink-mxiii.c new file mode 100644 -index 000000000000..09b77295e0a3 +index 000000000000..01180cd92205 --- /dev/null +++ b/drivers/media/rc/keymaps/rc-beelink-mxiii.c -@@ -0,0 +1,54 @@ +@@ -0,0 +1,57 @@ +// SPDX-License-Identifier: GPL-2.0+ -+// -+// Copyright (C) 2019 Christian Hewitt ++/* ++ * Copyright (C) 2019 Christian Hewitt ++ * ++ */ + +#include +#include + -+// -+// Keytable for the Beelink Mini MXIII remote control -+// ++/* ++ * Keytable for the Beelink Mini MXIII remote control ++ * ++ */ + +static struct rc_map_table beelink_mxiii[] = { + { 0xb2dc, KEY_POWER }, @@ -101,7 +91,7 @@ index 000000000000..09b77295e0a3 +MODULE_LICENSE("GPL"); +MODULE_AUTHOR("Christian Hewitt +Date: Tue, 31 Jan 2023 22:03:21 +0100 +Subject: [PATCH 057/111] FROMLIST(v1): net: phy: meson-gxl: use MMD access + dummy stubs for GXL, internal PHY + +Jerome provided the information that also the GXL internal PHY doesn't +support MMD register access and EEE. MMD reads return 0xffff, what +results in e.g. completely wrong ethtool --show-eee output. +Therefore use the MMD dummy stubs. + +Note: The Fixes tag references the commit that added the MMD dummy +access stubs. + +Fixes: 5df7af85ecd8 ("net: phy: Add general dummy stubs for MMD register access") +Suggested-by: Jerome Brunet +Signed-off-by: Heiner Kallweit +Reviewed-by: Chris Healy +--- + drivers/net/phy/meson-gxl.c | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/drivers/net/phy/meson-gxl.c b/drivers/net/phy/meson-gxl.c +index 5e41658b1e2f..a6015cd03bff 100644 +--- a/drivers/net/phy/meson-gxl.c ++++ b/drivers/net/phy/meson-gxl.c +@@ -261,6 +261,8 @@ static struct phy_driver meson_gxl_phy[] = { + .handle_interrupt = meson_gxl_handle_interrupt, + .suspend = genphy_suspend, + .resume = genphy_resume, ++ .read_mmd = genphy_read_mmd_unsupported, ++ .write_mmd = genphy_write_mmd_unsupported, + }, { + PHY_ID_MATCH_EXACT(0x01803301), + .name = "Meson G12A Internal PHY", +-- +2.34.1 + diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0058-FROMLIST-v1-arm64-dts-meson-axg-Make-mmc-host-contro.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0058-FROMLIST-v1-arm64-dts-meson-axg-Make-mmc-host-contro.patch new file mode 100644 index 0000000000..0976bdbd9d --- /dev/null +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0058-FROMLIST-v1-arm64-dts-meson-axg-Make-mmc-host-contro.patch @@ -0,0 +1,49 @@ +From 4ef9075d2d7f134c858be4e55452fdc237bac08d Mon Sep 17 00:00:00 2001 +From: Heiner Kallweit +Date: Thu, 9 Feb 2023 21:10:31 +0100 +Subject: [PATCH 058/111] FROMLIST(v1): arm64: dts: meson-axg: Make mmc host + controller interrupts level-sensitive + +The usage of edge-triggered interrupts lead to lost interrupts under load, +see [0]. This was confirmed to be fixed by using level-triggered +interrupts. +The report was about SDIO. However, as the host controller is the same +for SD and MMC, apply the change to all mmc controller instances. + +[0] https://www.spinics.net/lists/linux-mmc/msg73991.html + +Fixes: 221cf34bac54 ("ARM64: dts: meson-axg: enable the eMMC controller") +Reported-by: Peter Suti +Tested-by: Vyacheslav Bocharov +Tested-by: Peter Suti +Cc: stable@vger.kernel.org +Signed-off-by: Heiner Kallweit +--- + arch/arm64/boot/dts/amlogic/meson-axg.dtsi | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/arch/arm64/boot/dts/amlogic/meson-axg.dtsi b/arch/arm64/boot/dts/amlogic/meson-axg.dtsi +index 04f797b5a012..73cd1791a13f 100644 +--- a/arch/arm64/boot/dts/amlogic/meson-axg.dtsi ++++ b/arch/arm64/boot/dts/amlogic/meson-axg.dtsi +@@ -1885,7 +1885,7 @@ apb: bus@ffe00000 { + sd_emmc_b: sd@5000 { + compatible = "amlogic,meson-axg-mmc"; + reg = <0x0 0x5000 0x0 0x800>; +- interrupts = ; ++ interrupts = ; + status = "disabled"; + clocks = <&clkc CLKID_SD_EMMC_B>, + <&clkc CLKID_SD_EMMC_B_CLK0>, +@@ -1897,7 +1897,7 @@ sd_emmc_b: sd@5000 { + sd_emmc_c: mmc@7000 { + compatible = "amlogic,meson-axg-mmc"; + reg = <0x0 0x7000 0x0 0x800>; +- interrupts = ; ++ interrupts = ; + status = "disabled"; + clocks = <&clkc CLKID_SD_EMMC_C>, + <&clkc CLKID_SD_EMMC_C_CLK0>, +-- +2.34.1 + diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0059-FROMLIST-v1-arm64-dts-meson-g12-common-Make-mmc-host.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0059-FROMLIST-v1-arm64-dts-meson-g12-common-Make-mmc-host.patch new file mode 100644 index 0000000000..9a9739047a --- /dev/null +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0059-FROMLIST-v1-arm64-dts-meson-g12-common-Make-mmc-host.patch @@ -0,0 +1,58 @@ +From ea7ed9bb24f2f21b7cbe477987ef3594a2c9f03a Mon Sep 17 00:00:00 2001 +From: Heiner Kallweit +Date: Thu, 9 Feb 2023 21:11:10 +0100 +Subject: [PATCH 059/111] FROMLIST(v1): arm64: dts: meson-g12-common: Make mmc + host controller interrupts level-sensitive + +The usage of edge-triggered interrupts lead to lost interrupts under load, +see [0]. This was confirmed to be fixed by using level-triggered +interrupts. +The report was about SDIO. However, as the host controller is the same +for SD and MMC, apply the change to all mmc controller instances. + +[0] https://www.spinics.net/lists/linux-mmc/msg73991.html + +Fixes: 4759fd87b928 ("arm64: dts: meson: g12a: add mmc nodes") +Tested-by: FUKAUMI Naoki +Tested-by: Martin Blumenstingl +Tested-by: Jerome Brunet +Cc: stable@vger.kernel.org +Signed-off-by: Heiner Kallweit +--- + arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi b/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi +index 6841e1909250..749d5b3e3554 100644 +--- a/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi ++++ b/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi +@@ -2318,7 +2318,7 @@ uart_A: serial@24000 { + sd_emmc_a: sd@ffe03000 { + compatible = "amlogic,meson-axg-mmc"; + reg = <0x0 0xffe03000 0x0 0x800>; +- interrupts = ; ++ interrupts = ; + status = "disabled"; + clocks = <&clkc CLKID_SD_EMMC_A>, + <&clkc CLKID_SD_EMMC_A_CLK0>, +@@ -2330,7 +2330,7 @@ sd_emmc_a: sd@ffe03000 { + sd_emmc_b: sd@ffe05000 { + compatible = "amlogic,meson-axg-mmc"; + reg = <0x0 0xffe05000 0x0 0x800>; +- interrupts = ; ++ interrupts = ; + status = "disabled"; + clocks = <&clkc CLKID_SD_EMMC_B>, + <&clkc CLKID_SD_EMMC_B_CLK0>, +@@ -2342,7 +2342,7 @@ sd_emmc_b: sd@ffe05000 { + sd_emmc_c: mmc@ffe07000 { + compatible = "amlogic,meson-axg-mmc"; + reg = <0x0 0xffe07000 0x0 0x800>; +- interrupts = ; ++ interrupts = ; + status = "disabled"; + clocks = <&clkc CLKID_SD_EMMC_C>, + <&clkc CLKID_SD_EMMC_C_CLK0>, +-- +2.34.1 + diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0060-FROMLIST-v1-arm64-dts-meson-gx-Make-mmc-host-control.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0060-FROMLIST-v1-arm64-dts-meson-gx-Make-mmc-host-control.patch new file mode 100644 index 0000000000..6b7ffded46 --- /dev/null +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0060-FROMLIST-v1-arm64-dts-meson-gx-Make-mmc-host-control.patch @@ -0,0 +1,53 @@ +From 67322e7c3e95cc2ff9d90cc446b2d9364e60fdad Mon Sep 17 00:00:00 2001 +From: Heiner Kallweit +Date: Thu, 9 Feb 2023 21:11:47 +0100 +Subject: [PATCH 060/111] FROMLIST(v1): arm64: dts: meson-gx: Make mmc host + controller interrupts level-sensitive + +The usage of edge-triggered interrupts lead to lost interrupts under load, +see [0]. This was confirmed to be fixed by using level-triggered +interrupts. +The report was about SDIO. However, as the host controller is the same +for SD and MMC, apply the change to all mmc controller instances. + +[0] https://www.spinics.net/lists/linux-mmc/msg73991.html + +Fixes: ef8d2ffedf18 ("ARM64: dts: meson-gxbb: add MMC support") +Cc: stable@vger.kernel.org +Signed-off-by: Heiner Kallweit +--- + arch/arm64/boot/dts/amlogic/meson-gx.dtsi | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/arch/arm64/boot/dts/amlogic/meson-gx.dtsi b/arch/arm64/boot/dts/amlogic/meson-gx.dtsi +index b278a8380f8a..b8e43b406cec 100644 +--- a/arch/arm64/boot/dts/amlogic/meson-gx.dtsi ++++ b/arch/arm64/boot/dts/amlogic/meson-gx.dtsi +@@ -611,21 +611,21 @@ apb: apb@d0000000 { + sd_emmc_a: mmc@70000 { + compatible = "amlogic,meson-gx-mmc", "amlogic,meson-gxbb-mmc"; + reg = <0x0 0x70000 0x0 0x800>; +- interrupts = ; ++ interrupts = ; + status = "disabled"; + }; + + sd_emmc_b: mmc@72000 { + compatible = "amlogic,meson-gx-mmc", "amlogic,meson-gxbb-mmc"; + reg = <0x0 0x72000 0x0 0x800>; +- interrupts = ; ++ interrupts = ; + status = "disabled"; + }; + + sd_emmc_c: mmc@74000 { + compatible = "amlogic,meson-gx-mmc", "amlogic,meson-gxbb-mmc"; + reg = <0x0 0x74000 0x0 0x800>; +- interrupts = ; ++ interrupts = ; + status = "disabled"; + }; + }; +-- +2.34.1 + diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0061-FROMLIST-v1-drm-meson-meson_venc-Relax-the-supported.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0061-FROMLIST-v1-drm-meson-meson_venc-Relax-the-supported.patch new file mode 100644 index 0000000000..e8b50b795d --- /dev/null +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0061-FROMLIST-v1-drm-meson-meson_venc-Relax-the-supported.patch @@ -0,0 +1,34 @@ +From 0e0cb2bd55ab48a127ecb221937543bb7b8a7896 Mon Sep 17 00:00:00 2001 +From: Carlo Caione +Date: Fri, 10 Feb 2023 11:55:34 +0100 +Subject: [PATCH 061/111] FROMLIST(v1): drm/meson/meson_venc: Relax the + supported mode checks + +Relax a bit the supported modes list by including also 480x1920. This +was actually tested on real hardware and it works correctly. + +Signed-off-by: Carlo Caione +--- + drivers/gpu/drm/meson/meson_venc.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/drivers/gpu/drm/meson/meson_venc.c b/drivers/gpu/drm/meson/meson_venc.c +index 3c55ed003359..5b3621589a9f 100644 +--- a/drivers/gpu/drm/meson/meson_venc.c ++++ b/drivers/gpu/drm/meson/meson_venc.c +@@ -866,10 +866,10 @@ meson_venc_hdmi_supported_mode(const struct drm_display_mode *mode) + DRM_MODE_FLAG_PVSYNC | DRM_MODE_FLAG_NVSYNC)) + return MODE_BAD; + +- if (mode->hdisplay < 640 || mode->hdisplay > 1920) ++ if (mode->hdisplay < 480 || mode->hdisplay > 1920) + return MODE_BAD_HVALUE; + +- if (mode->vdisplay < 480 || mode->vdisplay > 1200) ++ if (mode->vdisplay < 480 || mode->vdisplay > 1920) + return MODE_BAD_VVALUE; + + return MODE_OK; +-- +2.34.1 + diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0062-FROMLIST-v2-arm64-dts-meson-gxbb-kii-pro-sort-and-ti.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0062-FROMLIST-v2-arm64-dts-meson-gxbb-kii-pro-sort-and-ti.patch new file mode 100644 index 0000000000..0071ca9d7f --- /dev/null +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0062-FROMLIST-v2-arm64-dts-meson-gxbb-kii-pro-sort-and-ti.patch @@ -0,0 +1,88 @@ +From 65e2378a8aeb278caa69582245cbeead137787e3 Mon Sep 17 00:00:00 2001 +From: Christian Hewitt +Date: Fri, 10 Feb 2023 02:16:12 +0000 +Subject: [PATCH 062/111] FROMLIST(v2): arm64: dts: meson: gxbb-kii-pro: sort + and tidy the dts + +Alpha-sort the nodes, move the default line in the LED node to where it's +normally found, and remove excess spacing. No functional changes. + +Signed-off-by: Christian Hewitt +Tested-by: Ferass El Hafidi +Reviewed-by: Neil Armstrong +--- + .../boot/dts/amlogic/meson-gxbb-kii-pro.dts | 32 ++++++++----------- + 1 file changed, 14 insertions(+), 18 deletions(-) + +diff --git a/arch/arm64/boot/dts/amlogic/meson-gxbb-kii-pro.dts b/arch/arm64/boot/dts/amlogic/meson-gxbb-kii-pro.dts +index 6d8cc00fedc7..9bfdb54d912a 100644 +--- a/arch/arm64/boot/dts/amlogic/meson-gxbb-kii-pro.dts ++++ b/arch/arm64/boot/dts/amlogic/meson-gxbb-kii-pro.dts +@@ -6,21 +6,22 @@ + /dts-v1/; + + #include "meson-gxbb-p20x.dtsi" +- + #include + #include + #include ++ + / { + compatible = "videostrong,kii-pro", "amlogic,meson-gxbb"; + model = "Videostrong KII Pro"; + + leds { + compatible = "gpio-leds"; ++ + status { + gpios = <&gpio_ao GPIOAO_13 GPIO_ACTIVE_LOW>; +- default-state = "off"; + color = ; + function = LED_FUNCTION_STATUS; ++ default-state = "off"; + }; + }; + +@@ -34,24 +35,8 @@ button-reset { + gpios = <&gpio_ao GPIOAO_3 GPIO_ACTIVE_HIGH>; + }; + }; +- +-}; +- +- +- +-&uart_A { +- status = "okay"; +- pinctrl-0 = <&uart_a_pins>, <&uart_a_cts_rts_pins>; +- pinctrl-names = "default"; +- uart-has-rtscts; +- +- bluetooth { +- compatible = "brcm,bcm4335a0"; +- }; + }; + +- +- + ðmac { + status = "okay"; + pinctrl-0 = <ð_rmii_pins>; +@@ -78,3 +63,14 @@ eth_phy0: ethernet-phy@0 { + &ir { + linux,rc-map-name = "rc-videostrong-kii-pro"; + }; ++ ++&uart_A { ++ status = "okay"; ++ pinctrl-0 = <&uart_a_pins>, <&uart_a_cts_rts_pins>; ++ pinctrl-names = "default"; ++ uart-has-rtscts; ++ ++ bluetooth { ++ compatible = "brcm,bcm4335a0"; ++ }; ++}; +-- +2.34.1 + diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0063-FROMLIST-v2-arm64-dts-meson-gxbb-kii-pro-complete-th.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0063-FROMLIST-v2-arm64-dts-meson-gxbb-kii-pro-complete-th.patch new file mode 100644 index 0000000000..7ae0cdd804 --- /dev/null +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0063-FROMLIST-v2-arm64-dts-meson-gxbb-kii-pro-complete-th.patch @@ -0,0 +1,34 @@ +From 234a08e2ea0f891bd5db2afa2cc608eb868f3995 Mon Sep 17 00:00:00 2001 +From: Christian Hewitt +Date: Fri, 10 Feb 2023 02:21:08 +0000 +Subject: [PATCH 063/111] FROMLIST(v2): arm64: dts: meson: gxbb-kii-pro: + complete the bluetooth node + +Add missing content to the bluetooth node to align it with the content +used in (all) other GXBB dts files. + +Signed-off-by: Christian Hewitt +Tested-by: Ferass El Hafidi +Reviewed-by: Neil Armstrong +--- + arch/arm64/boot/dts/amlogic/meson-gxbb-kii-pro.dts | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/arch/arm64/boot/dts/amlogic/meson-gxbb-kii-pro.dts b/arch/arm64/boot/dts/amlogic/meson-gxbb-kii-pro.dts +index 9bfdb54d912a..435ae2aa404e 100644 +--- a/arch/arm64/boot/dts/amlogic/meson-gxbb-kii-pro.dts ++++ b/arch/arm64/boot/dts/amlogic/meson-gxbb-kii-pro.dts +@@ -72,5 +72,10 @@ &uart_A { + + bluetooth { + compatible = "brcm,bcm4335a0"; ++ shutdown-gpios = <&gpio GPIOX_20 GPIO_ACTIVE_HIGH>; ++ host-wakeup-gpios = <&gpio GPIOX_21 GPIO_ACTIVE_HIGH>; ++ max-speed = <2000000>; ++ clocks = <&wifi32k>; ++ clock-names = "lpo"; + }; + }; +-- +2.34.1 + diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0064-FROMLIST-v2-arm64-dts-meson-gxbb-kii-pro-add-initial.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0064-FROMLIST-v2-arm64-dts-meson-gxbb-kii-pro-add-initial.patch new file mode 100644 index 0000000000..ef2a70236c --- /dev/null +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0064-FROMLIST-v2-arm64-dts-meson-gxbb-kii-pro-add-initial.patch @@ -0,0 +1,101 @@ +From a1b4579c41ff75c11a4a904500a8cacdff11549f Mon Sep 17 00:00:00 2001 +From: Christian Hewitt +Date: Fri, 10 Feb 2023 02:29:00 +0000 +Subject: [PATCH 064/111] FROMLIST(v2): arm64: dts: meson: gxbb-kii-pro: add + initial audio support + +Add initial support for HDMI and S/PDIF audio output. + +Signed-off-by: Christian Hewitt +Tested-by: Ferass El Hafidi +Reviewed-by: Neil Armstrong +--- + .../boot/dts/amlogic/meson-gxbb-kii-pro.dts | 60 +++++++++++++++++++ + 1 file changed, 60 insertions(+) + +diff --git a/arch/arm64/boot/dts/amlogic/meson-gxbb-kii-pro.dts b/arch/arm64/boot/dts/amlogic/meson-gxbb-kii-pro.dts +index 435ae2aa404e..a09340e9f73a 100644 +--- a/arch/arm64/boot/dts/amlogic/meson-gxbb-kii-pro.dts ++++ b/arch/arm64/boot/dts/amlogic/meson-gxbb-kii-pro.dts +@@ -9,11 +9,19 @@ + #include + #include + #include ++#include + + / { + compatible = "videostrong,kii-pro", "amlogic,meson-gxbb"; + model = "Videostrong KII Pro"; + ++ spdif_dit: audio-codec-0 { ++ #sound-dai-cells = <0>; ++ compatible = "linux,spdif-dit"; ++ status = "okay"; ++ sound-name-prefix = "DIT"; ++ }; ++ + leds { + compatible = "gpio-leds"; + +@@ -35,6 +43,58 @@ button-reset { + gpios = <&gpio_ao GPIOAO_3 GPIO_ACTIVE_HIGH>; + }; + }; ++ ++ sound { ++ compatible = "amlogic,gx-sound-card"; ++ model = "KII-PRO"; ++ assigned-clocks = <&clkc CLKID_MPLL0>, ++ <&clkc CLKID_MPLL1>, ++ <&clkc CLKID_MPLL2>; ++ assigned-clock-parents = <0>, <0>, <0>; ++ assigned-clock-rates = <294912000>, ++ <270950400>, ++ <393216000>; ++ ++ dai-link-0 { ++ sound-dai = <&aiu AIU_CPU CPU_I2S_FIFO>; ++ }; ++ ++ dai-link-1 { ++ sound-dai = <&aiu AIU_CPU CPU_SPDIF_FIFO>; ++ }; ++ ++ dai-link-2 { ++ sound-dai = <&aiu AIU_CPU CPU_I2S_ENCODER>; ++ dai-format = "i2s"; ++ mclk-fs = <256>; ++ ++ codec-0 { ++ sound-dai = <&aiu AIU_HDMI CTRL_I2S>; ++ }; ++ }; ++ ++ dai-link-3 { ++ sound-dai = <&aiu AIU_CPU CPU_SPDIF_ENCODER>; ++ ++ codec-0 { ++ sound-dai = <&spdif_dit>; ++ }; ++ }; ++ ++ dai-link-4 { ++ sound-dai = <&aiu AIU_HDMI CTRL_OUT>; ++ ++ codec-0 { ++ sound-dai = <&hdmi_tx>; ++ }; ++ }; ++ }; ++}; ++ ++&aiu { ++ status = "okay"; ++ pinctrl-0 = <&spdif_out_y_pins>; ++ pinctrl-names = "default"; + }; + + ðmac { +-- +2.34.1 + diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0048-WIP-drivers-meson-vdec-disable-MPEG1-MPEG2-hardware-.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0065-WIP-media-meson-vdec-disable-MPEG1-MPEG2-hardware-de.patch similarity index 94% rename from projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0048-WIP-drivers-meson-vdec-disable-MPEG1-MPEG2-hardware-.patch rename to projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0065-WIP-media-meson-vdec-disable-MPEG1-MPEG2-hardware-de.patch index f07431d8ea..5593a500ef 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0048-WIP-drivers-meson-vdec-disable-MPEG1-MPEG2-hardware-.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0065-WIP-media-meson-vdec-disable-MPEG1-MPEG2-hardware-de.patch @@ -1,7 +1,7 @@ -From 0990c81824f144c0182c2f9496b6871900660289 Mon Sep 17 00:00:00 2001 +From 43ec52b9d17ab542bef9b3192a5512221068209f Mon Sep 17 00:00:00 2001 From: Christian Hewitt Date: Thu, 5 Jan 2023 15:16:46 +0000 -Subject: [PATCH 48/92] WIP: drivers: meson: vdec: disable MPEG1/MPEG2 hardware +Subject: [PATCH 065/111] WIP: media: meson: vdec: disable MPEG1/MPEG2 hardware decoding The MPEG1/2 decoder is broken and nobody has volunteered to poke @@ -15,7 +15,7 @@ Signed-off-by: Christian Hewitt 1 file changed, 110 deletions(-) diff --git a/drivers/staging/media/meson/vdec/vdec_platform.c b/drivers/staging/media/meson/vdec/vdec_platform.c -index 810039a02b44..c1ffe04d3b2c 100644 +index ea2aa0e8cf0b..1c0d188929dc 100644 --- a/drivers/staging/media/meson/vdec/vdec_platform.c +++ b/drivers/staging/media/meson/vdec/vdec_platform.c @@ -39,28 +39,6 @@ static const struct amvdec_format vdec_formats_gxbb[] = { @@ -105,7 +105,7 @@ index 810039a02b44..c1ffe04d3b2c 100644 }, }; -@@ -225,28 +159,6 @@ static const struct amvdec_format vdec_formats_g12a[] = { +@@ -213,28 +147,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, @@ -134,7 +134,7 @@ index 810039a02b44..c1ffe04d3b2c 100644 }, }; -@@ -287,28 +199,6 @@ static const struct amvdec_format vdec_formats_sm1[] = { +@@ -263,28 +175,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-0038-WIP-arm64-dts-meson-set-p212-p23x-q20x-SDIO-to-100MH.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0066-WIP-arm64-dts-meson-set-p212-p23x-q20x-SDIO-to-100MH.patch similarity index 96% rename from projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0038-WIP-arm64-dts-meson-set-p212-p23x-q20x-SDIO-to-100MH.patch rename to projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0066-WIP-arm64-dts-meson-set-p212-p23x-q20x-SDIO-to-100MH.patch index ac16b71367..aebcc1bf5e 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0038-WIP-arm64-dts-meson-set-p212-p23x-q20x-SDIO-to-100MH.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0066-WIP-arm64-dts-meson-set-p212-p23x-q20x-SDIO-to-100MH.patch @@ -1,7 +1,7 @@ -From 83bcc4cb433a445d281844fc35eb09c5f7b34a62 Mon Sep 17 00:00:00 2001 +From 97cc891c6c0b572437523ad6eb253340be4a4ddb Mon Sep 17 00:00:00 2001 From: Christian Hewitt Date: Tue, 18 Jan 2022 15:09:12 +0000 -Subject: [PATCH 38/92] WIP: arm64: dts: meson: set p212/p23x/q20x SDIO to +Subject: [PATCH 066/111] WIP: arm64: dts: meson: set p212/p23x/q20x SDIO to 100MHz Amlogic datasheets describe 50MHz max-frequency for SDIO on GXL/GXM but diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0039-WIP-arm64-dts-meson-add-UHS-SDIO-capabilities-to-p21.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0067-WIP-arm64-dts-meson-add-UHS-SDIO-capabilities-to-p21.patch similarity index 90% rename from projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0039-WIP-arm64-dts-meson-add-UHS-SDIO-capabilities-to-p21.patch rename to projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0067-WIP-arm64-dts-meson-add-UHS-SDIO-capabilities-to-p21.patch index 6bd3f7ee07..39bcbd79f0 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0039-WIP-arm64-dts-meson-add-UHS-SDIO-capabilities-to-p21.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0067-WIP-arm64-dts-meson-add-UHS-SDIO-capabilities-to-p21.patch @@ -1,7 +1,7 @@ -From 1093ac36e96e54222564186a00bef5442e67c7b8 Mon Sep 17 00:00:00 2001 +From b9788f09d5ccb7e4ec6d157d1fc61ad6020a5d80 Mon Sep 17 00:00:00 2001 From: Christian Hewitt Date: Wed, 19 Jan 2022 06:45:06 +0000 -Subject: [PATCH 39/92] WIP: arm64: dts: meson: add UHS SDIO capabilities to +Subject: [PATCH 067/111] WIP: arm64: dts: meson: add UHS SDIO capabilities to p212/p23x/q20x Add UHS capabilities to the SDIO node to enable 100MHz speeds. diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0040-WIP-arm64-dts-meson-remove-SDIO-node-from-Khadas-VIM.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0068-WIP-arm64-dts-meson-remove-SDIO-node-from-Khadas-VIM.patch similarity index 86% rename from projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0040-WIP-arm64-dts-meson-remove-SDIO-node-from-Khadas-VIM.patch rename to projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0068-WIP-arm64-dts-meson-remove-SDIO-node-from-Khadas-VIM.patch index 715a9e9113..530b8ae21e 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0040-WIP-arm64-dts-meson-remove-SDIO-node-from-Khadas-VIM.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0068-WIP-arm64-dts-meson-remove-SDIO-node-from-Khadas-VIM.patch @@ -1,7 +1,7 @@ -From 957338182bd6312a2644ba67d43a33fccedaf4a7 Mon Sep 17 00:00:00 2001 +From d12a805ed4d64c4ea05f61a24cb33dcd2d389a4a Mon Sep 17 00:00:00 2001 From: Christian Hewitt Date: Tue, 18 Jan 2022 15:18:32 +0000 -Subject: [PATCH 40/92] WIP: arm64: dts: meson: remove SDIO node from Khadas +Subject: [PATCH 068/111] WIP: arm64: dts: meson: remove SDIO node from Khadas VIM1 Now that SDIO 100MHz max-frequency is inherited from the p212 dtsi we diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0053-WIP-arm64-dts-meson-add-audio-playback-to-p201.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0069-WIP-arm64-dts-meson-add-audio-playback-to-p201.patch similarity index 91% rename from projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0053-WIP-arm64-dts-meson-add-audio-playback-to-p201.patch rename to projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0069-WIP-arm64-dts-meson-add-audio-playback-to-p201.patch index 6d2ced3633..089c2106c6 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0053-WIP-arm64-dts-meson-add-audio-playback-to-p201.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0069-WIP-arm64-dts-meson-add-audio-playback-to-p201.patch @@ -1,7 +1,7 @@ -From 1a3ee4cb5ea27bd9594133196599b8a9142f860b Mon Sep 17 00:00:00 2001 +From 03c36c6fa06ada1585e41cf58f96915795eb6389 Mon Sep 17 00:00:00 2001 From: Christian Hewitt Date: Fri, 15 May 2020 07:52:47 +0000 -Subject: [PATCH 53/92] WIP: arm64: dts: meson: add audio playback to p201 +Subject: [PATCH 069/111] WIP: arm64: dts: meson: add audio playback to p201 Add initial audio support limited to HDMI i2s. diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0054-WIP-arm64-dts-meson-add-audio-playback-to-p200.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0070-WIP-arm64-dts-meson-add-audio-playback-to-p200.patch similarity index 94% rename from projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0054-WIP-arm64-dts-meson-add-audio-playback-to-p200.patch rename to projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0070-WIP-arm64-dts-meson-add-audio-playback-to-p200.patch index 3b5a77d5f4..285ef4c4cf 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0054-WIP-arm64-dts-meson-add-audio-playback-to-p200.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0070-WIP-arm64-dts-meson-add-audio-playback-to-p200.patch @@ -1,7 +1,7 @@ -From 888a7c084900b84b1730f3f550dce896ac524426 Mon Sep 17 00:00:00 2001 +From 8b691fc20b8c4a4b1fc9ab820300ff442f1ac60c Mon Sep 17 00:00:00 2001 From: Christian Hewitt Date: Fri, 15 May 2020 07:56:15 +0000 -Subject: [PATCH 54/92] WIP: arm64: dts: meson: add audio playback to p200 +Subject: [PATCH 070/111] WIP: arm64: dts: meson: add audio playback to p200 Add initial support limited to HDMI i2s and SPDIF (LPCM). diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0055-WIP-arm64-dts-meson-add-audio-playback-to-u200.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0071-WIP-arm64-dts-meson-add-audio-playback-to-u200.patch similarity index 96% rename from projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0055-WIP-arm64-dts-meson-add-audio-playback-to-u200.patch rename to projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0071-WIP-arm64-dts-meson-add-audio-playback-to-u200.patch index 9655f11d5d..d52daf3c80 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0055-WIP-arm64-dts-meson-add-audio-playback-to-u200.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0071-WIP-arm64-dts-meson-add-audio-playback-to-u200.patch @@ -1,7 +1,7 @@ -From c8effdc08eca825a89ab022b9e4873c8d2d8bfce Mon Sep 17 00:00:00 2001 +From f33d261b05bca837d107bd982eb1b2adc340fe10 Mon Sep 17 00:00:00 2001 From: Christian Hewitt Date: Sun, 17 May 2020 05:00:55 +0000 -Subject: [PATCH 55/92] WIP: arm64: dts: meson: add audio playback to u200 +Subject: [PATCH 071/111] WIP: arm64: dts: meson: add audio playback to u200 Add initial support limited to HDMI i2s and SPDIF (LPCM). diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0056-WIP-arm64-dts-meson-add-Headphone-output-to-Beelink-.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0072-WIP-arm64-dts-meson-add-Headphone-output-to-Beelink-.patch similarity index 96% rename from projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0056-WIP-arm64-dts-meson-add-Headphone-output-to-Beelink-.patch rename to projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0072-WIP-arm64-dts-meson-add-Headphone-output-to-Beelink-.patch index 382d270a0f..9caaaa409c 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0056-WIP-arm64-dts-meson-add-Headphone-output-to-Beelink-.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0072-WIP-arm64-dts-meson-add-Headphone-output-to-Beelink-.patch @@ -1,8 +1,8 @@ -From c6513a896b55e08bd20dfa90cc6d007866a852f1 Mon Sep 17 00:00:00 2001 +From 2766a02ccf4d6c74527dc9b8db52633b938bf1e4 Mon Sep 17 00:00:00 2001 From: Christian Hewitt Date: Sat, 27 Nov 2021 13:50:06 +0000 -Subject: [PATCH 56/92] WIP: arm64: dts: meson: add Headphone output to Beelink - GT-King +Subject: [PATCH 072/111] WIP: arm64: dts: meson: add Headphone output to + Beelink GT-King Add support for the Headphone audio DAC built-in to the S922X chip. diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0057-WIP-dt-bindings-arm-amlogic-add-support-for-the-Tani.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0073-WIP-dt-bindings-arm-amlogic-add-support-for-the-Tani.patch similarity index 82% rename from projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0057-WIP-dt-bindings-arm-amlogic-add-support-for-the-Tani.patch rename to projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0073-WIP-dt-bindings-arm-amlogic-add-support-for-the-Tani.patch index 6c66ce1b3b..5e7ce3a1fe 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0057-WIP-dt-bindings-arm-amlogic-add-support-for-the-Tani.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0073-WIP-dt-bindings-arm-amlogic-add-support-for-the-Tani.patch @@ -1,7 +1,7 @@ -From 49a971c963c99fade69e9f2266e7567a3071acd6 Mon Sep 17 00:00:00 2001 +From 266a3495aa60d1b60baf5d0d9a7ff9172897d9b5 Mon Sep 17 00:00:00 2001 From: Christian Hewitt Date: Sat, 29 Feb 2020 15:13:02 +0000 -Subject: [PATCH 57/92] WIP: dt-bindings: arm: amlogic: add support for the +Subject: [PATCH 073/111] WIP: dt-bindings: arm: amlogic: add support for the Tanix TX5 Max The Oranth (Tanix) TX5 Max is based on the Amlogic U200 reference @@ -13,7 +13,7 @@ Signed-off-by: Christian Hewitt 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/arm/amlogic.yaml b/Documentation/devicetree/bindings/arm/amlogic.yaml -index cf81dc06df2e..e8b9fc4eb8a6 100644 +index 7ded40b309a4..940fda576809 100644 --- a/Documentation/devicetree/bindings/arm/amlogic.yaml +++ b/Documentation/devicetree/bindings/arm/amlogic.yaml @@ -146,6 +146,7 @@ properties: diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0058-WIP-arm64-dts-meson-add-support-for-the-Tanix-TX5-Ma.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0074-WIP-arm64-dts-meson-add-support-for-the-Tanix-TX5-Ma.patch similarity index 98% rename from projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0058-WIP-arm64-dts-meson-add-support-for-the-Tanix-TX5-Ma.patch rename to projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0074-WIP-arm64-dts-meson-add-support-for-the-Tanix-TX5-Ma.patch index 2df92160d6..d0c6c94fbc 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0058-WIP-arm64-dts-meson-add-support-for-the-Tanix-TX5-Ma.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0074-WIP-arm64-dts-meson-add-support-for-the-Tanix-TX5-Ma.patch @@ -1,7 +1,7 @@ -From ce597f5f290d4452403311a6a01f89ed19b7d71d Mon Sep 17 00:00:00 2001 +From 7117e6d0e474ec77a6f23b2a541b3f8f083f6881 Mon Sep 17 00:00:00 2001 From: Christian Hewitt Date: Sun, 20 Oct 2019 04:06:59 +0000 -Subject: [PATCH 58/92] WIP: arm64: dts: meson: add support for the Tanix TX5 +Subject: [PATCH 074/111] WIP: arm64: dts: meson: add support for the Tanix TX5 Max The Tanix TX5 Max is based on the Amlogic U200 reference design @@ -26,7 +26,7 @@ Signed-off-by: Christian Hewitt create mode 100644 arch/arm64/boot/dts/amlogic/meson-g12a-tanix-tx5max.dts diff --git a/arch/arm64/boot/dts/amlogic/Makefile b/arch/arm64/boot/dts/amlogic/Makefile -index 4aa1aa0e22a8..249f0923b4cc 100644 +index 5d5ec22a469e..a69bd3a4769f 100644 --- a/arch/arm64/boot/dts/amlogic/Makefile +++ b/arch/arm64/boot/dts/amlogic/Makefile @@ -6,6 +6,7 @@ dtb-$(CONFIG_ARCH_MESON) += meson-axg-jethome-jethub-j110-rev-3.dtb diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0059-WIP-arm64-dts-meson-add-multiple-MeCool-device-trees.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0075-WIP-arm64-dts-meson-add-multiple-MeCool-device-trees.patch similarity index 97% rename from projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0059-WIP-arm64-dts-meson-add-multiple-MeCool-device-trees.patch rename to projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0075-WIP-arm64-dts-meson-add-multiple-MeCool-device-trees.patch index fea4c45c74..2998ee4abc 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0059-WIP-arm64-dts-meson-add-multiple-MeCool-device-trees.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0075-WIP-arm64-dts-meson-add-multiple-MeCool-device-trees.patch @@ -1,7 +1,7 @@ -From 09b8dcfeb45c42812cab811f99b808bc8207ce45 Mon Sep 17 00:00:00 2001 +From 408001e0cb0a593d827a0fbc662cab4a51b02437 Mon Sep 17 00:00:00 2001 From: Christian Hewitt Date: Mon, 21 Oct 2019 03:58:06 +0000 -Subject: [PATCH 59/92] WIP: arm64: dts: meson: add multiple MeCool device +Subject: [PATCH 075/111] WIP: arm64: dts: meson: add multiple MeCool device trees This adds initial device trees for a range of MeCool devices based on various @@ -25,7 +25,7 @@ Signed-off-by: Christian Hewitt create mode 100644 arch/arm64/boot/dts/amlogic/meson-gxl-s905d-mecool-m8s-plus.dts diff --git a/arch/arm64/boot/dts/amlogic/Makefile b/arch/arm64/boot/dts/amlogic/Makefile -index 249f0923b4cc..4239aad5686e 100644 +index a69bd3a4769f..791c6ff9f121 100644 --- a/arch/arm64/boot/dts/amlogic/Makefile +++ b/arch/arm64/boot/dts/amlogic/Makefile @@ -19,6 +19,8 @@ dtb-$(CONFIG_ARCH_MESON) += meson-g12b-radxa-zero2.dtb diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0060-WIP-dt-bindings-arm-amlogic-add-support-for-Minix-NE.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0076-WIP-dt-bindings-arm-amlogic-add-support-for-Minix-NE.patch similarity index 82% rename from projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0060-WIP-dt-bindings-arm-amlogic-add-support-for-Minix-NE.patch rename to projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0076-WIP-dt-bindings-arm-amlogic-add-support-for-Minix-NE.patch index 3df51cde7b..01c28f5b53 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0060-WIP-dt-bindings-arm-amlogic-add-support-for-Minix-NE.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0076-WIP-dt-bindings-arm-amlogic-add-support-for-Minix-NE.patch @@ -1,7 +1,7 @@ -From f8d9d1c6c3a661b405bab2aff3ff88b8974c02a4 Mon Sep 17 00:00:00 2001 +From c6b189846236a70302987cd56e986d8b78026024 Mon Sep 17 00:00:00 2001 From: Christian Hewitt Date: Sun, 11 Apr 2021 05:50:13 +0000 -Subject: [PATCH 60/92] WIP: dt-bindings: arm: amlogic: add support for Minix +Subject: [PATCH 076/111] WIP: dt-bindings: arm: amlogic: add support for Minix NEO-U1 The Minix NEO-U1 is an Android STB based on the Amlogic P200 (GXBB) @@ -13,7 +13,7 @@ Signed-off-by: Christian Hewitt 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/arm/amlogic.yaml b/Documentation/devicetree/bindings/arm/amlogic.yaml -index e8b9fc4eb8a6..275d3fcd7366 100644 +index 940fda576809..dfdf6c42ea47 100644 --- a/Documentation/devicetree/bindings/arm/amlogic.yaml +++ b/Documentation/devicetree/bindings/arm/amlogic.yaml @@ -58,6 +58,7 @@ properties: diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0061-WIP-arm64-dts-meson-add-initial-device-tree-for-Mini.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0077-WIP-arm64-dts-meson-add-initial-device-tree-for-Mini.patch similarity index 96% rename from projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0061-WIP-arm64-dts-meson-add-initial-device-tree-for-Mini.patch rename to projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0077-WIP-arm64-dts-meson-add-initial-device-tree-for-Mini.patch index aad2ddb3a4..3972795c34 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0061-WIP-arm64-dts-meson-add-initial-device-tree-for-Mini.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0077-WIP-arm64-dts-meson-add-initial-device-tree-for-Mini.patch @@ -1,7 +1,7 @@ -From a189ef3f25cdf625bef9984253c2125349122867 Mon Sep 17 00:00:00 2001 +From 101a607a87c7d46f6880990259c35e5610b3fc57 Mon Sep 17 00:00:00 2001 From: Christian Hewitt Date: Sun, 11 Apr 2021 05:52:14 +0000 -Subject: [PATCH 61/92] WIP: arm64: dts: meson: add initial device-tree for +Subject: [PATCH 077/111] WIP: arm64: dts: meson: add initial device-tree for Minix NEO-U1 The Minix NEO-U1 is an Android STB based on the Amlogic P200 (GXBB) @@ -30,7 +30,7 @@ Signed-off-by: Christian Hewitt create mode 100644 arch/arm64/boot/dts/amlogic/meson-gxbb-minix-neo-u1.dts diff --git a/arch/arm64/boot/dts/amlogic/Makefile b/arch/arm64/boot/dts/amlogic/Makefile -index 4239aad5686e..72f8d27e63e4 100644 +index 791c6ff9f121..f5f17f2f0fc2 100644 --- a/arch/arm64/boot/dts/amlogic/Makefile +++ b/arch/arm64/boot/dts/amlogic/Makefile @@ -21,6 +21,7 @@ dtb-$(CONFIG_ARCH_MESON) += meson-g12b-ugoos-am6.dtb diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0062-LOCAL-arm64-dts-meson-add-rtc-vrtc-aliases-to-Minix-.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0078-LOCAL-arm64-dts-meson-add-rtc-vrtc-aliases-to-Minix-.patch similarity index 82% rename from projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0062-LOCAL-arm64-dts-meson-add-rtc-vrtc-aliases-to-Minix-.patch rename to projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0078-LOCAL-arm64-dts-meson-add-rtc-vrtc-aliases-to-Minix-.patch index ebc1fff6a1..cd2d2a483b 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0062-LOCAL-arm64-dts-meson-add-rtc-vrtc-aliases-to-Minix-.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0078-LOCAL-arm64-dts-meson-add-rtc-vrtc-aliases-to-Minix-.patch @@ -1,8 +1,8 @@ -From 3867c618f355daf842e6bb3a2b121213b8cd2605 Mon Sep 17 00:00:00 2001 +From 6ee8e73b9be15ad7e88cc8588ec1802b3f7e9c94 Mon Sep 17 00:00:00 2001 From: Christian Hewitt Date: Fri, 19 Aug 2022 21:32:21 +0000 -Subject: [PATCH 62/92] LOCAL: arm64: dts: meson: add rtc/vrtc aliases to Minix - NEO-U1 +Subject: [PATCH 078/111] LOCAL: arm64: dts: meson: add rtc/vrtc aliases to + Minix NEO-U1 Add node aliases to prevent meson-vrtc from claiming /dev/rtc0 diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0064-WIP-dt-bindings-arm-amlogic-add-support-for-Beelink-.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0079-WIP-dt-bindings-arm-amlogic-add-support-for-Beelink-.patch similarity index 81% rename from projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0064-WIP-dt-bindings-arm-amlogic-add-support-for-Beelink-.patch rename to projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0079-WIP-dt-bindings-arm-amlogic-add-support-for-Beelink-.patch index 8a3e4fe085..52d8ee8ea4 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0064-WIP-dt-bindings-arm-amlogic-add-support-for-Beelink-.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0079-WIP-dt-bindings-arm-amlogic-add-support-for-Beelink-.patch @@ -1,8 +1,8 @@ -From d23c3fbbae77767a676c25c6f45674db1b021c53 Mon Sep 17 00:00:00 2001 +From a480b81545e0eee9fc677f4723544939c30eb827 Mon Sep 17 00:00:00 2001 From: Christian Hewitt Date: Wed, 8 Dec 2021 15:28:50 +0000 -Subject: [PATCH 64/92] WIP: dt-bindings: arm: amlogic: add support for Beelink - Mini MXIII +Subject: [PATCH 079/111] WIP: dt-bindings: arm: amlogic: add support for + Beelink Mini MXIII The Beelink Mini MXIII is an Android STB based on the Amlogic P200 (GXBB) reference design with an S905 chip. @@ -13,7 +13,7 @@ Signed-off-by: Christian Hewitt 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/arm/amlogic.yaml b/Documentation/devicetree/bindings/arm/amlogic.yaml -index 275d3fcd7366..68b21500a620 100644 +index dfdf6c42ea47..70cb580f8b7e 100644 --- a/Documentation/devicetree/bindings/arm/amlogic.yaml +++ b/Documentation/devicetree/bindings/arm/amlogic.yaml @@ -56,6 +56,7 @@ properties: diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0065-WIP-arm64-dts-meson-add-support-for-Beelink-Mini-MXI.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0080-WIP-arm64-dts-meson-add-support-for-Beelink-Mini-MXI.patch similarity index 96% rename from projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0065-WIP-arm64-dts-meson-add-support-for-Beelink-Mini-MXI.patch rename to projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0080-WIP-arm64-dts-meson-add-support-for-Beelink-Mini-MXI.patch index 8ebde96659..570840a757 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0065-WIP-arm64-dts-meson-add-support-for-Beelink-Mini-MXI.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0080-WIP-arm64-dts-meson-add-support-for-Beelink-Mini-MXI.patch @@ -1,7 +1,7 @@ -From 38209ac02c1c97a58bb8d3c9861fe718e0d1b731 Mon Sep 17 00:00:00 2001 +From 73a08273ebb74b7df8d787fe8aa1eb049777659b Mon Sep 17 00:00:00 2001 From: Christian Hewitt Date: Wed, 8 Dec 2021 15:26:00 +0000 -Subject: [PATCH 65/92] WIP: arm64: dts: meson: add support for Beelink Mini +Subject: [PATCH 080/111] WIP: arm64: dts: meson: add support for Beelink Mini MXIII This is a GXBB board that ships in two variants, one with @@ -15,7 +15,7 @@ Signed-off-by: Christian Hewitt create mode 100644 arch/arm64/boot/dts/amlogic/meson-gxbb-beelink-mini-mxiii.dts diff --git a/arch/arm64/boot/dts/amlogic/Makefile b/arch/arm64/boot/dts/amlogic/Makefile -index 72f8d27e63e4..fad2df44475a 100644 +index f5f17f2f0fc2..b7d7cb46b70a 100644 --- a/arch/arm64/boot/dts/amlogic/Makefile +++ b/arch/arm64/boot/dts/amlogic/Makefile @@ -19,6 +19,7 @@ dtb-$(CONFIG_ARCH_MESON) += meson-g12b-radxa-zero2.dtb diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0066-WIP-media-rc-add-keymap-for-MeCool-M8S-Pro-W-remote.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0081-WIP-media-rc-add-keymap-for-MeCool-M8S-Pro-W-remote.patch similarity index 90% rename from projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0066-WIP-media-rc-add-keymap-for-MeCool-M8S-Pro-W-remote.patch rename to projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0081-WIP-media-rc-add-keymap-for-MeCool-M8S-Pro-W-remote.patch index 3a4b63d654..5a7186facb 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0066-WIP-media-rc-add-keymap-for-MeCool-M8S-Pro-W-remote.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0081-WIP-media-rc-add-keymap-for-MeCool-M8S-Pro-W-remote.patch @@ -1,7 +1,8 @@ -From 4193b220c01c63ace1e117133388f5e13a2365d0 Mon Sep 17 00:00:00 2001 +From 015633ca12f7ddea34c5fabfdadc38941105d24e Mon Sep 17 00:00:00 2001 From: Christian Hewitt Date: Sun, 16 Jan 2022 08:48:02 +0000 -Subject: [PATCH 66/92] WIP: media: rc: add keymap for MeCool M8S Pro W remote +Subject: [PATCH 081/111] WIP: media: rc: add keymap for MeCool M8S Pro W + remote Add a keymap and bindings for the simple IR (NEC) remote used with the MeCool M8S Pro W Android STB device. @@ -16,10 +17,10 @@ Signed-off-by: Christian Hewitt create mode 100644 drivers/media/rc/keymaps/rc-mecool-m8s-pro-w.c diff --git a/Documentation/devicetree/bindings/media/rc.yaml b/Documentation/devicetree/bindings/media/rc.yaml -index 4f53fea766c6..6578a2328ec5 100644 +index deeda4bb8dae..37583861376e 100644 --- a/Documentation/devicetree/bindings/media/rc.yaml +++ b/Documentation/devicetree/bindings/media/rc.yaml -@@ -94,6 +94,7 @@ properties: +@@ -95,6 +95,7 @@ properties: - rc-manli - rc-mecool-kii-pro - rc-mecool-kiii-pro @@ -28,10 +29,10 @@ index 4f53fea766c6..6578a2328ec5 100644 - rc-medion-x10-digitainer - rc-medion-x10-or2x diff --git a/drivers/media/rc/keymaps/Makefile b/drivers/media/rc/keymaps/Makefile -index f3bf9878d72c..ef48a6bbeca4 100644 +index f19558fdab0c..f1fba08d8ed4 100644 --- a/drivers/media/rc/keymaps/Makefile +++ b/drivers/media/rc/keymaps/Makefile -@@ -75,6 +75,8 @@ obj-$(CONFIG_RC_MAP) += \ +@@ -76,6 +76,8 @@ obj-$(CONFIG_RC_MAP) += \ rc-manli.o \ rc-mecool-kiii-pro.o \ rc-mecool-kii-pro.o \ @@ -122,10 +123,10 @@ index 000000000000..9024b999d5a9 +MODULE_LICENSE("GPL"); +MODULE_AUTHOR("Christian Hewitt Date: Sun, 16 Jan 2022 08:15:36 +0000 -Subject: [PATCH 67/92] WIP: dt-bindings: arm: amlogic: add support for MeCool - M8S Pro W +Subject: [PATCH 082/111] WIP: dt-bindings: arm: amlogic: add support for + MeCool M8S Pro W The MeCool M8S Pro W is an Android STB based on the Amlogic P281 (GXL) reference design with an S905W chip. @@ -13,7 +13,7 @@ Signed-off-by: Christian Hewitt 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/arm/amlogic.yaml b/Documentation/devicetree/bindings/arm/amlogic.yaml -index 68b21500a620..8e96318342f4 100644 +index 70cb580f8b7e..f9d6a8f82d01 100644 --- a/Documentation/devicetree/bindings/arm/amlogic.yaml +++ b/Documentation/devicetree/bindings/arm/amlogic.yaml @@ -89,6 +89,7 @@ properties: diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0068-WIP-arm64-dts-meson-add-support-for-MeCool-M8S-Pro-W.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0083-WIP-arm64-dts-meson-add-support-for-MeCool-M8S-Pro-W.patch similarity index 91% rename from projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0068-WIP-arm64-dts-meson-add-support-for-MeCool-M8S-Pro-W.patch rename to projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0083-WIP-arm64-dts-meson-add-support-for-MeCool-M8S-Pro-W.patch index 8501254968..7500c1cb5b 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0068-WIP-arm64-dts-meson-add-support-for-MeCool-M8S-Pro-W.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0083-WIP-arm64-dts-meson-add-support-for-MeCool-M8S-Pro-W.patch @@ -1,8 +1,8 @@ -From 4e94b6b505ff2ccfcb34540a82858ff4fc42246e Mon Sep 17 00:00:00 2001 +From 3056b503ae67841eaac7c68419fe94a050b97faa Mon Sep 17 00:00:00 2001 From: Christian Hewitt Date: Sun, 16 Jan 2022 08:17:41 +0000 -Subject: [PATCH 68/92] WIP: arm64: dts: meson: add support for MeCool M8S Pro - W +Subject: [PATCH 083/111] WIP: arm64: dts: meson: add support for MeCool M8S + Pro W MeCool M8S Pro W is an Android STB based on the Amlogic P281 (GXL) reference design with an S905W chip and the following specs: diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0069-WIP-dt-bindings-arm-amlogic-add-Vero-4K-binding.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0084-WIP-dt-bindings-arm-amlogic-add-Vero-4K-binding.patch similarity index 81% rename from projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0069-WIP-dt-bindings-arm-amlogic-add-Vero-4K-binding.patch rename to projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0084-WIP-dt-bindings-arm-amlogic-add-Vero-4K-binding.patch index e3a1c8e441..7b0994d205 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0069-WIP-dt-bindings-arm-amlogic-add-Vero-4K-binding.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0084-WIP-dt-bindings-arm-amlogic-add-Vero-4K-binding.patch @@ -1,7 +1,7 @@ -From 62f3ac503dc6cb215e2ec3503863fd0a9006467a Mon Sep 17 00:00:00 2001 +From 7238ecad0f2cfe7d19f6e8ac355e6977f2ac0cb7 Mon Sep 17 00:00:00 2001 From: Christian Hewitt Date: Wed, 19 Jan 2022 02:40:20 +0000 -Subject: [PATCH 69/92] WIP: dt-bindings: arm: amlogic: add Vero 4K binding +Subject: [PATCH 084/111] WIP: dt-bindings: arm: amlogic: add Vero 4K binding Add the board binding for the OSMC Vero 4K STB device @@ -11,7 +11,7 @@ Signed-off-by: Christian Hewitt 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/arm/amlogic.yaml b/Documentation/devicetree/bindings/arm/amlogic.yaml -index 8e96318342f4..0061cec1995e 100644 +index f9d6a8f82d01..abf58071d4fa 100644 --- a/Documentation/devicetree/bindings/arm/amlogic.yaml +++ b/Documentation/devicetree/bindings/arm/amlogic.yaml @@ -102,6 +102,7 @@ properties: diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0070-WIP-arm64-dts-meson-add-support-for-OSMC-Vero-4K.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0085-WIP-arm64-dts-meson-add-support-for-OSMC-Vero-4K.patch similarity index 96% rename from projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0070-WIP-arm64-dts-meson-add-support-for-OSMC-Vero-4K.patch rename to projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0085-WIP-arm64-dts-meson-add-support-for-OSMC-Vero-4K.patch index 3f1eb62a9f..798e203640 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0070-WIP-arm64-dts-meson-add-support-for-OSMC-Vero-4K.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0085-WIP-arm64-dts-meson-add-support-for-OSMC-Vero-4K.patch @@ -1,7 +1,7 @@ -From 324d28ddabc035c4e5fd70b195bb729856ca7c06 Mon Sep 17 00:00:00 2001 +From 201fd9e277ca8e3516db3e9927681c045e09f9a5 Mon Sep 17 00:00:00 2001 From: Christian Hewitt Date: Wed, 19 Jan 2022 04:06:17 +0000 -Subject: [PATCH 70/92] WIP: arm64: dts: meson: add support for OSMC Vero 4K +Subject: [PATCH 085/111] 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: @@ -28,7 +28,7 @@ Signed-off-by: Christian Hewitt 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 fad2df44475a..7a4a0feb21e0 100644 +index b7d7cb46b70a..1680f7f6dbd6 100644 --- a/arch/arm64/boot/dts/amlogic/Makefile +++ b/arch/arm64/boot/dts/amlogic/Makefile @@ -51,6 +51,7 @@ dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905x-libretech-cc.dtb diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0071-WIP-arm64-dts-meson-add-RTL8822CS-bluetooth-to-X96-A.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0086-WIP-arm64-dts-meson-add-RTL8822CS-bluetooth-to-X96-A.patch similarity index 87% rename from projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0071-WIP-arm64-dts-meson-add-RTL8822CS-bluetooth-to-X96-A.patch rename to projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0086-WIP-arm64-dts-meson-add-RTL8822CS-bluetooth-to-X96-A.patch index 53d0dc733c..160ac31842 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0071-WIP-arm64-dts-meson-add-RTL8822CS-bluetooth-to-X96-A.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0086-WIP-arm64-dts-meson-add-RTL8822CS-bluetooth-to-X96-A.patch @@ -1,7 +1,7 @@ -From d75a2eedf816b6572d4e2fb5c664b7e21f7e8b91 Mon Sep 17 00:00:00 2001 +From 8b439fc90106044f14b34ba8175ae40d4e78d6dc Mon Sep 17 00:00:00 2001 From: Christian Hewitt Date: Tue, 12 Apr 2022 11:21:21 +0000 -Subject: [PATCH 71/92] WIP: arm64: dts: meson: add RTL8822CS bluetooth to +Subject: [PATCH 086/111] WIP: arm64: dts: meson: add RTL8822CS bluetooth to X96-Air Add the uart_A/bluetooth node for the RTL8822CS chip. diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0072-WIP-media-rc-add-keymap-for-Venz-V10-remote.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0087-WIP-media-rc-add-keymap-for-Venz-V10-remote.patch similarity index 91% rename from projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0072-WIP-media-rc-add-keymap-for-Venz-V10-remote.patch rename to projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0087-WIP-media-rc-add-keymap-for-Venz-V10-remote.patch index 98b5b833f6..0190f486f6 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0072-WIP-media-rc-add-keymap-for-Venz-V10-remote.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0087-WIP-media-rc-add-keymap-for-Venz-V10-remote.patch @@ -1,7 +1,7 @@ -From d359ff8f3aaf41f0a0338680d491177afcce2e56 Mon Sep 17 00:00:00 2001 +From 06227367228dea9a08060434d0d18d799f9dd2cf Mon Sep 17 00:00:00 2001 From: Christian Hewitt Date: Sun, 10 Apr 2022 11:51:38 +0000 -Subject: [PATCH 72/92] WIP: media: rc: add keymap for Venz V10 remote +Subject: [PATCH 087/111] WIP: media: rc: add keymap for Venz V10 remote Add a keymap and bindings for the IR (NEC) remote used with the Venz V10 Android STB device. @@ -16,10 +16,10 @@ Signed-off-by: Christian Hewitt create mode 100644 drivers/media/rc/keymaps/rc-venz-v10.c diff --git a/Documentation/devicetree/bindings/media/rc.yaml b/Documentation/devicetree/bindings/media/rc.yaml -index 6578a2328ec5..d4ef523cb3d5 100644 +index 37583861376e..f390a5d2c82d 100644 --- a/Documentation/devicetree/bindings/media/rc.yaml +++ b/Documentation/devicetree/bindings/media/rc.yaml -@@ -151,6 +151,7 @@ properties: +@@ -152,6 +152,7 @@ properties: - rc-videomate-tv-pvr - rc-videostrong-kii-pro - rc-vega-s9x @@ -28,10 +28,10 @@ index 6578a2328ec5..d4ef523cb3d5 100644 - rc-wetek-play2 - rc-winfast diff --git a/drivers/media/rc/keymaps/Makefile b/drivers/media/rc/keymaps/Makefile -index ef48a6bbeca4..77d8b5a69815 100644 +index f1fba08d8ed4..03bc9a8d355e 100644 --- a/drivers/media/rc/keymaps/Makefile +++ b/drivers/media/rc/keymaps/Makefile -@@ -128,6 +128,7 @@ obj-$(CONFIG_RC_MAP) += \ +@@ -129,6 +129,7 @@ obj-$(CONFIG_RC_MAP) += \ rc-twinhan1027.o \ rc-twinhan-dtv-cab-ci.o \ rc-vega-s9x.o \ @@ -138,10 +138,10 @@ index 000000000000..f0a99a31a1d7 +MODULE_LICENSE("GPL"); +MODULE_AUTHOR("Christian Hewitt Date: Sat, 9 Apr 2022 06:27:50 +0000 -Subject: [PATCH 73/92] WIP: dt-bindings: arm: amlogic: add S905L and Venz V10 - bindings +Subject: [PATCH 088/111] WIP: dt-bindings: arm: amlogic: add S905L and Venz + V10 bindings Add SOC bindings for S905L devices and the board binding for Venz V10. @@ -12,7 +12,7 @@ Signed-off-by: Christian Hewitt 1 file changed, 7 insertions(+) diff --git a/Documentation/devicetree/bindings/arm/amlogic.yaml b/Documentation/devicetree/bindings/arm/amlogic.yaml -index 0061cec1995e..cadb9b2377f2 100644 +index abf58071d4fa..fa02463f1e58 100644 --- a/Documentation/devicetree/bindings/arm/amlogic.yaml +++ b/Documentation/devicetree/bindings/arm/amlogic.yaml @@ -83,6 +83,13 @@ properties: diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0074-WIP-arm64-dts-meson-add-support-for-Venz-V10.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0089-WIP-arm64-dts-meson-add-support-for-Venz-V10.patch similarity index 97% rename from projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0074-WIP-arm64-dts-meson-add-support-for-Venz-V10.patch rename to projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0089-WIP-arm64-dts-meson-add-support-for-Venz-V10.patch index ff398468a9..792189aab6 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0074-WIP-arm64-dts-meson-add-support-for-Venz-V10.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0089-WIP-arm64-dts-meson-add-support-for-Venz-V10.patch @@ -1,7 +1,7 @@ -From 40937b8db5dacf81599ca35038238e34e939aa65 Mon Sep 17 00:00:00 2001 +From 2e2930b2700ca7e070d8654add3d6d00a0f98478 Mon Sep 17 00:00:00 2001 From: Christian Hewitt Date: Sat, 9 Apr 2022 06:21:58 +0000 -Subject: [PATCH 74/92] WIP: arm64: dts: meson: add support for Venz V10 +Subject: [PATCH 089/111] WIP: arm64: dts: meson: add support for Venz V10 The Venz V10 is an Android STB based on the Amlogic P212 (GXL) reference design with an S905L chip and the following specs: @@ -25,7 +25,7 @@ Signed-off-by: Christian Hewitt create mode 100644 arch/arm64/boot/dts/amlogic/meson-gxl-s905l-venz-v10.dts diff --git a/arch/arm64/boot/dts/amlogic/Makefile b/arch/arm64/boot/dts/amlogic/Makefile -index 7a4a0feb21e0..79f53897fa79 100644 +index 1680f7f6dbd6..fbeea2278187 100644 --- a/arch/arm64/boot/dts/amlogic/Makefile +++ b/arch/arm64/boot/dts/amlogic/Makefile @@ -45,6 +45,7 @@ dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905d-p231.dtb diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0075-WIP-dt-bindings-vendor-prefixes-add-tbee-prefix.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0090-WIP-dt-bindings-vendor-prefixes-add-tbee-prefix.patch similarity index 86% rename from projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0075-WIP-dt-bindings-vendor-prefixes-add-tbee-prefix.patch rename to projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0090-WIP-dt-bindings-vendor-prefixes-add-tbee-prefix.patch index 2571c65ca8..fc6ea64621 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0075-WIP-dt-bindings-vendor-prefixes-add-tbee-prefix.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0090-WIP-dt-bindings-vendor-prefixes-add-tbee-prefix.patch @@ -1,7 +1,7 @@ -From 117f9124956cf96f8c7d41ba74599fcedaf18c46 Mon Sep 17 00:00:00 2001 +From da5dc4bb14469ee3b99563ea97c5355d4677f4af Mon Sep 17 00:00:00 2001 From: Christian Hewitt Date: Wed, 6 Jul 2022 05:15:41 +0000 -Subject: [PATCH 75/92] WIP: dt-bindings: vendor-prefixes: add tbee prefix +Subject: [PATCH 090/111] WIP: dt-bindings: vendor-prefixes: add tbee prefix QUIDBox, Lda. are the Portuguese manufacturer of 'TBee' branded Android Set-Top Box devices. diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0091-FIXUP-add-adc-gpio-keys-and-led-s-to-dreambox.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0091-FIXUP-add-adc-gpio-keys-and-led-s-to-dreambox.patch deleted file mode 100644 index e439344d0e..0000000000 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0091-FIXUP-add-adc-gpio-keys-and-led-s-to-dreambox.patch +++ /dev/null @@ -1,74 +0,0 @@ -From 72193ae3fa4e37c1363d02728bdc4bbc7180b3f1 Mon Sep 17 00:00:00 2001 -From: Christian Hewitt -Date: Thu, 5 Jan 2023 06:08:37 +0000 -Subject: [PATCH 91/92] FIXUP! add adc/gpio keys and led's to dreambox - -Signed-off-by: Christian Hewitt ---- - .../boot/dts/amlogic/meson-g12b-dreambox.dtsi | 50 +++++++++++++++++++ - 1 file changed, 50 insertions(+) - -diff --git a/arch/arm64/boot/dts/amlogic/meson-g12b-dreambox.dtsi b/arch/arm64/boot/dts/amlogic/meson-g12b-dreambox.dtsi -index 14b2827b592d..1566dd48c473 100644 ---- a/arch/arm64/boot/dts/amlogic/meson-g12b-dreambox.dtsi -+++ b/arch/arm64/boot/dts/amlogic/meson-g12b-dreambox.dtsi -@@ -13,6 +13,56 @@ cvbs-connector { - status = "disabled"; - }; - -+ adc_keys { -+ compatible = "adc-keys"; -+ io-channels = <&saradc 2>; -+ io-channel-names = "buttons"; -+ keyup-threshold-microvolt = <1800000>; -+ -+ button-up { -+ label = "Volume Up"; -+ linux,code = ; -+ press-threshold-microvolt = <4680352>; -+ }; -+ -+ button-down { -+ label = "Volume Down"; -+ linux,code = ; -+ press-threshold-microvolt = <2516129>; -+ }; -+ -+ button-enter { -+ label = "Enter"; -+ linux,code = ; -+ press-threshold-microvolt = <6844575>; -+ }; -+ }; -+ -+ gpio-keys-polled { -+ compatible = "gpio-keys-polled"; -+ poll-interval = <20>; -+ -+ button { -+ label = "power"; -+ linux,code = ; -+ gpios = <&gpio_ao GPIOAO_3 GPIO_ACTIVE_HIGH>; -+ }; -+ }; -+ -+ leds { -+ compatible = "gpio-leds"; -+ -+ led-system { -+ label = "system-status"; -+ color = ; -+ function = LED_FUNCTION_POWER; -+ gpios = <&gpio_ao GPIOAO_11 GPIO_ACTIVE_HIGH>; -+ default-state = "on"; -+ panic-indicator; -+ retain-state-suspended; -+ }; -+ }; -+ - sdio_pwrseq: sdio-pwrseq { - compatible = "mmc-pwrseq-simple"; - reset-gpios = <&gpio GPIOA_11 GPIO_ACTIVE_LOW>; --- -2.34.1 - diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0076-WIP-dt-bindings-arm-amlogic-add-TBee-Box-binding.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0091-WIP-dt-bindings-arm-amlogic-add-TBee-Box-binding.patch similarity index 80% rename from projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0076-WIP-dt-bindings-arm-amlogic-add-TBee-Box-binding.patch rename to projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0091-WIP-dt-bindings-arm-amlogic-add-TBee-Box-binding.patch index 9b792491f8..cff731bc41 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0076-WIP-dt-bindings-arm-amlogic-add-TBee-Box-binding.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0091-WIP-dt-bindings-arm-amlogic-add-TBee-Box-binding.patch @@ -1,7 +1,7 @@ -From 9e929bee05f351db3969235f378ca77845c08225 Mon Sep 17 00:00:00 2001 +From 8489be633f6beb5f16b903ac686cfdd058b17057 Mon Sep 17 00:00:00 2001 From: Christian Hewitt Date: Wed, 6 Jul 2022 05:05:11 +0000 -Subject: [PATCH 76/92] WIP: dt-bindings: arm: amlogic: add TBee Box binding +Subject: [PATCH 091/111] WIP: dt-bindings: arm: amlogic: add TBee Box binding Add the board binding for the TBee Box. @@ -11,7 +11,7 @@ Signed-off-by: Christian Hewitt 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/arm/amlogic.yaml b/Documentation/devicetree/bindings/arm/amlogic.yaml -index cadb9b2377f2..971645c53f43 100644 +index fa02463f1e58..ba803d8d6eb2 100644 --- a/Documentation/devicetree/bindings/arm/amlogic.yaml +++ b/Documentation/devicetree/bindings/arm/amlogic.yaml @@ -110,6 +110,7 @@ properties: diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0077-WIP-arm64-dts-meson-add-support-for-TBee-Box.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0092-WIP-arm64-dts-meson-add-support-for-TBee-Box.patch similarity index 96% rename from projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0077-WIP-arm64-dts-meson-add-support-for-TBee-Box.patch rename to projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0092-WIP-arm64-dts-meson-add-support-for-TBee-Box.patch index c7d8eba0bd..946b83e88e 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0077-WIP-arm64-dts-meson-add-support-for-TBee-Box.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0092-WIP-arm64-dts-meson-add-support-for-TBee-Box.patch @@ -1,7 +1,7 @@ -From 997ee42acb0a44bf5f628e9a8e0e551335e91e9b Mon Sep 17 00:00:00 2001 +From 97337778184ffc8edff402afdae7b0da3a3c1dff Mon Sep 17 00:00:00 2001 From: Christian Hewitt Date: Wed, 6 Jul 2022 05:23:12 +0000 -Subject: [PATCH 77/92] WIP: arm64: dts: meson: add support for TBee Box +Subject: [PATCH 092/111] WIP: arm64: dts: meson: add support for TBee Box The TBee Box is an Android STB based on the Amlogic P212 (GXL) reference design with an S905X chip and the following specs: @@ -26,7 +26,7 @@ Signed-off-by: Christian Hewitt create mode 100644 arch/arm64/boot/dts/amlogic/meson-gxl-s905x-tbee.dts diff --git a/arch/arm64/boot/dts/amlogic/Makefile b/arch/arm64/boot/dts/amlogic/Makefile -index 79f53897fa79..4d4b5dc66501 100644 +index fbeea2278187..281a72ca8918 100644 --- a/arch/arm64/boot/dts/amlogic/Makefile +++ b/arch/arm64/boot/dts/amlogic/Makefile @@ -52,6 +52,7 @@ dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905x-libretech-cc.dtb diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0092-fixup_am6-plus.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0092-fixup_am6-plus.patch deleted file mode 100644 index 700b914c66..0000000000 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0092-fixup_am6-plus.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 3c419397d0dda1c5d193a73073e11cdf51e02f7b Mon Sep 17 00:00:00 2001 -From: Christian Hewitt -Date: Sat, 14 Jan 2023 13:07:46 +0000 -Subject: [PATCH 92/92] fixup_am6-plus - ---- - arch/arm64/boot/dts/amlogic/meson-g12b-ugoos-am6-plus.dts | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/arch/arm64/boot/dts/amlogic/meson-g12b-ugoos-am6-plus.dts b/arch/arm64/boot/dts/amlogic/meson-g12b-ugoos-am6-plus.dts -index b2922dc5a30e..dd5a9665a996 100644 ---- a/arch/arm64/boot/dts/amlogic/meson-g12b-ugoos-am6-plus.dts -+++ b/arch/arm64/boot/dts/amlogic/meson-g12b-ugoos-am6-plus.dts -@@ -196,7 +196,7 @@ bluetooth { - shutdown-gpios = <&gpio GPIOX_17 GPIO_ACTIVE_HIGH>; - max-speed = <2000000>; - clocks = <&wifi32k>; -- clock-names = "lpo"; -+ clock-names = "lpo"; - }; - }; - --- -2.34.1 - diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0078-WIP-dt-bindings-arm-amlogic-add-Beelink-GT1-binding.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0093-WIP-dt-bindings-arm-amlogic-add-Beelink-GT1-binding.patch similarity index 81% rename from projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0078-WIP-dt-bindings-arm-amlogic-add-Beelink-GT1-binding.patch rename to projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0093-WIP-dt-bindings-arm-amlogic-add-Beelink-GT1-binding.patch index 7a7acc4b5f..1b90bee011 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0078-WIP-dt-bindings-arm-amlogic-add-Beelink-GT1-binding.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0093-WIP-dt-bindings-arm-amlogic-add-Beelink-GT1-binding.patch @@ -1,7 +1,8 @@ -From 0a225528fdb833260b425e6b8a69bced20a6562c Mon Sep 17 00:00:00 2001 +From c86407f59bebb958cc29d1621f1bd5f61b1e5419 Mon Sep 17 00:00:00 2001 From: Christian Hewitt Date: Sun, 24 Jul 2022 08:50:28 +0000 -Subject: [PATCH 78/92] WIP: dt-bindings: arm: amlogic: add Beelink GT1 binding +Subject: [PATCH 093/111] WIP: dt-bindings: arm: amlogic: add Beelink GT1 + binding Add the board binding for the Shenzen AZW (Beelink) GT1 Android Set-Top Box device. @@ -12,7 +13,7 @@ Signed-off-by: Christian Hewitt 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/arm/amlogic.yaml b/Documentation/devicetree/bindings/arm/amlogic.yaml -index 971645c53f43..083fab6ab099 100644 +index ba803d8d6eb2..5844cb31efab 100644 --- a/Documentation/devicetree/bindings/arm/amlogic.yaml +++ b/Documentation/devicetree/bindings/arm/amlogic.yaml @@ -132,6 +132,7 @@ properties: diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0079-WIP-arm64-dts-meson-add-support-for-Beelink-GT1.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0094-WIP-arm64-dts-meson-add-support-for-Beelink-GT1.patch similarity index 78% rename from projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0079-WIP-arm64-dts-meson-add-support-for-Beelink-GT1.patch rename to projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0094-WIP-arm64-dts-meson-add-support-for-Beelink-GT1.patch index cef1764196..116e235858 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0079-WIP-arm64-dts-meson-add-support-for-Beelink-GT1.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0094-WIP-arm64-dts-meson-add-support-for-Beelink-GT1.patch @@ -1,7 +1,7 @@ -From cc3cb5dec191afe3586a4ca993b69b950a2b60bb Mon Sep 17 00:00:00 2001 +From 9bba5b77db8019df089620bc8f8e87314f554229 Mon Sep 17 00:00:00 2001 From: Christian Hewitt Date: Wed, 6 Jul 2022 10:01:03 +0000 -Subject: [PATCH 79/92] WIP: arm64: dts: meson: add support for Beelink GT1 +Subject: [PATCH 094/111] WIP: arm64: dts: meson: add support for Beelink GT1 The Beelink GT1 is based on the Amlogic S912 (Q200) reference design with the following specifications: @@ -20,13 +20,13 @@ design with the following specifications: Signed-off-by: Christian Hewitt --- - arch/arm64/boot/dts/amlogic/Makefile | 1 + - arch/arm64/boot/dts/amlogic/meson-gxm-gt1.dts | 91 +++++++++++++++++++ - 2 files changed, 92 insertions(+) + arch/arm64/boot/dts/amlogic/Makefile | 1 + + arch/arm64/boot/dts/amlogic/meson-gxm-gt1.dts | 121 ++++++++++++++++++ + 2 files changed, 122 insertions(+) create mode 100644 arch/arm64/boot/dts/amlogic/meson-gxm-gt1.dts diff --git a/arch/arm64/boot/dts/amlogic/Makefile b/arch/arm64/boot/dts/amlogic/Makefile -index 4d4b5dc66501..fd1d2ad059e4 100644 +index 281a72ca8918..3fad85258de2 100644 --- a/arch/arm64/boot/dts/amlogic/Makefile +++ b/arch/arm64/boot/dts/amlogic/Makefile @@ -63,6 +63,7 @@ dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905x-libretech-cc-v2.dtb @@ -39,10 +39,10 @@ index 4d4b5dc66501..fd1d2ad059e4 100644 dtb-$(CONFIG_ARCH_MESON) += meson-gxm-mecool-kiii-pro.dtb diff --git a/arch/arm64/boot/dts/amlogic/meson-gxm-gt1.dts b/arch/arm64/boot/dts/amlogic/meson-gxm-gt1.dts new file mode 100644 -index 000000000000..3c8d73599ce6 +index 000000000000..08ed769512cb --- /dev/null +++ b/arch/arm64/boot/dts/amlogic/meson-gxm-gt1.dts -@@ -0,0 +1,91 @@ +@@ -0,0 +1,121 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) +/* + * Copyright (c) Christian Hewitt @@ -59,6 +59,11 @@ index 000000000000..3c8d73599ce6 + compatible = "azw,gt1", "amlogic,s912", "amlogic,meson-gxm"; + model = "Beelink GT1"; + ++ aliases { ++ rtc0 = &rtc; ++ rtc1 = &vrtc; ++ }; ++ + leds { + compatible = "gpio-leds"; + @@ -94,6 +99,13 @@ index 000000000000..3c8d73599ce6 +}; + +&external_mdio { ++ compatible = "snps,dwmac-mdio"; ++ #address-cells = <1>; ++ #size-cells = <0>; ++ snps,aal; ++ snps,txpbl = <0x8>; ++ snps,rxpbl = <0x8>; ++ + external_phy: ethernet-phy@0 { + /* Realtek RTL8211F (0x001cc916) */ + reg = <0>; @@ -113,10 +125,28 @@ index 000000000000..3c8d73599ce6 + linux,rc-map-name = "rc-beelink-gs1"; +}; + ++&i2c_B { ++ status = "okay"; ++ pinctrl-0 = <&i2c_b_pins>; ++ pinctrl-names = "default"; ++ ++ rtc: rtc@51 { ++ compatible = "haoyu,hym8563"; ++ reg = <0x51>; ++ #clock-cells = <0>; ++ clock-frequency = <32768>; ++ clock-output-names = "xin32k"; ++ wakeup-source; ++ }; ++}; ++ +&sd_emmc_a { + /* QCA9377 WiFi */ -+ wifi: wifi@1 { ++ cap-sdio-irq; ++ ++ ath10k: wifi@1 { + reg = <1>; ++ compatible = "qcom,ath10k"; + }; +}; + diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0080-WIP-arm64-dts-meson-add-vcc_5v-regulator-to-WeTek-dt.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0095-WIP-arm64-dts-meson-add-vcc_5v-regulator-to-WeTek-dt.patch similarity index 87% rename from projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0080-WIP-arm64-dts-meson-add-vcc_5v-regulator-to-WeTek-dt.patch rename to projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0095-WIP-arm64-dts-meson-add-vcc_5v-regulator-to-WeTek-dt.patch index 72554eaa78..7ba2b64165 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0080-WIP-arm64-dts-meson-add-vcc_5v-regulator-to-WeTek-dt.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0095-WIP-arm64-dts-meson-add-vcc_5v-regulator-to-WeTek-dt.patch @@ -1,7 +1,7 @@ -From 21621f4e6cc3b1553ddd5fed306851e73af9fb89 Mon Sep 17 00:00:00 2001 +From c08e71d91e272deaa371b45bd702855b30d4bc9b Mon Sep 17 00:00:00 2001 From: Christian Hewitt Date: Wed, 27 Jul 2022 10:27:10 +0000 -Subject: [PATCH 80/92] WIP: arm64: dts: meson: add vcc_5v regulator to WeTek +Subject: [PATCH 095/111] WIP: arm64: dts: meson: add vcc_5v regulator to WeTek dtsi Add the vcc_5v regulator used by the audio DAC chip diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0081-WIP-arm64-dts-meson-add-audio-lineout-to-WeTek-Play2.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0096-WIP-arm64-dts-meson-add-audio-lineout-to-WeTek-Play2.patch similarity index 90% rename from projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0081-WIP-arm64-dts-meson-add-audio-lineout-to-WeTek-Play2.patch rename to projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0096-WIP-arm64-dts-meson-add-audio-lineout-to-WeTek-Play2.patch index d555575a81..dafa8d3910 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0081-WIP-arm64-dts-meson-add-audio-lineout-to-WeTek-Play2.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0096-WIP-arm64-dts-meson-add-audio-lineout-to-WeTek-Play2.patch @@ -1,7 +1,7 @@ -From c5328b7d87942abd73d3a904df0554b41d4dc1f0 Mon Sep 17 00:00:00 2001 +From be2dc4ef2cfe9251b425639a790523ae60faa3e1 Mon Sep 17 00:00:00 2001 From: Christian Hewitt Date: Wed, 27 Jul 2022 13:39:23 +0000 -Subject: [PATCH 81/92] WIP: arm64: dts: meson: add audio lineout to WeTek +Subject: [PATCH 096/111] WIP: arm64: dts: meson: add audio lineout to WeTek Play2 Add support for the ES7134LV headphone output on the WeTek Play2 diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0082-WIP-arm64-dts-amlogic-fix-cvbs-disable-on-WeTek-Hub.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0097-WIP-arm64-dts-amlogic-fix-cvbs-disable-on-WeTek-Hub.patch similarity index 89% rename from projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0082-WIP-arm64-dts-amlogic-fix-cvbs-disable-on-WeTek-Hub.patch rename to projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0097-WIP-arm64-dts-amlogic-fix-cvbs-disable-on-WeTek-Hub.patch index 7c9e0daf43..e92ec04b21 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0082-WIP-arm64-dts-amlogic-fix-cvbs-disable-on-WeTek-Hub.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0097-WIP-arm64-dts-amlogic-fix-cvbs-disable-on-WeTek-Hub.patch @@ -1,7 +1,8 @@ -From 8f8e3b8a0df5188b194841703324715550d88e20 Mon Sep 17 00:00:00 2001 +From 3cd2bb5070e304f9159760b2de237db6fc165e86 Mon Sep 17 00:00:00 2001 From: Christian Hewitt Date: Fri, 29 Jul 2022 08:29:20 +0000 -Subject: [PATCH 82/92] WIP: arm64: dts: amlogic: fix cvbs disable on WeTek Hub +Subject: [PATCH 097/111] WIP: arm64: dts: amlogic: fix cvbs disable on WeTek + Hub The original submission in commit d537d289de06 ("ARM64: dts: meson-gxbb: Add support for WeTek Hub and Play") shows cvbs output as disabled, but diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0083-WIP-ASoC-dt-bindings-add-compatible-for-es8323-i2c.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0098-WIP-ASoC-dt-bindings-add-compatible-for-es8323-i2c.patch similarity index 89% rename from projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0083-WIP-ASoC-dt-bindings-add-compatible-for-es8323-i2c.patch rename to projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0098-WIP-ASoC-dt-bindings-add-compatible-for-es8323-i2c.patch index a8828247f9..e72493aee6 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0083-WIP-ASoC-dt-bindings-add-compatible-for-es8323-i2c.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0098-WIP-ASoC-dt-bindings-add-compatible-for-es8323-i2c.patch @@ -1,7 +1,7 @@ -From 10b09cf6a2b47bcb45844a99f8e150e87566f248 Mon Sep 17 00:00:00 2001 +From cc1feced9050a84e6129e8e53a8d931359525709 Mon Sep 17 00:00:00 2001 From: Romain Perier Date: Sun, 14 Aug 2022 04:21:16 +0000 -Subject: [PATCH 83/92] WIP: ASoC: dt-bindings: add compatible for es8323-i2c +Subject: [PATCH 098/111] WIP: ASoC: dt-bindings: add compatible for es8323-i2c Add a compatible for the everest,es8323 audio codec used with a number of Amlogic and Rockchip board devices. diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0084-WIP-ASoC-codecs-add-support-for-ES8323.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0099-WIP-ASoC-codecs-add-support-for-ES8323.patch similarity index 88% rename from projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0084-WIP-ASoC-codecs-add-support-for-ES8323.patch rename to projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0099-WIP-ASoC-codecs-add-support-for-ES8323.patch index 69feee4e58..186b4857c2 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0084-WIP-ASoC-codecs-add-support-for-ES8323.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0099-WIP-ASoC-codecs-add-support-for-ES8323.patch @@ -1,7 +1,7 @@ -From 414ab31ceac2d078b6bfece819138e66a2aafc0e Mon Sep 17 00:00:00 2001 +From c798b049d8309bdd417466dcdfc2e6b7b496358f Mon Sep 17 00:00:00 2001 From: Romain Perier Date: Sun, 14 Aug 2022 04:29:32 +0000 -Subject: [PATCH 84/92] WIP: ASoC: codecs: add support for ES8323 +Subject: [PATCH 099/111] WIP: ASoC: codecs: add support for ES8323 The ES8323 is compatible with the existing ES8328 codec driver, so add compatibles allowing it to be used. diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0086-WIP-dt-bindings-add-dream-vendor-prefix.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0100-WIP-dt-bindings-add-dream-vendor-prefix.patch similarity index 86% rename from projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0086-WIP-dt-bindings-add-dream-vendor-prefix.patch rename to projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0100-WIP-dt-bindings-add-dream-vendor-prefix.patch index e5cf381fd2..4fd0b8d7b5 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0086-WIP-dt-bindings-add-dream-vendor-prefix.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0100-WIP-dt-bindings-add-dream-vendor-prefix.patch @@ -1,7 +1,7 @@ -From 16f6b516305e6b43019e5c6d9b5528037b58e27e Mon Sep 17 00:00:00 2001 +From 69672e48ac48c480df53b8f2abf22a2babab4720 Mon Sep 17 00:00:00 2001 From: Christian Hewitt Date: Mon, 5 Apr 2021 13:47:52 +0000 -Subject: [PATCH 86/92] WIP: dt-bindings: add dream vendor prefix +Subject: [PATCH 100/111] WIP: dt-bindings: add dream vendor prefix Add vendor prefix for Dream Property GmbH diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0087-WIP-dt-bindings-arm-amlogic-add-support-for-Dreambox.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0101-WIP-dt-bindings-arm-amlogic-add-support-for-Dreambox.patch similarity index 84% rename from projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0087-WIP-dt-bindings-arm-amlogic-add-support-for-Dreambox.patch rename to projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0101-WIP-dt-bindings-arm-amlogic-add-support-for-Dreambox.patch index a81a202967..1ff229704d 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0087-WIP-dt-bindings-arm-amlogic-add-support-for-Dreambox.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0101-WIP-dt-bindings-arm-amlogic-add-support-for-Dreambox.patch @@ -1,7 +1,7 @@ -From 8e14d531bb2fb3b52f7942c742e48e48c4b0c0c8 Mon Sep 17 00:00:00 2001 +From 9c5b03828e3c690daa54108da81967cdf05c4f53 Mon Sep 17 00:00:00 2001 From: Christian Hewitt Date: Mon, 5 Apr 2021 13:48:34 +0000 -Subject: [PATCH 87/92] WIP: dt-bindings: arm: amlogic: add support for +Subject: [PATCH 101/111] WIP: dt-bindings: arm: amlogic: add support for Dreambox One/Two The Dreambox One and Dreambox Two are DVBS/T2 receiver boxes based @@ -13,7 +13,7 @@ Signed-off-by: Christian Hewitt 1 file changed, 2 insertions(+) diff --git a/Documentation/devicetree/bindings/arm/amlogic.yaml b/Documentation/devicetree/bindings/arm/amlogic.yaml -index 083fab6ab099..6af30f2020a1 100644 +index 5844cb31efab..b8b2899ad83b 100644 --- a/Documentation/devicetree/bindings/arm/amlogic.yaml +++ b/Documentation/devicetree/bindings/arm/amlogic.yaml @@ -178,6 +178,8 @@ properties: diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0088-WIP-arm64-dts-meson-add-initial-device-trees-for-Dre.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0102-WIP-arm64-dts-meson-add-initial-device-trees-for-Dre.patch similarity index 97% rename from projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0088-WIP-arm64-dts-meson-add-initial-device-trees-for-Dre.patch rename to projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0102-WIP-arm64-dts-meson-add-initial-device-trees-for-Dre.patch index f44ddeefb5..4b53d52dca 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0088-WIP-arm64-dts-meson-add-initial-device-trees-for-Dre.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0102-WIP-arm64-dts-meson-add-initial-device-trees-for-Dre.patch @@ -1,7 +1,7 @@ -From d13e691554129c1533d417af1594fa3ea7a7b9bf Mon Sep 17 00:00:00 2001 +From 5c7b621397257278ef61cad1d3fce1066c3c1019 Mon Sep 17 00:00:00 2001 From: Christian Hewitt Date: Mon, 5 Apr 2021 13:51:20 +0000 -Subject: [PATCH 88/92] WIP: arm64: dts: meson: add initial device-trees for +Subject: [PATCH 102/111] WIP: arm64: dts: meson: add initial device-trees for Dreambox One/Two Dreambox One and Dreambox Two are based on the Amlogic W400 reference @@ -40,7 +40,7 @@ Signed-off-by: Christian Hewitt 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 fd1d2ad059e4..2c9885b957a7 100644 +index 3fad85258de2..f06a1337b29d 100644 --- a/arch/arm64/boot/dts/amlogic/Makefile +++ b/arch/arm64/boot/dts/amlogic/Makefile @@ -10,6 +10,8 @@ dtb-$(CONFIG_ARCH_MESON) += meson-g12a-tanix-tx5max.dtb diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0089-WIP-dt-bindings-arm-amlogic-add-support-for-Ugoos-AM.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0103-WIP-dt-bindings-arm-amlogic-add-support-for-Ugoos-AM.patch similarity index 83% rename from projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0089-WIP-dt-bindings-arm-amlogic-add-support-for-Ugoos-AM.patch rename to projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0103-WIP-dt-bindings-arm-amlogic-add-support-for-Ugoos-AM.patch index 5c914db0ec..7c71218e32 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0089-WIP-dt-bindings-arm-amlogic-add-support-for-Ugoos-AM.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0103-WIP-dt-bindings-arm-amlogic-add-support-for-Ugoos-AM.patch @@ -1,7 +1,7 @@ -From 59064c140b25b8316983ae348ccc1e316af7bb2f Mon Sep 17 00:00:00 2001 +From da298d4a60853a644e3f5e47babf57ef78e66628 Mon Sep 17 00:00:00 2001 From: Christian Hewitt Date: Thu, 15 Dec 2022 04:27:45 +0000 -Subject: [PATCH 89/92] WIP: dt-bindings: arm: amlogic: add support for Ugoos +Subject: [PATCH 103/111] WIP: dt-bindings: arm: amlogic: add support for Ugoos AM6 plus The AM6 plus is a revised version of the AM6 Android box based @@ -14,7 +14,7 @@ Signed-off-by: Christian Hewitt 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/arm/amlogic.yaml b/Documentation/devicetree/bindings/arm/amlogic.yaml -index 6af30f2020a1..4f6b8a44f28c 100644 +index b8b2899ad83b..cc0f1ac5f678 100644 --- a/Documentation/devicetree/bindings/arm/amlogic.yaml +++ b/Documentation/devicetree/bindings/arm/amlogic.yaml @@ -184,6 +184,7 @@ properties: diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0090-WIP-arm64-dts-meson-add-support-for-Ugoos-AM6-Plus.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0104-WIP-arm64-dts-meson-add-support-for-Ugoos-AM6-Plus.patch similarity index 96% rename from projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0090-WIP-arm64-dts-meson-add-support-for-Ugoos-AM6-Plus.patch rename to projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0104-WIP-arm64-dts-meson-add-support-for-Ugoos-AM6-Plus.patch index 34e5827071..a977e2f82f 100644 --- a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0090-WIP-arm64-dts-meson-add-support-for-Ugoos-AM6-Plus.patch +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0104-WIP-arm64-dts-meson-add-support-for-Ugoos-AM6-Plus.patch @@ -1,7 +1,8 @@ -From ea0025676c08c7fa55095101c77d14db71749290 Mon Sep 17 00:00:00 2001 +From 6d3f7bf8b0804ed10d973537630c5791fd0b00f2 Mon Sep 17 00:00:00 2001 From: Christian Hewitt Date: Thu, 15 Dec 2022 05:29:31 +0000 -Subject: [PATCH 90/92] WIP: arm64: dts: meson: add support for Ugoos AM6 Plus +Subject: [PATCH 104/111] WIP: arm64: dts: meson: add support for Ugoos AM6 + Plus The Ugoos AM6 Plus is based on the Amlogic W400 (G12B) reference design using the S922XJ (S922X rev-C with Dolby Vision license) chipset. @@ -30,7 +31,7 @@ Signed-off-by: Christian Hewitt create mode 100644 arch/arm64/boot/dts/amlogic/meson-g12b-ugoos-am6-plus.dts diff --git a/arch/arm64/boot/dts/amlogic/Makefile b/arch/arm64/boot/dts/amlogic/Makefile -index 2c9885b957a7..83c75550fd88 100644 +index f06a1337b29d..494f8aaa8060 100644 --- a/arch/arm64/boot/dts/amlogic/Makefile +++ b/arch/arm64/boot/dts/amlogic/Makefile @@ -20,6 +20,7 @@ dtb-$(CONFIG_ARCH_MESON) += meson-g12b-odroid-n2.dtb @@ -43,7 +44,7 @@ index 2c9885b957a7..83c75550fd88 100644 dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-mecool-ki-plus.dtb diff --git a/arch/arm64/boot/dts/amlogic/meson-g12b-ugoos-am6-plus.dts b/arch/arm64/boot/dts/amlogic/meson-g12b-ugoos-am6-plus.dts new file mode 100644 -index 000000000000..b2922dc5a30e +index 000000000000..dd5a9665a996 --- /dev/null +++ b/arch/arm64/boot/dts/amlogic/meson-g12b-ugoos-am6-plus.dts @@ -0,0 +1,221 @@ @@ -245,7 +246,7 @@ index 000000000000..b2922dc5a30e + shutdown-gpios = <&gpio GPIOX_17 GPIO_ACTIVE_HIGH>; + max-speed = <2000000>; + clocks = <&wifi32k>; -+ clock-names = "lpo"; ++ clock-names = "lpo"; + }; +}; + diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0105-arm64-dts-meson-add-support-for-MeCool-M8S-Pro-Plus.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0105-arm64-dts-meson-add-support-for-MeCool-M8S-Pro-Plus.patch new file mode 100644 index 0000000000..714d2e153b --- /dev/null +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0105-arm64-dts-meson-add-support-for-MeCool-M8S-Pro-Plus.patch @@ -0,0 +1,187 @@ +From 7f6c51ee9500028feaa2a91db7a61c1a0187d6e4 Mon Sep 17 00:00:00 2001 +From: Christian Hewitt +Date: Tue, 24 Jan 2023 16:57:20 +0000 +Subject: [PATCH 105/111] arm64: dts: meson: add support for MeCool M8S Pro + Plus + +This is an S905X device based on the P212 reference design, but +with an S908CS WiFi/BT module that is not currently supported. + +Signed-off-by: Christian Hewitt +--- + arch/arm64/boot/dts/amlogic/Makefile | 1 + + .../meson-gxl-s905x-mecool-m8s-pro-plus.dts | 150 ++++++++++++++++++ + 2 files changed, 151 insertions(+) + create mode 100644 arch/arm64/boot/dts/amlogic/meson-gxl-s905x-mecool-m8s-pro-plus.dts + +diff --git a/arch/arm64/boot/dts/amlogic/Makefile b/arch/arm64/boot/dts/amlogic/Makefile +index 494f8aaa8060..3f1b3e2f30f5 100644 +--- a/arch/arm64/boot/dts/amlogic/Makefile ++++ b/arch/arm64/boot/dts/amlogic/Makefile +@@ -53,6 +53,7 @@ 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-mecool-m8s-pro-plus.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-tbee.dtb +diff --git a/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-mecool-m8s-pro-plus.dts b/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-mecool-m8s-pro-plus.dts +new file mode 100644 +index 000000000000..84772ce12e00 +--- /dev/null ++++ b/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-mecool-m8s-pro-plus.dts +@@ -0,0 +1,150 @@ ++// SPDX-License-Identifier: (GPL-2.0+ OR MIT) ++/* ++ * Copyright (c) 2016 Endless Computers, Inc. ++ * Author: Carlo Caione ++ */ ++ ++/dts-v1/; ++ ++#include "meson-gxl-s905x-p212.dtsi" ++#include ++ ++/ { ++ compatible = "videostrong,mecool-m8s-pro-plus", "amlogic,s905x", "amlogic,meson-gxl"; ++ model = "MeCool M8S Pro Plus"; ++ ++ dio2133: analog-amplifier { ++ compatible = "simple-audio-amplifier"; ++ sound-name-prefix = "AU2"; ++ VCC-supply = <&hdmi_5v>; ++ enable-gpios = <&gpio GPIOH_5 GPIO_ACTIVE_HIGH>; ++ }; ++ ++ 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 = "MECOOL-M8S"; ++ audio-aux-devs = <&dio2133>; ++ audio-widgets = "Line", "Lineout"; ++ audio-routing = "AU2 INL", "ACODEC LOLN", ++ "AU2 INR", "ACODEC LORN", ++ "Lineout", "AU2 OUTL", ++ "Lineout", "AU2 OUTR"; ++ assigned-clocks = <&clkc CLKID_MPLL0>, ++ <&clkc CLKID_MPLL1>, ++ <&clkc CLKID_MPLL2>; ++ assigned-clock-parents = <0>, <0>, <0>; ++ assigned-clock-rates = <294912000>, ++ <270950400>, ++ <393216000>; ++ status = "okay"; ++ ++ dai-link-0 { ++ sound-dai = <&aiu AIU_CPU CPU_I2S_FIFO>; ++ }; ++ ++ dai-link-1 { ++ sound-dai = <&aiu AIU_CPU CPU_I2S_ENCODER>; ++ dai-format = "i2s"; ++ mclk-fs = <256>; ++ ++ codec-0 { ++ sound-dai = <&aiu AIU_HDMI CTRL_I2S>; ++ }; ++ ++ codec-1 { ++ sound-dai = <&aiu AIU_ACODEC CTRL_I2S>; ++ }; ++ }; ++ ++ dai-link-2 { ++ sound-dai = <&aiu AIU_HDMI CTRL_OUT>; ++ ++ codec-0 { ++ sound-dai = <&hdmi_tx>; ++ }; ++ }; ++ ++ dai-link-3 { ++ sound-dai = <&aiu AIU_ACODEC CTRL_OUT>; ++ ++ codec-0 { ++ sound-dai = <&acodec>; ++ }; ++ }; ++ }; ++}; ++ ++&acodec { ++ AVDD-supply = <&vddio_ao18>; ++ status = "okay"; ++}; ++ ++&aiu { ++ status = "okay"; ++}; ++ ++&cec_AO { ++ 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>; ++ }; ++}; ++ ++&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>; ++ }; ++}; ++ ++&ir { ++ linux,rc-map-name = "rc-mecool-m8s-pro"; ++}; ++ ++/* S9082C WiFi */ ++&sd_emmc_a { ++ status = "disabled"; ++}; ++ ++/* S9082C Bluetooth */ ++&uart_A { ++ status = "disabled"; ++}; ++ ++/* 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-0106-WIP-arm64-dts-meson-radxa-zero2-add-pwm-fan-support.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0106-WIP-arm64-dts-meson-radxa-zero2-add-pwm-fan-support.patch new file mode 100644 index 0000000000..147ef88517 --- /dev/null +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0106-WIP-arm64-dts-meson-radxa-zero2-add-pwm-fan-support.patch @@ -0,0 +1,64 @@ +From 9062cdb4dbeb80c7304afcad80e04ffda88d4171 Mon Sep 17 00:00:00 2001 +From: Christian Hewitt +Date: Mon, 30 Jan 2023 05:09:18 +0000 +Subject: [PATCH 106/111] WIP: 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 9a60c5ec2072..567a443356fe 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-0107-WIP-dt-bindings-arm-amlogic-add-support-for-Tanix-TX.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0107-WIP-dt-bindings-arm-amlogic-add-support-for-Tanix-TX.patch new file mode 100644 index 0000000000..384adc2d49 --- /dev/null +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0107-WIP-dt-bindings-arm-amlogic-add-support-for-Tanix-TX.patch @@ -0,0 +1,28 @@ +From 22928a71e2d41bef51e80fdd67ec19cc16f8dfef Mon Sep 17 00:00:00 2001 +From: Christian Hewitt +Date: Thu, 9 Feb 2023 09:59:58 +0000 +Subject: [PATCH 107/111] 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 cc0f1ac5f678..e76691082298 100644 +--- a/Documentation/devicetree/bindings/arm/amlogic.yaml ++++ b/Documentation/devicetree/bindings/arm/amlogic.yaml +@@ -139,6 +139,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-0108-WIP-arm64-dts-meson-add-initial-device-tree-for-Tani.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0108-WIP-arm64-dts-meson-add-initial-device-tree-for-Tani.patch new file mode 100644 index 0000000000..d9491e729b --- /dev/null +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0108-WIP-arm64-dts-meson-add-initial-device-tree-for-Tani.patch @@ -0,0 +1,139 @@ +From 2620626ca55c1956615b9300d412feb85eb9d550 Mon Sep 17 00:00:00 2001 +From: Christian Hewitt +Date: Thu, 9 Feb 2023 10:01:14 +0000 +Subject: [PATCH 108/111] 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 3f1b3e2f30f5..6a71a170b6f3 100644 +--- a/arch/arm64/boot/dts/amlogic/Makefile ++++ b/arch/arm64/boot/dts/amlogic/Makefile +@@ -77,6 +77,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-0109-WIP-arm64-dts-meson-add-7-segment-display-to-Tanix-T.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0109-WIP-arm64-dts-meson-add-7-segment-display-to-Tanix-T.patch new file mode 100644 index 0000000000..5f38fc8e93 --- /dev/null +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0109-WIP-arm64-dts-meson-add-7-segment-display-to-Tanix-T.patch @@ -0,0 +1,93 @@ +From b4d5c08601651db111c422e21d8c712fbc105704 Mon Sep 17 00:00:00 2001 +From: Christian Hewitt +Date: Thu, 9 Feb 2023 10:11:39 +0000 +Subject: [PATCH 109/111] WIP: arm64: dts: meson: add 7-segment display to + Tanix TX9 Pro + +Add support for the 7-segment VFD display of the device + +Signed-off-by: Christian Hewitt +--- + .../boot/dts/amlogic/meson-gxm-tx9-pro.dts | 59 +++++++++++++++++++ + 1 file changed, 59 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..2dcff00794b9 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,64 @@ button { + gpios = <&gpio_ao GPIOAO_2 GPIO_ACTIVE_LOW>; + }; + }; ++ ++ spi { ++ compatible = "spi-gpio"; ++ sck-gpios = <&gpio GPIODV_27 GPIO_ACTIVE_HIGH>; ++ mosi-gpios = <&gpio GPIODV_26 GPIO_ACTIVE_HIGH>; ++ cs-gpios = <&gpio GPIODV_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; ++ }; ++ }; ++ }; + }; + + ðmac { +-- +2.34.1 + diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0110-WIP-arm64-dts-meson-sml5442tw-add-cap-sdio-irq-to-pr.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0110-WIP-arm64-dts-meson-sml5442tw-add-cap-sdio-irq-to-pr.patch new file mode 100644 index 0000000000..5234ba3378 --- /dev/null +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0110-WIP-arm64-dts-meson-sml5442tw-add-cap-sdio-irq-to-pr.patch @@ -0,0 +1,62 @@ +From a45e8f0730dd6f9db8571056ab44a0619aa2bb5c Mon Sep 17 00:00:00 2001 +From: Christian Hewitt +Date: Sun, 12 Feb 2023 02:07:28 +0000 +Subject: [PATCH 110/111] WIP: arm64: dts: meson: sml5442tw: add cap-sdio-irq + to prevent SDIO issues + +The SDIO interrupt changes in 066ecde6d826 ("mmc: meson-gx: add SDIO interrupt +support") and subsequent fix in 66e45351f7d6 ("arm64: dts: meson-gx: Make mmc +host controller interrupts level-sensitive") still result in the QCA9377 SDIO +module on the SML5442 board failing to initialise: + +SML5442TW:~ # dmesg | grep ath10k + +[ 11.529545] ath10k_sdio mmc2:0001:1: qca9377 hw1.1 sdio target 0x05020001 chip_id 0x00000000 sub 0000:0000 +[ 11.529579] ath10k_sdio mmc2:0001:1: kconfig debug 0 debugfs 0 tracing 0 dfs 0 testmode 0 +[ 11.530109] ath10k_sdio mmc2:0001:1: firmware ver WLAN.TF.1.1.1-00061-QCATFSWPZ-1 api 5 features ignore-otp crc32 7746e551 +[ 11.709471] ath10k_sdio mmc2:0001:1: failed to fetch board data for bus=sdio,vendor=0271,device=0701,subsystem-vendor=0000,subsystem-device=0000 from ath10k/QCA9377/hw1.0/board-2.bin +[ 11.713685] ath10k_sdio mmc2:0001:1: board_file api 1 bmi_id N/A crc32 544289f7 +[ 13.030691] ath10k_sdio mmc2:0001:1: ignoring unsolicited htc ep0 event +[ 13.145651] ath10k_sdio mmc2:0001:1: rx underflow interrupt error +[ 14.148946] ath10k_sdio mmc2:0001:1: failed to receive control response completion, polling.. +[ 15.172824] ath10k_sdio mmc2:0001:1: ctl_resp never came in (-110) +[ 15.172854] ath10k_sdio mmc2:0001:1: failed to connect to HTC: -110 +[ 15.175891] ath10k_sdio mmc2:0001:1: could not init core (-110) +[ 15.266333] ath10k_sdio mmc2:0001:1: could not probe fw (-110) + +Adding "cap-sdio-irq" to sd_emmc_a allows the card to function correctly: + +SML5442TW:~ # dmesg | grep mmc +[ 11.671410] ath10k_sdio mmc2:0001:1: qca9377 hw1.1 sdio target 0x05020001 chip_id 0x00000000 sub 0000:0000 +[ 11.671445] ath10k_sdio mmc2:0001:1: kconfig debug 0 debugfs 0 tracing 0 dfs 0 testmode 0 +[ 11.671882] ath10k_sdio mmc2:0001:1: firmware ver WLAN.TF.1.1.1-00061-QCATFSWPZ-1 api 5 features ignore-otp crc32 7746e551 +[ 11.852520] ath10k_sdio mmc2:0001:1: failed to fetch board data for bus=sdio,vendor=0271,device=0701,subsystem-vendor=0000,subsystem-device=0000 from ath10k/QCA9377/hw1.0/board-2.bin +[ 11.888378] ath10k_sdio mmc2:0001:1: board_file api 1 bmi_id N/A crc32 544289f7 +[ 13.460079] ath10k_sdio mmc2:0001:1: htt-ver 3.32 wmi-op 4 htt-op 3 cal otp max-sta 32 raw 0 hwcrypto 1 + +Fixes: 066ecde6d826 ("mmc: meson-gx: add SDIO interrupt support") +Suggested-by: Geraldo Nascimento +Signed-off-by: Christian Hewitt +--- + arch/arm64/boot/dts/amlogic/meson-gxl-s905d-sml5442tw.dts | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/arch/arm64/boot/dts/amlogic/meson-gxl-s905d-sml5442tw.dts b/arch/arm64/boot/dts/amlogic/meson-gxl-s905d-sml5442tw.dts +index b331a013572f..30ac3852f83b 100644 +--- a/arch/arm64/boot/dts/amlogic/meson-gxl-s905d-sml5442tw.dts ++++ b/arch/arm64/boot/dts/amlogic/meson-gxl-s905d-sml5442tw.dts +@@ -67,6 +67,11 @@ &ir { + linux,rc-map-name = "rc-khamsin"; + }; + ++&sd_emmc_a { ++ /* QCA9377 */ ++ cap-sdio-irq; ++}; ++ + /* This is connected to the Bluetooth module: */ + &uart_A { + status = "okay"; +-- +2.34.1 + diff --git a/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0111-WIP-net-phy-add-support-for-Maxio-MAE0621A.patch b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0111-WIP-net-phy-add-support-for-Maxio-MAE0621A.patch new file mode 100644 index 0000000000..817b215faf --- /dev/null +++ b/projects/Amlogic/devices/AMLGX/patches/linux/amlogic-0111-WIP-net-phy-add-support-for-Maxio-MAE0621A.patch @@ -0,0 +1,358 @@ +From 2bde97fa0cbe4205874c0aa70cd5dc33fea63cb9 Mon Sep 17 00:00:00 2001 +From: Christian Hewitt +Date: Sun, 12 Feb 2023 10:45:54 +0000 +Subject: [PATCH 111/111] WIP: net: phy: add support for Maxio MAE0621A + +Maxio MAE0621A is the external PHY found in some Amlogic set-top box +devices based on the S905D chipset. + +Signed-off-by: Zhao Yang +Signed-off-by: Christian Hewitt +--- + .../net/ethernet/stmicro/stmmac/stmmac_main.c | 7 + + drivers/net/phy/Kconfig | 5 + + drivers/net/phy/Makefile | 1 + + drivers/net/phy/maxio.c | 257 ++++++++++++++++++ + drivers/net/phy/phy_device.c | 9 + + 5 files changed, 279 insertions(+) + create mode 100644 drivers/net/phy/maxio.c + +diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c +index 4bba0444c764..f94e8fba3c94 100644 +--- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c ++++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c +@@ -7476,6 +7476,8 @@ static void stmmac_reset_tx_queue(struct stmmac_priv *priv, u32 queue) + netdev_tx_reset_queue(netdev_get_tx_queue(priv->dev, queue)); + } + ++#define MAXIO_PHY_MAE0621A_ID 0x7b744411 ++ + /** + * stmmac_reset_queues_param - reset queue parameters + * @priv: device pointer +@@ -7552,6 +7554,11 @@ int stmmac_resume(struct device *dev) + stmmac_free_tx_skbufs(priv); + stmmac_clear_descriptors(priv, &priv->dma_conf); + ++ if (ndev->phydev->drv->config_init) { ++ if (ndev->phydev->phy_id == MAXIO_PHY_MAE0621A_ID) ++ ndev->phydev->drv->config_init(ndev->phydev); ++ } ++ + stmmac_hw_setup(ndev, false); + stmmac_init_coalesce(priv); + stmmac_set_rx_mode(ndev); +diff --git a/drivers/net/phy/Kconfig b/drivers/net/phy/Kconfig +index c57a0262fb64..e2a44d92f1d6 100644 +--- a/drivers/net/phy/Kconfig ++++ b/drivers/net/phy/Kconfig +@@ -287,6 +287,11 @@ config AT803X_PHY + Currently supports the AR8030, AR8031, AR8033, AR8035 and internal + QCA8337(Internal qca8k PHY) model + ++config MAXIO_PHY ++ tristate "MAXIO PHYs" ++ help ++ Supports the Maxio MAExxxx PHY. ++ + config QSEMI_PHY + tristate "Quality Semiconductor PHYs" + help +diff --git a/drivers/net/phy/Makefile b/drivers/net/phy/Makefile +index f7138d3c896b..11fbac4e4b6d 100644 +--- a/drivers/net/phy/Makefile ++++ b/drivers/net/phy/Makefile +@@ -67,6 +67,7 @@ obj-$(CONFIG_LXT_PHY) += lxt.o + obj-$(CONFIG_MARVELL_10G_PHY) += marvell10g.o + obj-$(CONFIG_MARVELL_PHY) += marvell.o + obj-$(CONFIG_MARVELL_88X2222_PHY) += marvell-88x2222.o ++obj-$(CONFIG_MAXIO_PHY) += maxio.o + obj-$(CONFIG_MAXLINEAR_GPHY) += mxl-gpy.o + obj-$(CONFIG_MEDIATEK_GE_PHY) += mediatek-ge.o + obj-$(CONFIG_MESON_GXL_PHY) += meson-gxl.o +diff --git a/drivers/net/phy/maxio.c b/drivers/net/phy/maxio.c +new file mode 100644 +index 000000000000..65cf2b1cc253 +--- /dev/null ++++ b/drivers/net/phy/maxio.c +@@ -0,0 +1,257 @@ ++/* +++ * drivers/net/phy/maxio.c +++ * +++ * Driver for maxio PHYs +++ * +++ * Author: Zhao Yang +++ * +++ * Copyright (c) 2004 maxio technology, Inc. +++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#define MAXIO_PAGE_SELECT 0x1f ++#define MAXIO_MAE0621A_INER 0x12 ++#define MAXIO_MAE0621A_INER_LINK_STATUS BIT(4) ++#define MAXIO_MAE0621A_INSR 0x1d ++#define MAXIO_MAE0621A_TX_DELAY (BIT(6)|BIT(7)) ++#define MAXIO_MAE0621A_RX_DELAY (BIT(4)|BIT(5)) ++#define MAXIO_MAE0621A_CLK_MODE_REG 0x02 ++#define MAXIO_MAE0621A_WORK_STATUS_REG 0x1d ++ ++ ++int maxio_read_paged(struct phy_device *phydev, int page, u32 regnum) ++{ ++ int ret = 0, oldpage; ++ ++ oldpage = phy_read(phydev, MAXIO_PAGE_SELECT); ++ if (oldpage >= 0) { ++ phy_write(phydev, MAXIO_PAGE_SELECT, page); ++ ret = phy_read(phydev, regnum); ++ } ++ phy_write(phydev, MAXIO_PAGE_SELECT, oldpage); ++ ++ return ret; ++} ++ ++int maxio_write_paged(struct phy_device *phydev, int page, u32 regnum, u16 val) ++{ ++ int ret = 0, oldpage; ++ ++ oldpage = phy_read(phydev, MAXIO_PAGE_SELECT); ++ if (oldpage >= 0) { ++ phy_write(phydev, MAXIO_PAGE_SELECT, page); ++ ret = phy_write(phydev, regnum, val); ++ } ++ phy_write(phydev, MAXIO_PAGE_SELECT, oldpage); ++ ++ return ret; ++} ++ ++static int maxio_mae0621a_clk_init(struct phy_device *phydev) ++{ ++ u32 workmode,clkmode,oldpage; ++ ++ oldpage = phy_read(phydev, MAXIO_PAGE_SELECT); ++ if (oldpage == 0xFFFF) { ++ oldpage = phy_read(phydev, MAXIO_PAGE_SELECT); ++ } ++ ++ /* soft reset */ ++ phy_write(phydev, MAXIO_PAGE_SELECT, 0x0); ++ phy_write(phydev, MII_BMCR, BMCR_RESET | phy_read(phydev, MII_BMCR)); ++ ++ /* get workmode */ ++ phy_write(phydev, MAXIO_PAGE_SELECT, 0xa43); ++ workmode = phy_read(phydev, MAXIO_MAE0621A_WORK_STATUS_REG); ++ ++ /* get clkmode */ ++ phy_write( phydev, MAXIO_PAGE_SELECT, 0xd92 ); ++ clkmode = phy_read( phydev, MAXIO_MAE0621A_CLK_MODE_REG ); ++ ++ /* abnormal */ ++ if (0 == (workmode&BIT(5))) { ++ if (0 == (clkmode&BIT(8))) { ++ /* oscillator */ ++ phy_write(phydev, 0x02, clkmode | BIT(8)); ++ printk("****maxio_mae0621a_clk_init**clkmode**0x210a: 0x%x\n", phydev->phy_id); ++ } else { ++ /* crystal */ ++ printk("****maxio_mae0621a_clk_init**clkmode**0x200a: 0x%x\n", phydev->phy_id); ++ phy_write(phydev, 0x02, clkmode &(~ BIT(8))); ++ } ++ } ++ phy_write(phydev, MAXIO_PAGE_SELECT, 0x0); ++ phy_write(phydev, MAXIO_PAGE_SELECT, oldpage); ++ ++ return 0; ++} ++ ++static int maxio_read_mmd(struct phy_device *phydev, int devnum, u16 regnum) ++{ ++ int ret = 0, oldpage; ++ oldpage = phy_read(phydev, MAXIO_PAGE_SELECT); ++ ++ if (devnum == MDIO_MMD_AN && regnum == MDIO_AN_EEE_ADV) { ++ /* eee info */ ++ phy_write(phydev, MAXIO_PAGE_SELECT ,0); ++ phy_write(phydev, 0xd, MDIO_MMD_AN); ++ phy_write(phydev, 0xe, MDIO_AN_EEE_ADV); ++ phy_write(phydev, 0xd, 0x4000 | MDIO_MMD_AN); ++ ret = phy_read(phydev, 0x0e); ++ } else { ++ ret = -EOPNOTSUPP; ++ } ++ phy_write(phydev, MAXIO_PAGE_SELECT, oldpage); ++ ++ return ret; ++} ++ ++static int maxio_write_mmd(struct phy_device *phydev, int devnum, u16 regnum, u16 val) ++{ ++ int ret = 0, oldpage; ++ oldpage = phy_read(phydev, MAXIO_PAGE_SELECT); ++ ++ if (devnum == MDIO_MMD_AN && regnum == MDIO_AN_EEE_ADV) { ++ /* eee info */ ++ phy_write(phydev, MAXIO_PAGE_SELECT ,0); ++ ret |= phy_write(phydev, 0xd, MDIO_MMD_AN); ++ ret |= phy_write(phydev, 0xe, MDIO_AN_EEE_ADV); ++ ret |= phy_write(phydev, 0xd, 0x4000 | MDIO_MMD_AN); ++ ret |= phy_write(phydev, 0xe, val); ++ msleep(100); ++ ret |= genphy_restart_aneg(phydev); ++ } else { ++ ret = -EOPNOTSUPP; ++ } ++ phy_write(phydev, MAXIO_PAGE_SELECT, oldpage); ++ ++ return ret; ++} ++ ++static int maxio_mae0621a_config_aneg(struct phy_device *phydev) ++{ ++ return genphy_config_aneg(phydev); ++} ++ ++static int maxio_mae0621a_config_init(struct phy_device *phydev) ++{ ++ struct device *dev = &phydev->mdio.dev; ++ u16 val; ++ int ret; ++ u32 broken = 0; ++ ++ maxio_mae0621a_clk_init(phydev); ++ ++ /* disable eee */ ++ printk("eee value: 0x%x \n",maxio_read_mmd(phydev, MDIO_MMD_AN, MDIO_AN_EEE_ADV)); ++ maxio_write_mmd(phydev, MDIO_MMD_AN, MDIO_AN_EEE_ADV, 0); ++ printk("eee value: 0x%x \n",maxio_read_mmd(phydev, MDIO_MMD_AN, MDIO_AN_EEE_ADV)); ++ broken |= MDIO_EEE_100TX; ++ broken |= MDIO_EEE_1000T; ++ phydev->eee_broken_modes = broken; ++ ++ /* enable auto_speed_down */ ++ ret = maxio_write_paged(phydev, 0xd8f, 0x0, 0x300 ); ++ ++ /* adjust tx/rx delay */ ++ switch (phydev->interface) { ++ case PHY_INTERFACE_MODE_RGMII: ++ val = 0x0; ++ break; ++ case PHY_INTERFACE_MODE_RGMII_ID: ++ val = MAXIO_MAE0621A_TX_DELAY | MAXIO_MAE0621A_RX_DELAY; ++ break; ++ case PHY_INTERFACE_MODE_RGMII_RXID: ++ val = MAXIO_MAE0621A_RX_DELAY; ++ break; ++ case PHY_INTERFACE_MODE_RGMII_TXID: ++ val = MAXIO_MAE0621A_TX_DELAY; ++ break; ++ default: ++ /* leave delays as-is. */ ++ goto delay_skip; ++ } ++ ++ ret = maxio_read_paged(phydev, 0xd96, 0x0); ++ ++ if (ret < 0) { ++ dev_err(dev, "Failed to update the TX delay register\n"); ++ return ret; ++ } ++ ret = maxio_write_paged(phydev, 0xd96, 0x0, val|ret ); ++ ++ if (ret < 0) { ++ dev_err(dev, "Failed to update the TX delay register\n"); ++ return ret; ++ } else if (ret == 0) { ++ dev_dbg(dev, ++ "2ns delay was already %s (by pin-strapping RXD1 or bootloader configuration)\n", ++ val ? "enabled" : "disabled"); ++ } ++delay_skip: ++ ++ phy_write(phydev, MII_BMCR, BMCR_RESET | phy_read(phydev, MII_BMCR)); ++ msleep(1); ++ phy_write(phydev, MAXIO_PAGE_SELECT, 0x0); ++ ++ return 0; ++} ++ ++static int maxio_mae0621a_resume(struct phy_device *phydev) ++{ ++ int ret = genphy_resume(phydev); ++ ++ ret |= phy_write(phydev, MII_BMCR, BMCR_RESET | phy_read(phydev, MII_BMCR)); ++ ++ msleep(20); ++ ++ return ret; ++} ++ ++int maxio_mae0621a_suspend(struct phy_device *phydev) ++{ ++ genphy_suspend(phydev); ++ phy_write(phydev, MAXIO_PAGE_SELECT ,0); ++ ++ return 0; ++} ++ ++static int maxio_mae0621a_status(struct phy_device *phydev) ++{ ++ return genphy_read_status(phydev); ++} ++ ++static int maxio_mae0621a_probe(struct phy_device *phydev) ++{ ++ int ret = maxio_mae0621a_clk_init(phydev); ++ mdelay(100); ++ return ret; ++} ++ ++static struct phy_driver maxio_nc_drvs[] = { ++ { ++ .phy_id = 0x7b744411, ++ .phy_id_mask = 0x7fffffff, ++ .name = "MAE0621A Gigabit Ethernet", ++ .features = PHY_GBIT_FEATURES, ++ .probe = maxio_mae0621a_probe, ++ .config_init = maxio_mae0621a_config_init, ++ .config_aneg = maxio_mae0621a_config_aneg, ++ .read_status = maxio_mae0621a_status, ++ .suspend = maxio_mae0621a_suspend, ++ .resume = maxio_mae0621a_resume, ++ }, ++}; ++ ++module_phy_driver(maxio_nc_drvs); ++ ++MODULE_DESCRIPTION("Maxio PHY Driver"); ++MODULE_AUTHOR("Zhao Yang "); ++MODULE_LICENSE("GPL"); +diff --git a/drivers/net/phy/phy_device.c b/drivers/net/phy/phy_device.c +index 8cff61dbc4b5..1867591622b3 100644 +--- a/drivers/net/phy/phy_device.c ++++ b/drivers/net/phy/phy_device.c +@@ -844,6 +844,15 @@ static int get_phy_c22_id(struct mii_bus *bus, int addr, u32 *phy_id) + { + int phy_reg; + ++#ifdef CONFIG_MAXIO_PHY ++ /* ++ * An MDIO connects to multiple PHYs requiring write before read. ++ * This operation does not affect one MDIO connected to a single PHY ++ * MII_PHYSID2 is a read-only register and writine to it has no effect ++ */ ++ mdiobus_write(bus,addr,MII_PHYSID2,0); ++#endif ++ + /* Grab the bits from PHYIR1, and put them in the upper half */ + phy_reg = mdiobus_read(bus, addr, MII_PHYSID1); + if (phy_reg < 0) { +-- +2.34.1 + diff --git a/projects/Amlogic/linux/linux.aarch64.conf b/projects/Amlogic/linux/linux.aarch64.conf index 5b9904b6db..7480d417b2 100644 --- a/projects/Amlogic/linux/linux.aarch64.conf +++ b/projects/Amlogic/linux/linux.aarch64.conf @@ -1,6 +1,6 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/arm64 6.1.3 Kernel Configuration +# Linux/arm64 6.1.11 Kernel Configuration # CONFIG_CC_VERSION_TEXT="aarch64-none-elf-gcc-12.2.0 (GCC) 12.2.0" CONFIG_CC_IS_GCC=y @@ -151,6 +151,7 @@ CONFIG_GENERIC_SCHED_CLOCK=y CONFIG_ARCH_SUPPORTS_NUMA_BALANCING=y CONFIG_CC_HAS_INT128=y CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5" +CONFIG_GCC11_NO_ARRAY_BOUNDS=y CONFIG_GCC12_NO_ARRAY_BOUNDS=y CONFIG_CC_NO_ARRAY_BOUNDS=y CONFIG_ARCH_SUPPORTS_INT128=y @@ -2050,7 +2051,7 @@ CONFIG_NET_VENDOR_REALTEK=y # CONFIG_NET_VENDOR_SOCIONEXT is not set CONFIG_NET_VENDOR_STMICRO=y CONFIG_STMMAC_ETH=y -# CONFIG_STMMAC_SELFTESTS is not set +CONFIG_STMMAC_SELFTESTS=y CONFIG_STMMAC_PLATFORM=y # CONFIG_DWMAC_DWC_QOS_ETH is not set CONFIG_DWMAC_GENERIC=y @@ -2096,15 +2097,16 @@ CONFIG_AX88796B_PHY=m # CONFIG_LXT_PHY is not set # CONFIG_INTEL_XWAY_PHY is not set # CONFIG_LSI_ET1011C_PHY is not set -# CONFIG_MARVELL_PHY is not set +CONFIG_MARVELL_PHY=y # CONFIG_MARVELL_10G_PHY is not set # CONFIG_MARVELL_88X2222_PHY is not set +CONFIG_MAXIO_PHY=y # CONFIG_MAXLINEAR_GPHY is not set # CONFIG_MEDIATEK_GE_PHY is not set -# CONFIG_MICREL_PHY is not set -CONFIG_MICROCHIP_PHY=m +CONFIG_MICREL_PHY=y +CONFIG_MICROCHIP_PHY=y # CONFIG_MICROCHIP_T1_PHY is not set -# CONFIG_MICROSEMI_PHY is not set +CONFIG_MICROSEMI_PHY=y # CONFIG_MOTORCOMM_PHY is not set # CONFIG_NATIONAL_PHY is not set # CONFIG_NXP_C45_TJA11XX_PHY is not set @@ -2148,6 +2150,7 @@ CONFIG_MDIO_GPIO=y # CONFIG_MDIO_BUS_MUX=y CONFIG_MDIO_BUS_MUX_MESON_G12A=y +CONFIG_MDIO_BUS_MUX_MESON_GXL=y CONFIG_MDIO_BUS_MUX_GPIO=y CONFIG_MDIO_BUS_MUX_MULTIPLEXER=y CONFIG_MDIO_BUS_MUX_MMIOREG=y @@ -2378,15 +2381,23 @@ CONFIG_RTL8XXXU=m CONFIG_RTL8XXXU_UNTESTED=y CONFIG_RTW88=m CONFIG_RTW88_CORE=m -CONFIG_RTW88_PCI=m +CONFIG_RTW88_SDIO=m +CONFIG_RTW88_USB=m CONFIG_RTW88_8822B=m CONFIG_RTW88_8822C=m CONFIG_RTW88_8723D=m CONFIG_RTW88_8821C=m -CONFIG_RTW88_8822BE=m -CONFIG_RTW88_8822CE=m -CONFIG_RTW88_8723DE=m -CONFIG_RTW88_8821CE=m +# CONFIG_RTW88_8822BE is not set +CONFIG_RTW88_8822BS=m +CONFIG_RTW88_8822BU=m +# CONFIG_RTW88_8822CE is not set +CONFIG_RTW88_8822CS=m +CONFIG_RTW88_8822CU=m +# CONFIG_RTW88_8723DE is not set +CONFIG_RTW88_8723DU=m +# CONFIG_RTW88_8821CE is not set +CONFIG_RTW88_8821CS=m +CONFIG_RTW88_8821CU=m # CONFIG_RTW88_DEBUG is not set # CONFIG_RTW88_DEBUGFS is not set # CONFIG_RTW89 is not set @@ -4883,6 +4894,7 @@ CONFIG_NINTENDO_FF=y # CONFIG_HID_NTI is not set # CONFIG_HID_NTRIG is not set CONFIG_HID_ORTEK=y +CONFIG_HID_OUYA=y CONFIG_HID_PANTHERLORD=y CONFIG_PANTHERLORD_FF=y CONFIG_HID_PENMOUNT=y @@ -5141,7 +5153,7 @@ 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 is not set +CONFIG_USB_ONBOARD_HUB=y # # USB Physical Layer drivers @@ -5204,9 +5216,13 @@ CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2 CONFIG_TYPEC=m CONFIG_TYPEC_TCPM=m -# CONFIG_TYPEC_TCPCI is not set +CONFIG_TYPEC_TCPCI=m +# CONFIG_TYPEC_RT1711H is not set +# CONFIG_TYPEC_TCPCI_MAXIM is not set CONFIG_TYPEC_FUSB302=m -# CONFIG_TYPEC_UCSI is not set +CONFIG_TYPEC_UCSI=m +# CONFIG_UCSI_CCG is not set +# CONFIG_UCSI_STM32G0 is not set # CONFIG_TYPEC_TPS6598X is not set # CONFIG_TYPEC_ANX7411 is not set # CONFIG_TYPEC_RT1719 is not set