IDE failure on ACPI resume

Matthew Garrett
2005-03-13T19:14:01Z

On resume, an HP nc6220 fails during resuming of the IDE devices. In
this section of code from ide-iops.c:

stat = hwif->INB(hwif->io_ports[IDE_STATUS_OFFSET]);
if ((stat & BUSY_STAT) == 0)
return 0;
/*
* Assume a value of 0xff means nothing is connected to
* the interface and it doesn't implement the pull-down
* resistor on D7.
*/
if (stat == 0xff)
return -ENODEV;

0xff is read and ENODEV returned. This results in

hda: bus not ready on wakeup
hda: drive not ready on wakeup

and then the machine sits there until some later command times out. It
seems that reading anything off the IDE bus just results in 0xff being
read.

The IDE controller is an Intel ICH6. Another HP laptop with an identical
chipset works fine, which makes me suspicious of the BIOS. Is the fact
that Linux doesn't seem to run the GTF, STM or GTM methods likely to be
relevant here?

--
Matthew Garrett | mjg59-1xO5oi07KQx4cg9Nei1l7Q@public.gmane.org