On Sunday, February 06, 2011, Matthew Garrett wrote:
On Sun, Feb 06, 2011 at 09:35:07PM +0100, Rafael J. Wysocki wrote:
acpi_get_parent(device->dev->handle, &acpi_parent);
pdev = acpi_get_pci_dev(acpi_parent);
if (pdev) {
parent = &pdev->dev;
pci_dev_put(pdev);
}
I'm afraid you can't do that or suspend problems will happen.
Ugh. Ok, how can we fix this?
Not nicely, I'm afraid.
One possible way is to use device_pm_move_after() to rearrange the devices in the PM core's suspend list, but that will happen in the video device being suspended before the new parent (and resumed after it) -- of course, the only option is to move the ACPI video device after the new parent.
Thanks, Rafael