Alexander Clausen writes: > Mikael Pettersson wrote: > > Do you have anything connected to that mobo's VIA SATA ports? If not, > > you could move the disk(s) from the Promise controller to the VIA > > controller just to see how the machine behaves over repeated suspend/resume > > cycles. (I'm not suggesting you move the disks permanently, this would > > just be a data gathering experiment.) > > It works fine (~5 cycles tested) with the PCI (non-onboard) controller (VIA VT6421). > Of course I'm still interested in getting suspend to work with the promise chip, so I don't > have to waste money on the addon card (the one used in testing is just borrowed) Based on several other libata sata drivers I think handling suspend in sata_promise may be as simple as hooking ata_pci_device_{suspend,resume}, which is what the patch below does. If this doesn't work then the most likely solution is to augment the ->resume op with a Promise-specific controller reset (again similar to several other sata drivers). Care to give it a try? The patch is against 2.6.28-rc5 but should also work in 2.6.27. /Mikael diff -rupN linux-2.6.28-rc5/drivers/ata/sata_promise.c linux-2.6.28-rc5.sata_promise-suspend-v1/drivers/ata/sata_promise.c --- linux-2.6.28-rc5/drivers/ata/sata_promise.c 2008-11-18 09:13:29.000000000 +0100 +++ linux-2.6.28-rc5.sata_promise-suspend-v1/drivers/ata/sata_promise.c 2008-11-18 22:47:46.000000000 +0100 @@ -308,6 +308,10 @@ static struct pci_driver pdc_ata_pci_dri .id_table = pdc_ata_pci_tbl, .probe = pdc_ata_init_one, .remove = ata_pci_remove_one, +#ifdef CONFIG_PM + .suspend = ata_pci_device_suspend, + .resume = ata_pci_device_resume, +#endif }; static int pdc_common_port_start(struct ata_port *ap) -- To unsubscribe from this list: send the line "unsubscribe linux-ide" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html