Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1670515 > unrolled thread

Re: [PATCH v3 3/4] irqchip: Add BCM2835 AUX interrupt controller

Started byPhil Elwell <phil@raspberrypi.org>
First post2017-06-20 11:20 +0200
Last post2017-06-20 11:20 +0200
Articles 1 — 1 participant

Back to article view | Back to linux.kernel

This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by below is the oldest one visible, not the original post.


Contents

  Re: [PATCH v3 3/4] irqchip: Add BCM2835 AUX interrupt controller Phil Elwell <phil@raspberrypi.org> - 2017-06-20 11:20 +0200

#1670515 — Re: [PATCH v3 3/4] irqchip: Add BCM2835 AUX interrupt controller

FromPhil Elwell <phil@raspberrypi.org>
Date2017-06-20 11:20 +0200
SubjectRe: [PATCH v3 3/4] irqchip: Add BCM2835 AUX interrupt controller
Message-ID<tUnuk-6Hb-85@gated-at.bofh.it>
On 19/06/2017 22:13, Florian Fainelli wrote:
> On 06/14/2017 09:29 AM, Phil Elwell wrote:
>> Devices in the BCM2835 AUX block share a common interrupt line, with a
>> register indicating which devices have active IRQs. Expose this as a
>> nested interrupt controller to avoid IRQ sharing problems (easily
>> observed if UART1 and SPI1/2 are enabled simultaneously).
>>
>> Signed-off-by: Phil Elwell <phil@raspberrypi.org>
>> ---
> 
>> +/*
>> + * The irq_mask and irq_unmask function pointers are used without
>> + * validity checks, so they must not be NULL. Create a dummy function
>> + * with the expected type for use as a no-op.
>> + */
>> +static void bcm2835_aux_irq_dummy(struct irq_data *data)
>> +{
>> +}
>> +
>> +static struct irq_chip bcm2835_aux_irq_chip = {
>> +	.name = "bcm2835-aux_irq",
>> +	.irq_mask = bcm2835_aux_irq_dummy,
>> +	.irq_unmask = bcm2835_aux_irq_dummy,
>> +};
> 
> So how are the interrupt enabled/disabled if this interrupt controller
> just returns their pending state?

Interrupts must be enabled, disabled and acknowledged on the blocks in the
AUX domain - UART1, SPI1 and SPI2. There is no additional masking -
AUXIRQ is essentially an interrupt sharing accelerator.

Phil

[toc] | [standalone]


Back to top | Article view | linux.kernel


csiph-web