Re: IDE-DMA woes

Gerald Britton
2001-12-07T16:31:33Z

On Fri, Dec 07, 2001 at 05:30:14PM -0600, Ishan Oshadi Jayawardena wrote:
> Greetings.
> I run Linux on an IBM PC300GL with Intel's
> 82371AB PIIX4 chipset. With DMA enabled (by doing a
> hdparm -d1 /dev/hda) on the hdd, I
> _sometimes_ get the following message from the kernel
> after resuming from APM standby mode:

I have very similar behavior on an IBM Thinkpad T23. It's got this IDE
controller:

00:1f.1 IDE interface: Intel Corporation: Unknown device 248a (rev 01)
Subsystem: IBM: Unknown device 0220

And, I also only sometimes get roughly:

ide_dmaproc: chipset supported ide_dma_lostirq func only: 13
hda: lost interrupt
ide_dmaproc: chipset supported ide_dma_timeout func only: 14

> ide_dmaproc: chipset supported ide_dma_timeout func only: 14
> hda: status error: status=0x59 { DriveReady SeekComplete DataRequest
> Error }
> hda: status error: error=0x84 { DriveStatusError BadCRC }
> hda: drive not ready for command
>
> then the drive stalls for a few seconds, and the driver
> disables DMA. This behaviour doesn't seem to depend on the
> kernel version (current: 2.4.14; error seen with 2.2 series also.)
> The weird thing is that this is not reliably reproducable; most of
> the time the system goes to apm standby (not suspend) and resumes fine.

Unfortunately, when mine hits this condition, it seems to never recover
from it. It also seems to only happen sometimes and I've been unable to
reliably reproduce the problem. I told Andre about the problem and he
suggested doing a "hdparm -d0 -X08 /dev/hda" prior to suspend and that
seems to work around the problem. I "hdparm -d1 -X69 /dev/hda" on resume
to get it back to speedy udma5 mode. I think the problem is the BIOS doing
things to the IDE chipset during the suspend, and the driver not properly
correcting the changes on resume.

-- Gerald