961-1-mfd-rp1-Support-interrupt-CPU-affinity.patch 1.1 KB

1234567891011121314151617181920212223242526272829303132333435
  1. From 877cf6ae71c8eb9315014b3b379d9519ae6401b4 Mon Sep 17 00:00:00 2001
  2. From: Phil Elwell <[email protected]>
  3. Date: Wed, 3 Apr 2024 23:15:28 +0100
  4. Subject: [PATCH 1/5] mfd: rp1: Support interrupt CPU affinity
  5. See: https://github.com/raspberrypi/linux/issues/6077
  6. Signed-off-by: Phil Elwell <[email protected]>
  7. ---
  8. drivers/mfd/rp1.c | 9 +++++++++
  9. 1 file changed, 9 insertions(+)
  10. --- a/drivers/mfd/rp1.c
  11. +++ b/drivers/mfd/rp1.c
  12. @@ -141,11 +141,20 @@ static int rp1_irq_set_type(struct irq_d
  13. return ret;
  14. }
  15. +static int rp1_irq_set_affinity(struct irq_data *irqd, const struct cpumask *dest, bool force)
  16. +{
  17. + struct rp1_dev *rp1 = irqd->domain->host_data;
  18. + struct irq_data *pcie_irqd = rp1->pcie_irqds[irqd->hwirq];
  19. +
  20. + return msi_domain_set_affinity(pcie_irqd, dest, force);
  21. +}
  22. +
  23. static struct irq_chip rp1_irq_chip = {
  24. .name = "rp1_irq_chip",
  25. .irq_mask = rp1_mask_irq,
  26. .irq_unmask = rp1_unmask_irq,
  27. .irq_set_type = rp1_irq_set_type,
  28. + .irq_set_affinity = rp1_irq_set_affinity,
  29. };
  30. static void rp1_chained_handle_irq(struct irq_desc *desc)