From: Shiji Yang Date: Sun, 5 Jul 2026 03:29:02 +0000 (+0800) Subject: kernel: bump 6.12 to 6.12.95 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=77262b2d2ec6eb6698898cdc88f278561bb59213;p=thirdparty%2Fopenwrt.git kernel: bump 6.12 to 6.12.95 Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.12.95 Upstream merged patch: - bcm27xx/patches-6.12/950-0859-drm-v3d-Set-job-pointer-to-NULL-when-the-job-s-fence.patch[1] Manually rebased patches: - bcm27xx/patches-6.12/950-0501-gpiolib-Override-gpiochip-numbers-with-DT-aliases.patch - bcm27xx/patches-6.12/950-0777-drm-v3d-Remove-v3d-cpu_job.patch All other patches are automatically refreshed. [1] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.95&id=0e64be02dfc83e28c5ec8c21513da86dcf079bdd Signed-off-by: Shiji Yang Link: https://github.com/openwrt/openwrt/pull/24081 Signed-off-by: Hauke Mehrtens --- diff --git a/target/linux/bcm27xx/patches-6.12/950-0130-drm-v3d-Clock-V3D-down-when-not-in-use.patch b/target/linux/bcm27xx/patches-6.12/950-0130-drm-v3d-Clock-V3D-down-when-not-in-use.patch index b9bc4f09ed4..3a733d13fb5 100644 --- a/target/linux/bcm27xx/patches-6.12/950-0130-drm-v3d-Clock-V3D-down-when-not-in-use.patch +++ b/target/linux/bcm27xx/patches-6.12/950-0130-drm-v3d-Clock-V3D-down-when-not-in-use.patch @@ -70,7 +70,7 @@ Signed-off-by: popcornmix --- a/drivers/gpu/drm/v3d/v3d_drv.h +++ b/drivers/gpu/drm/v3d/v3d_drv.h -@@ -121,6 +121,12 @@ struct v3d_dev { +@@ -124,6 +124,12 @@ struct v3d_dev { void __iomem *bridge_regs; void __iomem *gca_regs; struct clk *clk; @@ -83,7 +83,7 @@ Signed-off-by: popcornmix struct reset_control *reset; /* Virtual and DMA addresses of the single shared page table. */ -@@ -597,3 +603,4 @@ int v3d_perfmon_get_counter_ioctl(struct +@@ -596,3 +602,4 @@ int v3d_perfmon_get_counter_ioctl(struct /* v3d_sysfs.c */ int v3d_sysfs_init(struct device *dev); void v3d_sysfs_destroy(struct device *dev); diff --git a/target/linux/bcm27xx/patches-6.12/950-0153-drm-v3d-Suppress-all-but-the-first-MMU-error.patch b/target/linux/bcm27xx/patches-6.12/950-0153-drm-v3d-Suppress-all-but-the-first-MMU-error.patch index e08d6656975..a274a9ab183 100644 --- a/target/linux/bcm27xx/patches-6.12/950-0153-drm-v3d-Suppress-all-but-the-first-MMU-error.patch +++ b/target/linux/bcm27xx/patches-6.12/950-0153-drm-v3d-Suppress-all-but-the-first-MMU-error.patch @@ -13,7 +13,7 @@ Signed-off-by: Phil Elwell --- a/drivers/gpu/drm/v3d/v3d_irq.c +++ b/drivers/gpu/drm/v3d/v3d_irq.c -@@ -197,6 +197,7 @@ v3d_hub_irq(int irq, void *arg) +@@ -183,6 +183,7 @@ v3d_hub_irq(int irq, void *arg) "GMP", }; const char *client = "?"; @@ -21,7 +21,7 @@ Signed-off-by: Phil Elwell V3D_WRITE(V3D_MMU_CTL, V3D_READ(V3D_MMU_CTL)); -@@ -206,6 +207,7 @@ v3d_hub_irq(int irq, void *arg) +@@ -192,6 +193,7 @@ v3d_hub_irq(int irq, void *arg) client = v3d41_axi_ids[axi_id]; } @@ -29,7 +29,7 @@ Signed-off-by: Phil Elwell 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) ? -@@ -214,6 +216,7 @@ v3d_hub_irq(int irq, void *arg) +@@ -200,6 +202,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.12/950-0179-gpiolib-Don-t-prevent-IRQ-usage-of-output-GPIOs.patch b/target/linux/bcm27xx/patches-6.12/950-0179-gpiolib-Don-t-prevent-IRQ-usage-of-output-GPIOs.patch index b7782b61805..58aef56402c 100644 --- a/target/linux/bcm27xx/patches-6.12/950-0179-gpiolib-Don-t-prevent-IRQ-usage-of-output-GPIOs.patch +++ b/target/linux/bcm27xx/patches-6.12/950-0179-gpiolib-Don-t-prevent-IRQ-usage-of-output-GPIOs.patch @@ -26,7 +26,7 @@ Signed-off-by: Phil Elwell /* Device and char device-related information */ static DEFINE_IDA(gpio_ida); static dev_t gpio_devt; -@@ -2813,8 +2815,8 @@ int gpiod_direction_output(struct gpio_d +@@ -2815,8 +2817,8 @@ int gpiod_direction_output(struct gpio_d value = !!value; /* GPIOs used for enabled IRQs shall not be set as output */ @@ -37,7 +37,7 @@ Signed-off-by: Phil Elwell gpiod_err(desc, "%s: tried to set a GPIO tied to an IRQ as output\n", __func__); -@@ -3765,8 +3767,8 @@ int gpiochip_lock_as_irq(struct gpio_chi +@@ -3767,8 +3769,8 @@ int gpiochip_lock_as_irq(struct gpio_chi } /* To be valid for IRQ the line needs to be input or open drain */ diff --git a/target/linux/bcm27xx/patches-6.12/950-0501-gpiolib-Override-gpiochip-numbers-with-DT-aliases.patch b/target/linux/bcm27xx/patches-6.12/950-0501-gpiolib-Override-gpiochip-numbers-with-DT-aliases.patch index 1b0c1bbdf3d..28af324d230 100644 --- a/target/linux/bcm27xx/patches-6.12/950-0501-gpiolib-Override-gpiochip-numbers-with-DT-aliases.patch +++ b/target/linux/bcm27xx/patches-6.12/950-0501-gpiolib-Override-gpiochip-numbers-with-DT-aliases.patch @@ -22,19 +22,19 @@ Signed-off-by: Phil Elwell const char *gpiod_get_label(struct gpio_desc *desc) { -@@ -927,6 +928,7 @@ int gpiochip_add_data_with_key(struct gp +@@ -946,6 +947,7 @@ int gpiochip_add_data_with_key(struct gp unsigned int desc_index; int base = 0; - int ret = 0; + int ret; + int id; - /* - * First: allocate and populate the internal stat container, and + gdev = kzalloc(sizeof(*gdev), GFP_KERNEL); + if (!gdev) @@ -953,7 +955,16 @@ int gpiochip_add_data_with_key(struct gp - else if (gc->parent) - device_set_node(&gdev->dev, dev_fwnode(gc->parent)); + gc->gpiodev = gdev; + gpiochip_set_data(gc, data); -- gdev->id = ida_alloc(&gpio_ida, GFP_KERNEL); +- ret = ida_alloc(&gpio_ida, GFP_KERNEL); + if (first_dynamic_gpiochip_num < 0) { + id = of_alias_get_highest_id("gpiochip"); + first_dynamic_gpiochip_num = (id >= 0) ? (id + 1) : 0; @@ -44,7 +44,7 @@ Signed-off-by: Phil Elwell + if (id < 0) + id = first_dynamic_gpiochip_num; + -+ gdev->id = ida_alloc_range(&gpio_ida, id, ~0, GFP_KERNEL); - if (gdev->id < 0) { - ret = gdev->id; ++ ret = ida_alloc_range(&gpio_ida, id, ~0, GFP_KERNEL); + if (ret < 0) goto err_free_gdev; + gdev->id = ret; diff --git a/target/linux/bcm27xx/patches-6.12/950-0768-drm-v3d-Introduce-gemfs.patch b/target/linux/bcm27xx/patches-6.12/950-0768-drm-v3d-Introduce-gemfs.patch index f1efefd9d99..b631a918327 100644 --- a/target/linux/bcm27xx/patches-6.12/950-0768-drm-v3d-Introduce-gemfs.patch +++ b/target/linux/bcm27xx/patches-6.12/950-0768-drm-v3d-Introduce-gemfs.patch @@ -39,7 +39,7 @@ Link: https://patchwork.freedesktop.org/patch/msgid/20240923141348.2422499-6-mca --- a/drivers/gpu/drm/v3d/v3d_drv.h +++ b/drivers/gpu/drm/v3d/v3d_drv.h -@@ -151,6 +151,11 @@ struct v3d_dev { +@@ -154,6 +154,11 @@ struct v3d_dev { struct drm_mm mm; spinlock_t mm_lock; @@ -50,8 +50,8 @@ Link: https://patchwork.freedesktop.org/patch/msgid/20240923141348.2422499-6-mca + struct work_struct overflow_mem_work; - struct v3d_bin_job *bin_job; -@@ -548,6 +553,10 @@ void v3d_reset(struct v3d_dev *v3d); + struct v3d_cpu_job *cpu_job; +@@ -547,6 +552,10 @@ void v3d_reset(struct v3d_dev *v3d); void v3d_invalidate_caches(struct v3d_dev *v3d); void v3d_clean_caches(struct v3d_dev *v3d); @@ -73,8 +73,8 @@ Link: https://patchwork.freedesktop.org/patch/msgid/20240923141348.2422499-6-mca ret = v3d_sched_init(v3d); if (ret) { drm_mm_takedown(&v3d->mm); -@@ -310,6 +312,7 @@ v3d_gem_destroy(struct drm_device *dev) - struct v3d_dev *v3d = to_v3d_dev(dev); +@@ -311,6 +313,7 @@ v3d_gem_destroy(struct drm_device *dev) + enum v3d_queue q; v3d_sched_fini(v3d); + v3d_gemfs_fini(v3d); diff --git a/target/linux/bcm27xx/patches-6.12/950-0772-drm-v3d-Add-modparam-for-turning-off-Big-Super-Pages.patch b/target/linux/bcm27xx/patches-6.12/950-0772-drm-v3d-Add-modparam-for-turning-off-Big-Super-Pages.patch index 9d21a30aaa9..2653dd5c3ac 100644 --- a/target/linux/bcm27xx/patches-6.12/950-0772-drm-v3d-Add-modparam-for-turning-off-Big-Super-Pages.patch +++ b/target/linux/bcm27xx/patches-6.12/950-0772-drm-v3d-Add-modparam-for-turning-off-Big-Super-Pages.patch @@ -39,7 +39,7 @@ Link: https://patchwork.freedesktop.org/patch/msgid/20240923141348.2422499-11-mc { --- a/drivers/gpu/drm/v3d/v3d_drv.h +++ b/drivers/gpu/drm/v3d/v3d_drv.h -@@ -553,6 +553,7 @@ void v3d_invalidate_caches(struct v3d_de +@@ -552,6 +552,7 @@ void v3d_invalidate_caches(struct v3d_de void v3d_clean_caches(struct v3d_dev *v3d); /* v3d_gemfs.c */ diff --git a/target/linux/bcm27xx/patches-6.12/950-0775-drm-v3d-Add-DRM_IOCTL_V3D_PERFMON_SET_GLOBAL.patch b/target/linux/bcm27xx/patches-6.12/950-0775-drm-v3d-Add-DRM_IOCTL_V3D_PERFMON_SET_GLOBAL.patch index b346b6575c9..c8b74d13b0a 100644 --- a/target/linux/bcm27xx/patches-6.12/950-0775-drm-v3d-Add-DRM_IOCTL_V3D_PERFMON_SET_GLOBAL.patch +++ b/target/linux/bcm27xx/patches-6.12/950-0775-drm-v3d-Add-DRM_IOCTL_V3D_PERFMON_SET_GLOBAL.patch @@ -39,7 +39,7 @@ Link: https://patchwork.freedesktop.org/patch/msgid/20241202140615.74802-1-chris static const struct drm_driver v3d_drm_driver = { --- a/drivers/gpu/drm/v3d/v3d_drv.h +++ b/drivers/gpu/drm/v3d/v3d_drv.h -@@ -197,6 +197,12 @@ struct v3d_dev { +@@ -196,6 +196,12 @@ struct v3d_dev { u32 num_allocated; u32 pages_allocated; } bo_stats; @@ -52,7 +52,7 @@ Link: https://patchwork.freedesktop.org/patch/msgid/20241202140615.74802-1-chris }; static inline struct v3d_dev * -@@ -608,6 +614,8 @@ int v3d_perfmon_get_values_ioctl(struct +@@ -607,6 +613,8 @@ int v3d_perfmon_get_values_ioctl(struct struct drm_file *file_priv); int v3d_perfmon_get_counter_ioctl(struct drm_device *dev, void *data, struct drm_file *file_priv); diff --git a/target/linux/bcm27xx/patches-6.12/950-0777-drm-v3d-Remove-v3d-cpu_job.patch b/target/linux/bcm27xx/patches-6.12/950-0777-drm-v3d-Remove-v3d-cpu_job.patch index 436740ffbc8..6128a709a47 100644 --- a/target/linux/bcm27xx/patches-6.12/950-0777-drm-v3d-Remove-v3d-cpu_job.patch +++ b/target/linux/bcm27xx/patches-6.12/950-0777-drm-v3d-Remove-v3d-cpu_job.patch @@ -25,17 +25,17 @@ Link: https://patchwork.freedesktop.org/patch/msgid/20250113154741.67520-2-mcana --- a/drivers/gpu/drm/v3d/v3d_drv.h +++ b/drivers/gpu/drm/v3d/v3d_drv.h -@@ -161,7 +161,6 @@ struct v3d_dev { - struct v3d_render_job *render_job; - struct v3d_tfu_job *tfu_job; - struct v3d_csd_job *csd_job; +@@ -160,7 +160,6 @@ struct v3d_dev { + + struct work_struct overflow_mem_work; + - struct v3d_cpu_job *cpu_job; struct v3d_queue_state queue[V3D_MAX_QUEUES]; --- a/drivers/gpu/drm/v3d/v3d_sched.c +++ b/drivers/gpu/drm/v3d/v3d_sched.c -@@ -664,8 +664,6 @@ v3d_cpu_job_run(struct drm_sched_job *sc +@@ -684,8 +684,6 @@ v3d_cpu_job_run(struct drm_sched_job *sc struct v3d_cpu_job *job = to_cpu_job(sched_job); struct v3d_dev *v3d = job->base.v3d; diff --git a/target/linux/bcm27xx/patches-6.12/950-0859-drm-v3d-Set-job-pointer-to-NULL-when-the-job-s-fence.patch b/target/linux/bcm27xx/patches-6.12/950-0859-drm-v3d-Set-job-pointer-to-NULL-when-the-job-s-fence.patch deleted file mode 100644 index 7940e20a5de..00000000000 --- a/target/linux/bcm27xx/patches-6.12/950-0859-drm-v3d-Set-job-pointer-to-NULL-when-the-job-s-fence.patch +++ /dev/null @@ -1,85 +0,0 @@ -From 23f61178926efa5b4b75c91a45fd315217bcb6c6 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Ma=C3=ADra=20Canal?= -Date: Tue, 11 Mar 2025 15:13:44 -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. - -Reviewed-by: Iago Toral Quiroga -Signed-off-by: Maíra Canal ---- - 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 -@@ -216,8 +216,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(). -@@ -271,8 +275,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; - -@@ -317,8 +323,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; - -@@ -363,8 +371,10 @@ v3d_csd_job_run(struct drm_sched_job *sc - struct dma_fence *fence; - int i, csd_cfg0_reg; - -- 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.12/950-0860-drm-v3d-Associate-a-V3D-tech-revision-to-all-support.patch b/target/linux/bcm27xx/patches-6.12/950-0860-drm-v3d-Associate-a-V3D-tech-revision-to-all-support.patch index 6ea273ac098..8eb680f7a46 100644 --- a/target/linux/bcm27xx/patches-6.12/950-0860-drm-v3d-Associate-a-V3D-tech-revision-to-all-support.patch +++ b/target/linux/bcm27xx/patches-6.12/950-0860-drm-v3d-Associate-a-V3D-tech-revision-to-all-support.patch @@ -324,7 +324,7 @@ Signed-off-by: Maíra Canal goto clk_disable; --- a/drivers/gpu/drm/v3d/v3d_drv.h +++ b/drivers/gpu/drm/v3d/v3d_drv.h -@@ -100,11 +100,18 @@ enum v3d_irq { +@@ -103,11 +103,18 @@ enum v3d_irq { V3D_MAX_IRQS, }; @@ -344,7 +344,7 @@ Signed-off-by: Maíra Canal /* Short representation (e.g. 5, 6) of the V3D tech revision */ int rev; -@@ -213,7 +220,7 @@ to_v3d_dev(struct drm_device *dev) +@@ -212,7 +219,7 @@ to_v3d_dev(struct drm_device *dev) static inline bool v3d_has_csd(struct v3d_dev *v3d) { @@ -400,7 +400,7 @@ Signed-off-by: Maíra Canal V3D_CORE_WRITE(core, V3D_CTL_L2CACTL, --- a/drivers/gpu/drm/v3d/v3d_irq.c +++ b/drivers/gpu/drm/v3d/v3d_irq.c -@@ -143,7 +143,7 @@ v3d_irq(int irq, void *arg) +@@ -137,7 +137,7 @@ v3d_irq(int irq, void *arg) /* We shouldn't be triggering these if we have GMP in * always-allowed mode. */ @@ -409,7 +409,7 @@ Signed-off-by: Maíra Canal dev_err(v3d->drm.dev, "GMP violation\n"); /* V3D 4.2 wires the hub and core IRQs together, so if we & -@@ -201,7 +201,7 @@ v3d_hub_irq(int irq, void *arg) +@@ -187,7 +187,7 @@ v3d_hub_irq(int irq, void *arg) V3D_WRITE(V3D_MMU_CTL, V3D_READ(V3D_MMU_CTL)); @@ -418,7 +418,7 @@ Signed-off-by: Maíra Canal axi_id = axi_id >> 5; if (axi_id < ARRAY_SIZE(v3d41_axi_ids)) client = v3d41_axi_ids[axi_id]; -@@ -220,7 +220,7 @@ v3d_hub_irq(int irq, void *arg) +@@ -206,7 +206,7 @@ v3d_hub_irq(int irq, void *arg) status = IRQ_HANDLED; } @@ -458,7 +458,7 @@ Signed-off-by: Maíra Canal V3D_WRITE(V3D_TFU_COEF1(v3d->ver), job->args.coef[1]); V3D_WRITE(V3D_TFU_COEF2(v3d->ver), job->args.coef[2]); V3D_WRITE(V3D_TFU_COEF3(v3d->ver), job->args.coef[3]); -@@ -402,7 +402,7 @@ v3d_csd_job_run(struct drm_sched_job *sc +@@ -412,7 +412,7 @@ v3d_csd_job_run(struct drm_sched_job *sc * * XXX: Set the CFG7 register */ diff --git a/target/linux/bcm27xx/patches-6.12/950-0863-drm-v3d-Use-V3D_SMS-registers-for-power-on-off-and-r.patch b/target/linux/bcm27xx/patches-6.12/950-0863-drm-v3d-Use-V3D_SMS-registers-for-power-on-off-and-r.patch index 002c96ea92a..6c84d58eb23 100644 --- a/target/linux/bcm27xx/patches-6.12/950-0863-drm-v3d-Use-V3D_SMS-registers-for-power-on-off-and-r.patch +++ b/target/linux/bcm27xx/patches-6.12/950-0863-drm-v3d-Use-V3D_SMS-registers-for-power-on-off-and-r.patch @@ -40,7 +40,7 @@ Signed-off-by: Maíra Canal --- a/drivers/gpu/drm/v3d/v3d_drv.h +++ b/drivers/gpu/drm/v3d/v3d_drv.h -@@ -126,6 +126,7 @@ struct v3d_dev { +@@ -129,6 +129,7 @@ struct v3d_dev { void __iomem *core_regs[3]; void __iomem *bridge_regs; void __iomem *gca_regs; @@ -48,7 +48,7 @@ Signed-off-by: Maíra Canal struct clk *clk; struct delayed_work clk_down_work; unsigned long clk_up_rate, clk_down_rate; -@@ -282,6 +283,15 @@ to_v3d_fence(struct dma_fence *fence) +@@ -281,6 +282,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) @@ -64,7 +64,7 @@ Signed-off-by: Maíra Canal #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) -@@ -560,6 +570,7 @@ struct dma_fence *v3d_fence_create(struc +@@ -559,6 +569,7 @@ struct dma_fence *v3d_fence_create(struc /* v3d_gem.c */ int v3d_gem_init(struct drm_device *dev); void v3d_gem_destroy(struct drm_device *dev); diff --git a/target/linux/generic/backport-6.12/626-16b-v6.17-regulator-Add-support-for-power-budget.patch b/target/linux/generic/backport-6.12/626-16b-v6.17-regulator-Add-support-for-power-budget.patch index b77f96db8e1..d823f49b535 100644 --- a/target/linux/generic/backport-6.12/626-16b-v6.17-regulator-Add-support-for-power-budget.patch +++ b/target/linux/generic/backport-6.12/626-16b-v6.17-regulator-Add-support-for-power-budget.patch @@ -69,7 +69,7 @@ Signed-off-by: Bevan Weiss print_constraints(rdev); return 0; } -@@ -4651,6 +4678,87 @@ int regulator_get_current_limit(struct r +@@ -4659,6 +4686,87 @@ int regulator_get_current_limit(struct r EXPORT_SYMBOL_GPL(regulator_get_current_limit); /** @@ -157,7 +157,7 @@ Signed-off-by: Bevan Weiss * regulator_set_mode - set regulator operating mode * @regulator: regulator source * @mode: operating mode - one of the REGULATOR_MODE constants -@@ -5288,6 +5396,8 @@ static struct attribute *regulator_dev_a +@@ -5296,6 +5404,8 @@ static struct attribute *regulator_dev_a &dev_attr_suspend_standby_mode.attr, &dev_attr_suspend_mem_mode.attr, &dev_attr_suspend_disk_mode.attr, @@ -166,7 +166,7 @@ Signed-off-by: Bevan Weiss NULL }; -@@ -5369,6 +5479,10 @@ static umode_t regulator_attr_is_visible +@@ -5377,6 +5487,10 @@ static umode_t regulator_attr_is_visible attr == &dev_attr_suspend_disk_mode.attr) return ops->set_suspend_mode ? mode : 0; diff --git a/target/linux/generic/kernel-6.12 b/target/linux/generic/kernel-6.12 index 424db9bb4e2..81f5966ce60 100644 --- a/target/linux/generic/kernel-6.12 +++ b/target/linux/generic/kernel-6.12 @@ -1,2 +1,2 @@ -LINUX_VERSION-6.12 = .94 -LINUX_KERNEL_HASH-6.12.94 = e998a232b9418db3301cb58468e291a4f41d6ab8306029b30d991f56251dc8d2 +LINUX_VERSION-6.12 = .95 +LINUX_KERNEL_HASH-6.12.95 = a9e8c51fcb1e695d1d35dde5886cba579cb6f29c9646c5889f39d63841d4b9f6 diff --git a/target/linux/generic/pending-6.12/454-block-add-support-for-notifications.patch b/target/linux/generic/pending-6.12/454-block-add-support-for-notifications.patch index 6a5abef682f..c9effa07d45 100644 --- a/target/linux/generic/pending-6.12/454-block-add-support-for-notifications.patch +++ b/target/linux/generic/pending-6.12/454-block-add-support-for-notifications.patch @@ -149,7 +149,7 @@ Signed-off-by: Daniel Golle +device_initcall(blk_notifications_init); --- a/include/linux/blkdev.h +++ b/include/linux/blkdev.h -@@ -1753,4 +1753,12 @@ static inline bool bdev_can_atomic_write +@@ -1749,4 +1749,12 @@ static inline bool bdev_can_atomic_write #define DEFINE_IO_COMP_BATCH(name) struct io_comp_batch name = { } diff --git a/target/linux/generic/pending-6.12/710-bridge-add-knob-for-filtering-rx-tx-BPDU-pack.patch b/target/linux/generic/pending-6.12/710-bridge-add-knob-for-filtering-rx-tx-BPDU-pack.patch index 730517bba14..8a5822b53c0 100644 --- a/target/linux/generic/pending-6.12/710-bridge-add-knob-for-filtering-rx-tx-BPDU-pack.patch +++ b/target/linux/generic/pending-6.12/710-bridge-add-knob-for-filtering-rx-tx-BPDU-pack.patch @@ -161,7 +161,7 @@ Signed-off-by: Felix Fietkau struct rtnl_link { rtnl_doit_func doit; -@@ -5013,7 +5013,9 @@ int ndo_dflt_bridge_getlink(struct sk_bu +@@ -5021,7 +5021,9 @@ int ndo_dflt_bridge_getlink(struct sk_bu brport_nla_put_flag(skb, flags, mask, IFLA_BRPORT_MCAST_FLOOD, BR_MCAST_FLOOD) || brport_nla_put_flag(skb, flags, mask, diff --git a/target/linux/ipq806x/patches-6.12/001-01-v6.19-err.h-add-INIT_ERR_PTR-macro.patch b/target/linux/ipq806x/patches-6.12/001-01-v6.19-err.h-add-INIT_ERR_PTR-macro.patch index a6440b73eda..831d0272678 100644 --- a/target/linux/ipq806x/patches-6.12/001-01-v6.19-err.h-add-INIT_ERR_PTR-macro.patch +++ b/target/linux/ipq806x/patches-6.12/001-01-v6.19-err.h-add-INIT_ERR_PTR-macro.patch @@ -25,7 +25,7 @@ Signed-off-by: Bjorn Andersson --- a/include/linux/err.h +++ b/include/linux/err.h -@@ -41,6 +41,14 @@ static inline void * __must_check ERR_PT +@@ -41,6 +41,14 @@ static __always_inline void * __must_che return (void *) error; } diff --git a/target/linux/qualcommax/patches-6.12/0047-v6.16-PCI-qcom-Add-support-for-IPQ5018.patch b/target/linux/qualcommax/patches-6.12/0047-v6.16-PCI-qcom-Add-support-for-IPQ5018.patch index 753a53711b9..70e681475f7 100644 --- a/target/linux/qualcommax/patches-6.12/0047-v6.16-PCI-qcom-Add-support-for-IPQ5018.patch +++ b/target/linux/qualcommax/patches-6.12/0047-v6.16-PCI-qcom-Add-support-for-IPQ5018.patch @@ -21,7 +21,7 @@ Link: https://patch.msgid.link/20250326-ipq5018-pcie-v7-4-e1828fef06c9@outlook.c --- a/drivers/pci/controller/dwc/pcie-qcom.c +++ b/drivers/pci/controller/dwc/pcie-qcom.c -@@ -1832,6 +1832,7 @@ static const struct of_device_id qcom_pc +@@ -1827,6 +1827,7 @@ static const struct of_device_id qcom_pc { .compatible = "qcom,pcie-apq8064", .data = &cfg_2_1_0 }, { .compatible = "qcom,pcie-apq8084", .data = &cfg_1_0_0 }, { .compatible = "qcom,pcie-ipq4019", .data = &cfg_2_4_0 },