lkml.org 
[lkml]   [2024]   [Jan]   [29]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
From
Subject[PATCH] genirq: use relaxed access by default for irq_reg_{readl,writel}
Date
irqchip access does not require any memory ordering between other
memory transactions and the IRQ controller peripheral access.
As all architectures now implement the relaxed MMIO accessors we
can switch the irq_reg_{readl,writel} helpers to use them, in
order to avoid potentially costly barriers in the IRQ handling
hotpath.

Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
---
include/linux/irq.h | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/include/linux/irq.h b/include/linux/irq.h
index 90081afa10ce..fa1597db7887 100644
--- a/include/linux/irq.h
+++ b/include/linux/irq.h
@@ -1218,7 +1218,7 @@ static inline void irq_reg_writel(struct irq_chip_generic *gc,
if (gc->reg_writel)
gc->reg_writel(val, gc->reg_base + reg_offset);
else
- writel(val, gc->reg_base + reg_offset);
+ writel_relaxed(val, gc->reg_base + reg_offset);
}

static inline u32 irq_reg_readl(struct irq_chip_generic *gc,
@@ -1227,7 +1227,7 @@ static inline u32 irq_reg_readl(struct irq_chip_generic *gc,
if (gc->reg_readl)
return gc->reg_readl(gc->reg_base + reg_offset);
else
- return readl(gc->reg_base + reg_offset);
+ return readl_relaxed(gc->reg_base + reg_offset);
}

struct irq_matrix;
--
2.39.2

\
 
 \ /
  Last update: 2024-05-27 14:38    [W:4.128 / U:0.124 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site