Re: [PATCH] ide: New libata driver for OCTEON SOC Compact Flash interface.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Sergei Shtylyov wrote:
David Daney wrote:
[...]

What stops the following occuring

    ATA irq
        BUSY still set
        Queue tasklet

    Other irq on same line
    ATA busy clear
        Handle command

   Is CF interrupt indeed shared with anything?

    Tasklet runs but command was sorted out

(or a reset of the ata controller in the gap)

Probably nothing.  I will try to sort it out.

   It's the need for the tasklet that seems doubtful to me...


The interrupt occurs *before* the device de-asserts BUSY. A small pause is needed to allow the device to clear BUSY and allow libata to function normally.

Calling ata_sff_host_intr() while BUSY is asserted causes the driver to fail, as it is expecting to be called from a true IDE interrupt routine. Delaying calling ata_sff_host_intr() until BUSY is clear (using the tasklet) seemed to be the cleanest way to write the driver given that we are using an interrupt generated by DMA complete.

David Daney.


[Index of Archives]     [Linux MIPS Home]     [LKML Archive]     [Linux ARM Kernel]     [Linux ARM]     [Linux]     [Git]     [Yosemite News]     [Linux SCSI]     [Linux Hams]

  Powered by Linux