Skip to content

Commit

Permalink
[PATCH] smc91x needs settable IRQ trigger type
Browse files Browse the repository at this point in the history
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: David Brownell <dbrownell@users.sourceforge.net>
  • Loading branch information
David Brownell authored and Jeff Garzik committed Jun 28, 2005
1 parent a5fe736 commit 5f13e7e
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 1 deletion.
2 changes: 1 addition & 1 deletion drivers/net/smc91x.c
Original file line number Diff line number Diff line change
Expand Up @@ -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
{
Expand Down
13 changes: 13 additions & 0 deletions drivers/net/smc91x.h
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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
/*
Expand Down

0 comments on commit 5f13e7e

Please sign in to comment.