Message ID | 20200728042809.91436-1-vaibhavgupta40@gmail.com |
---|---|
State | Accepted |
Delegated to: | David Miller |
Headers | show |
Series | [v1] farsync: use generic power management | expand |
This patch is compile-tested only. Thanks Vaibhav Gupta
From: Vaibhav Gupta <vaibhavgupta40@gmail.com> Date: Tue, 28 Jul 2020 09:58:10 +0530 > The .suspend() and .resume() callbacks are not defined for this driver. > Still, their power management structure follows the legacy framework. To > bring it under the generic framework, simply remove the binding of > callbacks from "struct pci_driver". > > Change code indentation from space to tab in "struct pci_driver". > > Signed-off-by: Vaibhav Gupta <vaibhavgupta40@gmail.com> Applied.
On Tue, Jul 28, 2020 at 09:58:10AM +0530, Vaibhav Gupta wrote: > The .suspend() and .resume() callbacks are not defined for this driver. > Still, their power management structure follows the legacy framework. To > bring it under the generic framework, simply remove the binding of > callbacks from "struct pci_driver". FWIW, this commit log is slightly misleading because .suspend and .resume are NULL by default, so this patch actually is a complete no-op as far as code generation is concerned. This change is worthwhile because it simplifies the code a little, but it doesn't convert the driver from legacy to generic power management. This driver doesn't supply a .pm structure, so it doesn't seem to do *any* power management. > Change code indentation from space to tab in "struct pci_driver". > > Signed-off-by: Vaibhav Gupta <vaibhavgupta40@gmail.com> > --- > drivers/net/wan/farsync.c | 10 ++++------ > 1 file changed, 4 insertions(+), 6 deletions(-) > > diff --git a/drivers/net/wan/farsync.c b/drivers/net/wan/farsync.c > index 7916efce7188..15dacfde6b83 100644 > --- a/drivers/net/wan/farsync.c > +++ b/drivers/net/wan/farsync.c > @@ -2636,12 +2636,10 @@ fst_remove_one(struct pci_dev *pdev) > } > > static struct pci_driver fst_driver = { > - .name = FST_NAME, > - .id_table = fst_pci_dev_id, > - .probe = fst_add_one, > - .remove = fst_remove_one, > - .suspend = NULL, > - .resume = NULL, > + .name = FST_NAME, > + .id_table = fst_pci_dev_id, > + .probe = fst_add_one, > + .remove = fst_remove_one, > }; > > static int __init > -- > 2.27.0 >
On Tue, Jul 28, 2020 at 03:04:13PM -0500, Bjorn Helgaas wrote: > On Tue, Jul 28, 2020 at 09:58:10AM +0530, Vaibhav Gupta wrote: > > The .suspend() and .resume() callbacks are not defined for this driver. > > Still, their power management structure follows the legacy framework. To > > bring it under the generic framework, simply remove the binding of > > callbacks from "struct pci_driver". > > FWIW, this commit log is slightly misleading because .suspend and > .resume are NULL by default, so this patch actually is a complete > no-op as far as code generation is concerned. > > This change is worthwhile because it simplifies the code a little, but > it doesn't convert the driver from legacy to generic power management. > This driver doesn't supply a .pm structure, so it doesn't seem to do > *any* power management. > Agreed. Actually, as their presence only causes PCI core to call pci_legacy_suspend/resume() for them, I thought that after removing the binding from "struct pci_driver", this driver qualifies to be grouped under genric framework, so used "use generic power management" for the heading. I should have written "remove legacy bindning". But David has applied the patch, should I send a v2 or fix to update message? Thanks Vaibhav Gupta > > Change code indentation from space to tab in "struct pci_driver". > >
On Wed, Jul 29, 2020 at 03:47:30PM +0530, Vaibhav Gupta wrote: > On Tue, Jul 28, 2020 at 03:04:13PM -0500, Bjorn Helgaas wrote: > > On Tue, Jul 28, 2020 at 09:58:10AM +0530, Vaibhav Gupta wrote: > > > The .suspend() and .resume() callbacks are not defined for this driver. > > > Still, their power management structure follows the legacy framework. To > > > bring it under the generic framework, simply remove the binding of > > > callbacks from "struct pci_driver". > > > > FWIW, this commit log is slightly misleading because .suspend and > > .resume are NULL by default, so this patch actually is a complete > > no-op as far as code generation is concerned. > > > > This change is worthwhile because it simplifies the code a little, but > > it doesn't convert the driver from legacy to generic power management. > > This driver doesn't supply a .pm structure, so it doesn't seem to do > > *any* power management. > > Agreed. Actually, as their presence only causes PCI core to call > pci_legacy_suspend/resume() for them, I thought that after removing > the binding from "struct pci_driver", this driver qualifies to be > grouped under genric framework, so used "use generic power > management" for the heading. > > I should have written "remove legacy bindning". This removed the *mention* of fst_driver.suspend and fst_driver.resume, which is important because we want to eventually remove those members completely from struct pci_driver. But fst_driver.suspend and fst_driver.resume *exist* before and after this patch, and they're initialized to zero before and after this patch. Since they were zero before, and they're still zero after this patch, the PCI core doesn't call pci_legacy_suspend/resume(). This patch doesn't change that at all. > But David has applied the patch, should I send a v2 or fix to update > message? No, I don't think David updates patches after he's applied them. But if the situation comes up again, you'll know how to describe it :) Bjorn
On Wed, Jul 29, 2020 at 07:29:54AM -0500, Bjorn Helgaas wrote: > On Wed, Jul 29, 2020 at 03:47:30PM +0530, Vaibhav Gupta wrote: > > > > Agreed. Actually, as their presence only causes PCI core to call > > pci_legacy_suspend/resume() for them, I thought that after removing > > the binding from "struct pci_driver", this driver qualifies to be > > grouped under genric framework, so used "use generic power > > management" for the heading. > > > > I should have written "remove legacy bindning". > > This removed the *mention* of fst_driver.suspend and fst_driver.resume, > which is important because we want to eventually remove those members > completely from struct pci_driver. > > But fst_driver.suspend and fst_driver.resume *exist* before and after > this patch, and they're initialized to zero before and after this > patch. > > Since they were zero before, and they're still zero after this patch, > the PCI core doesn't call pci_legacy_suspend/resume(). This patch > doesn't change that at all. > Got it. Thanks :) > > But David has applied the patch, should I send a v2 or fix to update > > message? > > No, I don't think David updates patches after he's applied them. But > if the situation comes up again, you'll know how to describe it :) > Thanks a lot. :D Vaibhav Gupta > Bjorn
diff --git a/drivers/net/wan/farsync.c b/drivers/net/wan/farsync.c index 7916efce7188..15dacfde6b83 100644 --- a/drivers/net/wan/farsync.c +++ b/drivers/net/wan/farsync.c @@ -2636,12 +2636,10 @@ fst_remove_one(struct pci_dev *pdev) } static struct pci_driver fst_driver = { - .name = FST_NAME, - .id_table = fst_pci_dev_id, - .probe = fst_add_one, - .remove = fst_remove_one, - .suspend = NULL, - .resume = NULL, + .name = FST_NAME, + .id_table = fst_pci_dev_id, + .probe = fst_add_one, + .remove = fst_remove_one, }; static int __init
The .suspend() and .resume() callbacks are not defined for this driver. Still, their power management structure follows the legacy framework. To bring it under the generic framework, simply remove the binding of callbacks from "struct pci_driver". Change code indentation from space to tab in "struct pci_driver". Signed-off-by: Vaibhav Gupta <vaibhavgupta40@gmail.com> --- drivers/net/wan/farsync.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-)