Mikael Pettersson writes: > 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. Alexander, have you had a chance to test this? Preferably together with Tejun's hardreset improvement patch posted recently. <http://marc.info/?l=linux-ide&m=122724338905689&w=2> With both this and Tejun's hardreset patch applied my Promise test machine survives several suspend/resume cycles without problems. > /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