Hi, I am working with Linux hibernation framework on ARM based custom SOC which has SATA controller on PCI bus. I see that when the system resumes from hibernation, the SATA controller(drivers/ata/ahci.c) on PCI bus fails to come up. My understanding is that the hibernation calls 'freeze' of all devices. The SATA controller receives the power state event as PM_EVENT_FREEZE ( ie pdev->dev.power.power_state.event = PM_EVENT_FREEZE). Thus when system restores the hibernation image, ahci_pci_device_resume gets called in which ahci_pci_reset_controller/ahci_pci_init_controller does not get called. So SATA controller fails to come up. Please let me know if my understanding is correct or not. If so, then in ahci_pci_device_resume() should we change the following if (pdev->dev.power.power_state.event == PM_EVENT_SUSPEND) to if (pdev->dev.power.power_state.event == PM_EVENT_FREEZE) In hibernation , as we power down the system, so I understand that the sata controller need to be reset and re-initialized for proper functioning. Regards, Ayan Kumar Halder -- 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