Skip to content

Commit 6ed54e1

Browse files
author
Marc Zyngier
committed
Merge branch irq/misc-6.2 into irq/irqchip-next
* irq/misc-6.2: : . : Random minor fixes and improvments: : : - More Loongson fixes after the Loongarch merge : : - Error handling fixes for wpcm450, GIC... : : - BE detection for a FSL controller : : - Declare the Sifive PLIC as wake-up agnostic : : - Simplify fishing out the device data for the ST irqchip : : - Mark some data structures as __initconst in the apple-aic driver : : - Switch over from strtobool to kstrtobool : : - COMPILET_TEST fixes : : - and the mandatory "repeated word" commit... : . irqchip/ls-extirq: Fix endianness detection irqchip/gic: Use kstrtobool() instead of strtobool() irqchip/sifive-plic: Support wake IRQs irqchip/loongson-liointc: Fix improper error handling in liointc_init() irqchip/sl28cpld: Replace irqchip mask_invert with unmask_base irqchip/wpcm450: Fix memory leak in wpcm450_aic_of_init() irqchip/st: Use device_get_match_data() to simplify the code irqchip/al-fic: Drop obsolete dependency on COMPILE_TEST irqchip: gic-pm: Use pm_runtime_resume_and_get() in gic_probe() irqchip/mips-gic: Drop repeated word in comment irqchip/apple-aic: Mark aic_info structs __initconst Signed-off-by: Marc Zyngier <maz@kernel.org>
2 parents 4363c85 + 3ae977d commit 6ed54e1

12 files changed

Lines changed: 22 additions & 20 deletions

drivers/irqchip/Kconfig

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ config ALPINE_MSI
8686

8787
config AL_FIC
8888
bool "Amazon's Annapurna Labs Fabric Interrupt Controller"
89-
depends on OF || COMPILE_TEST
89+
depends on OF
9090
select GENERIC_IRQ_CHIP
9191
select IRQ_DOMAIN
9292
help

drivers/irqchip/irq-apple-aic.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -248,14 +248,14 @@ struct aic_info {
248248
bool fast_ipi;
249249
};
250250

251-
static const struct aic_info aic1_info = {
251+
static const struct aic_info aic1_info __initconst = {
252252
.version = 1,
253253

254254
.event = AIC_EVENT,
255255
.target_cpu = AIC_TARGET_CPU,
256256
};
257257

258-
static const struct aic_info aic1_fipi_info = {
258+
static const struct aic_info aic1_fipi_info __initconst = {
259259
.version = 1,
260260

261261
.event = AIC_EVENT,
@@ -264,7 +264,7 @@ static const struct aic_info aic1_fipi_info = {
264264
.fast_ipi = true,
265265
};
266266

267-
static const struct aic_info aic2_info = {
267+
static const struct aic_info aic2_info __initconst = {
268268
.version = 2,
269269

270270
.irq_cfg = AIC2_IRQ_CFG,

drivers/irqchip/irq-gic-pm.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ static int gic_probe(struct platform_device *pdev)
102102

103103
pm_runtime_enable(dev);
104104

105-
ret = pm_runtime_get_sync(dev);
105+
ret = pm_runtime_resume_and_get(dev);
106106
if (ret < 0)
107107
goto rpm_disable;
108108

drivers/irqchip/irq-gic-v3.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
#include <linux/delay.h>
1313
#include <linux/interrupt.h>
1414
#include <linux/irqdomain.h>
15+
#include <linux/kstrtox.h>
1516
#include <linux/of.h>
1617
#include <linux/of_address.h>
1718
#include <linux/of_irq.h>
@@ -1171,7 +1172,7 @@ static bool gicv3_nolpi;
11711172

11721173
static int __init gicv3_nolpi_cfg(char *buf)
11731174
{
1174-
return strtobool(buf, &gicv3_nolpi);
1175+
return kstrtobool(buf, &gicv3_nolpi);
11751176
}
11761177
early_param("irqchip.gicv3_nolpi", gicv3_nolpi_cfg);
11771178

drivers/irqchip/irq-gic.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
*/
2020
#include <linux/init.h>
2121
#include <linux/kernel.h>
22+
#include <linux/kstrtox.h>
2223
#include <linux/err.h>
2324
#include <linux/module.h>
2425
#include <linux/list.h>
@@ -1332,7 +1333,7 @@ static bool gicv2_force_probe;
13321333

13331334
static int __init gicv2_force_probe_cfg(char *buf)
13341335
{
1335-
return strtobool(buf, &gicv2_force_probe);
1336+
return kstrtobool(buf, &gicv2_force_probe);
13361337
}
13371338
early_param("irqchip.gicv2_force_probe", gicv2_force_probe_cfg);
13381339

drivers/irqchip/irq-loongson-liointc.c

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -212,10 +212,13 @@ static int liointc_init(phys_addr_t addr, unsigned long size, int revision,
212212
"reg-names", core_reg_names[i]);
213213

214214
if (index < 0)
215-
goto out_iounmap;
215+
continue;
216216

217217
priv->core_isr[i] = of_iomap(node, index);
218218
}
219+
220+
if (!priv->core_isr[0])
221+
goto out_iounmap;
219222
}
220223

221224
/* Setup IRQ domain */

drivers/irqchip/irq-ls-extirq.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -203,7 +203,7 @@ ls_extirq_of_init(struct device_node *node, struct device_node *parent)
203203
if (ret)
204204
goto err_parse_map;
205205

206-
priv->big_endian = of_device_is_big_endian(parent);
206+
priv->big_endian = of_device_is_big_endian(node->parent);
207207
priv->is_ls1021a_or_ls1043a = of_device_is_compatible(node, "fsl,ls1021a-extirq") ||
208208
of_device_is_compatible(node, "fsl,ls1043a-extirq");
209209
raw_spin_lock_init(&priv->lock);

drivers/irqchip/irq-mips-gic.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -494,7 +494,7 @@ static int gic_irq_domain_map(struct irq_domain *d, unsigned int virq,
494494
map = GIC_MAP_PIN_MAP_TO_PIN | gic_cpu_pin;
495495

496496
/*
497-
* If adding support for more per-cpu interrupts, keep the the
497+
* If adding support for more per-cpu interrupts, keep the
498498
* array in gic_all_vpes_irq_cpu_online() in sync.
499499
*/
500500
switch (intr) {

drivers/irqchip/irq-sifive-plic.c

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -187,7 +187,8 @@ static struct irq_chip plic_edge_chip = {
187187
.irq_set_affinity = plic_set_affinity,
188188
#endif
189189
.irq_set_type = plic_irq_set_type,
190-
.flags = IRQCHIP_AFFINITY_PRE_STARTUP,
190+
.flags = IRQCHIP_SKIP_SET_WAKE |
191+
IRQCHIP_AFFINITY_PRE_STARTUP,
191192
};
192193

193194
static struct irq_chip plic_chip = {
@@ -201,7 +202,8 @@ static struct irq_chip plic_chip = {
201202
.irq_set_affinity = plic_set_affinity,
202203
#endif
203204
.irq_set_type = plic_irq_set_type,
204-
.flags = IRQCHIP_AFFINITY_PRE_STARTUP,
205+
.flags = IRQCHIP_SKIP_SET_WAKE |
206+
IRQCHIP_AFFINITY_PRE_STARTUP,
205207
};
206208

207209
static int plic_irq_set_type(struct irq_data *d, unsigned int type)

drivers/irqchip/irq-sl28cpld.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,8 +65,7 @@ static int sl28cpld_intc_probe(struct platform_device *pdev)
6565
irqchip->chip.num_irqs = ARRAY_SIZE(sl28cpld_irqs);
6666
irqchip->chip.num_regs = 1;
6767
irqchip->chip.status_base = base + INTC_IP;
68-
irqchip->chip.mask_base = base + INTC_IE;
69-
irqchip->chip.mask_invert = true;
68+
irqchip->chip.unmask_base = base + INTC_IE;
7069
irqchip->chip.ack_base = base + INTC_IP;
7170

7271
return devm_regmap_add_irq_chip_fwnode(dev, dev_fwnode(dev),

0 commit comments

Comments
 (0)