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

Reply via email to