aboutsummaryrefslogtreecommitdiff
path: root/target/linux/bcm27xx/patches-6.1/961-1-mfd-rp1-Support-interrupt-CPU-affinity.patch
blob: 3d0aa360bf2bf5d6728fe21ce3a44ddb11ffd11e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
From 877cf6ae71c8eb9315014b3b379d9519ae6401b4 Mon Sep 17 00:00:00 2001
From: Phil Elwell <phil@raspberrypi.com>
Date: Wed, 3 Apr 2024 23:15:28 +0100
Subject: [PATCH 1/5] mfd: rp1: Support interrupt CPU affinity

See: https://github.com/raspberrypi/linux/issues/6077

Signed-off-by: Phil Elwell <phil@raspberrypi.com>
---
 drivers/mfd/rp1.c | 9 +++++++++
 1 file changed, 9 insertions(+)

--- a/drivers/mfd/rp1.c
+++ b/drivers/mfd/rp1.c
@@ -141,11 +141,20 @@ static int rp1_irq_set_type(struct irq_d
 	return ret;
 }
 
+static int rp1_irq_set_affinity(struct irq_data *irqd, const struct cpumask *dest, bool force)
+{
+	struct rp1_dev *rp1 = irqd->domain->host_data;
+	struct irq_data *pcie_irqd = rp1->pcie_irqds[irqd->hwirq];
+
+	return msi_domain_set_affinity(pcie_irqd, dest, force);
+}
+
 static struct irq_chip rp1_irq_chip = {
 	.name            = "rp1_irq_chip",
 	.irq_mask        = rp1_mask_irq,
 	.irq_unmask      = rp1_unmask_irq,
 	.irq_set_type    = rp1_irq_set_type,
+	.irq_set_affinity = rp1_irq_set_affinity,
 };
 
 static void rp1_chained_handle_irq(struct irq_desc *desc)