Jeff Garzik writes: > hrm.... at this point we have deviated massively from the standard > Promise method of hard reset... > > * set PMP port > * make hotplug irqs > * reset port# in PDC_GLOBAL_CTL > * pdc_reset_port() > * reset FPDMA -- probably a good idea even if not doing FPDMA > * clear SATA Error register (0xffffffff) > * clear errors-reported-from-link-layer register > * wait standard length of time for SATA connection > * clear hotplug bits > * set PMP port > > The PDC_GLOBAL_CTL bitbang is the most notable missing element in the > hard reset path, though we also miss clearing an apparently-important > error register as well. FPDMA reset would be a good idea I think, even > if not in use, mainly for paranoia's sake and because that's what > Promise's driver does. ->freeze() masks hotplug irqs, though it seems the events are still logged and wrongly interpreted by the irq handler. The other Promise bits should be easy to do, though FPDMA reset will need special-casing for 1st-vs-2nd generation and maybe also sata-vs-pata. I'll look into it. /Mikael -- 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