![]() | ||||||||||
Messages in this thread |
Alan Cox wrote: > 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. .. Err.. I have a fairly modern PATA drive (160GB seagate 2.5") that gets pissed if we leave DRQ hanging. So it's not just something for old/obsolete drives. Or maybe it's the also-modern-ish ICH chipset that gets stuck. Whatever. -ml -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/ | |||||||||
| Last update: 2008-03-21 15:05 [W:0.303 / U:0.070 seconds] ©2003-2008 Jasper Spaans | ||||||||||