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