Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5f13e7ec authored by David Brownell's avatar David Brownell Committed by Jeff Garzik
Browse files

[PATCH] smc91x needs settable IRQ trigger type



For boards that invert the SMC91x IRQ line (maybe an FPGA inverts it),
the set_irq_type() call can't assume IRQT_RISING.  These particular
boards currently use OMAP-specific calls to change the trigger type,
but the boards break when set_irq_type() stops being a NOP.

Signed-off-by: default avatarDavid Brownell <dbrownell@users.sourceforge.net>
parent a5fe736e
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -1998,7 +1998,7 @@ static int __init smc_probe(struct net_device *dev, void __iomem *ioaddr)
      	if (retval)
      		goto err_out;

	set_irq_type(dev->irq, IRQT_RISING);
	set_irq_type(dev->irq, SMC_IRQ_TRIGGER_TYPE);

#ifdef SMC_USE_PXA_DMA
	{
+13 −0
Original line number Diff line number Diff line
@@ -182,6 +182,16 @@ SMC_outw(u16 val, void __iomem *ioaddr, int reg)
#define SMC_insl(a, r, p, l)	readsl((a) + (r), p, l)
#define SMC_outsl(a, r, p, l)	writesl((a) + (r), p, l)

#include <asm/mach-types.h>
#include <asm/arch/cpu.h>

#define	SMC_IRQ_TRIGGER_TYPE (( \
		   machine_is_omap_h2() \
		|| machine_is_omap_h3() \
		|| (machine_is_omap_innovator() && !cpu_is_omap150()) \
	) ? IRQT_FALLING : IRQT_RISING)


#elif	defined(CONFIG_SH_SH4202_MICRODEV)

#define SMC_CAN_USE_8BIT	0
@@ -300,6 +310,9 @@ static inline void SMC_outsw (unsigned long a, int r, unsigned char* p, int l)

#endif

#ifndef	SMC_IRQ_TRIGGER_TYPE
#define	SMC_IRQ_TRIGGER_TYPE	IRQT_RISING
#endif

#ifdef SMC_USE_PXA_DMA
/*