• Robert Jarzmik's avatar
    Revert "smc91x: retrieve IRQ and trigger flags in a modern way" · 8d7d9cca
    Robert Jarzmik authored
    The commit breaks the legacy platforms, ie. these not using device-tree,
    and setting up the interrupt resources with a flag to activate edge
    detection. The issue was found on the zylonite platform.
    
    The reason is that zylonite uses platform resources to pass the interrupt number
    and the irq flags (here IORESOURCE_IRQ_HIGHEDGE). It expects the driver to
    request the irq with these flags, which in turn setups the irq as high edge
    triggered.
    
    After the patch, this was supposed to be taken care of with :
      irq_resflags = irqd_get_trigger_type(irq_get_irq_data(ndev->irq));
    
    But irq_resflags is 0 for legacy platforms, while for example in
    arch/arm/mach-pxa/zylonite.c, in struct resource smc91x_resources[] the
    irq flag is specified. This breaks zylonite because the interrupt is not
    setup as triggered, and hardware doesn't provide interrupts.
    Signed-off-by: default avatarRobert Jarzmik <robert.jarzmik@free.fr>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    8d7d9cca
smc91x.c 63.3 KB