Re: Does it need to implement irq_set_type method in the ioapic_chip?

From: carl peng
Date: Tue Feb 18 2014 - 21:33:11 EST


Hi Thomas,

Thanks a lot for your help!

But I still have some confusion. Could you please help to give some
suggestions to me?

1) This device is a ACPI device, the hardware engineer designed it as
falling edge interrupt trigger
mode, does it need to re-work the hardware and modify it as rising
edge trigger mode to suit the
Linux APIC driver architecture?
2) Why does APIC driver not implement the irq_set_type method? if
implement it, will supply more
free space for the device driver developer(they can set the interrupt
trigger mode by calling request_irq).

Thank you!
Carl


On Wed, Feb 19, 2014 at 4:13 AM, Thomas Gleixner <tglx@xxxxxxxxxxxxx> wrote:
> On Tue, 18 Feb 2014, carl peng wrote:
>
> Carl, sending the same mail twice within an hour does not speed up
> things. It's quite likely that it gets ignored.
>
>> 1. Does it need to implement irq_set_type method in the ioapic_chip
>> structure?
>
> No. The irq type is configured by the type of the interrupt or the
> BIOS.
>
> ISA interrupts are always polarity zero edge triggered (historic)
>
> PCI interrupts are always polarity one level triggered
>
> PCIE interrupts are either legacy PCI or with MSI[X] always edge
> triggered
>
>> 2. if no need to implement it, how can device driver set the trigger mode
>> of APIC interrupt controller pin?
>
> Not at all.
>
> The device which is connected to one of the busses must follow the
> specification of the bus. There is no choice. Any additional
> requirements of the device to deal with external signals must be
> handled by the device itself and converted to the appropriate bus
> requirement.
>
> This all is configured by the kernel automatically through bus
> detection and BIOS tables.
>
> Thanks,
>
> tglx
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/