meson64-6.19: rework patches for 6.19-rc1

- fix jethome
- fix socinfo patch, re-enable another
- seems like no longer needed, upstream code has changed
- disable more breaking patches. Buildable state
- remove upstreamed patch
- adjust patching_config kernel versions
This commit is contained in:
EvilOlaf 2025-12-14 15:10:24 +00:00 committed by Ricardo Pardini
parent 6467d998a4
commit 7161c9cbb1
6 changed files with 14 additions and 133 deletions

View File

@ -1,10 +1,10 @@
config:
# Just some info stuff; not used by the patching scripts
name: meson64-6.7
name: meson64-6.19
kind: kernel
type: mainline # or: vendor
branch: linux-6.7.y
branch: linux-6.19.y
last-known-good-tag: v6.7.0
maintainers:
- { github: rpardini, name: Ricardo Pardini, email: ricardo@pardini.net, armbian-forum: rpardini }

View File

@ -1,38 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Qinglang Miao <miaoqinglang@huawei.com>
Date: Sat, 28 Nov 2020 16:10:04 +0000
Subject: drm/panfrost: fix reference leak in panfrost_job_hw_submit
pm_runtime_get_sync will increment pm usage counter even it
failed. Forgetting to putting operation will result in a
reference leak here.
A new function pm_runtime_resume_and_get is introduced in
[0] to keep usage counter balanced. So We fix the reference
leak by replacing it with new funtion.
[0] dd8088d5a896 ("PM: runtime: Add pm_runtime_resume_and_get to deal with usage counter")
Fixes: f3ba91228e8e ("drm/panfrost: Add initial panfrost driver")
Reported-by: Hulk Robot <hulkci@huawei.com>
Signed-off-by: Qinglang Miao <miaoqinglang@huawei.com>
---
drivers/gpu/drm/panfrost/panfrost_job.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/panfrost/panfrost_job.c b/drivers/gpu/drm/panfrost/panfrost_job.c
index 111111111111..222222222222 100644
--- a/drivers/gpu/drm/panfrost/panfrost_job.c
+++ b/drivers/gpu/drm/panfrost/panfrost_job.c
@@ -205,7 +205,7 @@ static void panfrost_job_hw_submit(struct panfrost_job *job, int js)
panfrost_devfreq_record_busy(&pfdev->pfdevfreq);
- ret = pm_runtime_get_sync(pfdev->dev);
+ ret = pm_runtime_resume_and_get(pfdev->dev);
if (ret < 0)
return;
--
Armbian

View File

@ -164,14 +164,13 @@ index 111111111111..222222222222 100644
*/
#include <linux/io.h>
@@ -12,130 +12,10 @@
#include <linux/platform_device.h>
@@ -13,137 +13,11 @@
#include <linux/slab.h>
#include <linux/sys_soc.h>
-#include <linux/bitfield.h>
#include <linux/bitfield.h>
#include <linux/regmap.h>
#include <linux/mfd/syscon.h>
-
-#define AO_SEC_SD_CFG8 0xe0
-#define AO_SEC_SOCINFO_OFFSET AO_SEC_SD_CFG8
-
@ -202,6 +201,9 @@ index 111111111111..222222222222 100644
- { "A5", 0x3c },
- { "C3", 0x3d },
- { "A4", 0x40 },
- { "S7", 0x46 },
- { "S7D", 0x47 },
- { "S6", 0x48 },
-};
-
-static const struct meson_gx_package_id {
@ -242,6 +244,9 @@ index 111111111111..222222222222 100644
- { "A311D2", 0x36, 0x1, 0xf },
- { "A113X2", 0x3c, 0x1, 0xf },
- { "A113L2", 0x40, 0x1, 0xf },
- { "S805X3", 0x46, 0x3, 0xf },
- { "S905X5M", 0x47, 0x1, 0xf },
- { "S905X5", 0x48, 0x1, 0xf },
-};
-
-static inline unsigned int socinfo_to_major(u32 socinfo)
@ -296,6 +301,8 @@ index 111111111111..222222222222 100644
static int __init meson_gx_socinfo_init(void)
{
struct soc_device_attribute *soc_dev_attr;
struct soc_device *soc_dev;
@@ -143,7 +23,7 @@ static int __init meson_gx_socinfo_init(void)
struct soc_device *soc_dev;
struct device_node *np;

View File

@ -55,7 +55,7 @@ index 111111111111..222222222222 100644
+ dev_warn(pc->dev, "no more irq for pin[%d]\n", gpio);
+ return -EINVAL;
+ }
+ fwspec.fwnode = of_node_to_fwnode(pc->of_irq);
+ fwspec.fwnode = of_fwnode_handle(pc->of_irq);
+ fwspec.param_count = 2;
+ fwspec.param[0] = hwirq;
+ fwspec.param[1] = IRQ_TYPE_NONE;

View File

@ -1,88 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Ricardo Pardini <ricardo@pardini.net>
Date: Mon, 3 Nov 2025 21:02:03 +0100
Subject: 6.18-rc4: temporary fixes for pcie probe failure due to ASPM stuff
- https://lore.kernel.org/linux-amlogic/20251031161323.GA1688975@bhelgaas/
- https://lists.infradead.org/pipermail/linux-amlogic/2025-November/025692.html
---
arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi | 2 +-
drivers/pci/controller/dwc/pci-meson.c | 42 +---------
2 files changed, 5 insertions(+), 39 deletions(-)
diff --git a/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi b/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi
index 111111111111..222222222222 100644
--- a/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi
+++ b/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi
@@ -138,7 +138,7 @@ pcie: pcie@fc000000 {
reg = <0x0 0xfc000000 0x0 0x400000>,
<0x0 0xff648000 0x0 0x2000>,
<0x0 0xfc400000 0x0 0x200000>;
- reg-names = "elbi", "cfg", "config";
+ reg-names = "dbi", "cfg", "config";
interrupts = <GIC_SPI 221 IRQ_TYPE_LEVEL_HIGH>;
#interrupt-cells = <1>;
interrupt-map-mask = <0 0 0 0>;
diff --git a/drivers/pci/controller/dwc/pci-meson.c b/drivers/pci/controller/dwc/pci-meson.c
index 111111111111..222222222222 100644
--- a/drivers/pci/controller/dwc/pci-meson.c
+++ b/drivers/pci/controller/dwc/pci-meson.c
@@ -109,10 +109,6 @@ static int meson_pcie_get_mems(struct platform_device *pdev,
{
struct dw_pcie *pci = &mp->pci;
- pci->dbi_base = devm_platform_ioremap_resource_byname(pdev, "elbi");
- if (IS_ERR(pci->dbi_base))
- return PTR_ERR(pci->dbi_base);
-
mp->cfg_base = devm_platform_ioremap_resource_byname(pdev, "cfg");
if (IS_ERR(mp->cfg_base))
return PTR_ERR(mp->cfg_base);
@@ -338,40 +334,10 @@ static struct pci_ops meson_pci_ops = {
static bool meson_pcie_link_up(struct dw_pcie *pci)
{
struct meson_pcie *mp = to_meson_pcie(pci);
- struct device *dev = pci->dev;
- u32 speed_okay = 0;
- u32 cnt = 0;
- u32 state12, state17, smlh_up, ltssm_up, rdlh_up;
-
- do {
- state12 = meson_cfg_readl(mp, PCIE_CFG_STATUS12);
- state17 = meson_cfg_readl(mp, PCIE_CFG_STATUS17);
- smlh_up = IS_SMLH_LINK_UP(state12);
- rdlh_up = IS_RDLH_LINK_UP(state12);
- ltssm_up = IS_LTSSM_UP(state12);
-
- if (PM_CURRENT_STATE(state17) < PCIE_GEN3)
- speed_okay = 1;
-
- if (smlh_up)
- dev_dbg(dev, "smlh_link_up is on\n");
- if (rdlh_up)
- dev_dbg(dev, "rdlh_link_up is on\n");
- if (ltssm_up)
- dev_dbg(dev, "ltssm_up is on\n");
- if (speed_okay)
- dev_dbg(dev, "speed_okay\n");
-
- if (smlh_up && rdlh_up && ltssm_up && speed_okay)
- return true;
-
- cnt++;
-
- udelay(10);
- } while (cnt < WAIT_LINKUP_TIMEOUT);
-
- dev_err(dev, "error: wait linkup timeout\n");
- return false;
+ u32 state12;
+
+ state12 = meson_cfg_readl(mp, PCIE_CFG_STATUS12);
+ return IS_SMLH_LINK_UP(state12) && IS_RDLH_LINK_UP(state12);
}
static int meson_pcie_host_init(struct dw_pcie_rp *pp)
--
Armbian