aboutsummaryrefslogtreecommitdiffstats
path: root/arch/mips/au1000/pb1200/irqmap.c
diff options
context:
space:
mode:
authorPete Popov <ppopov@embeddedalley.com>2005-09-15 04:03:12 -0400
committerRalf Baechle <ralf@linux-mips.org>2005-10-29 14:32:20 -0400
commit26a940e21752e0de8f068f77dad606a7d1986937 (patch)
tree88e46225e19c4c72fa6914a21afb28c6ea52bfc6 /arch/mips/au1000/pb1200/irqmap.c
parent64abf64d10b3a547becefeb26394dfbefac273fb (diff)
Cleaned up AMD Au1200 IDE driver:
- converted to platform bus - removed pci dependencies - removed virt_to_phys/phys_to_virt calls System now can root off of a disk. Signed-off-by: Ralf Baechle <ralf@linux-mips.org> diff --git a/Documentation/mips/AU1xxx_IDE.README b/Documentation/mips/AU1xxx_IDE.README new file mode 100644
Diffstat (limited to 'arch/mips/au1000/pb1200/irqmap.c')
-rw-r--r--arch/mips/au1000/pb1200/irqmap.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/arch/mips/au1000/pb1200/irqmap.c b/arch/mips/au1000/pb1200/irqmap.c
index 2ec64e78aa01..59e70e5cf325 100644
--- a/arch/mips/au1000/pb1200/irqmap.c
+++ b/arch/mips/au1000/pb1200/irqmap.c
@@ -22,6 +22,7 @@
22 * with this program; if not, write to the Free Software Foundation, Inc., 22 * with this program; if not, write to the Free Software Foundation, Inc.,
23 * 675 Mass Ave, Cambridge, MA 02139, USA. 23 * 675 Mass Ave, Cambridge, MA 02139, USA.
24 */ 24 */
25#include <linux/config.h>
25#include <linux/errno.h> 26#include <linux/errno.h>
26#include <linux/init.h> 27#include <linux/init.h>
27#include <linux/irq.h> 28#include <linux/irq.h>
@@ -65,7 +66,7 @@ int au1xxx_nr_irqs = sizeof(au1xxx_irq_map)/sizeof(au1xxx_irq_map_t);
65 */ 66 */
66static volatile int pb1200_cascade_en=0; 67static volatile int pb1200_cascade_en=0;
67 68
68void pb1200_cascade_handler( int irq, void *dev_id, struct pt_regs *regs) 69irqreturn_t pb1200_cascade_handler( int irq, void *dev_id, struct pt_regs *regs)
69{ 70{
70 unsigned short bisr = bcsr->int_status; 71 unsigned short bisr = bcsr->int_status;
71 int extirq_nr = 0; 72 int extirq_nr = 0;
@@ -78,6 +79,7 @@ void pb1200_cascade_handler( int irq, void *dev_id, struct pt_regs *regs)
78 /* Ack and dispatch IRQ */ 79 /* Ack and dispatch IRQ */
79 do_IRQ(extirq_nr,regs); 80 do_IRQ(extirq_nr,regs);
80 } 81 }
82 return IRQ_RETVAL(1);
81} 83}
82 84
83inline void pb1200_enable_irq(unsigned int irq_nr) 85inline void pb1200_enable_irq(unsigned int irq_nr)
@@ -97,7 +99,7 @@ static unsigned int pb1200_startup_irq( unsigned int irq_nr )
97 if (++pb1200_cascade_en == 1) 99 if (++pb1200_cascade_en == 1)
98 { 100 {
99 request_irq(AU1000_GPIO_7, &pb1200_cascade_handler, 101 request_irq(AU1000_GPIO_7, &pb1200_cascade_handler,
100 0, "Pb1200 Cascade", &pb1200_cascade_handler ); 102 0, "Pb1200 Cascade", (void *)&pb1200_cascade_handler );
101#ifdef CONFIG_MIPS_PB1200 103#ifdef CONFIG_MIPS_PB1200
102 /* We have a problem with CPLD rev3. Enable a workaround */ 104 /* We have a problem with CPLD rev3. Enable a workaround */
103 if( ((bcsr->whoami & BCSR_WHOAMI_CPLD)>>4) <= 3) 105 if( ((bcsr->whoami & BCSR_WHOAMI_CPLD)>>4) <= 3)