Messages in this thread |  | | | Date | Sun, 16 Mar 2008 20:31:09 +0000 | | From | Alan Cox <> | | Subject | Re: Linux 2.6.25-rc4 | |
On Sun, 16 Mar 2008 12:39:43 -0700 (PDT)
Linus Torvalds <torvalds@linux-foundation.org> wrote:
>
>
> On Sun, 16 Mar 2008, Alan Cox wrote:
> >
> > No it doesn't. DRQ simply means "drive has more data for the controller
> > if you want it". Interrupts are controlled via IEN and the interrupt line.
>
> A _lot_ of chips require you to clear the DRQ by taking the data they
> have.
Almost none and mostly very old ones. I'm not saying we shouldn't do it
(except where it hangs the hardware - hence the FIFO flag) but for the
traces presented and hardware reported it appears to be a bit of a red
herring.
> > If the drive wants to give us data and we end the transaction that is
> > fine. In practice a tiny few devices crap themselves if we don't.
>
> More than a few tiny devices from what I remember. It tends to be the
> other way around - most devices do *not* want to get new commands until
> you've finished the previous one by draining the queues.
Not in my experience having maintained a lot of ATA drivers for a very
long time. In fact the changes for draining the DRQ went into libata only
very recently because it was only when we had a distro sized userbase
with PATA devices that it became apparent that a few corner case problems
remained.
Alan
|  |