[prev in list] [next in list] [prev in thread] [next in thread] 

List:       linux-arm-kernel
Subject:    Re: q:cf/pcmcia
From:       Steven Scholz <steven.scholz () imc-berlin ! de>
Date:       2004-08-04 8:43:03
Message-ID: 4110A197.5020806 () imc-berlin ! de
[Download RAW message or body]

Yann Desplanches wrote:
> 
>  > the driver work for ide mode,it need interrupt,but at91rm9200 
> hardware design only for memory mode ,
>  > it can't support interrupt,so driver always output info "lost 
> interrupt".
>  > I don't know that is right? who can solve this problem.
>  > I just delete printf in driver
> 
> I don't be a "kernel specialist"... but working in polling mode (with 
> timer expiry) with just only a "cfcard ide device" do not seem to be a 
> problem: in ide_intr() and in ide_timer_expiry(), if drive_is_ready() we 
> call  hwgroup->handler(). And in  ide_timer_expiry() we just ack int and 
> print a message.
> But working with another ide device?? -> timeout problem? sharing same 
> irq? etc...

The problems is drivers/at91/pcmcia/at91_lowlevel.c:

int at91_pcmcia_get_irq_info(struct pcmcia_irq_info *info)
{

         if (info->sock >= AT91_PCMCIA_MAX_SOCK)
                 return -1;
         info->irq = at91_pcmcia_irqs[0].irq;
         return 0;
}

If your irq line from the CF socket (a.k.a. RDY/BSY) is not connected to the 
same GPIO port as the status lines (CD1,CD2).

If you're using a real irq line for the CF socket RDY/BSY signal and no GPIO 
pin then the above function should return something like

         info->irq = AT91C_ID_IRQ5;

instead!!!
Make sure that you configure and enable the IRQ5 pin.

It might be possible to connect RDY/BSY to a GPIO pin. Even on the same port 
as the status lines (CD1,CD2).
But then you habe to make sure that the at91 pcmcia irq handler supports 
shared irq.

But IMHO the first way is the better.


-- 
Steven Scholz

-------------------------------------------------------------------
Subscription options: http://lists.arm.linux.org.uk/mailman/listinfo/linux-arm-kernel
FAQ:       http://www.arm.linux.org.uk/armlinux/mlfaq.php
Etiquette: http://www.arm.linux.org.uk/armlinux/mletiquette.php
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic