On Mon, Jul 13, 2020 at 07:38:14PM -0500, Bjorn Helgaas wrote: > On Mon, Jul 13, 2020 at 12:01:51PM +0200, Hans Verkuil wrote: > > On 29/06/2020 09:36, Vaibhav Gupta wrote: > > > > I don't entirely understand this. Wouldn't it be sufficient to just > > drop the .suspend/.resume assignments here? It is now required for > > driver.pm to be non-NULL? > > > > I'm not up to speed on the changes, but normally you can leave things > > NULL if you don't support a feature (PM in this case). > > I think this patch will break things. Previously, we had: > > cx23885_pci_driver.suspend == NULL > cx23885_pci_driver.resume == NULL > cx23885_pci_driver.driver.pm == NULL > > pci_pm_suspend() looks like: > > if (pci_has_legacy_pm_support(pci_dev)) > return pci_legacy_suspend(dev, PMSG_SUSPEND); > > if (!pm) { > pci_pm_default_suspend(pci_dev); > return 0; > } > > pci_has_legacy_pm_support() was false since drv->suspend and > drv->resume are both NULL, so we'd take the pci_pm_default_suspend() > path. After this patch, driver.pm would no longer be NULL, so we'd > take a different path that is clearly not equivalent. > > I think you should do this: > > - /* TODO */ > - .suspend = NULL, > - .resume = NULL, > > and leave .driver.pm NULL by not mentioning it at all. That should be > identical at the object code level since those are the defaults > anyway. > > That almost looks like useless churn, but the point of this patch is > to remove use of PCI legacy PM (pci_driver.suspend and .resume) so we > can completely remove that infrastructure from the PCI core, including > the .suspend and .resume members of struct pci_driver, so we really do > need to do it. Okay! Thanks! -- Vaibhav Gupta > > Bjorn