On Fri, Sep 06, 2019 at 08:48:15PM +0300, Andy Shevchenko wrote: > On Fri, Sep 06, 2019 at 07:17:11PM +0200, Martin Blumenstingl wrote: > > On Fri, Sep 6, 2019 at 5:22 AM Chuan Hua, Lei > > <chuanhua.lei@xxxxxxxxxxxxxxx> wrote: > > > > type_index = fwspec->param[1]; // index. > > > if (type_index >= ARRAY_SIZE(of_ioapic_type)) > > > return -EINVAL; > > > > > > I would not see this definition is user-friendly. But it is how x86 > > > handles at the moment. > > thank you for explaining this - I had no idea x86 is different from > > all other platforms I know > > the only upstream x86 .dts I could find > > (arch/x86/platform/ce4100/falconfalls.dts) also uses the magic x86 > > numbers > > so I'm fine with this until someone else knows a better solution > > Ivan, Cc'ed, had done few amendments to x86 DT support. Perhaps he may add > something to the discussion. I just fixed broken interrupt support in x86-specific DT implementation. In CE4100, PCI devices are directly connected to I/O APIC input lines. Conventional PCI devices other than bridges don't need to be described in Device Tree or if they use standard PCI routing. Mapping INTA .. INTD pins to inputs of the bridge's interrupt parent depends on device number on the bus. In Device Tree, this mapping is described by "interrupt-map-mask" and "interrupt-map" properties of the bridge device node. Possible interrupt types described by Open Firmware Recomended Practice: 0 - Rising Edge 1 - Level triggered, active low