Changeset 27308


Ignore:
Timestamp:
2011-06-29T10:57:29+02:00 (7 years ago)
Author:
juhosg
Message:

ar71xx: add separate handlers for IP3 interrupts

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/target/linux/ar71xx/files/arch/mips/ar71xx/irq.c

    r27307 r27308  
    249249 
    250250/* 
    251  * The IP2 line is tied to a PCI/WMAC device. Drivers for these 
    252  * devices typically allocate coherent DMA memory for the descriptor 
    253  * ring, however the DMA controller may still have some unsynchronized 
    254  * data in the FIFO. 
     251 * The IP2/IP3 lines are tied to a PCI/WMAC/USB device. Drivers for 
     252 * these devices typically allocate coherent DMA memory, however the 
     253 * DMA controller may still have some unsynchronized data in the FIFO. 
    255254 * Issue a flush in the handlers to ensure that the driver sees 
    256255 * the update. 
     
    286285} 
    287286 
     287static void ar71xx_ip3_handler(void) 
     288{ 
     289        ar71xx_ddr_flush(AR71XX_DDR_REG_FLUSH_USB); 
     290        do_IRQ(AR71XX_CPU_IRQ_USB); 
     291} 
     292 
     293static void ar724x_ip3_handler(void) 
     294{ 
     295        ar71xx_ddr_flush(AR724X_DDR_REG_FLUSH_USB); 
     296        do_IRQ(AR71XX_CPU_IRQ_USB); 
     297} 
     298 
     299static void ar913x_ip3_handler(void) 
     300{ 
     301        ar71xx_ddr_flush(AR91XX_DDR_REG_FLUSH_USB); 
     302        do_IRQ(AR71XX_CPU_IRQ_USB); 
     303} 
     304 
     305static void ar933x_ip3_handler(void) 
     306{ 
     307        ar71xx_ddr_flush(AR933X_DDR_REG_FLUSH_USB); 
     308        do_IRQ(AR71XX_CPU_IRQ_USB); 
     309} 
     310 
     311static void ar934x_ip3_handler(void) 
     312{ 
     313        do_IRQ(AR71XX_CPU_IRQ_USB); 
     314} 
     315 
    288316static void (*ip2_handler)(void); 
     317static void (*ip3_handler)(void); 
    289318 
    290319asmlinkage void plat_irq_dispatch(void) 
     
    307336 
    308337        else if (pending & STATUSF_IP3) 
    309                 do_IRQ(AR71XX_CPU_IRQ_USB); 
     338                ip3_handler(); 
    310339 
    311340        else if (pending & STATUSF_IP6) 
     
    322351        case AR71XX_SOC_AR7161: 
    323352                ip2_handler = ar71xx_ip2_handler; 
     353                ip3_handler = ar71xx_ip3_handler; 
    324354                break; 
    325355 
     
    328358        case AR71XX_SOC_AR7242: 
    329359                ip2_handler = ar724x_ip2_handler; 
     360                ip3_handler = ar724x_ip3_handler; 
    330361                break; 
    331362 
     
    333364        case AR71XX_SOC_AR9132: 
    334365                ip2_handler = ar913x_ip2_handler; 
     366                ip3_handler = ar913x_ip3_handler; 
    335367                break; 
    336368 
     
    338370        case AR71XX_SOC_AR9331: 
    339371                ip2_handler = ar933x_ip2_handler; 
     372                ip3_handler = ar933x_ip3_handler; 
    340373                break; 
    341374 
     
    344377        case AR71XX_SOC_AR9344: 
    345378                ip2_handler = ar934x_ip2_handler; 
     379                ip3_handler = ar934x_ip3_handler; 
    346380                break; 
    347381 
Note: See TracChangeset for help on using the changeset viewer.