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 <yangshiji66@outlook.com> Link: https://github.com/openwrt/openwrt/pull/24081 Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
This commit is contained in:
parent
520d6d9784
commit
77262b2d2e
17 changed files with 48 additions and 133 deletions
|
|
@ -70,7 +70,7 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
|||
|
||||
--- 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 <popcornmix@gmail.com>
|
|||
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);
|
||||
|
|
|
|||
|
|
@ -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
|
||||
@@ -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 <phil@raspberrypi.org>
|
|||
|
||||
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 <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) ?
|
||||
@@ -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" : ""));
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
|||
/* 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 <phil@raspberrypi.org>
|
|||
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 */
|
||||
|
|
|
|||
|
|
@ -22,19 +22,19 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
|
|||
|
||||
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 <phil@raspberrypi.com>
|
|||
+ 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;
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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 */
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
||||
|
|
|
|||
|
|
@ -1,85 +0,0 @@
|
|||
From 23f61178926efa5b4b75c91a45fd315217bcb6c6 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Ma=C3=ADra=20Canal?= <mcanal@igalia.com>
|
||||
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 <itoral@igalia.com>
|
||||
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
|
||||
@@ -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;
|
||||
|
||||
|
|
@ -324,7 +324,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
|
||||
@@ -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 <mcanal@igalia.com>
|
|||
|
||||
/* 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 <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
|
||||
@@ -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 <mcanal@igalia.com>
|
|||
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 <mcanal@igalia.com>
|
|||
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 <mcanal@igalia.com>
|
|||
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
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -40,7 +40,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
|
||||
@@ -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 <mcanal@igalia.com>
|
|||
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 <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)
|
||||
|
||||
@@ -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);
|
||||
|
|
|
|||
|
|
@ -69,7 +69,7 @@ Signed-off-by: Bevan Weiss <bevan.weiss@gmail.com>
|
|||
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 <bevan.weiss@gmail.com>
|
|||
* 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 <bevan.weiss@gmail.com>
|
|||
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;
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -149,7 +149,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
|||
+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 = { }
|
||||
|
||||
|
|
|
|||
|
|
@ -161,7 +161,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||
|
||||
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,
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@ Signed-off-by: Bjorn Andersson <andersson@kernel.org>
|
|||
|
||||
--- 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;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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 },
|
||||
|
|
|
|||
Loading…
Reference in a new issue