From 56f621c7f6f735311eed3f36858b402013023c18 Mon Sep 17 00:00:00 2001 From: Ralf Baechle Date: Mon, 15 Oct 2007 01:00:06 +0100 Subject: [PATCH] [MIPS] Alchemy: Get rid of au_ffs(). It was plain a bad idea ... Signed-off-by: Ralf Baechle --- arch/mips/au1000/common/dbdma.c | 2 +- arch/mips/au1000/common/irq.c | 8 ++++---- arch/mips/au1000/pb1200/irqmap.c | 2 +- include/asm-mips/mach-au1x00/au1000.h | 10 ---------- 4 files changed, 6 insertions(+), 16 deletions(-) diff --git a/arch/mips/au1000/common/dbdma.c b/arch/mips/au1000/common/dbdma.c index 461cf01397..9d6ad43fde 100644 --- a/arch/mips/au1000/common/dbdma.c +++ b/arch/mips/au1000/common/dbdma.c @@ -859,7 +859,7 @@ dbdma_interrupt(int irq, void *dev_id) intstat = dbdma_gptr->ddma_intstat; au_sync(); - chan_index = au_ffs(intstat) - 1; + chan_index = ffs(intstat); ctp = chan_tab_ptr[chan_index]; cp = ctp->chan_ptr; diff --git a/arch/mips/au1000/common/irq.c b/arch/mips/au1000/common/irq.c index e86b430399..b0ae1ab0ad 100644 --- a/arch/mips/au1000/common/irq.c +++ b/arch/mips/au1000/common/irq.c @@ -481,7 +481,7 @@ static void intc0_req0_irqdispatch(void) return; } #endif - irq = au_ffs(intc0_req0) - 1; + irq = ffs(intc0_req0); intc0_req0 &= ~(1 << irq); do_IRQ(irq); } @@ -497,7 +497,7 @@ static void intc0_req1_irqdispatch(void) if (!intc0_req1) return; - irq = au_ffs(intc0_req1) - 1; + irq = ffs(intc0_req1); intc0_req1 &= ~(1 << irq); do_IRQ(irq); } @@ -517,7 +517,7 @@ static void intc1_req0_irqdispatch(void) if (!intc1_req0) return; - irq = au_ffs(intc1_req0) - 1; + irq = ffs(intc1_req0); intc1_req0 &= ~(1 << irq); irq += 32; do_IRQ(irq); @@ -534,7 +534,7 @@ static void intc1_req1_irqdispatch(void) if (!intc1_req1) return; - irq = au_ffs(intc1_req1) - 1; + irq = ffs(intc1_req1); intc1_req1 &= ~(1 << irq); irq += 32; do_IRQ(irq); diff --git a/arch/mips/au1000/pb1200/irqmap.c b/arch/mips/au1000/pb1200/irqmap.c index 7c708db04a..aa85eedf7c 100644 --- a/arch/mips/au1000/pb1200/irqmap.c +++ b/arch/mips/au1000/pb1200/irqmap.c @@ -74,7 +74,7 @@ irqreturn_t pb1200_cascade_handler( int irq, void *dev_id) bcsr->int_status = bisr; for( ; bisr; bisr &= (bisr-1) ) { - extirq_nr = (PB1200_INT_BEGIN-1) + au_ffs(bisr); + extirq_nr = PB1200_INT_BEGIN + au_ffs(bisr); /* Ack and dispatch IRQ */ do_IRQ(extirq_nr); } diff --git a/include/asm-mips/mach-au1x00/au1000.h b/include/asm-mips/mach-au1x00/au1000.h index 10f613f23c..6cd6e8b8cd 100644 --- a/include/asm-mips/mach-au1x00/au1000.h +++ b/include/asm-mips/mach-au1x00/au1000.h @@ -98,16 +98,6 @@ static __inline__ int au_ffz(unsigned int x) return __ilog2(x & -x); } -/* - * ffs: find first bit set. This is defined the same way as - * the libc and compiler builtin ffs routines, therefore - * differs in spirit from the above ffz (man ffs). - */ -static __inline__ int au_ffs(int x) -{ - return __ilog2(x & -x) + 1; -} - /* arch/mips/au1000/common/clocks.c */ extern void set_au1x00_speed(unsigned int new_freq); extern unsigned int get_au1x00_speed(void); -- 2.39.5