Re: [RFC/PATCH 3/3] usb/xhci-plat: remove unnecessary #ifdef checksfor CONFIG_PM_SLEEP

From: David Cohen
Date: Fri Dec 13 2013 - 10:42:13 EST


On Fri, Dec 13, 2013 at 09:19:34AM +0100, Ulf Hansson wrote:
> On 13 December 2013 06:18, David Cohen <david.a.cohen@xxxxxxxxxxxxxxx> wrote:
> > From: Santosh Shilimkar <santosh.shilimkar@xxxxxx>
> >
> > Drivers using SET_*_PM_OPS() no longer need to #ifdef for CONFIG_PM_*
> > So, let's remove the unnecessary #ifdef's.
> >
> > Signed-off-by: Santosh Shilimkar <santosh.shilimkar@xxxxxx>
> > Signed-off-by: David Cohen <david.a.cohen@xxxxxxxxxxxxxxx>
> > ---
> > drivers/usb/host/xhci-plat.c | 7 +------
> > 1 file changed, 1 insertion(+), 6 deletions(-)
> >
> > diff --git a/drivers/usb/host/xhci-plat.c b/drivers/usb/host/xhci-plat.c
> > index d9c169f470d3..b1d93c344e04 100644
> > --- a/drivers/usb/host/xhci-plat.c
> > +++ b/drivers/usb/host/xhci-plat.c
> > @@ -197,7 +197,6 @@ static int xhci_plat_remove(struct platform_device *dev)
> > return 0;
> > }
> >
> > -#ifdef CONFIG_PM
>
> I think you can solve this in another way.
>
> As a start, I would suggest to change above to CONFIG_PM_SLEEP
>
> > static int xhci_plat_suspend(struct device *dev)
> > {
> > struct usb_hcd *hcd = dev_get_drvdata(dev);
> > @@ -217,10 +216,6 @@ static int xhci_plat_resume(struct device *dev)
> > static const struct dev_pm_ops xhci_plat_pm_ops = {
> > SET_SYSTEM_SLEEP_PM_OPS(xhci_plat_suspend, xhci_plat_resume)
> > };
> > -#define DEV_PM_OPS (&xhci_plat_pm_ops)
> > -#else
> > -#define DEV_PM_OPS NULL
> > -#endif /* CONFIG_PM */
>
> Remove the use of DEV_PM_OPS define. Instead use below macro and
> outside #ifdef CONFIG_PM_SLEEP.
>
> "static SIMPLE_DEV_PM_OPS(xhci_plat_pm_ops, xhci_plat_suspend,
> xhci_plat_resume)"
>
> That should do the trick I believe, without the need for changing the
> existing SET_SYSTEM_SLEEP_PM_OPS macro in patch1.

Yes, it does. That matches my suggestion in this e-mail:
http://marc.info/?l=linux-kernel&m=138690490016503&w=2

But I personally don't like #ifdef's. In this case, SET_*_PM_OPS()
macros handle #ifdef's when setting the callbacks. My intention is to
extend it to callbacks' implementation too making the code cleaner

Br, David Cohen

>
> Kind regards
> Ulf Hansson
>
> >
> > #ifdef CONFIG_OF
> > static const struct of_device_id usb_xhci_of_match[] = {
> > @@ -235,7 +230,7 @@ static struct platform_driver usb_xhci_driver = {
> > .remove = xhci_plat_remove,
> > .driver = {
> > .name = "xhci-hcd",
> > - .pm = DEV_PM_OPS,
> > + .pm = &xhci_plat_pm_ops,
> > .of_match_table = of_match_ptr(usb_xhci_of_match),
> > },
> > };
> > --
> > 1.8.4.2
> >
> > --
> > 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/
--
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/