Hi Xin,

Xin Xie wrote:
Inside the uClinux 888’s 2.6.25’s Coldfire timer setup(linux-2.6.25/arch/m68knommu/platform/coldfire/timers.c), the interrupt handler is registered by calling setup_irq():

void coldfire_profile_init(void)
{
    printk(KERN_INFO "PROFILE: lodging TIMER2 @ %dHz as profile timer\n",
           PROFILEHZ);

    setup_irq(mcf_profilevector, &coldfire_profile_irq);

    /* Set up TIMER 2 as high speed profile clock */
__raw_writew(MCFTIMER_TMR_DISABLE, PA(MCFTIMER_TMR));
    __raw_writetrr(((MCF_BUSCLK / 16) / PROFILEHZ), PA(MCFTIMER_TRR));
    __raw_writew(MCFTIMER_TMR_ENORI | MCFTIMER_TMR_CLK16 |
MCFTIMER_TMR_RESTART | MCFTIMER_TMR_ENABLE, PA(MCFTIMER_TMR)); mcf_settimericr(2, 7); }

Can anyone enlighten me why we cannot use the request_irq() here anymore? Does this means all other interrupts registering routine need use the setup_irq() in the Coldfire uClinux kernel?

IIRC it is because timers are setup very early, before the
request_irq() infrastructure has been initialized. (Before the switch
to generic irqs m68knommu code could still call it safely).

General drivers should always use request_irq().

Regards
Greg



------------------------------------------------------------------------
Greg Ungerer  --  Principal Engineer        EMAIL:     g...@snapgear.com
SnapGear, a McAfee Company                  PHONE:       +61 7 3435 2888
825 Stanley St,                             FAX:         +61 7 3891 3630
Woolloongabba, QLD, 4102, Australia         WEB: http://www.SnapGear.com
_______________________________________________
uClinux-dev mailing list
uClinux-dev@uclinux.org
http://mailman.uclinux.org/mailman/listinfo/uclinux-dev
This message was resent by uclinux-dev@uclinux.org
To unsubscribe see:
http://mailman.uclinux.org/mailman/options/uclinux-dev

Reply via email to