Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9c9947f8 authored by Thomas Gleixner's avatar Thomas Gleixner
Browse files

Merge tag 'irqchip-4.13-3' of...

Merge tag 'irqchip-4.13-3' of git://git.kernel.org/pub/scm/linux/kernel/git/maz/arm-platforms into irq/urgent

Pull irqchip fixes for 4.13 from Marc Zyngier

Mostly GIC related, again:
- GICv3 ITS NUMA handling fixes
- GICv3 force affinity handling
- Barrier adjustment in both GIC interrupt handling
- Error reporting when the DT presents an incompatible interrupt
- GICv3 platform MSI DT parsing bug fix
- Broadcom L2 PM fix
- Atmel AIC cleanups
parents 83979133 a0088737
Loading
Loading
Loading
Loading
+6 −7
Original line number Diff line number Diff line
@@ -137,14 +137,14 @@ static void __init aic_common_ext_irq_of_init(struct irq_domain *domain)
#define AT91_RTC_IMR           0x28
#define AT91_RTC_IRQ_MASK      0x1f

void __init aic_common_rtc_irq_fixup(struct device_node *root)
void __init aic_common_rtc_irq_fixup(void)
{
	struct device_node *np;
	void __iomem *regs;

	np = of_find_compatible_node(root, NULL, "atmel,at91rm9200-rtc");
	np = of_find_compatible_node(NULL, NULL, "atmel,at91rm9200-rtc");
	if (!np)
		np = of_find_compatible_node(root, NULL,
		np = of_find_compatible_node(NULL, NULL,
					     "atmel,at91sam9x5-rtc");

	if (!np)
@@ -165,7 +165,7 @@ void __init aic_common_rtc_irq_fixup(struct device_node *root)
#define AT91_RTT_ALMIEN		(1 << 16)		/* Alarm Interrupt Enable */
#define AT91_RTT_RTTINCIEN	(1 << 17)		/* Real Time Timer Increment Interrupt Enable */

void __init aic_common_rtt_irq_fixup(struct device_node *root)
void __init aic_common_rtt_irq_fixup(void)
{
	struct device_node *np;
	void __iomem *regs;
@@ -196,11 +196,10 @@ static void __init aic_common_irq_fixup(const struct of_device_id *matches)
		return;

	match = of_match_node(matches, root);
	of_node_put(root);

	if (match) {
		void (*fixup)(struct device_node *) = match->data;
		fixup(root);
		void (*fixup)(void) = match->data;
		fixup();
	}

	of_node_put(root);
+2 −2
Original line number Diff line number Diff line
@@ -33,8 +33,8 @@ struct irq_domain *__init aic_common_of_init(struct device_node *node,
					     const char *name, int nirqs,
					     const struct of_device_id *matches);

void __init aic_common_rtc_irq_fixup(struct device_node *root);
void __init aic_common_rtc_irq_fixup(void);

void __init aic_common_rtt_irq_fixup(struct device_node *root);
void __init aic_common_rtt_irq_fixup(void);

#endif /* __IRQ_ATMEL_AIC_COMMON_H */
+7 −7
Original line number Diff line number Diff line
@@ -209,20 +209,20 @@ static const struct irq_domain_ops aic_irq_ops = {
	.xlate	= aic_irq_domain_xlate,
};

static void __init at91rm9200_aic_irq_fixup(struct device_node *root)
static void __init at91rm9200_aic_irq_fixup(void)
{
	aic_common_rtc_irq_fixup(root);
	aic_common_rtc_irq_fixup();
}

static void __init at91sam9260_aic_irq_fixup(struct device_node *root)
static void __init at91sam9260_aic_irq_fixup(void)
{
	aic_common_rtt_irq_fixup(root);
	aic_common_rtt_irq_fixup();
}

static void __init at91sam9g45_aic_irq_fixup(struct device_node *root)
static void __init at91sam9g45_aic_irq_fixup(void)
{
	aic_common_rtc_irq_fixup(root);
	aic_common_rtt_irq_fixup(root);
	aic_common_rtc_irq_fixup();
	aic_common_rtt_irq_fixup();
}

static const struct of_device_id aic_irq_fixups[] __initconst = {
+2 −2
Original line number Diff line number Diff line
@@ -305,9 +305,9 @@ static const struct irq_domain_ops aic5_irq_ops = {
	.xlate	= aic5_irq_domain_xlate,
};

static void __init sama5d3_aic_irq_fixup(struct device_node *root)
static void __init sama5d3_aic_irq_fixup(void)
{
	aic_common_rtc_irq_fixup(root);
	aic_common_rtc_irq_fixup();
}

static const struct of_device_id aic5_irq_fixups[] __initconst = {
+1 −0
Original line number Diff line number Diff line
@@ -189,6 +189,7 @@ static int __init brcmstb_l2_intc_of_init(struct device_node *np,

	ct->chip.irq_suspend = brcmstb_l2_intc_suspend;
	ct->chip.irq_resume = brcmstb_l2_intc_resume;
	ct->chip.irq_pm_shutdown = brcmstb_l2_intc_suspend;

	if (data->can_wake) {
		/* This IRQ chip can wake the system, set all child interrupts
Loading