]> git.kernelconcepts.de Git - karo-tx-linux.git/commit
Revert "smc91x: retrieve IRQ and trigger flags in a modern way"
authorRobert Jarzmik <robert.jarzmik@free.fr>
Thu, 12 Feb 2015 16:59:10 +0000 (17:59 +0100)
committerDavid S. Miller <davem@davemloft.net>
Tue, 17 Mar 2015 19:04:57 +0000 (15:04 -0400)
commit8d7d9cca4390062ccd09ffd9fdb37d1c4eeea9ac
treee13d853c739413609ef11a9d24a21b0ace04a0c2
parentcb7cf8a33ff73cf638481d1edf883d8968f934f8
Revert "smc91x: retrieve IRQ and trigger flags in a modern way"

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: Robert Jarzmik <robert.jarzmik@free.fr>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/smsc/smc91x.c