source: trunk/target/linux/ifxmips/patches-2.6.30/000-mips-bad-intctl.patch @ 17817

Last change on this file since 17817 was 17817, checked in by blogic, 7 years ago

bump ifxmips to .30

File size: 1.3 KB
  • arch/mips/kernel/traps.c

    old new  
    15421542         */ 
    15431543        if (cpu_has_mips_r2) { 
    15441544                cp0_compare_irq = (read_c0_intctl() >> 29) & 7; 
     1545                if (!cp0_compare_irq) 
     1546                        cp0_compare_irq = CP0_LEGACY_COMPARE_IRQ; 
     1547 
    15451548                cp0_perfcount_irq = (read_c0_intctl() >> 26) & 7; 
     1549                if (!cp0_perfcount_irq) 
     1550                        cp0_perfcount_irq = CP0_LEGACY_PERFCNT_IRQ; 
     1551 
     1552                if (arch_fixup_c0_irqs) 
     1553                        arch_fixup_c0_irqs(); 
     1554 
    15461555                if (cp0_perfcount_irq == cp0_compare_irq) 
    15471556                        cp0_perfcount_irq = -1; 
    15481557        } else { 
  • arch/mips/include/asm/irq.h

    old new  
    157157 * IE7.  Since R2 their number has to be read from the c0_intctl register. 
    158158 */ 
    159159#define CP0_LEGACY_COMPARE_IRQ 7 
     160#define CP0_LEGACY_PERFCNT_IRQ 7 
    160161 
    161162extern int cp0_compare_irq; 
    162163extern int cp0_perfcount_irq; 
     164extern void __weak arch_fixup_c0_irqs(void); 
    163165 
    164166#endif /* _ASM_IRQ_H */ 
Note: See TracBrowser for help on using the repository browser.