Skip to content

Commit

Permalink
Merge tag 'irqchip-fixes-5.11-1' of git://git.kernel.org/pub/scm/linu…
Browse files Browse the repository at this point in the history
…x/kernel/git/maz/arm-platforms into irq/urgent

Pull irqchip fixes from Marc Zyngier:

 - Fix the MIPS CPU interrupt controller hierarchy
 - Simplify the PRUSS Kconfig entry
 - Eliminate trivial build warnings on the MIPS Loongson liointc
 - Fix error path in devm_platform_get_irqs_affinity()
 - Turn the BCM2836 IPI irq_eoi callback into irq_ack
 - Fix initialisation of on-stack msi_alloc_info
 - Cleanup spurious comma in irq-sl28cpld

Link: https://lore.kernel.org/r/[email protected]
  • Loading branch information
KAGA-KOKO committed Jan 12, 2021
2 parents 7c53f6b + 599b306 commit 4bae052
Show file tree
Hide file tree
Showing 7 changed files with 18 additions and 8 deletions.
2 changes: 2 additions & 0 deletions drivers/base/platform.c
Original file line number Diff line number Diff line change
Expand Up @@ -366,6 +366,8 @@ int devm_platform_get_irqs_affinity(struct platform_device *dev,
return -ERANGE;

nvec = platform_irq_count(dev);
if (nvec < 0)
return nvec;

if (nvec < minvec)
return -ENOSPC;
Expand Down
5 changes: 3 additions & 2 deletions drivers/irqchip/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -493,8 +493,9 @@ config TI_SCI_INTA_IRQCHIP
TI System Controller, say Y here. Otherwise, say N.

config TI_PRUSS_INTC
tristate "TI PRU-ICSS Interrupt Controller"
depends on ARCH_DAVINCI || SOC_AM33XX || SOC_AM43XX || SOC_DRA7XX || ARCH_KEYSTONE || ARCH_K3
tristate
depends on TI_PRUSS
default TI_PRUSS
select IRQ_DOMAIN
help
This enables support for the PRU-ICSS Local Interrupt Controller
Expand Down
4 changes: 2 additions & 2 deletions drivers/irqchip/irq-bcm2836.c
Original file line number Diff line number Diff line change
Expand Up @@ -167,7 +167,7 @@ static void bcm2836_arm_irqchip_handle_ipi(struct irq_desc *desc)
chained_irq_exit(chip, desc);
}

static void bcm2836_arm_irqchip_ipi_eoi(struct irq_data *d)
static void bcm2836_arm_irqchip_ipi_ack(struct irq_data *d)
{
int cpu = smp_processor_id();

Expand Down Expand Up @@ -195,7 +195,7 @@ static struct irq_chip bcm2836_arm_irqchip_ipi = {
.name = "IPI",
.irq_mask = bcm2836_arm_irqchip_dummy_op,
.irq_unmask = bcm2836_arm_irqchip_dummy_op,
.irq_eoi = bcm2836_arm_irqchip_ipi_eoi,
.irq_ack = bcm2836_arm_irqchip_ipi_ack,
.ipi_send_mask = bcm2836_arm_irqchip_ipi_send_mask,
};

Expand Down
4 changes: 2 additions & 2 deletions drivers/irqchip/irq-loongson-liointc.c
Original file line number Diff line number Diff line change
Expand Up @@ -142,8 +142,8 @@ static void liointc_resume(struct irq_chip_generic *gc)

static const char * const parent_names[] = {"int0", "int1", "int2", "int3"};

int __init liointc_of_init(struct device_node *node,
struct device_node *parent)
static int __init liointc_of_init(struct device_node *node,
struct device_node *parent)
{
struct irq_chip_generic *gc;
struct irq_domain *domain;
Expand Down
7 changes: 7 additions & 0 deletions drivers/irqchip/irq-mips-cpu.c
Original file line number Diff line number Diff line change
Expand Up @@ -197,6 +197,13 @@ static int mips_cpu_ipi_alloc(struct irq_domain *domain, unsigned int virq,
if (ret)
return ret;

ret = irq_domain_set_hwirq_and_chip(domain->parent, virq + i, hwirq,
&mips_mt_cpu_irq_controller,
NULL);

if (ret)
return ret;

ret = irq_set_irq_type(virq + i, IRQ_TYPE_LEVEL_HIGH);
if (ret)
return ret;
Expand Down
2 changes: 1 addition & 1 deletion drivers/irqchip/irq-sl28cpld.c
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ static int sl28cpld_intc_probe(struct platform_device *pdev)
irqchip->chip.num_regs = 1;
irqchip->chip.status_base = base + INTC_IP;
irqchip->chip.mask_base = base + INTC_IE;
irqchip->chip.mask_invert = true,
irqchip->chip.mask_invert = true;
irqchip->chip.ack_base = base + INTC_IP;

return devm_regmap_add_irq_chip_fwnode(dev, dev_fwnode(dev),
Expand Down
2 changes: 1 addition & 1 deletion kernel/irq/msi.c
Original file line number Diff line number Diff line change
Expand Up @@ -402,7 +402,7 @@ int __msi_domain_alloc_irqs(struct irq_domain *domain, struct device *dev,
struct msi_domain_ops *ops = info->ops;
struct irq_data *irq_data;
struct msi_desc *desc;
msi_alloc_info_t arg;
msi_alloc_info_t arg = { };
int i, ret, virq;
bool can_reserve;

Expand Down

0 comments on commit 4bae052

Please sign in to comment.