summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGoetz Goerisch2026-07-05 05:06:44 +0000
committerHauke Mehrtens2026-07-11 18:55:44 +0000
commit25920e84257edd4630fbc6fdec6b20038b6df944 (patch)
treec24df84173fa4caadaf3e4fa3766c98103923b00
parent95d0ca014c4ce5e225579f859c066dc74a20763b (diff)
kernel: bump 6.6 to 6.6.144
Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.144 Manual rebased patch: bcm27xx/patches-6.6/950-0464-drm-v3d-New-debugfs-end-points-to-query-GPU-usage-st.patch [1] Removes upstreamed patch: bcm27xx/patches-6.6/950-1552-drm-v3d-Set-job-pointer-to-NULL-when-the-job-s-fence.patch [2] All other patches autorefreshed. [1] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit?h=v6.6.144&id=756724002c5a65b07af067849ba365a51fc6f207 [2] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit?h=v6.6.144&id=756724002c5a65b07af067849ba365a51fc6f207 Signed-off-by: Goetz Goerisch <ggoerisch@gmail.com> Link: https://github.com/openwrt/openwrt/pull/24082 Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
-rw-r--r--include/kernel-6.64
-rw-r--r--target/linux/bcm27xx/patches-6.6/950-0167-drm-v3d-Clock-V3D-down-when-not-in-use.patch2
-rw-r--r--target/linux/bcm27xx/patches-6.6/950-0183-drm-v3d-Suppress-all-but-the-first-MMU-error.patch6
-rw-r--r--target/linux/bcm27xx/patches-6.6/950-0464-drm-v3d-New-debugfs-end-points-to-query-GPU-usage-st.patch40
-rw-r--r--target/linux/bcm27xx/patches-6.6/950-0555-drm-v3d-fix-up-register-addresses-for-V3D-7.x.patch28
-rw-r--r--target/linux/bcm27xx/patches-6.6/950-0905-drm-v3d-Enable-V3D-to-use-different-PAGE_SIZE.patch4
-rw-r--r--target/linux/bcm27xx/patches-6.6/950-1339-arm64-numa-Add-NUMA-emulation-for-ARM64.patch2
-rw-r--r--target/linux/bcm27xx/patches-6.6/950-1552-drm-v3d-Set-job-pointer-to-NULL-when-the-job-s-fence.patch84
-rw-r--r--target/linux/bcm27xx/patches-6.6/950-1553-drm-v3d-Associate-a-V3D-tech-revision-to-all-support.patch18
-rw-r--r--target/linux/bcm27xx/patches-6.6/950-1555-drm-v3d-Use-V3D_SMS-registers-for-power-on-off-and-r.patch6
-rw-r--r--target/linux/generic/pending-6.6/701-netfilter-nf_tables-ignore-EOPNOTSUPP-on-flowtable-d.patch2
-rw-r--r--target/linux/mediatek/patches-6.6/901-arm-add-cmdline-override.patch2
-rw-r--r--target/linux/rockchip/patches-6.6/022-v6.15-irqchip-gic-v3-Add-Rockchip-3568002-erratum-workaround.patch2
-rw-r--r--target/linux/starfive/patches-6.6/0068-uart-8250-add-reset-operation-in-runtime-PM.patch4
-rw-r--r--target/linux/starfive/patches-6.6/1000-serial-8250_dw-Add-starfive-jh7100-hsuart-compatible.patch2
15 files changed, 61 insertions, 145 deletions
diff --git a/include/kernel-6.6 b/include/kernel-6.6
index 5c1963a8dc..12de780cf1 100644
--- a/include/kernel-6.6
+++ b/include/kernel-6.6
@@ -1,2 +1,2 @@
-LINUX_VERSION-6.6 = .143
-LINUX_KERNEL_HASH-6.6.143 = dace1f8dc9c0dbf5df14f47e3229cd62c298e83049681731ef229f2ba7592932
+LINUX_VERSION-6.6 = .144
+LINUX_KERNEL_HASH-6.6.144 = ec19b8307b495078cdc03749e63cb3802ac23cf6122c82eb9719feeb4557ecc3
diff --git a/target/linux/bcm27xx/patches-6.6/950-0167-drm-v3d-Clock-V3D-down-when-not-in-use.patch b/target/linux/bcm27xx/patches-6.6/950-0167-drm-v3d-Clock-V3D-down-when-not-in-use.patch
index fab52c63d0..da4eb8f561 100644
--- a/target/linux/bcm27xx/patches-6.6/950-0167-drm-v3d-Clock-V3D-down-when-not-in-use.patch
+++ b/target/linux/bcm27xx/patches-6.6/950-0167-drm-v3d-Clock-V3D-down-when-not-in-use.patch
@@ -59,7 +59,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
irq_disable:
--- a/drivers/gpu/drm/v3d/v3d_drv.h
+++ b/drivers/gpu/drm/v3d/v3d_drv.h
-@@ -84,6 +84,12 @@ struct v3d_dev {
+@@ -87,6 +87,12 @@ struct v3d_dev {
void __iomem *bridge_regs;
void __iomem *gca_regs;
struct clk *clk;
diff --git a/target/linux/bcm27xx/patches-6.6/950-0183-drm-v3d-Suppress-all-but-the-first-MMU-error.patch b/target/linux/bcm27xx/patches-6.6/950-0183-drm-v3d-Suppress-all-but-the-first-MMU-error.patch
index d41fab9d94..1138d54995 100644
--- a/target/linux/bcm27xx/patches-6.6/950-0183-drm-v3d-Suppress-all-but-the-first-MMU-error.patch
+++ b/target/linux/bcm27xx/patches-6.6/950-0183-drm-v3d-Suppress-all-but-the-first-MMU-error.patch
@@ -13,7 +13,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
--- a/drivers/gpu/drm/v3d/v3d_irq.c
+++ b/drivers/gpu/drm/v3d/v3d_irq.c
-@@ -189,6 +189,7 @@ v3d_hub_irq(int irq, void *arg)
+@@ -193,6 +193,7 @@ v3d_hub_irq(int irq, void *arg)
"GMP",
};
const char *client = "?";
@@ -21,7 +21,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
V3D_WRITE(V3D_MMU_CTL, V3D_READ(V3D_MMU_CTL));
-@@ -198,6 +199,7 @@ v3d_hub_irq(int irq, void *arg)
+@@ -202,6 +203,7 @@ v3d_hub_irq(int irq, void *arg)
client = v3d41_axi_ids[axi_id];
}
@@ -29,7 +29,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
dev_err(v3d->drm.dev, "MMU error from client %s (%d) at 0x%llx%s%s%s\n",
client, axi_id, (long long)vio_addr,
((intsts & V3D_HUB_INT_MMU_WRV) ?
-@@ -206,6 +208,7 @@ v3d_hub_irq(int irq, void *arg)
+@@ -210,6 +212,7 @@ v3d_hub_irq(int irq, void *arg)
", pte invalid" : ""),
((intsts & V3D_HUB_INT_MMU_CAP) ?
", cap exceeded" : ""));
diff --git a/target/linux/bcm27xx/patches-6.6/950-0464-drm-v3d-New-debugfs-end-points-to-query-GPU-usage-st.patch b/target/linux/bcm27xx/patches-6.6/950-0464-drm-v3d-New-debugfs-end-points-to-query-GPU-usage-st.patch
index edf49764b7..c79666ddbb 100644
--- a/target/linux/bcm27xx/patches-6.6/950-0464-drm-v3d-New-debugfs-end-points-to-query-GPU-usage-st.patch
+++ b/target/linux/bcm27xx/patches-6.6/950-0464-drm-v3d-New-debugfs-end-points-to-query-GPU-usage-st.patch
@@ -156,8 +156,8 @@ Signed-off-by: Jose Maria Casanova Crespo <jmcasanova@igalia.com>
struct v3d_queue_state {
struct drm_gpu_scheduler sched;
-@@ -28,6 +41,44 @@ struct v3d_queue_state {
- u64 emit_seqno;
+@@ -31,6 +44,44 @@ struct v3d_queue_state {
+ struct v3d_job *active_job;
};
+struct v3d_queue_pid_stats {
@@ -201,7 +201,7 @@ Signed-off-by: Jose Maria Casanova Crespo <jmcasanova@igalia.com>
/* Performance monitor object. The perform lifetime is controlled by userspace
* using perfmon related ioctls. A perfmon can be attached to a submit_cl
* request, and when this is the case, HW perf counters will be activated just
-@@ -155,6 +206,8 @@ struct v3d_dev {
+@@ -153,6 +204,8 @@ struct v3d_dev {
u32 num_allocated;
u32 pages_allocated;
} bo_stats;
@@ -210,7 +210,7 @@ Signed-off-by: Jose Maria Casanova Crespo <jmcasanova@igalia.com>
};
static inline struct v3d_dev *
-@@ -252,6 +305,11 @@ struct v3d_job {
+@@ -250,6 +303,11 @@ struct v3d_job {
*/
struct v3d_perfmon *perfmon;
@@ -222,7 +222,7 @@ Signed-off-by: Jose Maria Casanova Crespo <jmcasanova@igalia.com>
/* Callback for the freeing of the job on refcount going to 0. */
void (*free)(struct kref *ref);
};
-@@ -416,6 +474,7 @@ void v3d_mmu_remove_ptes(struct v3d_bo *
+@@ -414,6 +472,7 @@ void v3d_mmu_remove_ptes(struct v3d_bo *
/* v3d_sched.c */
int v3d_sched_init(struct v3d_dev *v3d);
void v3d_sched_fini(struct v3d_dev *v3d);
@@ -250,34 +250,34 @@ Signed-off-by: Jose Maria Casanova Crespo <jmcasanova@igalia.com>
#include "v3d_drv.h"
#include "v3d_regs.h"
-@@ -100,6 +101,7 @@ v3d_irq(int irq, void *arg)
+@@ -104,6 +105,7 @@ v3d_irq(int irq, void *arg)
if (intsts & V3D_INT_FLDONE) {
struct v3d_fence *fence =
- to_v3d_fence(v3d->bin_job->base.irq_fence);
+ to_v3d_fence(v3d->queue[V3D_BIN].active_job->irq_fence);
+ v3d->gpu_queue_stats[V3D_BIN].last_exec_end = local_clock();
trace_v3d_bcl_irq(&v3d->drm, fence->seqno);
-@@ -112,6 +114,7 @@ v3d_irq(int irq, void *arg)
+@@ -116,6 +118,7 @@ v3d_irq(int irq, void *arg)
if (intsts & V3D_INT_FRDONE) {
struct v3d_fence *fence =
- to_v3d_fence(v3d->render_job->base.irq_fence);
+ to_v3d_fence(v3d->queue[V3D_RENDER].active_job->irq_fence);
+ v3d->gpu_queue_stats[V3D_RENDER].last_exec_end = local_clock();
trace_v3d_rcl_irq(&v3d->drm, fence->seqno);
-@@ -124,6 +127,7 @@ v3d_irq(int irq, void *arg)
+@@ -128,6 +131,7 @@ v3d_irq(int irq, void *arg)
if (intsts & V3D_INT_CSDDONE) {
struct v3d_fence *fence =
- to_v3d_fence(v3d->csd_job->base.irq_fence);
+ to_v3d_fence(v3d->queue[V3D_CSD].active_job->irq_fence);
+ v3d->gpu_queue_stats[V3D_CSD].last_exec_end = local_clock();
trace_v3d_csd_irq(&v3d->drm, fence->seqno);
-@@ -163,6 +167,7 @@ v3d_hub_irq(int irq, void *arg)
+@@ -167,6 +171,7 @@ v3d_hub_irq(int irq, void *arg)
if (intsts & V3D_HUB_INT_TFUC) {
struct v3d_fence *fence =
- to_v3d_fence(v3d->tfu_job->base.irq_fence);
+ to_v3d_fence(v3d->queue[V3D_TFU].active_job->irq_fence);
+ v3d->gpu_queue_stats[V3D_TFU].last_exec_end = local_clock();
trace_v3d_tfu_irq(&v3d->drm, fence->seqno);
@@ -407,7 +407,7 @@ Signed-off-by: Jose Maria Casanova Crespo <jmcasanova@igalia.com>
static struct dma_fence *v3d_bin_job_run(struct drm_sched_job *sched_job)
{
struct v3d_bin_job *job = to_bin_job(sched_job);
-@@ -107,6 +216,7 @@ static struct dma_fence *v3d_bin_job_run
+@@ -111,6 +220,7 @@ static struct dma_fence *v3d_bin_job_run
trace_v3d_submit_cl(dev, false, to_v3d_fence(fence)->seqno,
job->start, job->end);
@@ -415,7 +415,7 @@ Signed-off-by: Jose Maria Casanova Crespo <jmcasanova@igalia.com>
v3d_switch_perfmon(v3d, &job->base);
/* Set the current and end address of the control list.
-@@ -158,6 +268,7 @@ static struct dma_fence *v3d_render_job_
+@@ -164,6 +274,7 @@ static struct dma_fence *v3d_render_job_
trace_v3d_submit_cl(dev, true, to_v3d_fence(fence)->seqno,
job->start, job->end);
@@ -423,7 +423,7 @@ Signed-off-by: Jose Maria Casanova Crespo <jmcasanova@igalia.com>
v3d_switch_perfmon(v3d, &job->base);
/* XXX: Set the QCFG */
-@@ -194,6 +305,7 @@ v3d_tfu_job_run(struct drm_sched_job *sc
+@@ -202,6 +313,7 @@ v3d_tfu_job_run(struct drm_sched_job *sc
trace_v3d_submit_tfu(dev, to_v3d_fence(fence)->seqno);
@@ -431,7 +431,7 @@ Signed-off-by: Jose Maria Casanova Crespo <jmcasanova@igalia.com>
V3D_WRITE(V3D_TFU_IIA, job->args.iia);
V3D_WRITE(V3D_TFU_IIS, job->args.iis);
V3D_WRITE(V3D_TFU_ICA, job->args.ica);
-@@ -238,6 +350,7 @@ v3d_csd_job_run(struct drm_sched_job *sc
+@@ -258,6 +370,7 @@ v3d_csd_job_run(struct drm_sched_job *sc
trace_v3d_submit_csd(dev, to_v3d_fence(fence)->seqno);
@@ -439,7 +439,7 @@ Signed-off-by: Jose Maria Casanova Crespo <jmcasanova@igalia.com>
v3d_switch_perfmon(v3d, &job->base);
for (i = 1; i <= 6; i++)
-@@ -254,7 +367,10 @@ v3d_cache_clean_job_run(struct drm_sched
+@@ -274,7 +387,10 @@ v3d_cache_clean_job_run(struct drm_sched
struct v3d_job *job = to_v3d_job(sched_job);
struct v3d_dev *v3d = job->v3d;
@@ -450,7 +450,7 @@ Signed-off-by: Jose Maria Casanova Crespo <jmcasanova@igalia.com>
return NULL;
}
-@@ -406,8 +522,18 @@ v3d_sched_init(struct v3d_dev *v3d)
+@@ -426,8 +542,18 @@ v3d_sched_init(struct v3d_dev *v3d)
int hw_jobs_limit = 1;
int job_hang_limit = 0;
int hang_limit_ms = 500;
@@ -469,7 +469,7 @@ Signed-off-by: Jose Maria Casanova Crespo <jmcasanova@igalia.com>
ret = drm_sched_init(&v3d->queue[V3D_BIN].sched,
&v3d_bin_sched_ops,
hw_jobs_limit, job_hang_limit,
-@@ -461,9 +587,20 @@ void
+@@ -481,9 +607,20 @@ void
v3d_sched_fini(struct v3d_dev *v3d)
{
enum v3d_queue q;
diff --git a/target/linux/bcm27xx/patches-6.6/950-0555-drm-v3d-fix-up-register-addresses-for-V3D-7.x.patch b/target/linux/bcm27xx/patches-6.6/950-0555-drm-v3d-fix-up-register-addresses-for-V3D-7.x.patch
index b755c393b5..4e95b1754c 100644
--- a/target/linux/bcm27xx/patches-6.6/950-0555-drm-v3d-fix-up-register-addresses-for-V3D-7.x.patch
+++ b/target/linux/bcm27xx/patches-6.6/950-0555-drm-v3d-fix-up-register-addresses-for-V3D-7.x.patch
@@ -295,7 +295,7 @@ v2: fix kernel panic with debug-fs interface to list registers
static irqreturn_t
v3d_hub_irq(int irq, void *arg);
-@@ -124,7 +125,8 @@ v3d_irq(int irq, void *arg)
+@@ -128,7 +129,8 @@ v3d_irq(int irq, void *arg)
status = IRQ_HANDLED;
}
@@ -303,9 +303,9 @@ v2: fix kernel panic with debug-fs interface to list registers
+ if ((v3d->ver < 71 && (intsts & V3D_INT_CSDDONE)) ||
+ (v3d->ver >= 71 && (intsts & V3D_V7_INT_CSDDONE))) {
struct v3d_fence *fence =
- to_v3d_fence(v3d->csd_job->base.irq_fence);
+ to_v3d_fence(v3d->queue[V3D_CSD].active_job->irq_fence);
v3d->gpu_queue_stats[V3D_CSD].last_exec_end = local_clock();
-@@ -140,7 +142,7 @@ v3d_irq(int irq, void *arg)
+@@ -144,7 +146,7 @@ v3d_irq(int irq, void *arg)
/* We shouldn't be triggering these if we have GMP in
* always-allowed mode.
*/
@@ -314,7 +314,7 @@ v2: fix kernel panic with debug-fs interface to list registers
dev_err(v3d->drm.dev, "GMP violation\n");
/* V3D 4.2 wires the hub and core IRQs together, so if we &
-@@ -217,6 +219,11 @@ v3d_hub_irq(int irq, void *arg)
+@@ -221,6 +223,11 @@ v3d_hub_irq(int irq, void *arg)
status = IRQ_HANDLED;
}
@@ -326,7 +326,7 @@ v2: fix kernel panic with debug-fs interface to list registers
return status;
}
-@@ -231,8 +238,8 @@ v3d_irq_init(struct v3d_dev *v3d)
+@@ -235,8 +242,8 @@ v3d_irq_init(struct v3d_dev *v3d)
* for us.
*/
for (core = 0; core < v3d->cores; core++)
@@ -337,7 +337,7 @@ v2: fix kernel panic with debug-fs interface to list registers
irq = platform_get_irq_optional(v3d_to_pdev(v3d), 1);
if (irq == -EPROBE_DEFER)
-@@ -287,12 +294,12 @@ v3d_irq_enable(struct v3d_dev *v3d)
+@@ -291,12 +298,12 @@ v3d_irq_enable(struct v3d_dev *v3d)
/* Enable our set of interrupts, masking out any others. */
for (core = 0; core < v3d->cores; core++) {
@@ -354,7 +354,7 @@ v2: fix kernel panic with debug-fs interface to list registers
}
void
-@@ -313,8 +320,8 @@ v3d_irq_disable(struct v3d_dev *v3d)
+@@ -317,8 +324,8 @@ v3d_irq_disable(struct v3d_dev *v3d)
/* Clear any pending interrupts we might have left. */
for (core = 0; core < v3d->cores; core++)
@@ -591,7 +591,7 @@ v2: fix kernel panic with debug-fs interface to list registers
# define V3D_CSD_CURRENT_ID0_WG_Y_MASK V3D_MASK(15, 0)
--- a/drivers/gpu/drm/v3d/v3d_sched.c
+++ b/drivers/gpu/drm/v3d/v3d_sched.c
-@@ -282,6 +282,8 @@ static struct dma_fence *v3d_render_job_
+@@ -288,6 +288,8 @@ static struct dma_fence *v3d_render_job_
return fence;
}
@@ -600,7 +600,7 @@ v2: fix kernel panic with debug-fs interface to list registers
static struct dma_fence *
v3d_tfu_job_run(struct drm_sched_job *sched_job)
{
-@@ -306,20 +308,22 @@ v3d_tfu_job_run(struct drm_sched_job *sc
+@@ -314,20 +316,22 @@ v3d_tfu_job_run(struct drm_sched_job *sc
trace_v3d_submit_tfu(dev, to_v3d_fence(fence)->seqno);
v3d_sched_stats_add_job(&v3d->gpu_queue_stats[V3D_TFU], sched_job);
@@ -635,16 +635,16 @@ v2: fix kernel panic with debug-fs interface to list registers
return fence;
}
-@@ -331,7 +335,7 @@ v3d_csd_job_run(struct drm_sched_job *sc
+@@ -339,7 +343,7 @@ v3d_csd_job_run(struct drm_sched_job *sc
struct v3d_dev *v3d = job->base.v3d;
struct drm_device *dev = &v3d->drm;
struct dma_fence *fence;
- int i;
+ int i, csd_cfg0_reg, csd_cfg_reg_count;
- if (unlikely(job->base.base.s_fence->finished.error))
- return NULL;
-@@ -353,10 +357,12 @@ v3d_csd_job_run(struct drm_sched_job *sc
+ if (unlikely(job->base.base.s_fence->finished.error)) {
+ v3d->queue[V3D_CSD].active_job = NULL;
+@@ -373,10 +377,12 @@ v3d_csd_job_run(struct drm_sched_job *sc
v3d_sched_stats_add_job(&v3d->gpu_queue_stats[V3D_CSD], sched_job);
v3d_switch_perfmon(v3d, &job->base);
@@ -660,7 +660,7 @@ v2: fix kernel panic with debug-fs interface to list registers
return fence;
}
-@@ -471,7 +477,8 @@ v3d_csd_job_timedout(struct drm_sched_jo
+@@ -491,7 +497,8 @@ v3d_csd_job_timedout(struct drm_sched_jo
{
struct v3d_csd_job *job = to_csd_job(sched_job);
struct v3d_dev *v3d = job->base.v3d;
diff --git a/target/linux/bcm27xx/patches-6.6/950-0905-drm-v3d-Enable-V3D-to-use-different-PAGE_SIZE.patch b/target/linux/bcm27xx/patches-6.6/950-0905-drm-v3d-Enable-V3D-to-use-different-PAGE_SIZE.patch
index 429df82ee7..3ac8826844 100644
--- a/target/linux/bcm27xx/patches-6.6/950-0905-drm-v3d-Enable-V3D-to-use-different-PAGE_SIZE.patch
+++ b/target/linux/bcm27xx/patches-6.6/950-0905-drm-v3d-Enable-V3D-to-use-different-PAGE_SIZE.patch
@@ -96,8 +96,8 @@ Signed-off-by: Maíra Canal <mcanal@igalia.com>
static inline char *
--- a/drivers/gpu/drm/v3d/v3d_irq.c
+++ b/drivers/gpu/drm/v3d/v3d_irq.c
-@@ -70,7 +70,7 @@ v3d_overflow_mem_work(struct work_struct
- list_add_tail(&bo->unref_head, &v3d->bin_job->render->unref_list);
+@@ -74,7 +74,7 @@ v3d_overflow_mem_work(struct work_struct
+ list_add_tail(&bo->unref_head, &bin_job->render->unref_list);
spin_unlock_irqrestore(&v3d->job_lock, irqflags);
- V3D_CORE_WRITE(0, V3D_PTB_BPOA, bo->node.start << PAGE_SHIFT);
diff --git a/target/linux/bcm27xx/patches-6.6/950-1339-arm64-numa-Add-NUMA-emulation-for-ARM64.patch b/target/linux/bcm27xx/patches-6.6/950-1339-arm64-numa-Add-NUMA-emulation-for-ARM64.patch
index 1f17fa4d40..6bf268d4b4 100644
--- a/target/linux/bcm27xx/patches-6.6/950-1339-arm64-numa-Add-NUMA-emulation-for-ARM64.patch
+++ b/target/linux/bcm27xx/patches-6.6/950-1339-arm64-numa-Add-NUMA-emulation-for-ARM64.patch
@@ -20,7 +20,7 @@ Cc: “Rafael J. Wysocki" <rafael@kernel.org>
--- a/arch/arm64/Kconfig
+++ b/arch/arm64/Kconfig
-@@ -1551,6 +1551,16 @@ config NODES_SHIFT
+@@ -1552,6 +1552,16 @@ config NODES_SHIFT
Specify the maximum number of NUMA Nodes available on the target
system. Increases memory reserved to accommodate various tables.
diff --git a/target/linux/bcm27xx/patches-6.6/950-1552-drm-v3d-Set-job-pointer-to-NULL-when-the-job-s-fence.patch b/target/linux/bcm27xx/patches-6.6/950-1552-drm-v3d-Set-job-pointer-to-NULL-when-the-job-s-fence.patch
deleted file mode 100644
index 3bf33ffc75..0000000000
--- a/target/linux/bcm27xx/patches-6.6/950-1552-drm-v3d-Set-job-pointer-to-NULL-when-the-job-s-fence.patch
+++ /dev/null
@@ -1,84 +0,0 @@
-From 131564261399a36a5cf2ac2731ed1ceffba93d10 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Ma=C3=ADra=20Canal?= <mcanal@igalia.com>
-Date: Sat, 22 Feb 2025 14:56:46 -0300
-Subject: [PATCH] drm/v3d: Set job pointer to NULL when the job's fence has an
- error
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Similar to commit e4b5ccd392b9 ("drm/v3d: Ensure job pointer is set to
-NULL after job completion"), ensure the job pointer is set to `NULL` when
-a job's fence has an error. Failing to do so can trigger kernel warnings
-in specific scenarios, such as:
-
-1. v3d_csd_job_run() assigns `v3d->csd_job = job`
-2. CSD job exceeds hang limit, causing a timeout → v3d_gpu_reset_for_timeout()
-3. GPU reset
-4. drm_sched_resubmit_jobs() sets the job's fence to `-ECANCELED`.
-5. v3d_csd_job_run() detects the fence error and returns NULL, not
- submitting the job to the GPU
-6. User-space runs `modprobe -r v3d`
-7. v3d_gem_destroy()
-
-v3d_gem_destroy() triggers a warning indicating that the CSD job never
-ended, as we didn't set `v3d->csd_job` to NULL after the timeout. The same
-can also happen to BIN, RENDER, and TFU jobs.
-
-Signed-off-by: Maíra Canal <mcanal@igalia.com>
----
- drivers/gpu/drm/v3d/v3d_sched.c | 18 ++++++++++++++----
- 1 file changed, 14 insertions(+), 4 deletions(-)
-
---- a/drivers/gpu/drm/v3d/v3d_sched.c
-+++ b/drivers/gpu/drm/v3d/v3d_sched.c
-@@ -189,8 +189,12 @@ static struct dma_fence *v3d_bin_job_run
- struct dma_fence *fence;
- unsigned long irqflags;
-
-- if (unlikely(job->base.base.s_fence->finished.error))
-+ if (unlikely(job->base.base.s_fence->finished.error)) {
-+ spin_lock_irqsave(&v3d->job_lock, irqflags);
-+ v3d->bin_job = NULL;
-+ spin_unlock_irqrestore(&v3d->job_lock, irqflags);
- return NULL;
-+ }
-
- /* Lock required around bin_job update vs
- * v3d_overflow_mem_work().
-@@ -244,8 +248,10 @@ static struct dma_fence *v3d_render_job_
- struct drm_device *dev = &v3d->drm;
- struct dma_fence *fence;
-
-- if (unlikely(job->base.base.s_fence->finished.error))
-+ if (unlikely(job->base.base.s_fence->finished.error)) {
-+ v3d->render_job = NULL;
- return NULL;
-+ }
-
- v3d->render_job = job;
-
-@@ -292,8 +298,10 @@ v3d_tfu_job_run(struct drm_sched_job *sc
- struct drm_device *dev = &v3d->drm;
- struct dma_fence *fence;
-
-- if (unlikely(job->base.base.s_fence->finished.error))
-+ if (unlikely(job->base.base.s_fence->finished.error)) {
-+ v3d->tfu_job = NULL;
- return NULL;
-+ }
-
- v3d->tfu_job = job;
-
-@@ -337,8 +345,10 @@ v3d_csd_job_run(struct drm_sched_job *sc
- struct dma_fence *fence;
- int i, csd_cfg0_reg, csd_cfg_reg_count;
-
-- if (unlikely(job->base.base.s_fence->finished.error))
-+ if (unlikely(job->base.base.s_fence->finished.error)) {
-+ v3d->csd_job = NULL;
- return NULL;
-+ }
-
- v3d->csd_job = job;
-
diff --git a/target/linux/bcm27xx/patches-6.6/950-1553-drm-v3d-Associate-a-V3D-tech-revision-to-all-support.patch b/target/linux/bcm27xx/patches-6.6/950-1553-drm-v3d-Associate-a-V3D-tech-revision-to-all-support.patch
index bef7ceb96a..70c4de8c22 100644
--- a/target/linux/bcm27xx/patches-6.6/950-1553-drm-v3d-Associate-a-V3D-tech-revision-to-all-support.patch
+++ b/target/linux/bcm27xx/patches-6.6/950-1553-drm-v3d-Associate-a-V3D-tech-revision-to-all-support.patch
@@ -275,7 +275,7 @@ Signed-off-by: Maíra Canal <mcanal@igalia.com>
goto clk_disable;
--- a/drivers/gpu/drm/v3d/v3d_drv.h
+++ b/drivers/gpu/drm/v3d/v3d_drv.h
-@@ -121,13 +121,20 @@ enum v3d_irq {
+@@ -124,13 +124,20 @@ enum v3d_irq {
V3D_MAX_IRQS,
};
@@ -297,7 +297,7 @@ Signed-off-by: Maíra Canal <mcanal@igalia.com>
bool single_irq_line;
int irq[V3D_MAX_IRQS];
-@@ -221,7 +228,7 @@ to_v3d_dev(struct drm_device *dev)
+@@ -219,7 +226,7 @@ to_v3d_dev(struct drm_device *dev)
static inline bool
v3d_has_csd(struct v3d_dev *v3d)
{
@@ -362,7 +362,7 @@ Signed-off-by: Maíra Canal <mcanal@igalia.com>
V3D_CORE_WRITE(core, V3D_CTL_L2CACTL,
--- a/drivers/gpu/drm/v3d/v3d_irq.c
+++ b/drivers/gpu/drm/v3d/v3d_irq.c
-@@ -125,8 +125,8 @@ v3d_irq(int irq, void *arg)
+@@ -129,8 +129,8 @@ v3d_irq(int irq, void *arg)
status = IRQ_HANDLED;
}
@@ -371,9 +371,9 @@ Signed-off-by: Maíra Canal <mcanal@igalia.com>
+ if ((v3d->ver < V3D_GEN_71 && (intsts & V3D_INT_CSDDONE)) ||
+ (v3d->ver >= V3D_GEN_71 && (intsts & V3D_V7_INT_CSDDONE))) {
struct v3d_fence *fence =
- to_v3d_fence(v3d->csd_job->base.irq_fence);
+ to_v3d_fence(v3d->queue[V3D_CSD].active_job->irq_fence);
v3d->gpu_queue_stats[V3D_CSD].last_exec_end = local_clock();
-@@ -142,7 +142,7 @@ v3d_irq(int irq, void *arg)
+@@ -146,7 +146,7 @@ v3d_irq(int irq, void *arg)
/* We shouldn't be triggering these if we have GMP in
* always-allowed mode.
*/
@@ -382,7 +382,7 @@ Signed-off-by: Maíra Canal <mcanal@igalia.com>
dev_err(v3d->drm.dev, "GMP violation\n");
/* V3D 4.2 wires the hub and core IRQs together, so if we &
-@@ -200,7 +200,7 @@ v3d_hub_irq(int irq, void *arg)
+@@ -204,7 +204,7 @@ v3d_hub_irq(int irq, void *arg)
V3D_WRITE(V3D_MMU_CTL, V3D_READ(V3D_MMU_CTL));
@@ -391,7 +391,7 @@ Signed-off-by: Maíra Canal <mcanal@igalia.com>
axi_id = axi_id >> 5;
if (axi_id < ARRAY_SIZE(v3d41_axi_ids))
client = v3d41_axi_ids[axi_id];
-@@ -219,7 +219,7 @@ v3d_hub_irq(int irq, void *arg)
+@@ -223,7 +223,7 @@ v3d_hub_irq(int irq, void *arg)
status = IRQ_HANDLED;
}
@@ -425,7 +425,7 @@ Signed-off-by: Maíra Canal <mcanal@igalia.com>
V3D_WRITE(V3D_TFU_REG(COEF1), job->args.coef[1]);
V3D_WRITE(V3D_TFU_REG(COEF2), job->args.coef[2]);
V3D_WRITE(V3D_TFU_REG(COEF3), job->args.coef[3]);
-@@ -367,8 +367,8 @@ v3d_csd_job_run(struct drm_sched_job *sc
+@@ -377,8 +377,8 @@ v3d_csd_job_run(struct drm_sched_job *sc
v3d_sched_stats_add_job(&v3d->gpu_queue_stats[V3D_CSD], sched_job);
v3d_switch_perfmon(v3d, &job->base);
@@ -436,7 +436,7 @@ Signed-off-by: Maíra Canal <mcanal@igalia.com>
for (i = 1; i <= csd_cfg_reg_count; i++)
V3D_CORE_WRITE(0, csd_cfg0_reg + 4 * i, job->args.cfg[i]);
/* CFG0 write kicks off the job. */
-@@ -487,7 +487,7 @@ v3d_csd_job_timedout(struct drm_sched_jo
+@@ -497,7 +497,7 @@ v3d_csd_job_timedout(struct drm_sched_jo
{
struct v3d_csd_job *job = to_csd_job(sched_job);
struct v3d_dev *v3d = job->base.v3d;
diff --git a/target/linux/bcm27xx/patches-6.6/950-1555-drm-v3d-Use-V3D_SMS-registers-for-power-on-off-and-r.patch b/target/linux/bcm27xx/patches-6.6/950-1555-drm-v3d-Use-V3D_SMS-registers-for-power-on-off-and-r.patch
index a8e4ea681f..490be78929 100644
--- a/target/linux/bcm27xx/patches-6.6/950-1555-drm-v3d-Use-V3D_SMS-registers-for-power-on-off-and-r.patch
+++ b/target/linux/bcm27xx/patches-6.6/950-1555-drm-v3d-Use-V3D_SMS-registers-for-power-on-off-and-r.patch
@@ -98,7 +98,7 @@ Signed-off-by: Maíra Canal <mcanal@igalia.com>
--- a/drivers/gpu/drm/v3d/v3d_drv.h
+++ b/drivers/gpu/drm/v3d/v3d_drv.h
-@@ -143,6 +143,7 @@ struct v3d_dev {
+@@ -146,6 +146,7 @@ struct v3d_dev {
void __iomem *core_regs[3];
void __iomem *bridge_regs;
void __iomem *gca_regs;
@@ -106,7 +106,7 @@ Signed-off-by: Maíra Canal <mcanal@igalia.com>
struct clk *clk;
struct delayed_work clk_down_work;
unsigned long clk_up_rate, clk_down_rate;
-@@ -285,6 +286,15 @@ to_v3d_fence(struct dma_fence *fence)
+@@ -283,6 +284,15 @@ to_v3d_fence(struct dma_fence *fence)
#define V3D_GCA_READ(offset) readl(v3d->gca_regs + offset)
#define V3D_GCA_WRITE(offset, val) writel(val, v3d->gca_regs + offset)
@@ -122,7 +122,7 @@ Signed-off-by: Maíra Canal <mcanal@igalia.com>
#define V3D_CORE_READ(core, offset) readl(v3d->core_regs[core] + offset)
#define V3D_CORE_WRITE(core, offset, val) writel(val, v3d->core_regs[core] + offset)
-@@ -463,6 +473,7 @@ int v3d_wait_bo_ioctl(struct drm_device
+@@ -461,6 +471,7 @@ int v3d_wait_bo_ioctl(struct drm_device
struct drm_file *file_priv);
void v3d_job_cleanup(struct v3d_job *job);
void v3d_job_put(struct v3d_job *job);
diff --git a/target/linux/generic/pending-6.6/701-netfilter-nf_tables-ignore-EOPNOTSUPP-on-flowtable-d.patch b/target/linux/generic/pending-6.6/701-netfilter-nf_tables-ignore-EOPNOTSUPP-on-flowtable-d.patch
index dc42775276..642afec742 100644
--- a/target/linux/generic/pending-6.6/701-netfilter-nf_tables-ignore-EOPNOTSUPP-on-flowtable-d.patch
+++ b/target/linux/generic/pending-6.6/701-netfilter-nf_tables-ignore-EOPNOTSUPP-on-flowtable-d.patch
@@ -18,7 +18,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
--- a/net/netfilter/nf_tables_api.c
+++ b/net/netfilter/nf_tables_api.c
-@@ -8530,7 +8530,7 @@ static int nft_register_flowtable_net_ho
+@@ -8528,7 +8528,7 @@ static int nft_register_flowtable_net_ho
err = flowtable->data.type->setup(&flowtable->data,
hook->ops.dev,
FLOW_BLOCK_BIND);
diff --git a/target/linux/mediatek/patches-6.6/901-arm-add-cmdline-override.patch b/target/linux/mediatek/patches-6.6/901-arm-add-cmdline-override.patch
index b027a45e8f..1f707fedbd 100644
--- a/target/linux/mediatek/patches-6.6/901-arm-add-cmdline-override.patch
+++ b/target/linux/mediatek/patches-6.6/901-arm-add-cmdline-override.patch
@@ -37,7 +37,7 @@
* CONFIG_CMDLINE is meant to be a default in case nothing else
--- a/arch/arm64/Kconfig
+++ b/arch/arm64/Kconfig
-@@ -2360,6 +2360,14 @@ config CMDLINE_FORCE
+@@ -2361,6 +2361,14 @@ config CMDLINE_FORCE
endchoice
diff --git a/target/linux/rockchip/patches-6.6/022-v6.15-irqchip-gic-v3-Add-Rockchip-3568002-erratum-workaround.patch b/target/linux/rockchip/patches-6.6/022-v6.15-irqchip-gic-v3-Add-Rockchip-3568002-erratum-workaround.patch
index 146377fc71..76d33b3ebe 100644
--- a/target/linux/rockchip/patches-6.6/022-v6.15-irqchip-gic-v3-Add-Rockchip-3568002-erratum-workaround.patch
+++ b/target/linux/rockchip/patches-6.6/022-v6.15-irqchip-gic-v3-Add-Rockchip-3568002-erratum-workaround.patch
@@ -35,7 +35,7 @@ Link: https://lore.kernel.org/all/20250216221634.364158-2-dmitry.osipenko@collab
| Fujitsu | A64FX | E#010001 | FUJITSU_ERRATUM_010001 |
--- a/arch/arm64/Kconfig
+++ b/arch/arm64/Kconfig
-@@ -1318,6 +1318,15 @@ config NVIDIA_CARMEL_CNP_ERRATUM
+@@ -1319,6 +1319,15 @@ config NVIDIA_CARMEL_CNP_ERRATUM
If unsure, say Y.
diff --git a/target/linux/starfive/patches-6.6/0068-uart-8250-add-reset-operation-in-runtime-PM.patch b/target/linux/starfive/patches-6.6/0068-uart-8250-add-reset-operation-in-runtime-PM.patch
index 1612c47dcd..cbcf3d9b98 100644
--- a/target/linux/starfive/patches-6.6/0068-uart-8250-add-reset-operation-in-runtime-PM.patch
+++ b/target/linux/starfive/patches-6.6/0068-uart-8250-add-reset-operation-in-runtime-PM.patch
@@ -12,7 +12,7 @@ Signed-off-by: William Qiu <william.qiu@starfivetech.com>
--- a/drivers/tty/serial/8250/8250_dw.c
+++ b/drivers/tty/serial/8250/8250_dw.c
-@@ -747,6 +747,8 @@ static int dw8250_runtime_suspend(struct
+@@ -749,6 +749,8 @@ static int dw8250_runtime_suspend(struct
{
struct dw8250_data *data = dev_get_drvdata(dev);
@@ -21,7 +21,7 @@ Signed-off-by: William Qiu <william.qiu@starfivetech.com>
clk_disable_unprepare(data->clk);
clk_disable_unprepare(data->pclk);
-@@ -769,6 +771,8 @@ static int dw8250_runtime_resume(struct
+@@ -771,6 +773,8 @@ static int dw8250_runtime_resume(struct
return ret;
}
diff --git a/target/linux/starfive/patches-6.6/1000-serial-8250_dw-Add-starfive-jh7100-hsuart-compatible.patch b/target/linux/starfive/patches-6.6/1000-serial-8250_dw-Add-starfive-jh7100-hsuart-compatible.patch
index 8372da35c4..d667952a23 100644
--- a/target/linux/starfive/patches-6.6/1000-serial-8250_dw-Add-starfive-jh7100-hsuart-compatible.patch
+++ b/target/linux/starfive/patches-6.6/1000-serial-8250_dw-Add-starfive-jh7100-hsuart-compatible.patch
@@ -15,7 +15,7 @@ Signed-off-by: Emil Renner Berthing <kernel@esmil.dk>
--- a/drivers/tty/serial/8250/8250_dw.c
+++ b/drivers/tty/serial/8250/8250_dw.c
-@@ -812,6 +812,7 @@ static const struct of_device_id dw8250_
+@@ -814,6 +814,7 @@ static const struct of_device_id dw8250_
{ .compatible = "marvell,armada-38x-uart", .data = &dw8250_armada_38x_data },
{ .compatible = "renesas,rzn1-uart", .data = &dw8250_renesas_rzn1_data },
{ .compatible = "sophgo,sg2044-uart", .data = &dw8250_skip_set_rate_data },