Re: [PATCH 9/9] PCI PM: generic suspend/resume fixes

From: Adam Belay
Date: Mon Jun 05 2006 - 13:34:57 EST


On Mon, 2006-06-05 at 11:21 +0100, Alan Cox wrote:
> Ar Llu, 2006-06-05 am 04:46 -0400, ysgrifennodd Adam Belay:
> > + * Default suspend method for devices that have no driver provided suspend,
> > + * or not even a driver at all.
> > + */
> > +static void pci_default_suspend(struct pci_dev *pci_dev)
> > +{
> > + pci_save_state(pci_dev);
> > + pci_disable_device(pci_dev);
> > +}
>
> How much testing has this had ? When people starting doing
> disable_device on arbitary hardware various platforms broke horribly
> as a result.

Hi Alan,

I've only tested this on a few x86 boxes. However, I think it's moving
in the right direction for correctly suspending devices. It's worth
mentioning that the PCI PM specification requires the device to be
disabled before entering D3 (something that we fail to do before this
patchset), and the vast majority of devices would end up in this state
if we were using pci_set_power_state() in this function.

Unfortunately, far too many drivers still depend on this generic suspend
call, when they should all implement their own suspend function. I
would except pci_disable_device() issues to the the exception, and as
such, device drivers should provide a ->suspend function that doesn't
call pci_disable_device() when they know their hardware can be
problematic.

With that in mind, any thoughts on giving this a little time in -mm and
seeing how it fares? If any problems come up, we could revert to a more
conservative approach.

Thanks,
Adam


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/