Message ID | 3484329.phAPviVnbd@vostro.rjw.lan (mailing list archive) |
---|---|
State | New, archived |
Delegated to: | Bjorn Helgaas |
Headers | show |
On 27 November 2014 at 01:38, Rafael J. Wysocki <rjw@rjwysocki.net> wrote: > From: Rafael J. Wysocki <rafael.j.wysocki@intel.com> > > The SET_PM_RUNTIME_PM_OPS() and SET_RUNTIME_PM_OPS() macros are > identical except that one of them is not empty for CONFIG_PM set, > while the other one is not empty for CONFIG_PM_RUNTIME set, > respectively. > > However, after commit b2b49ccbdd54 (PM: Kconfig: Set PM_RUNTIME if > PM_SLEEP is selected) PM_RUNTIME is always set if PM is set, so one > of these macros is now redundant. > > For this reason, drop SET_PM_RUNTIME_PM_OPS() and replace it with > SET_RUNTIME_PM_OPS() everywhere. Hi Rafael, Apparently, I have queued an mmc patch in my mmc tree, which means one mmc driver starts using the SET_PM_RUNTIME_PM_OPS macro. It should cause a build error in linux-next with @subject patch. I have shared that patch through an immutable branch, I have also checked potential conflicts and it shouldn't be any problems to pull that in to your tree. Then you can fix $subject patch by also converting the mmc driver to use SET_RUNTIME_PM_OPS macro. The branch is available at: git://git.linaro.org/people/ulf.hansson/mmc.git mmc_for_linux_pm Kind regards Uffe > > Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com> > --- > drivers/amba/bus.c | 2 +- > drivers/dma/ste_dma40.c | 2 +- > drivers/gpio/gpio-zynq.c | 2 +- > drivers/i2c/busses/i2c-hix5hd2.c | 2 +- > drivers/i2c/busses/i2c-nomadik.c | 2 +- > drivers/mmc/host/mmci.c | 2 +- > drivers/mmc/host/sh_mobile_sdhi.c | 2 +- > drivers/mmc/host/tmio_mmc.c | 2 +- > drivers/spi/spi-pl022.c | 2 +- > include/linux/pm.h | 11 +---------- > 10 files changed, 10 insertions(+), 19 deletions(-) > > Index: linux-pm/drivers/amba/bus.c > =================================================================== > --- linux-pm.orig/drivers/amba/bus.c > +++ linux-pm/drivers/amba/bus.c > @@ -124,7 +124,7 @@ static const struct dev_pm_ops amba_pm = > .thaw = pm_generic_thaw, > .poweroff = pm_generic_poweroff, > .restore = pm_generic_restore, > - SET_PM_RUNTIME_PM_OPS( > + SET_RUNTIME_PM_OPS( > amba_pm_runtime_suspend, > amba_pm_runtime_resume, > NULL > Index: linux-pm/drivers/dma/ste_dma40.c > =================================================================== > --- linux-pm.orig/drivers/dma/ste_dma40.c > +++ linux-pm/drivers/dma/ste_dma40.c > @@ -3051,7 +3051,7 @@ static int dma40_runtime_resume(struct d > > static const struct dev_pm_ops dma40_pm_ops = { > SET_LATE_SYSTEM_SLEEP_PM_OPS(dma40_suspend, dma40_resume) > - SET_PM_RUNTIME_PM_OPS(dma40_runtime_suspend, > + SET_RUNTIME_PM_OPS(dma40_runtime_suspend, > dma40_runtime_resume, > NULL) > }; > Index: linux-pm/drivers/gpio/gpio-zynq.c > =================================================================== > --- linux-pm.orig/drivers/gpio/gpio-zynq.c > +++ linux-pm/drivers/gpio/gpio-zynq.c > @@ -578,7 +578,7 @@ static void zynq_gpio_free(struct gpio_c > > static const struct dev_pm_ops zynq_gpio_dev_pm_ops = { > SET_SYSTEM_SLEEP_PM_OPS(zynq_gpio_suspend, zynq_gpio_resume) > - SET_PM_RUNTIME_PM_OPS(zynq_gpio_runtime_suspend, > + SET_RUNTIME_PM_OPS(zynq_gpio_runtime_suspend, > zynq_gpio_runtime_resume, NULL) > }; > > Index: linux-pm/drivers/i2c/busses/i2c-hix5hd2.c > =================================================================== > --- linux-pm.orig/drivers/i2c/busses/i2c-hix5hd2.c > +++ linux-pm/drivers/i2c/busses/i2c-hix5hd2.c > @@ -528,7 +528,7 @@ static int hix5hd2_i2c_runtime_resume(st > #endif > > static const struct dev_pm_ops hix5hd2_i2c_pm_ops = { > - SET_PM_RUNTIME_PM_OPS(hix5hd2_i2c_runtime_suspend, > + SET_RUNTIME_PM_OPS(hix5hd2_i2c_runtime_suspend, > hix5hd2_i2c_runtime_resume, > NULL) > }; > Index: linux-pm/drivers/i2c/busses/i2c-nomadik.c > =================================================================== > --- linux-pm.orig/drivers/i2c/busses/i2c-nomadik.c > +++ linux-pm/drivers/i2c/busses/i2c-nomadik.c > @@ -932,7 +932,7 @@ static int nmk_i2c_runtime_resume(struct > > static const struct dev_pm_ops nmk_i2c_pm = { > SET_LATE_SYSTEM_SLEEP_PM_OPS(nmk_i2c_suspend_late, nmk_i2c_resume_early) > - SET_PM_RUNTIME_PM_OPS(nmk_i2c_runtime_suspend, > + SET_RUNTIME_PM_OPS(nmk_i2c_runtime_suspend, > nmk_i2c_runtime_resume, > NULL) > }; > Index: linux-pm/drivers/mmc/host/mmci.c > =================================================================== > --- linux-pm.orig/drivers/mmc/host/mmci.c > +++ linux-pm/drivers/mmc/host/mmci.c > @@ -1843,7 +1843,7 @@ static int mmci_runtime_resume(struct de > static const struct dev_pm_ops mmci_dev_pm_ops = { > SET_SYSTEM_SLEEP_PM_OPS(pm_runtime_force_suspend, > pm_runtime_force_resume) > - SET_PM_RUNTIME_PM_OPS(mmci_runtime_suspend, mmci_runtime_resume, NULL) > + SET_RUNTIME_PM_OPS(mmci_runtime_suspend, mmci_runtime_resume, NULL) > }; > > static struct amba_id mmci_ids[] = { > Index: linux-pm/drivers/mmc/host/sh_mobile_sdhi.c > =================================================================== > --- linux-pm.orig/drivers/mmc/host/sh_mobile_sdhi.c > +++ linux-pm/drivers/mmc/host/sh_mobile_sdhi.c > @@ -375,7 +375,7 @@ static int sh_mobile_sdhi_remove(struct > static const struct dev_pm_ops tmio_mmc_dev_pm_ops = { > SET_SYSTEM_SLEEP_PM_OPS(pm_runtime_force_suspend, > pm_runtime_force_resume) > - SET_PM_RUNTIME_PM_OPS(tmio_mmc_host_runtime_suspend, > + SET_RUNTIME_PM_OPS(tmio_mmc_host_runtime_suspend, > tmio_mmc_host_runtime_resume, > NULL) > }; > Index: linux-pm/drivers/mmc/host/tmio_mmc.c > =================================================================== > --- linux-pm.orig/drivers/mmc/host/tmio_mmc.c > +++ linux-pm/drivers/mmc/host/tmio_mmc.c > @@ -135,7 +135,7 @@ static int tmio_mmc_remove(struct platfo > > static const struct dev_pm_ops tmio_mmc_dev_pm_ops = { > SET_SYSTEM_SLEEP_PM_OPS(tmio_mmc_suspend, tmio_mmc_resume) > - SET_PM_RUNTIME_PM_OPS(tmio_mmc_host_runtime_suspend, > + SET_RUNTIME_PM_OPS(tmio_mmc_host_runtime_suspend, > tmio_mmc_host_runtime_resume, > NULL) > }; > Index: linux-pm/drivers/spi/spi-pl022.c > =================================================================== > --- linux-pm.orig/drivers/spi/spi-pl022.c > +++ linux-pm/drivers/spi/spi-pl022.c > @@ -2377,7 +2377,7 @@ static int pl022_runtime_resume(struct d > > static const struct dev_pm_ops pl022_dev_pm_ops = { > SET_SYSTEM_SLEEP_PM_OPS(pl022_suspend, pl022_resume) > - SET_PM_RUNTIME_PM_OPS(pl022_runtime_suspend, pl022_runtime_resume, NULL) > + SET_RUNTIME_PM_OPS(pl022_runtime_suspend, pl022_runtime_resume, NULL) > }; > > static struct vendor_data vendor_arm = { > Index: linux-pm/include/linux/pm.h > =================================================================== > --- linux-pm.orig/include/linux/pm.h > +++ linux-pm/include/linux/pm.h > @@ -342,7 +342,7 @@ struct dev_pm_ops { > #define SET_LATE_SYSTEM_SLEEP_PM_OPS(suspend_fn, resume_fn) > #endif > > -#ifdef CONFIG_PM_RUNTIME > +#ifdef CONFIG_PM > #define SET_RUNTIME_PM_OPS(suspend_fn, resume_fn, idle_fn) \ > .runtime_suspend = suspend_fn, \ > .runtime_resume = resume_fn, \ > @@ -351,15 +351,6 @@ struct dev_pm_ops { > #define SET_RUNTIME_PM_OPS(suspend_fn, resume_fn, idle_fn) > #endif > > -#ifdef CONFIG_PM > -#define SET_PM_RUNTIME_PM_OPS(suspend_fn, resume_fn, idle_fn) \ > - .runtime_suspend = suspend_fn, \ > - .runtime_resume = resume_fn, \ > - .runtime_idle = idle_fn, > -#else > -#define SET_PM_RUNTIME_PM_OPS(suspend_fn, resume_fn, idle_fn) > -#endif > - > /* > * Use this if you want to use the same suspend and resume callbacks for suspend > * to RAM and hibernation. > -- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Wednesday, December 03, 2014 03:15:49 PM Ulf Hansson wrote: > On 27 November 2014 at 01:38, Rafael J. Wysocki <rjw@rjwysocki.net> wrote: > > From: Rafael J. Wysocki <rafael.j.wysocki@intel.com> > > > > The SET_PM_RUNTIME_PM_OPS() and SET_RUNTIME_PM_OPS() macros are > > identical except that one of them is not empty for CONFIG_PM set, > > while the other one is not empty for CONFIG_PM_RUNTIME set, > > respectively. > > > > However, after commit b2b49ccbdd54 (PM: Kconfig: Set PM_RUNTIME if > > PM_SLEEP is selected) PM_RUNTIME is always set if PM is set, so one > > of these macros is now redundant. > > > > For this reason, drop SET_PM_RUNTIME_PM_OPS() and replace it with > > SET_RUNTIME_PM_OPS() everywhere. > > Hi Rafael, > > Apparently, I have queued an mmc patch in my mmc tree, which means one > mmc driver starts using the SET_PM_RUNTIME_PM_OPS macro. It should > cause a build error in linux-next with @subject patch. > > I have shared that patch through an immutable branch, I have also > checked potential conflicts and it shouldn't be any problems to pull > that in to your tree. Then you can fix $subject patch by also > converting the mmc driver to use SET_RUNTIME_PM_OPS macro. > > The branch is available at: > git://git.linaro.org/people/ulf.hansson/mmc.git mmc_for_linux_pm Thanks for letting me know! What about adding the following line to the $subject patch instead: #define SET_PM_RUNTIME_PM_OPS SET_RUNTIME_PM_OPS and fixing things up when all has been merged?
On 3 December 2014 at 23:51, Rafael J. Wysocki <rjw@rjwysocki.net> wrote: > On Wednesday, December 03, 2014 03:15:49 PM Ulf Hansson wrote: >> On 27 November 2014 at 01:38, Rafael J. Wysocki <rjw@rjwysocki.net> wrote: >> > From: Rafael J. Wysocki <rafael.j.wysocki@intel.com> >> > >> > The SET_PM_RUNTIME_PM_OPS() and SET_RUNTIME_PM_OPS() macros are >> > identical except that one of them is not empty for CONFIG_PM set, >> > while the other one is not empty for CONFIG_PM_RUNTIME set, >> > respectively. >> > >> > However, after commit b2b49ccbdd54 (PM: Kconfig: Set PM_RUNTIME if >> > PM_SLEEP is selected) PM_RUNTIME is always set if PM is set, so one >> > of these macros is now redundant. >> > >> > For this reason, drop SET_PM_RUNTIME_PM_OPS() and replace it with >> > SET_RUNTIME_PM_OPS() everywhere. >> >> Hi Rafael, >> >> Apparently, I have queued an mmc patch in my mmc tree, which means one >> mmc driver starts using the SET_PM_RUNTIME_PM_OPS macro. It should >> cause a build error in linux-next with @subject patch. >> >> I have shared that patch through an immutable branch, I have also >> checked potential conflicts and it shouldn't be any problems to pull >> that in to your tree. Then you can fix $subject patch by also >> converting the mmc driver to use SET_RUNTIME_PM_OPS macro. >> >> The branch is available at: >> git://git.linaro.org/people/ulf.hansson/mmc.git mmc_for_linux_pm > > Thanks for letting me know! > > What about adding the following line to the $subject patch instead: > > #define SET_PM_RUNTIME_PM_OPS SET_RUNTIME_PM_OPS > > and fixing things up when all has been merged? That's an option. On the other hand we will have a window of new users of SET_PM_RUNTIME_PM_OPS, during the next release cycle. Or are you saying that we should send fixes for the rc which takes care of the removal of it? Kind regards Uffe > > > -- > I speak only for myself. > Rafael J. Wysocki, Intel Open Source Technology Center. -- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Thursday, December 04, 2014 11:04:20 AM Ulf Hansson wrote: > On 3 December 2014 at 23:51, Rafael J. Wysocki <rjw@rjwysocki.net> wrote: > > On Wednesday, December 03, 2014 03:15:49 PM Ulf Hansson wrote: > >> On 27 November 2014 at 01:38, Rafael J. Wysocki <rjw@rjwysocki.net> wrote: > >> > From: Rafael J. Wysocki <rafael.j.wysocki@intel.com> > >> > > >> > The SET_PM_RUNTIME_PM_OPS() and SET_RUNTIME_PM_OPS() macros are > >> > identical except that one of them is not empty for CONFIG_PM set, > >> > while the other one is not empty for CONFIG_PM_RUNTIME set, > >> > respectively. > >> > > >> > However, after commit b2b49ccbdd54 (PM: Kconfig: Set PM_RUNTIME if > >> > PM_SLEEP is selected) PM_RUNTIME is always set if PM is set, so one > >> > of these macros is now redundant. > >> > > >> > For this reason, drop SET_PM_RUNTIME_PM_OPS() and replace it with > >> > SET_RUNTIME_PM_OPS() everywhere. > >> > >> Hi Rafael, > >> > >> Apparently, I have queued an mmc patch in my mmc tree, which means one > >> mmc driver starts using the SET_PM_RUNTIME_PM_OPS macro. It should > >> cause a build error in linux-next with @subject patch. > >> > >> I have shared that patch through an immutable branch, I have also > >> checked potential conflicts and it shouldn't be any problems to pull > >> that in to your tree. Then you can fix $subject patch by also > >> converting the mmc driver to use SET_RUNTIME_PM_OPS macro. > >> > >> The branch is available at: > >> git://git.linaro.org/people/ulf.hansson/mmc.git mmc_for_linux_pm > > > > Thanks for letting me know! > > > > What about adding the following line to the $subject patch instead: > > > > #define SET_PM_RUNTIME_PM_OPS SET_RUNTIME_PM_OPS > > > > and fixing things up when all has been merged? > > That's an option. > > On the other hand we will have a window of new users of > SET_PM_RUNTIME_PM_OPS, during the next release cycle. Or are you > saying that we should send fixes for the rc which takes care of the > removal of it? That is my plan. It is quite usual for new users of stuff being reworked to appear at the same time and that can always be addressed by doing a second round of replacements after the merge window.
Index: linux-pm/drivers/amba/bus.c =================================================================== --- linux-pm.orig/drivers/amba/bus.c +++ linux-pm/drivers/amba/bus.c @@ -124,7 +124,7 @@ static const struct dev_pm_ops amba_pm = .thaw = pm_generic_thaw, .poweroff = pm_generic_poweroff, .restore = pm_generic_restore, - SET_PM_RUNTIME_PM_OPS( + SET_RUNTIME_PM_OPS( amba_pm_runtime_suspend, amba_pm_runtime_resume, NULL Index: linux-pm/drivers/dma/ste_dma40.c =================================================================== --- linux-pm.orig/drivers/dma/ste_dma40.c +++ linux-pm/drivers/dma/ste_dma40.c @@ -3051,7 +3051,7 @@ static int dma40_runtime_resume(struct d static const struct dev_pm_ops dma40_pm_ops = { SET_LATE_SYSTEM_SLEEP_PM_OPS(dma40_suspend, dma40_resume) - SET_PM_RUNTIME_PM_OPS(dma40_runtime_suspend, + SET_RUNTIME_PM_OPS(dma40_runtime_suspend, dma40_runtime_resume, NULL) }; Index: linux-pm/drivers/gpio/gpio-zynq.c =================================================================== --- linux-pm.orig/drivers/gpio/gpio-zynq.c +++ linux-pm/drivers/gpio/gpio-zynq.c @@ -578,7 +578,7 @@ static void zynq_gpio_free(struct gpio_c static const struct dev_pm_ops zynq_gpio_dev_pm_ops = { SET_SYSTEM_SLEEP_PM_OPS(zynq_gpio_suspend, zynq_gpio_resume) - SET_PM_RUNTIME_PM_OPS(zynq_gpio_runtime_suspend, + SET_RUNTIME_PM_OPS(zynq_gpio_runtime_suspend, zynq_gpio_runtime_resume, NULL) }; Index: linux-pm/drivers/i2c/busses/i2c-hix5hd2.c =================================================================== --- linux-pm.orig/drivers/i2c/busses/i2c-hix5hd2.c +++ linux-pm/drivers/i2c/busses/i2c-hix5hd2.c @@ -528,7 +528,7 @@ static int hix5hd2_i2c_runtime_resume(st #endif static const struct dev_pm_ops hix5hd2_i2c_pm_ops = { - SET_PM_RUNTIME_PM_OPS(hix5hd2_i2c_runtime_suspend, + SET_RUNTIME_PM_OPS(hix5hd2_i2c_runtime_suspend, hix5hd2_i2c_runtime_resume, NULL) }; Index: linux-pm/drivers/i2c/busses/i2c-nomadik.c =================================================================== --- linux-pm.orig/drivers/i2c/busses/i2c-nomadik.c +++ linux-pm/drivers/i2c/busses/i2c-nomadik.c @@ -932,7 +932,7 @@ static int nmk_i2c_runtime_resume(struct static const struct dev_pm_ops nmk_i2c_pm = { SET_LATE_SYSTEM_SLEEP_PM_OPS(nmk_i2c_suspend_late, nmk_i2c_resume_early) - SET_PM_RUNTIME_PM_OPS(nmk_i2c_runtime_suspend, + SET_RUNTIME_PM_OPS(nmk_i2c_runtime_suspend, nmk_i2c_runtime_resume, NULL) }; Index: linux-pm/drivers/mmc/host/mmci.c =================================================================== --- linux-pm.orig/drivers/mmc/host/mmci.c +++ linux-pm/drivers/mmc/host/mmci.c @@ -1843,7 +1843,7 @@ static int mmci_runtime_resume(struct de static const struct dev_pm_ops mmci_dev_pm_ops = { SET_SYSTEM_SLEEP_PM_OPS(pm_runtime_force_suspend, pm_runtime_force_resume) - SET_PM_RUNTIME_PM_OPS(mmci_runtime_suspend, mmci_runtime_resume, NULL) + SET_RUNTIME_PM_OPS(mmci_runtime_suspend, mmci_runtime_resume, NULL) }; static struct amba_id mmci_ids[] = { Index: linux-pm/drivers/mmc/host/sh_mobile_sdhi.c =================================================================== --- linux-pm.orig/drivers/mmc/host/sh_mobile_sdhi.c +++ linux-pm/drivers/mmc/host/sh_mobile_sdhi.c @@ -375,7 +375,7 @@ static int sh_mobile_sdhi_remove(struct static const struct dev_pm_ops tmio_mmc_dev_pm_ops = { SET_SYSTEM_SLEEP_PM_OPS(pm_runtime_force_suspend, pm_runtime_force_resume) - SET_PM_RUNTIME_PM_OPS(tmio_mmc_host_runtime_suspend, + SET_RUNTIME_PM_OPS(tmio_mmc_host_runtime_suspend, tmio_mmc_host_runtime_resume, NULL) }; Index: linux-pm/drivers/mmc/host/tmio_mmc.c =================================================================== --- linux-pm.orig/drivers/mmc/host/tmio_mmc.c +++ linux-pm/drivers/mmc/host/tmio_mmc.c @@ -135,7 +135,7 @@ static int tmio_mmc_remove(struct platfo static const struct dev_pm_ops tmio_mmc_dev_pm_ops = { SET_SYSTEM_SLEEP_PM_OPS(tmio_mmc_suspend, tmio_mmc_resume) - SET_PM_RUNTIME_PM_OPS(tmio_mmc_host_runtime_suspend, + SET_RUNTIME_PM_OPS(tmio_mmc_host_runtime_suspend, tmio_mmc_host_runtime_resume, NULL) }; Index: linux-pm/drivers/spi/spi-pl022.c =================================================================== --- linux-pm.orig/drivers/spi/spi-pl022.c +++ linux-pm/drivers/spi/spi-pl022.c @@ -2377,7 +2377,7 @@ static int pl022_runtime_resume(struct d static const struct dev_pm_ops pl022_dev_pm_ops = { SET_SYSTEM_SLEEP_PM_OPS(pl022_suspend, pl022_resume) - SET_PM_RUNTIME_PM_OPS(pl022_runtime_suspend, pl022_runtime_resume, NULL) + SET_RUNTIME_PM_OPS(pl022_runtime_suspend, pl022_runtime_resume, NULL) }; static struct vendor_data vendor_arm = { Index: linux-pm/include/linux/pm.h =================================================================== --- linux-pm.orig/include/linux/pm.h +++ linux-pm/include/linux/pm.h @@ -342,7 +342,7 @@ struct dev_pm_ops { #define SET_LATE_SYSTEM_SLEEP_PM_OPS(suspend_fn, resume_fn) #endif -#ifdef CONFIG_PM_RUNTIME +#ifdef CONFIG_PM #define SET_RUNTIME_PM_OPS(suspend_fn, resume_fn, idle_fn) \ .runtime_suspend = suspend_fn, \ .runtime_resume = resume_fn, \ @@ -351,15 +351,6 @@ struct dev_pm_ops { #define SET_RUNTIME_PM_OPS(suspend_fn, resume_fn, idle_fn) #endif -#ifdef CONFIG_PM -#define SET_PM_RUNTIME_PM_OPS(suspend_fn, resume_fn, idle_fn) \ - .runtime_suspend = suspend_fn, \ - .runtime_resume = resume_fn, \ - .runtime_idle = idle_fn, -#else -#define SET_PM_RUNTIME_PM_OPS(suspend_fn, resume_fn, idle_fn) -#endif - /* * Use this if you want to use the same suspend and resume callbacks for suspend * to RAM and hibernation.