|To:||Sergei Shtylyov <email@example.com>|
|Subject:||Re: [PATCH] ide: New libata driver for OCTEON SOC Compact Flash interface.|
|From:||David Daney <firstname.lastname@example.org>|
|Date:||Fri, 21 Nov 2008 09:47:55 -0800|
|Cc:||Alan Cox <email@example.com>, firstname.lastname@example.org, linux-mips <email@example.com>|
|References:||<49261BE5.firstname.lastname@example.org> <email@example.com> <4926EA6A.firstname.lastname@example.org> <4926EF55.email@example.com>|
|User-agent:||Thunderbird 22.214.171.124 (X11/20080723)|
Sergei Shtylyov wrote:
David Daney wrote:
What stops the following occuringATA irq BUSY still set Queue taskletOther irq on same line ATA busy clear Handle commandIs 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.
|<Prev in Thread]||Current Thread||[Next in Thread>|
|Previous by Date:||Re: [PATCH] ide: New libata driver for OCTEON SOC Compact Flash interface., Alan Cox|
|Next by Date:||Re: [PATCH] ide: New libata driver for OCTEON SOC Compact Flash interface., Alan Cox|
|Previous by Thread:||Re: [PATCH] ide: New libata driver for OCTEON SOC Compact Flash interface., Sergei Shtylyov|
|Next by Thread:||Re: [PATCH] ide: New libata driver for OCTEON SOC Compact Flash interface., Alan Cox|
|Indexes:||[Date] [Thread] [Top] [All Lists]|