Changeset a940f1d in mainline


Ignore:
Timestamp:
2013-07-15T19:37:32Z (11 years ago)
Author:
Maurizio Lombardi <m.lombardi85@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
f3386d7, f4a27304
Parents:
12df1f1
Message:

am335x: the NEWIRQAGR bit of the ISR must be set *after* calling the interrupt handler which
deasserts the interrupt condition at the peripheral side.

Fixes the problem with ghost interrupts in the timer driver.

Location:
kernel
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • kernel/arch/arm32/src/mach/beaglebone/beaglebone.c

    r12df1f1 ra940f1d  
    177177{
    178178        const unsigned inum = am335x_irc_inum_get(bbone.irc_addr);
    179         am335x_irc_irq_ack(bbone.irc_addr);
    180179
    181180        irq_t *irq = irq_dispatch_and_lock(inum);
     
    187186                printf("Spurious interrupt\n");
    188187        }
     188
     189        am335x_irc_irq_ack(bbone.irc_addr);
    189190}
    190191
  • kernel/genarch/src/drivers/am335x/timer.c

    r12df1f1 ra940f1d  
    119119        /* Disable compare mode */
    120120        tclr &= ~AM335x_TIMER_TCLR_CE_FLAG;
    121         /* Enable the prescaler, divisor = 2 */
    122         tclr |= AM335x_TIMER_TCLR_PRE_FLAG;
    123         tclr &= ~(AM335x_TIMER_TCLR_PTV_MASK << AM335x_TIMER_TCLR_PTV_SHIFT);
     121
    124122        /* Enable auto-reload mode */
    125123        tclr |= AM335x_TIMER_TCLR_AR_FLAG;
Note: See TracChangeset for help on using the changeset viewer.