irqchip fixes for 5.11, take #1
- 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 -----BEGIN PGP SIGNATURE----- iQJDBAABCgAtFiEEn9UcU+C1Yxj9lZw9I9DQutE9ekMFAl/62oIPHG1hekBrZXJu ZWwub3JnAAoJECPQ0LrRPXpDHhoQAI4AGQzq0xNVSi6r8XF6nD2LTDjHGtToeCNo MjJL6uGr8gCuB2vkUSJMUkOHjYwyGswY9S6OS/V+qOYL5dmccFAP517t7pCqca3X FtL6Q4P92dGNr4cfmbVxCrJJ/w7p0oHvrvvpNI76isqBll+WJUVoNGXccydDHNvT 6CzOfi0pZx2m/iBS5t5Cg5LGvqS7wSxyoUy39PisJHpWuUcIimI0n58s2/caDOLH 1CHJkHXwamCUJ6oMEyVXZGQO/XzFn1xeoRiQ1vl08RbzTJepHkz5rKO8QtdP5Uj5 pAycQcUzDXyGZb2mSd+FBKlb24jI7Zh6Qcy1QSnHSXnM0nU8e3xsbW3ouozlXGib Pb8Nxo+BQg0TyD//cU7BSg0PyB4QIvwl0muRbAKHuFQfC7o2a5BWaK4xdB/wXqPm 68YQwCPMZcmKkzQzTfDJQFRsfK1FaENvfdFE88SLV3QlBRfS7EOFZAC20ZUmULVH lWJUUdjjB/d9PGBNAsTPAQDuP5kw4Y70UuB2pD6litVoX6h4NMkdCehBNvCfjC76 OvfIuoyw3uIjDyitzA2dq6Riq+bQHT053mofTUvBrAd3k4q4+R3719jo17+LJ3Nz oJVogFuIqpF7kQTPex/2cRozKH3f1V/rjMw2PQYwJeupTEpeMHjWsAs40YYdNlUm qZw6yqnp =QpSq -----END PGP SIGNATURE----- Merge tag 'irqchip-fixes-5.11-1' of git://git.kernel.org/pub/scm/linux/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/20210110110001.2328708-1-maz@kernel.org
This commit is contained in:
commit
4bae052dde
@ -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;
|
||||
|
@ -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
|
||||
|
@ -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();
|
||||
|
||||
@ -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,
|
||||
};
|
||||
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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),
|
||||
|
@ -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;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user