linux-postmarketos-amlogic: add upstream MNT patches

The patches are altered to remove the noisy kernel messages.

By default they use KERN_ALERT, which is very intrusive.

Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6820
This commit is contained in:
Andrei Zisu 2025-07-24 00:04:47 +02:00 committed by Ferass El Hafidi
parent e1dd67402d
commit a2160a27b4
No known key found for this signature in database
GPG key ID: 84AFCBD0D7899A03
16 changed files with 647 additions and 1 deletions

View file

@ -0,0 +1,103 @@
From ab72f04662c6065a331924d9421b2b4c5707a35b Mon Sep 17 00:00:00 2001
From: Johannes Schauer Marin Rodrigues <josch@mister-muffin.de>
Date: Thu, 17 Apr 2025 17:44:55 +0200
Subject: [PATCH] meson-g12b-bananapi-cm4-mnt-reform2.dts: fix audio and
communication with LPC
---
.../meson-g12b-bananapi-cm4-mnt-reform2.dts | 37 ++++++++++++++-----
1 file changed, 28 insertions(+), 9 deletions(-)
diff --git a/arch/arm64/boot/dts/amlogic/meson-g12b-bananapi-cm4-mnt-reform2.dts b/arch/arm64/boot/dts/amlogic/meson-g12b-bananapi-cm4-mnt-reform2.dts
index 0f48c32bec97..5b105fcee657 100644
--- a/arch/arm64/boot/dts/amlogic/meson-g12b-bananapi-cm4-mnt-reform2.dts
+++ b/arch/arm64/boot/dts/amlogic/meson-g12b-bananapi-cm4-mnt-reform2.dts
@@ -79,10 +79,6 @@ sound {
"LINPUT1", "Mic Jack",
"Mic Jack", "MICB";
- clocks = <&clkc CLKID_MPLL2>,
- <&clkc CLKID_MPLL0>,
- <&clkc CLKID_MPLL1>;
-
assigned-clocks = <&clkc CLKID_MPLL2>,
<&clkc CLKID_MPLL0>,
<&clkc CLKID_MPLL1>;
@@ -197,14 +193,18 @@ backlight: backlight {
enable-gpios = <&gpio 58 GPIO_ACTIVE_HIGH>;
brightness-levels = <0 32 64 128 160 200 255>;
default-brightness-level = <6>;
+
+ status = "okay";
};
panel {
- compatible = "innolux,n125hce-gn1";
+ compatible = "innolux,n125hce-gn1-a311d", "simple-panel";
power-supply = <&reg_main_3v3>;
backlight = <&backlight>;
no-hpd;
+ status = "okay";
+
port {
panel_in: endpoint {
remote-endpoint = <&edp_bridge_out>;
@@ -217,6 +217,24 @@ clock_12288: clock_12288 {
#clock-cells = <0>;
clock-frequency = <12288000>;
};
+
+ spi {
+ compatible = "spi-gpio";
+ #address-cells = <0x1>;
+ ranges;
+
+ sck-gpios = <&gpio_ao GPIOAO_5 0>; // GPIOAO_5 / GPIO7
+ miso-gpios = <&gpio GPIOH_4 0>; // GPIOH_4 / GPIO5
+ mosi-gpios = <&gpio_ao GPIOAO_10 0>; // GPIOAO_10 / GPIO6
+ cs-gpios = <&gpio GPIOA_10 0>; // GPIOA_10 / GPIO4
+ num-chipselects = <1>;
+
+ spidev@0 {
+ compatible = "mntre,lpc11u24";
+ spi-max-frequency = <1000000>;
+ reg = <0>;
+ };
+ };
};
&mipi_analog_dphy {
@@ -281,6 +299,10 @@ &i2c0 {
status = "okay";
};
+&i2c2 {
+ status = "okay";
+};
+
&i2c3 {
status = "okay";
@@ -292,6 +314,7 @@ edp_bridge: bridge@2c {
vpll-supply = <&reg_main_1v8>;
vcca-supply = <&reg_main_1v2>;
vcc-supply = <&reg_main_1v2>;
+ burst-mode;
ports {
#address-cells = <1>;
@@ -314,10 +337,6 @@ edp_bridge_out: endpoint {
};
};
};
-};
-
-&i2c2 {
- status = "okay";
wm8960: codec@1a {
compatible = "wlf,wm8960";
--
2.49.0

View file

@ -0,0 +1,32 @@
From 62de193d8150578bf040bfee65db4bf0cf834cee Mon Sep 17 00:00:00 2001
From: Johannes Schauer Marin Rodrigues <josch@mister-muffin.de>
Date: Sat, 21 Dec 2024 17:54:09 +0100
Subject: [PATCH] Revert "drm/bridge: synopsys: dw-mipi-dsi: enable EoTp by
default"
This reverts commit d97e71e449373efbd2403f1d7a32d416599f32ac.
---
drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi.c | 7 +------
1 file changed, 1 insertion(+), 6 deletions(-)
diff --git a/drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi.c b/drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi.c
index 0fb02e4e7f4e..c4e9d96933dc 100644
--- a/drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi.c
+++ b/drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi.c
@@ -722,12 +722,7 @@ static void dw_mipi_dsi_dpi_config(struct dw_mipi_dsi *dsi,
static void dw_mipi_dsi_packet_handler_config(struct dw_mipi_dsi *dsi)
{
- u32 val = CRC_RX_EN | ECC_RX_EN | BTA_EN | EOTP_TX_EN;
-
- if (dsi->mode_flags & MIPI_DSI_MODE_NO_EOT_PACKET)
- val &= ~EOTP_TX_EN;
-
- dsi_write(dsi, DSI_PCKHDL_CFG, val);
+ dsi_write(dsi, DSI_PCKHDL_CFG, CRC_RX_EN | ECC_RX_EN | BTA_EN);
}
static void dw_mipi_dsi_video_packet_config(struct dw_mipi_dsi *dsi,
--
2.39.5

View file

@ -0,0 +1,32 @@
From 573d769372d0dd1b6e7199048764cd851a511750 Mon Sep 17 00:00:00 2001
From: "Lukas F. Hartmann" <lukas@mntre.com>
Date: Sun, 9 Jul 2023 23:02:47 +0200
Subject: [PATCH 11/21] dw-mipi-dsi-phy-stop-wait-time
---
drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
--- a/drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi.c
+++ b/drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi.c
@@ -605,8 +605,10 @@ static void dw_mipi_dsi_video_mode_confi
*/
val = ENABLE_LOW_POWER;
- if (dsi->mode_flags & MIPI_DSI_MODE_VIDEO_BURST)
+ if (dsi->mode_flags & MIPI_DSI_MODE_VIDEO_BURST) {
val |= VID_MODE_TYPE_BURST;
+ printk(KERN_DEBUG "dw-mipi-dsi: video mode type burst\n");
+ }
else if (dsi->mode_flags & MIPI_DSI_MODE_VIDEO_SYNC_PULSE)
val |= VID_MODE_TYPE_NON_BURST_SYNC_PULSES;
else
@@ -886,7 +888,7 @@ static void dw_mipi_dsi_dphy_interface_c
* stop wait time should be the maximum between host dsi
* and panel stop wait times
*/
- dsi_write(dsi, DSI_PHY_IF_CFG, PHY_STOP_WAIT_TIME(0x20) |
+ dsi_write(dsi, DSI_PHY_IF_CFG, PHY_STOP_WAIT_TIME(0x1) |
N_LANES(dsi->lanes));
}

View file

@ -0,0 +1,57 @@
From 6a51b0b4e1bae07da42ab82c41628c5ca1997c6f Mon Sep 17 00:00:00 2001
From: "Lukas F. Hartmann" <lukas@mntre.com>
Date: Sun, 9 Jul 2023 23:02:48 +0200
Subject: [PATCH 12/21] innolux-n125hce-gn1-timing-tweaks
---
drivers/gpu/drm/panel/panel-edp.c | 32 +++++++++++++++++++++++++++++++
1 file changed, 32 insertions(+)
--- a/drivers/gpu/drm/panel/panel-edp.c
+++ b/drivers/gpu/drm/panel/panel-edp.c
@@ -1318,6 +1318,35 @@ static const struct panel_desc innolux_n
},
};
+static const struct drm_display_mode innolux_n125hce_gn1_a311d_mode = {
+ //.clock = 162000, 70Hz
+ // wrong colors are only if this mismatches dtb assigned clock
+ .clock = 156000, // 68Hz
+ //.clock = 153600, // 65Hz (921.6mhz)
+ //.clock = 138780, // 59Hz (832.68mhz)
+ //.clock = 138780, // 59Hz (832.68mhz)
+ .hdisplay = 1920,
+ .hsync_start = 1920 + 40,
+ .hsync_end = 1920 + 40 + 40,
+ .htotal = 1920 + 40 + 40 + 80,
+ .vdisplay = 1080,
+ // a311d mipi dsi driver currently calculates these wrongly,
+ // so we have to work around that here
+ .vsync_start = 1080 + 1,
+ .vsync_end = 1080 + 1 + 4,
+ .vtotal = 1080 + 1 + 4 + 27,
+};
+
+static const struct panel_desc innolux_n125hce_gn1_a311d = {
+ .modes = &innolux_n125hce_gn1_a311d_mode,
+ .num_modes = 1,
+ .bpc = 8,
+ .size = {
+ .width = 276,
+ .height = 155,
+ },
+};
+
static const struct drm_display_mode innolux_p120zdg_bf1_mode = {
.clock = 206016,
.hdisplay = 2160,
@@ -1736,6 +1765,9 @@ static const struct of_device_id platfor
.compatible = "innolux,n125hce-gn1",
.data = &innolux_n125hce_gn1,
}, {
+ .compatible = "innolux,n125hce-gn1-a311d",
+ .data = &innolux_n125hce_gn1_a311d,
+ }, {
.compatible = "innolux,p120zdg-bf1",
.data = &innolux_p120zdg_bf1,
}, {

View file

@ -0,0 +1,25 @@
From f45675995ec2fab90adec43426039dd6ffda94a7 Mon Sep 17 00:00:00 2001
From: "Lukas F. Hartmann" <lukas@mntre.com>
Date: Sun, 9 Jul 2023 23:02:49 +0200
Subject: [PATCH 13/21] meson-viu-hold-fifo-lines
---
drivers/gpu/drm/meson/meson_viu.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/meson/meson_viu.c b/drivers/gpu/drm/meson/meson_viu.c
index cd399b0b7..119d00f23 100644
--- a/drivers/gpu/drm/meson/meson_viu.c
+++ b/drivers/gpu/drm/meson/meson_viu.c
@@ -441,7 +441,7 @@ void meson_viu_init(struct meson_drm *priv)
VIU_OSD_FIFO_LIMITS(2); /* fifo_lim: 2*16=32 */
if (meson_vpu_is_compatible(priv, VPU_COMPATIBLE_G12A))
- reg |= (VIU_OSD_BURST_LENGTH_32 | VIU_OSD_HOLD_FIFO_LINES(31));
+ reg |= (VIU_OSD_BURST_LENGTH_32 | VIU_OSD_HOLD_FIFO_LINES(4)); // FIXME altered
else
reg |= (VIU_OSD_BURST_LENGTH_64 | VIU_OSD_HOLD_FIFO_LINES(4));
--
2.40.0

View file

@ -0,0 +1,34 @@
From 46a66919ef279bace11147d89c373bc4440a6d5a Mon Sep 17 00:00:00 2001
From: "Lukas F. Hartmann" <lukas@mntre.com>
Date: Sun, 9 Jul 2023 23:02:50 +0200
Subject: [PATCH 14/21] meson-venc-sync.patch
---
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 3bf0d6e4f..0e9a9bb07 100644
--- a/drivers/gpu/drm/meson/meson_venc.c
+++ b/drivers/gpu/drm/meson/meson_venc.c
@@ -1711,7 +1711,7 @@ void meson_venc_mipi_dsi_mode_set(struct meson_drm *priv,
writel_relaxed(vavon_eline, priv->io_base + _REG(L_OEV1_VE_ADDR));
/* Hsync signal for TTL */
- if (mode->flags & DRM_MODE_FLAG_PHSYNC) {
+ if (mode->flags & DRM_MODE_FLAG_NHSYNC) {
writel_relaxed(hso_begin, priv->io_base + _REG(L_STH1_HS_ADDR));
writel_relaxed(hso_end, priv->io_base + _REG(L_STH1_HE_ADDR));
} else {
@@ -1724,7 +1724,7 @@ void meson_venc_mipi_dsi_mode_set(struct meson_drm *priv,
/* Vsync signal for TTL */
writel_relaxed(vso_begin, priv->io_base + _REG(L_STV1_HS_ADDR));
writel_relaxed(vso_end, priv->io_base + _REG(L_STV1_HE_ADDR));
- if (mode->flags & DRM_MODE_FLAG_PVSYNC) {
+ if (mode->flags & DRM_MODE_FLAG_NVSYNC) {
writel_relaxed(vso_bline, priv->io_base + _REG(L_STV1_VS_ADDR));
writel_relaxed(vso_eline, priv->io_base + _REG(L_STV1_VE_ADDR));
} else {
--
2.40.0

View file

@ -0,0 +1,22 @@
From 55cc68c56db6bb4b27bb7e52d63d37172dbfb51b Mon Sep 17 00:00:00 2001
From: "Lukas F. Hartmann" <lukas@mntre.com>
Date: Sun, 9 Jul 2023 23:02:51 +0200
Subject: [PATCH 15/21] meson-dw-mipi-dsi-sync-invert
---
drivers/gpu/drm/meson/meson_dw_mipi_dsi.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
--- a/drivers/gpu/drm/meson/meson_dw_mipi_dsi.c
+++ b/drivers/gpu/drm/meson/meson_dw_mipi_dsi.c
@@ -129,7 +129,9 @@ static int dw_mipi_dsi_phy_init(void *pr
FIELD_PREP(MIPI_DSI_TOP_IN_COLOR_MODE, venc_data_width) |
FIELD_PREP(MIPI_DSI_TOP_COMP2_SEL, 2) |
FIELD_PREP(MIPI_DSI_TOP_COMP1_SEL, 1) |
- FIELD_PREP(MIPI_DSI_TOP_COMP0_SEL, 0),
+ FIELD_PREP(MIPI_DSI_TOP_COMP0_SEL, 0) |
+ (mipi_dsi->mode->flags & DRM_MODE_FLAG_NHSYNC ? 0 : MIPI_DSI_TOP_HSYNC_INVERT) |
+ (mipi_dsi->mode->flags & DRM_MODE_FLAG_NVSYNC ? 0 : MIPI_DSI_TOP_VSYNC_INVERT),
mipi_dsi->base + MIPI_DSI_TOP_CNTL);
return phy_configure(mipi_dsi->phy, &mipi_dsi->phy_opts);

View file

@ -0,0 +1,22 @@
From 6d6b45ed6cdf1ed5c2efcd05019cea4a1df0a962 Mon Sep 17 00:00:00 2001
From: "Lukas F. Hartmann" <lukas@mntre.com>
Date: Sun, 9 Jul 2023 23:02:51 +0200
Subject: [PATCH 16/21] sn65dsi86-burst-mode-support
---
drivers/gpu/drm/bridge/ti-sn65dsi86.c | 4 ++++
1 file changed, 4 insertions(+)
--- a/drivers/gpu/drm/bridge/ti-sn65dsi86.c
+++ b/drivers/gpu/drm/bridge/ti-sn65dsi86.c
@@ -722,6 +722,10 @@ static int ti_sn_attach_host(struct auxi
dsi->lanes = 4;
dsi->format = MIPI_DSI_FMT_RGB888;
dsi->mode_flags = MIPI_DSI_MODE_VIDEO;
+ if (of_property_read_bool(pdata->dev->of_node, "burst-mode")) {
+ dsi->mode_flags |= MIPI_DSI_MODE_VIDEO_BURST;
+ printk(KERN_DEBUG "ti_sn65dsi86: burst mode enabled\n");
+ };
/* For i.MX8MP / Samsung DSIM Host, don't guess the HS rate, but read it from DTS */
if (of_device_is_compatible(pdata->host_node, "fsl,imx8mp-mipi-dsim")) {

View file

@ -0,0 +1,61 @@
From 87c72ab5cd34dfa5fe1c91c475e5b6d4b8e1aad6 Mon Sep 17 00:00:00 2001
From: "Lukas F. Hartmann" <lukas@mntre.com>
Date: Sun, 17 Sep 2023 17:43:10 +0200
Subject: [PATCH 18/21] sn65dsi86-never-turn-off
---
drivers/gpu/drm/bridge/ti-sn65dsi86.c | 15 +++++++++++++++
1 file changed, 15 insertions(+)
--- a/drivers/gpu/drm/bridge/ti-sn65dsi86.c
+++ b/drivers/gpu/drm/bridge/ti-sn65dsi86.c
@@ -347,6 +347,9 @@ static void ti_sn65dsi86_disable_comms(s
{
mutex_lock(&pdata->comms_mutex);
+
+ return;
+
pdata->comms_enabled = false;
clk_disable_unprepare(pdata->refclk);
@@ -387,6 +390,9 @@ static int __maybe_unused ti_sn65dsi86_s
struct ti_sn65dsi86 *pdata = dev_get_drvdata(dev);
int ret;
+ printk(KERN_DEBUG "ti_sn65dsi86: suspend skipped\n");
+ return 0;
+
if (pdata->refclk)
ti_sn65dsi86_disable_comms(pdata);
@@ -820,6 +826,9 @@ static void ti_sn_bridge_atomic_disable(
{
struct ti_sn65dsi86 *pdata = bridge_to_ti_sn65dsi86(bridge);
+ printk(KERN_DEBUG "ti_sn65dsi86: atomic disable skipped\n");
+ return;
+
/* disable video stream */
regmap_update_bits(pdata->regmap, SN_ENH_FRAME_REG, VSTREAM_ENABLE, 0);
}
@@ -1185,6 +1194,9 @@ static void ti_sn_bridge_atomic_post_dis
{
struct ti_sn65dsi86 *pdata = bridge_to_ti_sn65dsi86(bridge);
+ printk(KERN_DEBUG "ti_sn65dsi86: atomic_post_disable skipped\n");
+ return;
+
/* semi auto link training mode OFF */
regmap_write(pdata->regmap, SN_ML_TX_MODE_REG, 0);
/* Num lanes to 0 as per power sequencing in data sheet */
@@ -1871,6 +1883,9 @@ static inline void ti_sn_gpio_unregister
static void ti_sn65dsi86_runtime_disable(void *data)
{
+
+ return;
+
pm_runtime_dont_use_autosuspend(data);
pm_runtime_disable(data);
}

View file

@ -0,0 +1,52 @@
From 2c1b731fb890ac217152a62ea524c2e7ee10e05e Mon Sep 17 00:00:00 2001
From: Anssi Hannula <anssi.hannula@iki.fi>
Date: Sun, 17 Apr 2022 04:37:48 +0000
Subject: [PATCH 20/21] 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
internal PCM device numbers. This causes userspace to not see the
actual channel mapping.
Affected devices include LibreTech LePotato and Wetek Play 2.
The proper fix would be not create these kctls for internal PCMs and
instead create them for the real userspace-visible PCMs, somehow
forwarding the controls between the HDMI codec and the real PCM.
As a workaround, simply use device=0 for all channel map controls and
SoC HDMI codec controls for internal PCM devices.
Signed-off-by: Anssi Hannula <anssi.hannula@iki.fi>
---
sound/core/pcm_lib.c | 5 ++++-
sound/soc/codecs/hdmi-codec.c | 3 ++-
2 files changed, 6 insertions(+), 2 deletions(-)
--- a/sound/core/pcm_lib.c
+++ b/sound/core/pcm_lib.c
@@ -2547,7 +2547,10 @@ int snd_pcm_add_chmap_ctls(struct snd_pc
knew.name = "Playback Channel Map";
else
knew.name = "Capture Channel Map";
- knew.device = pcm->device;
+ if (pcm->internal && pcm->device)
+ dev_info(pcm->card->dev, "workaround active: internal PCM chmap controls mapped to device 0\n");
+ else
+ knew.device = pcm->device;
knew.count = pcm->streams[stream].substream_count;
knew.private_value = private_value;
info->kctl = snd_ctl_new1(&knew, info);
--- a/sound/soc/codecs/hdmi-codec.c
+++ b/sound/soc/codecs/hdmi-codec.c
@@ -801,7 +801,8 @@ static int hdmi_codec_pcm_new(struct snd
if (!kctl)
return -ENOMEM;
- kctl->id.device = rtd->pcm->device;
+ if (!rtd->pcm->internal)
+ kctl->id.device = rtd->pcm->device;
ret = snd_ctl_add(rtd->card->snd_card, kctl);
if (ret < 0)
return ret;

View file

@ -0,0 +1,33 @@
From 25b84eeff0c5013366821e82654313d591609c57 Mon Sep 17 00:00:00 2001
From: Stefan Agner <stefan@agner.ch>
Date: Wed, 15 Sep 2021 05:00:45 +0000
Subject: [PATCH 21/21] HACK: of: partial revert of fdt.c changes
This resolves reports similar to the below which are present in dmesg
since Linux 5.10; which are also causing crashes in some distros:
[ 0.000000] OF: fdt: Reserved memory: failed to reserve memory for node 'secmon@5000000': base 0x0000000005000000, size 3 MiB
Signed-off-by: Christian Hewitt <christianshewitt@gmail.com>
---
drivers/of/fdt.c | 9 ---------
1 file changed, 9 deletions(-)
--- a/drivers/of/of_reserved_mem.c
+++ b/drivers/of/of_reserved_mem.c
@@ -82,15 +82,6 @@ static int __init early_init_dt_reserve_
phys_addr_t size, bool nomap)
{
if (nomap) {
- /*
- * If the memory is already reserved (by another region), we
- * should not allow it to be marked nomap, but don't worry
- * if the region isn't memory as it won't be mapped.
- */
- if (memblock_overlaps_region(&memblock.memory, base, size) &&
- memblock_is_region_reserved(base, size))
- return -EBUSY;
-
return memblock_mark_nomap(base, size);
}
return memblock_reserve(base, size);

View file

@ -0,0 +1,31 @@
From a38d90dab271fd9911cf338e2693fd608744d9f7
From: Lukas F. Hartmann <lukas@mntre.com>
Subject: add-bt-and-eth-resets
Date: Tue Nov 12 03:00:14 2024 +0100
diff --git a/arch/arm64/boot/dts/amlogic/meson-g12b-bananapi-cm4.dtsi b/arch/arm64/boot/dts/amlogic/meson-g12b-bananapi-cm4.dtsi
index 97e5229..d1435a3 100644
--- a/arch/arm64/boot/dts/amlogic/meson-g12b-bananapi-cm4.dtsi
+++ b/arch/arm64/boot/dts/amlogic/meson-g12b-bananapi-cm4.dtsi
@@ -211,6 +211,11 @@ &ethmac {
pinctrl-names = "default";
phy-mode = "rgmii-txid";
phy-handle = <&external_phy>;
+
+ /* This is only a partial fix; ethernet only works reliably after a reload
+ of the mdio, dwmac, stmmac etc modules */
+ snps,reset-gpio = <&gpio GPIOZ_15 (GPIO_ACTIVE_LOW | GPIO_OPEN_DRAIN)>;
+ snps,reset-delays-us = <0 1000000 2000000>;
};
&frddr_a {
@@ -369,8 +374,7 @@ &uart_A {
bluetooth {
compatible = "realtek,rtl8822cs-bt";
- enable-gpios = <&gpio GPIOX_17 GPIO_ACTIVE_HIGH>;
- host-wake-gpios = <&gpio GPIOX_19 GPIO_ACTIVE_HIGH>;
+ enable-gpios = <&gpio GPIOX_19 GPIO_ACTIVE_HIGH>;
device-wake-gpios = <&gpio GPIOX_18 GPIO_ACTIVE_HIGH>;
};
};

View file

@ -0,0 +1,33 @@
From a38d90dab271fd9911cf338e2693fd608744d9f7
From: Lukas F. Hartmann <lukas@mntre.com>
Subject: sdio-improve-wifi-speed
Date: Tue Nov 12 03:00:14 2024 +0100
--- a/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi
+++ b/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi
@@ -937,17 +937,22 @@
};
sdio_pins: sdio {
- mux {
+ mux-0 {
groups = "sdio_d0",
"sdio_d1",
"sdio_d2",
"sdio_d3",
- "sdio_clk",
"sdio_cmd";
function = "sdio";
- bias-disable;
+ bias-pull-up;
drive-strength-microamp = <4000>;
};
+
+ mux-1 {
+ groups = "sdio_clk";
+ function = "sdio";
+ bias-disable;
+ };
};
sdio_clk_gate_pins: sdio_clk_gate {

View file

@ -0,0 +1,44 @@
From a38d90dab271fd9911cf338e2693fd608744d9f7
From: Lukas F. Hartmann <lukas@mntre.com>
Subject: sdio-improve-wifi-speed
Date: Tue Nov 12 03:00:14 2024 +0100
diff --git a/arch/arm64/boot/dts/amlogic/meson-g12b-bananapi-cm4.dtsi b/arch/arm64/boot/dts/amlogic/meson-g12b-bananapi-cm4.dtsi
index 5805bc9..144d68b 100644
--- a/arch/arm64/boot/dts/amlogic/meson-g12b-bananapi-cm4.dtsi
+++ b/arch/arm64/boot/dts/amlogic/meson-g12b-bananapi-cm4.dtsi
@@ -31,6 +31,7 @@ sdio_pwrseq: sdio-pwrseq {
reset-gpios = <&gpio GPIOAO_6 GPIO_ACTIVE_LOW>;
clocks = <&wifi32k>;
clock-names = "ext_clock";
+ post-power-on-delay-ms = <200>;
};
emmc_1v8: regulator-emmc-1v8 {
@@ -299,19 +300,24 @@ &sd_emmc_a {
#size-cells = <0>;
bus-width = <4>;
+ cap-sd-highspeed;
+ sd-uhs-sdr50;
sd-uhs-sdr104;
- max-frequency = <50000000>;
+ max-frequency = <100000000>;
non-removable;
disable-wp;
+ /* apparently DRAM quirk is not needed on modern A311D chips */
+ /delete-property/ amlogic,dram-access-quirk;
+
/* WiFi firmware requires power in suspend */
keep-power-in-suspend;
mmc-pwrseq = <&sdio_pwrseq>;
vmmc-supply = <&vddao_3v3>;
- vqmmc-supply = <&vddao_3v3>;
+ vqmmc-supply = <&vddao_1v8>;
status = "okay";

View file

@ -0,0 +1,35 @@
From 5880cab67e4b3f6ab40fd6f3477bd16f6eb329cf
From: Lukas F. Hartmann <lukas@mntre.com>
Subject: WORKAROUND-meson-plane-disable-afbc-32x8
Date: Sat Mar 22 14:48:13 2025 +0100
meson_plane: disable AFBC 32x8 support
Since mesa/panfrost has turned on 32x8 AFBC compression for Mali-G52 we are getting missed frames/syncs on our A311D MNT Reforms and Pocket Reforms. While the problem is investigated, we turn off this compression format in the display pipeline for this SoC, so we don't have to patch mesa.
Debian bug: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1099032
Mesa bug: https://gitlab.freedesktop.org/mesa/mesa/-/issues/12718
diff --git a/drivers/gpu/drm/meson/meson_plane.c b/drivers/gpu/drm/meson/meson_plane.c
index b43ac61..ba6331f 100644
--- a/drivers/gpu/drm/meson/meson_plane.c
+++ b/drivers/gpu/drm/meson/meson_plane.c
@@ -508,18 +508,6 @@ static const uint64_t format_modifiers_afbc_g12a[] = {
AFBC_FORMAT_MOD_YTR |
AFBC_FORMAT_MOD_SPARSE |
AFBC_FORMAT_MOD_SPLIT),
- DRM_FORMAT_MOD_ARM_AFBC(AFBC_FORMAT_MOD_BLOCK_SIZE_32x8 |
- AFBC_FORMAT_MOD_SPARSE),
- DRM_FORMAT_MOD_ARM_AFBC(AFBC_FORMAT_MOD_BLOCK_SIZE_32x8 |
- AFBC_FORMAT_MOD_YTR |
- AFBC_FORMAT_MOD_SPARSE),
- DRM_FORMAT_MOD_ARM_AFBC(AFBC_FORMAT_MOD_BLOCK_SIZE_32x8 |
- AFBC_FORMAT_MOD_SPARSE |
- AFBC_FORMAT_MOD_SPLIT),
- DRM_FORMAT_MOD_ARM_AFBC(AFBC_FORMAT_MOD_BLOCK_SIZE_32x8 |
- AFBC_FORMAT_MOD_YTR |
- AFBC_FORMAT_MOD_SPARSE |
- AFBC_FORMAT_MOD_SPLIT),
DRM_FORMAT_MOD_LINEAR,
DRM_FORMAT_MOD_INVALID,
};

View file

@ -4,7 +4,7 @@
# Co-Maintainer: exkc <exxxxkc@getgoogleoff.me>
pkgname=linux-postmarketos-amlogic
pkgver=6.12.23
pkgrel=2
pkgrel=4
pkgdesc="Mainline kernel for Amlogic devices"
arch="aarch64"
_carch="arm64"
@ -40,6 +40,21 @@ source="
0004-dt-bindings-arm-amlogic-add-S805Y-and-Mi-TV-Stick.patch
0005-arm64-dts-amlogic-add-support-for-xiaomi-aquaman-Mi-.patch
0006-arm64-dts-amlogic-xiaomi-aquaman-revert-to-the-old-PWM-binding.patch
0007-meson-g12b-bananapi-cm4-mnt-reform2.dts-fix-audio-an.patch
0008-Revert-drm-bridge-synopsys-dw-mipi-dsi-enable-EoTp-b.patch
0009-dw-mipi-dsi-phy-stop-wait-time.patch
0010-innolux-n125hce-gn1-timing-tweaks.patch
0011-meson-viu-hold-fifo-lines.patch
0012-meson-venc-sync.patch.patch
0013-meson-dw-mipi-dsi-sync-invert.patch
0014-sn65dsi86-burst-mode-support.patch
0015-sn65dsi86-never-turn-off.patch
0016-LOCAL-ALSA-Assign-internal-PCM-chmap-ELD-IEC958-kctl.patch
0017-HACK-of-partial-revert-of-fdt.c-changes.patch
0018-add-bt-and-eth-resets.patch
0019-sdio-pullups.patch
0020-sdio-improve-wifi-speed.patch
0021-WORKAROUND-meson-plane-disable-afbc-32x8.patch
"
builddir="$srcdir/linux-$pkgver"
@ -76,4 +91,19 @@ c972c81f985c5470d4c1b4642214f9ddcb49cecbf1e6a99e52a24ce480d06d7ee7ca7f0dcee7bc4f
f49836388fedb8adf93a8b619c701eb13b6c96736a6293f91ec7f6a2286ecd54eaee6fd90d8872652cea12c2fc1f90473a73bfb8038edd77d94baa2e921e35c5 0004-dt-bindings-arm-amlogic-add-S805Y-and-Mi-TV-Stick.patch
d7c1f097b32d201893942d7eb4541c5f1c17e998006c6c20501f4ab9c7c3f6bf6567658f15d1c6587d9ef31534fea296e6bec539d51bddb4615939b4c0da7b51 0005-arm64-dts-amlogic-add-support-for-xiaomi-aquaman-Mi-.patch
a080d357c9870ffe936d41cef757e2b717d97c4593332fa8682476dc0791d07af59e2de74935bde68485ffae9554a39084151b3f1877cdf320d631dec72f735c 0006-arm64-dts-amlogic-xiaomi-aquaman-revert-to-the-old-PWM-binding.patch
f1a3f10c67f491758bbaa2922b3acc84e2abee432ae22a39cb4081c9cea71792c5c740c57df93740e4b9756755e0e32583d23a93485933aeddb01c1d85eb4ccc 0007-meson-g12b-bananapi-cm4-mnt-reform2.dts-fix-audio-an.patch
fb34099eefaf51b7bb36d7eca3c6130d7b23760250be8934341e93656d9315a099a243cbb02c9ed572dd76bf9017016b76aa1a8c03e867273f8ff4c3e7b3c9cb 0008-Revert-drm-bridge-synopsys-dw-mipi-dsi-enable-EoTp-b.patch
00e257c1271fb9bfdb3cb3d61693e4226ec64cf7f168b19c504744c22844776f45e72005ec4def46450315ee71edfb5c762b323dad97df61c1106b835e91c372 0009-dw-mipi-dsi-phy-stop-wait-time.patch
d9cf2556bc705a42088cdcb42f0dce4e32307e1315a53b68e7177e040848bfe51fce5c943be0a0ad3c19051fcc77ae2c8b04591034cf4c3c80c521471028be48 0010-innolux-n125hce-gn1-timing-tweaks.patch
5df1e7f7b53c0a0246bc5bef185ee542ef249eb699013cee65f7a2b9a7aec449677750a58b9d8b6b0b3935d04a8fcf6a7e55341a5f87a0d356d7d10ed857c83c 0011-meson-viu-hold-fifo-lines.patch
4ff6c694f1ed8281ce8309f2920f069510e61e23f44e3c21578e34964cdb94758db497d3bde2dae177f9e591a14cebed8adb87e7b91673b72633cbde41729f40 0012-meson-venc-sync.patch.patch
04739b5df9dcf319a31a2229dd0294f8c62385a30705fc722b99888e194f335b63ec4da36131a80dab3aecfb65e1100a942ff8d064dc9c91206b3762e83602ad 0013-meson-dw-mipi-dsi-sync-invert.patch
c0723efa41e9cce210ebefebc6c44b42e858be91006dac6305ddce11659e4e34a2231951215e3a76ad37fabd8e5e027f6662043757c2917601c24777a092e363 0014-sn65dsi86-burst-mode-support.patch
1b38e2dab7506826a3eb5965c1d24f55b781612f2781110c8c45b6882215c8be18f54b4c4e4ee198ff768a695097ab42d3a91f9f2545a1b870f9880d9342cebb 0015-sn65dsi86-never-turn-off.patch
f84cc1b22c0d10ac3c88dd9330d4a73ac903a13462298653c4ffb2c4c8dc4618fd7c2d635376d3d9a0d1a068465731b9220c5f24fdf890940203dc5d0b02d304 0016-LOCAL-ALSA-Assign-internal-PCM-chmap-ELD-IEC958-kctl.patch
d21d3ac5e7e86e8df1b7634fa4f3ebaab47aaced021ec034d84f9478ee986707360db413d81b9f16840a705d70f446618564e31ca22d193ed9f0392f2032caef 0017-HACK-of-partial-revert-of-fdt.c-changes.patch
d472a143ede616698627fe3992b8537fab17fecc304a6aa2ebfa545713c88c8ef390fe25a0fdee7cebc0334d29d7df58785095e753546a75645fa9029afdc731 0018-add-bt-and-eth-resets.patch
9dc9a728bed858b5587a603fd0d31181d91755a3d2685ebe514195705c30474df43efc7bbe53b84615713192df7cc7593ee7d5c38b9c3f8d2d13c609b320a04c 0019-sdio-pullups.patch
f6fb37ac0aa876f8d95ed598be20263417d8522a3c1f48a4ce148f95e6c6774664048064f4a96ff7f90ba3b4f71695ba8c51df2da3310bb820f627991d288851 0020-sdio-improve-wifi-speed.patch
3d38202c1b5b56f25c16664924b72e6041e7911e71985a028b91c7151758659a2e662009c06342a0fddd8d829df03d6feb8ee929c550fde74a16f955cb01ae30 0021-WORKAROUND-meson-plane-disable-afbc-32x8.patch
"