Re: [PATCH v3 09/47] mfd: palmas: Register with kernel power-off handler
On Mon, Nov 03, 2014 at 12:43:12PM -0600, Felipe Balbi wrote: > On Mon, Nov 03, 2014 at 10:36:53AM -0800, Guenter Roeck wrote: > > On Mon, Nov 03, 2014 at 11:59:54AM -0600, Felipe Balbi wrote: > > > On Mon, Nov 03, 2014 at 05:56:45PM +, Lee Jones wrote: > > > > On Mon, 27 Oct 2014, Guenter Roeck wrote: > > > > > > > > > Register with kernel power-off handler instead of setting pm_power_off > > > > > directly. Register with low priority to reflect that the original code > > > > > only sets pm_power_off if it was not already set. > > > > > > > > > > Cc: Samuel Ortiz > > > > > Cc: Lee Jones > > > > > Signed-off-by: Guenter Roeck > > > > > --- > > > > > v3: > > > > > - Replace poweroff in all newly introduced variables and in text > > > > > with power_off or power-off as appropriate > > > > > - Replace POWEROFF_PRIORITY_xxx with POWER_OFF_PRIORITY_xxx > > > > > v2: > > > > > - Use define to specify poweroff handler priority > > > > > - Use devm_register_power_off_handler > > > > > - Use dev_warn instead of dev_err > > > > > > > > > > drivers/mfd/palmas.c | 31 +-- > > > > > include/linux/mfd/palmas.h | 3 +++ > > > > > 2 files changed, 20 insertions(+), 14 deletions(-) > > > > > > > > Acked-by: Lee Jones > > > > > > missed lakml and linux-omap. > > > > > Felipe, > > > > unfortunately, get_maintainer.pl doesn't give a hint that this and the > > other affected patches should be sent to linux-omap. How am I supposed > > to know ? > > yeah, just looked and nobody bothered to patch MAINTAINERS when those > files were added. I just sent a patch adding them under OMAP SUPPORT. > I'll add the omap list as Cc: to the affected patches directly for now. > > Note that linux-kernel@vger.kernel.org was copied on the entire series, > > if that is what you mean with lakml. linux...@vger.kernel.org was also > > copied on all patches. Additional mailing lists were only copied for > > affected architectures to avoid for the patches to be tagged as spam. > > > > If there is a list named lakml, I must have missed it, and I seem to be > > unable to find a reference to it. If that is the case, my apologies, > > and please provide a link to it. > > here it is: > > Linux ARM Kernel Mailing List > Same problem here, though. If there are any ARM specific patches where the arm mailing list was not copied, that was because the dependency is not listed in the MAINTAINERS file. As mentioned before, copying the entire series to all lists touched by one of the patches in the series just doesn't work (and may be considered severe noise by some subscribers of those lists). Guenter -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH v3 09/47] mfd: palmas: Register with kernel power-off handler
On Mon, Nov 03, 2014 at 10:36:53AM -0800, Guenter Roeck wrote: > On Mon, Nov 03, 2014 at 11:59:54AM -0600, Felipe Balbi wrote: > > On Mon, Nov 03, 2014 at 05:56:45PM +, Lee Jones wrote: > > > On Mon, 27 Oct 2014, Guenter Roeck wrote: > > > > > > > Register with kernel power-off handler instead of setting pm_power_off > > > > directly. Register with low priority to reflect that the original code > > > > only sets pm_power_off if it was not already set. > > > > > > > > Cc: Samuel Ortiz > > > > Cc: Lee Jones > > > > Signed-off-by: Guenter Roeck > > > > --- > > > > v3: > > > > - Replace poweroff in all newly introduced variables and in text > > > > with power_off or power-off as appropriate > > > > - Replace POWEROFF_PRIORITY_xxx with POWER_OFF_PRIORITY_xxx > > > > v2: > > > > - Use define to specify poweroff handler priority > > > > - Use devm_register_power_off_handler > > > > - Use dev_warn instead of dev_err > > > > > > > > drivers/mfd/palmas.c | 31 +-- > > > > include/linux/mfd/palmas.h | 3 +++ > > > > 2 files changed, 20 insertions(+), 14 deletions(-) > > > > > > Acked-by: Lee Jones > > > > missed lakml and linux-omap. > > > Felipe, > > unfortunately, get_maintainer.pl doesn't give a hint that this and the > other affected patches should be sent to linux-omap. How am I supposed > to know ? yeah, just looked and nobody bothered to patch MAINTAINERS when those files were added. I just sent a patch adding them under OMAP SUPPORT. > Note that linux-kernel@vger.kernel.org was copied on the entire series, > if that is what you mean with lakml. linux...@vger.kernel.org was also > copied on all patches. Additional mailing lists were only copied for > affected architectures to avoid for the patches to be tagged as spam. > > If there is a list named lakml, I must have missed it, and I seem to be > unable to find a reference to it. If that is the case, my apologies, > and please provide a link to it. here it is: Linux ARM Kernel Mailing List -- balbi signature.asc Description: Digital signature
Re: [PATCH v3 09/47] mfd: palmas: Register with kernel power-off handler
On Mon, Nov 03, 2014 at 11:59:54AM -0600, Felipe Balbi wrote: > On Mon, Nov 03, 2014 at 05:56:45PM +, Lee Jones wrote: > > On Mon, 27 Oct 2014, Guenter Roeck wrote: > > > > > Register with kernel power-off handler instead of setting pm_power_off > > > directly. Register with low priority to reflect that the original code > > > only sets pm_power_off if it was not already set. > > > > > > Cc: Samuel Ortiz > > > Cc: Lee Jones > > > Signed-off-by: Guenter Roeck > > > --- > > > v3: > > > - Replace poweroff in all newly introduced variables and in text > > > with power_off or power-off as appropriate > > > - Replace POWEROFF_PRIORITY_xxx with POWER_OFF_PRIORITY_xxx > > > v2: > > > - Use define to specify poweroff handler priority > > > - Use devm_register_power_off_handler > > > - Use dev_warn instead of dev_err > > > > > > drivers/mfd/palmas.c | 31 +-- > > > include/linux/mfd/palmas.h | 3 +++ > > > 2 files changed, 20 insertions(+), 14 deletions(-) > > > > Acked-by: Lee Jones > > missed lakml and linux-omap. > Felipe, unfortunately, get_maintainer.pl doesn't give a hint that this and the other affected patches should be sent to linux-omap. How am I supposed to know ? Note that linux-kernel@vger.kernel.org was copied on the entire series, if that is what you mean with lakml. linux...@vger.kernel.org was also copied on all patches. Additional mailing lists were only copied for affected architectures to avoid for the patches to be tagged as spam. If there is a list named lakml, I must have missed it, and I seem to be unable to find a reference to it. If that is the case, my apologies, and please provide a link to it. Thanks, Guenter -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH v3 09/47] mfd: palmas: Register with kernel power-off handler
On Mon, Nov 03, 2014 at 05:56:45PM +, Lee Jones wrote: > On Mon, 27 Oct 2014, Guenter Roeck wrote: > > > Register with kernel power-off handler instead of setting pm_power_off > > directly. Register with low priority to reflect that the original code > > only sets pm_power_off if it was not already set. > > > > Cc: Samuel Ortiz > > Cc: Lee Jones > > Signed-off-by: Guenter Roeck > > --- > > v3: > > - Replace poweroff in all newly introduced variables and in text > > with power_off or power-off as appropriate > > - Replace POWEROFF_PRIORITY_xxx with POWER_OFF_PRIORITY_xxx > > v2: > > - Use define to specify poweroff handler priority > > - Use devm_register_power_off_handler > > - Use dev_warn instead of dev_err > > > > drivers/mfd/palmas.c | 31 +-- > > include/linux/mfd/palmas.h | 3 +++ > > 2 files changed, 20 insertions(+), 14 deletions(-) > > Acked-by: Lee Jones missed lakml and linux-omap. > > > diff --git a/drivers/mfd/palmas.c b/drivers/mfd/palmas.c > > index 28cb048..99c488e 100644 > > --- a/drivers/mfd/palmas.c > > +++ b/drivers/mfd/palmas.c > > @@ -19,6 +19,7 @@ > > #include > > #include > > #include > > +#include > > #include > > #include > > #include > > @@ -425,20 +426,18 @@ static void palmas_dt_to_pdata(struct i2c_client *i2c, > > "ti,system-power-controller"); > > } > > > > -static struct palmas *palmas_dev; > > -static void palmas_power_off(void) > > +static int palmas_power_off(struct notifier_block *this, unsigned long > > unused1, > > + void *unused2) > > { > > + struct palmas *palmas = container_of(this, struct palmas, power_off_nb); > > unsigned int addr; > > int ret, slave; > > > > - if (!palmas_dev) > > - return; > > - > > slave = PALMAS_BASE_TO_SLAVE(PALMAS_PMU_CONTROL_BASE); > > addr = PALMAS_BASE_TO_REG(PALMAS_PMU_CONTROL_BASE, PALMAS_DEV_CTRL); > > > > ret = regmap_update_bits( > > - palmas_dev->regmap[slave], > > + palmas->regmap[slave], > > addr, > > PALMAS_DEV_CTRL_DEV_ON, > > 0); > > @@ -446,6 +445,8 @@ static void palmas_power_off(void) > > if (ret) > > pr_err("%s: Unable to write to DEV_CTRL_DEV_ON: %d\n", > > __func__, ret); > > + > > + return NOTIFY_DONE; > > } > > > > static unsigned int palmas_features = PALMAS_PMIC_FEATURE_SMPS10_BOOST; > > @@ -668,9 +669,16 @@ no_irq: > > ret = of_platform_populate(node, NULL, NULL, >dev); > > if (ret < 0) { > > goto err_irq; > > - } else if (pdata->pm_off && !pm_power_off) { > > - palmas_dev = palmas; > > - pm_power_off = palmas_power_off; > > + } else if (pdata->pm_off) { > > + int ret2; > > + > > + palmas->power_off_nb.notifier_call = palmas_power_off; > > + palmas->power_off_nb.priority = POWER_OFF_PRIORITY_LOW; > > + ret2 = devm_register_power_off_handler(palmas->dev, > > + >power_off_nb); > > + if (ret2) > > + dev_warn(palmas->dev, > > +"Failed to register power-off > > handler"); > > } > > } > > > > @@ -698,11 +706,6 @@ static int palmas_i2c_remove(struct i2c_client *i2c) > > i2c_unregister_device(palmas->i2c_clients[i]); > > } > > > > - if (palmas == palmas_dev) { > > - pm_power_off = NULL; > > - palmas_dev = NULL; > > - } > > - > > return 0; > > } > > > > diff --git a/include/linux/mfd/palmas.h b/include/linux/mfd/palmas.h > > index fb0390a..7dbfe24 100644 > > --- a/include/linux/mfd/palmas.h > > +++ b/include/linux/mfd/palmas.h > > @@ -18,6 +18,7 @@ > > > > #include > > #include > > +#include > > #include > > #include > > #include > > @@ -68,6 +69,8 @@ struct palmas { > > struct i2c_client *i2c_clients[PALMAS_NUM_CLIENTS]; > > struct regmap *regmap[PALMAS_NUM_CLIENTS]; > > > > + struct notifier_block power_off_nb; > > + > > /* Stored chip id */ > > int id; > > > > -- > Lee Jones > Linaro STMicroelectronics Landing Team Lead > Linaro.org │ Open source software for ARM SoCs > Follow Linaro: Facebook | Twitter | Blog > -- > To unsubscribe from this list: send the line "unsubscribe linux-kernel" in > the body of a message to majord...@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html > Please read the FAQ at http://www.tux.org/lkml/ -- balbi signature.asc Description: Digital signature
Re: [PATCH v3 09/47] mfd: palmas: Register with kernel power-off handler
On Mon, 27 Oct 2014, Guenter Roeck wrote: > Register with kernel power-off handler instead of setting pm_power_off > directly. Register with low priority to reflect that the original code > only sets pm_power_off if it was not already set. > > Cc: Samuel Ortiz > Cc: Lee Jones > Signed-off-by: Guenter Roeck > --- > v3: > - Replace poweroff in all newly introduced variables and in text > with power_off or power-off as appropriate > - Replace POWEROFF_PRIORITY_xxx with POWER_OFF_PRIORITY_xxx > v2: > - Use define to specify poweroff handler priority > - Use devm_register_power_off_handler > - Use dev_warn instead of dev_err > > drivers/mfd/palmas.c | 31 +-- > include/linux/mfd/palmas.h | 3 +++ > 2 files changed, 20 insertions(+), 14 deletions(-) Acked-by: Lee Jones > diff --git a/drivers/mfd/palmas.c b/drivers/mfd/palmas.c > index 28cb048..99c488e 100644 > --- a/drivers/mfd/palmas.c > +++ b/drivers/mfd/palmas.c > @@ -19,6 +19,7 @@ > #include > #include > #include > +#include > #include > #include > #include > @@ -425,20 +426,18 @@ static void palmas_dt_to_pdata(struct i2c_client *i2c, > "ti,system-power-controller"); > } > > -static struct palmas *palmas_dev; > -static void palmas_power_off(void) > +static int palmas_power_off(struct notifier_block *this, unsigned long > unused1, > + void *unused2) > { > + struct palmas *palmas = container_of(this, struct palmas, power_off_nb); > unsigned int addr; > int ret, slave; > > - if (!palmas_dev) > - return; > - > slave = PALMAS_BASE_TO_SLAVE(PALMAS_PMU_CONTROL_BASE); > addr = PALMAS_BASE_TO_REG(PALMAS_PMU_CONTROL_BASE, PALMAS_DEV_CTRL); > > ret = regmap_update_bits( > - palmas_dev->regmap[slave], > + palmas->regmap[slave], > addr, > PALMAS_DEV_CTRL_DEV_ON, > 0); > @@ -446,6 +445,8 @@ static void palmas_power_off(void) > if (ret) > pr_err("%s: Unable to write to DEV_CTRL_DEV_ON: %d\n", > __func__, ret); > + > + return NOTIFY_DONE; > } > > static unsigned int palmas_features = PALMAS_PMIC_FEATURE_SMPS10_BOOST; > @@ -668,9 +669,16 @@ no_irq: > ret = of_platform_populate(node, NULL, NULL, >dev); > if (ret < 0) { > goto err_irq; > - } else if (pdata->pm_off && !pm_power_off) { > - palmas_dev = palmas; > - pm_power_off = palmas_power_off; > + } else if (pdata->pm_off) { > + int ret2; > + > + palmas->power_off_nb.notifier_call = palmas_power_off; > + palmas->power_off_nb.priority = POWER_OFF_PRIORITY_LOW; > + ret2 = devm_register_power_off_handler(palmas->dev, > + >power_off_nb); > + if (ret2) > + dev_warn(palmas->dev, > + "Failed to register power-off > handler"); > } > } > > @@ -698,11 +706,6 @@ static int palmas_i2c_remove(struct i2c_client *i2c) > i2c_unregister_device(palmas->i2c_clients[i]); > } > > - if (palmas == palmas_dev) { > - pm_power_off = NULL; > - palmas_dev = NULL; > - } > - > return 0; > } > > diff --git a/include/linux/mfd/palmas.h b/include/linux/mfd/palmas.h > index fb0390a..7dbfe24 100644 > --- a/include/linux/mfd/palmas.h > +++ b/include/linux/mfd/palmas.h > @@ -18,6 +18,7 @@ > > #include > #include > +#include > #include > #include > #include > @@ -68,6 +69,8 @@ struct palmas { > struct i2c_client *i2c_clients[PALMAS_NUM_CLIENTS]; > struct regmap *regmap[PALMAS_NUM_CLIENTS]; > > + struct notifier_block power_off_nb; > + > /* Stored chip id */ > int id; > -- Lee Jones Linaro STMicroelectronics Landing Team Lead Linaro.org │ Open source software for ARM SoCs Follow Linaro: Facebook | Twitter | Blog -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH v3 09/47] mfd: palmas: Register with kernel power-off handler
On Mon, 27 Oct 2014, Guenter Roeck wrote: Register with kernel power-off handler instead of setting pm_power_off directly. Register with low priority to reflect that the original code only sets pm_power_off if it was not already set. Cc: Samuel Ortiz sa...@linux.intel.com Cc: Lee Jones lee.jo...@linaro.org Signed-off-by: Guenter Roeck li...@roeck-us.net --- v3: - Replace poweroff in all newly introduced variables and in text with power_off or power-off as appropriate - Replace POWEROFF_PRIORITY_xxx with POWER_OFF_PRIORITY_xxx v2: - Use define to specify poweroff handler priority - Use devm_register_power_off_handler - Use dev_warn instead of dev_err drivers/mfd/palmas.c | 31 +-- include/linux/mfd/palmas.h | 3 +++ 2 files changed, 20 insertions(+), 14 deletions(-) Acked-by: Lee Jones lee.jo...@linaro.org diff --git a/drivers/mfd/palmas.c b/drivers/mfd/palmas.c index 28cb048..99c488e 100644 --- a/drivers/mfd/palmas.c +++ b/drivers/mfd/palmas.c @@ -19,6 +19,7 @@ #include linux/i2c.h #include linux/interrupt.h #include linux/irq.h +#include linux/pm.h #include linux/regmap.h #include linux/err.h #include linux/mfd/core.h @@ -425,20 +426,18 @@ static void palmas_dt_to_pdata(struct i2c_client *i2c, ti,system-power-controller); } -static struct palmas *palmas_dev; -static void palmas_power_off(void) +static int palmas_power_off(struct notifier_block *this, unsigned long unused1, + void *unused2) { + struct palmas *palmas = container_of(this, struct palmas, power_off_nb); unsigned int addr; int ret, slave; - if (!palmas_dev) - return; - slave = PALMAS_BASE_TO_SLAVE(PALMAS_PMU_CONTROL_BASE); addr = PALMAS_BASE_TO_REG(PALMAS_PMU_CONTROL_BASE, PALMAS_DEV_CTRL); ret = regmap_update_bits( - palmas_dev-regmap[slave], + palmas-regmap[slave], addr, PALMAS_DEV_CTRL_DEV_ON, 0); @@ -446,6 +445,8 @@ static void palmas_power_off(void) if (ret) pr_err(%s: Unable to write to DEV_CTRL_DEV_ON: %d\n, __func__, ret); + + return NOTIFY_DONE; } static unsigned int palmas_features = PALMAS_PMIC_FEATURE_SMPS10_BOOST; @@ -668,9 +669,16 @@ no_irq: ret = of_platform_populate(node, NULL, NULL, i2c-dev); if (ret 0) { goto err_irq; - } else if (pdata-pm_off !pm_power_off) { - palmas_dev = palmas; - pm_power_off = palmas_power_off; + } else if (pdata-pm_off) { + int ret2; + + palmas-power_off_nb.notifier_call = palmas_power_off; + palmas-power_off_nb.priority = POWER_OFF_PRIORITY_LOW; + ret2 = devm_register_power_off_handler(palmas-dev, + palmas-power_off_nb); + if (ret2) + dev_warn(palmas-dev, + Failed to register power-off handler); } } @@ -698,11 +706,6 @@ static int palmas_i2c_remove(struct i2c_client *i2c) i2c_unregister_device(palmas-i2c_clients[i]); } - if (palmas == palmas_dev) { - pm_power_off = NULL; - palmas_dev = NULL; - } - return 0; } diff --git a/include/linux/mfd/palmas.h b/include/linux/mfd/palmas.h index fb0390a..7dbfe24 100644 --- a/include/linux/mfd/palmas.h +++ b/include/linux/mfd/palmas.h @@ -18,6 +18,7 @@ #include linux/usb/otg.h #include linux/leds.h +#include linux/notifier.h #include linux/regmap.h #include linux/regulator/driver.h #include linux/extcon.h @@ -68,6 +69,8 @@ struct palmas { struct i2c_client *i2c_clients[PALMAS_NUM_CLIENTS]; struct regmap *regmap[PALMAS_NUM_CLIENTS]; + struct notifier_block power_off_nb; + /* Stored chip id */ int id; -- Lee Jones Linaro STMicroelectronics Landing Team Lead Linaro.org │ Open source software for ARM SoCs Follow Linaro: Facebook | Twitter | Blog -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH v3 09/47] mfd: palmas: Register with kernel power-off handler
On Mon, Nov 03, 2014 at 05:56:45PM +, Lee Jones wrote: On Mon, 27 Oct 2014, Guenter Roeck wrote: Register with kernel power-off handler instead of setting pm_power_off directly. Register with low priority to reflect that the original code only sets pm_power_off if it was not already set. Cc: Samuel Ortiz sa...@linux.intel.com Cc: Lee Jones lee.jo...@linaro.org Signed-off-by: Guenter Roeck li...@roeck-us.net --- v3: - Replace poweroff in all newly introduced variables and in text with power_off or power-off as appropriate - Replace POWEROFF_PRIORITY_xxx with POWER_OFF_PRIORITY_xxx v2: - Use define to specify poweroff handler priority - Use devm_register_power_off_handler - Use dev_warn instead of dev_err drivers/mfd/palmas.c | 31 +-- include/linux/mfd/palmas.h | 3 +++ 2 files changed, 20 insertions(+), 14 deletions(-) Acked-by: Lee Jones lee.jo...@linaro.org missed lakml and linux-omap. diff --git a/drivers/mfd/palmas.c b/drivers/mfd/palmas.c index 28cb048..99c488e 100644 --- a/drivers/mfd/palmas.c +++ b/drivers/mfd/palmas.c @@ -19,6 +19,7 @@ #include linux/i2c.h #include linux/interrupt.h #include linux/irq.h +#include linux/pm.h #include linux/regmap.h #include linux/err.h #include linux/mfd/core.h @@ -425,20 +426,18 @@ static void palmas_dt_to_pdata(struct i2c_client *i2c, ti,system-power-controller); } -static struct palmas *palmas_dev; -static void palmas_power_off(void) +static int palmas_power_off(struct notifier_block *this, unsigned long unused1, + void *unused2) { + struct palmas *palmas = container_of(this, struct palmas, power_off_nb); unsigned int addr; int ret, slave; - if (!palmas_dev) - return; - slave = PALMAS_BASE_TO_SLAVE(PALMAS_PMU_CONTROL_BASE); addr = PALMAS_BASE_TO_REG(PALMAS_PMU_CONTROL_BASE, PALMAS_DEV_CTRL); ret = regmap_update_bits( - palmas_dev-regmap[slave], + palmas-regmap[slave], addr, PALMAS_DEV_CTRL_DEV_ON, 0); @@ -446,6 +445,8 @@ static void palmas_power_off(void) if (ret) pr_err(%s: Unable to write to DEV_CTRL_DEV_ON: %d\n, __func__, ret); + + return NOTIFY_DONE; } static unsigned int palmas_features = PALMAS_PMIC_FEATURE_SMPS10_BOOST; @@ -668,9 +669,16 @@ no_irq: ret = of_platform_populate(node, NULL, NULL, i2c-dev); if (ret 0) { goto err_irq; - } else if (pdata-pm_off !pm_power_off) { - palmas_dev = palmas; - pm_power_off = palmas_power_off; + } else if (pdata-pm_off) { + int ret2; + + palmas-power_off_nb.notifier_call = palmas_power_off; + palmas-power_off_nb.priority = POWER_OFF_PRIORITY_LOW; + ret2 = devm_register_power_off_handler(palmas-dev, + palmas-power_off_nb); + if (ret2) + dev_warn(palmas-dev, +Failed to register power-off handler); } } @@ -698,11 +706,6 @@ static int palmas_i2c_remove(struct i2c_client *i2c) i2c_unregister_device(palmas-i2c_clients[i]); } - if (palmas == palmas_dev) { - pm_power_off = NULL; - palmas_dev = NULL; - } - return 0; } diff --git a/include/linux/mfd/palmas.h b/include/linux/mfd/palmas.h index fb0390a..7dbfe24 100644 --- a/include/linux/mfd/palmas.h +++ b/include/linux/mfd/palmas.h @@ -18,6 +18,7 @@ #include linux/usb/otg.h #include linux/leds.h +#include linux/notifier.h #include linux/regmap.h #include linux/regulator/driver.h #include linux/extcon.h @@ -68,6 +69,8 @@ struct palmas { struct i2c_client *i2c_clients[PALMAS_NUM_CLIENTS]; struct regmap *regmap[PALMAS_NUM_CLIENTS]; + struct notifier_block power_off_nb; + /* Stored chip id */ int id; -- Lee Jones Linaro STMicroelectronics Landing Team Lead Linaro.org │ Open source software for ARM SoCs Follow Linaro: Facebook | Twitter | Blog -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/ -- balbi signature.asc Description: Digital signature
Re: [PATCH v3 09/47] mfd: palmas: Register with kernel power-off handler
On Mon, Nov 03, 2014 at 11:59:54AM -0600, Felipe Balbi wrote: On Mon, Nov 03, 2014 at 05:56:45PM +, Lee Jones wrote: On Mon, 27 Oct 2014, Guenter Roeck wrote: Register with kernel power-off handler instead of setting pm_power_off directly. Register with low priority to reflect that the original code only sets pm_power_off if it was not already set. Cc: Samuel Ortiz sa...@linux.intel.com Cc: Lee Jones lee.jo...@linaro.org Signed-off-by: Guenter Roeck li...@roeck-us.net --- v3: - Replace poweroff in all newly introduced variables and in text with power_off or power-off as appropriate - Replace POWEROFF_PRIORITY_xxx with POWER_OFF_PRIORITY_xxx v2: - Use define to specify poweroff handler priority - Use devm_register_power_off_handler - Use dev_warn instead of dev_err drivers/mfd/palmas.c | 31 +-- include/linux/mfd/palmas.h | 3 +++ 2 files changed, 20 insertions(+), 14 deletions(-) Acked-by: Lee Jones lee.jo...@linaro.org missed lakml and linux-omap. Felipe, unfortunately, get_maintainer.pl doesn't give a hint that this and the other affected patches should be sent to linux-omap. How am I supposed to know ? Note that linux-kernel@vger.kernel.org was copied on the entire series, if that is what you mean with lakml. linux...@vger.kernel.org was also copied on all patches. Additional mailing lists were only copied for affected architectures to avoid for the patches to be tagged as spam. If there is a list named lakml, I must have missed it, and I seem to be unable to find a reference to it. If that is the case, my apologies, and please provide a link to it. Thanks, Guenter -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH v3 09/47] mfd: palmas: Register with kernel power-off handler
On Mon, Nov 03, 2014 at 10:36:53AM -0800, Guenter Roeck wrote: On Mon, Nov 03, 2014 at 11:59:54AM -0600, Felipe Balbi wrote: On Mon, Nov 03, 2014 at 05:56:45PM +, Lee Jones wrote: On Mon, 27 Oct 2014, Guenter Roeck wrote: Register with kernel power-off handler instead of setting pm_power_off directly. Register with low priority to reflect that the original code only sets pm_power_off if it was not already set. Cc: Samuel Ortiz sa...@linux.intel.com Cc: Lee Jones lee.jo...@linaro.org Signed-off-by: Guenter Roeck li...@roeck-us.net --- v3: - Replace poweroff in all newly introduced variables and in text with power_off or power-off as appropriate - Replace POWEROFF_PRIORITY_xxx with POWER_OFF_PRIORITY_xxx v2: - Use define to specify poweroff handler priority - Use devm_register_power_off_handler - Use dev_warn instead of dev_err drivers/mfd/palmas.c | 31 +-- include/linux/mfd/palmas.h | 3 +++ 2 files changed, 20 insertions(+), 14 deletions(-) Acked-by: Lee Jones lee.jo...@linaro.org missed lakml and linux-omap. Felipe, unfortunately, get_maintainer.pl doesn't give a hint that this and the other affected patches should be sent to linux-omap. How am I supposed to know ? yeah, just looked and nobody bothered to patch MAINTAINERS when those files were added. I just sent a patch adding them under OMAP SUPPORT. Note that linux-kernel@vger.kernel.org was copied on the entire series, if that is what you mean with lakml. linux...@vger.kernel.org was also copied on all patches. Additional mailing lists were only copied for affected architectures to avoid for the patches to be tagged as spam. If there is a list named lakml, I must have missed it, and I seem to be unable to find a reference to it. If that is the case, my apologies, and please provide a link to it. here it is: Linux ARM Kernel Mailing List linux-arm-ker...@lists.infradead.org -- balbi signature.asc Description: Digital signature
Re: [PATCH v3 09/47] mfd: palmas: Register with kernel power-off handler
On Mon, Nov 03, 2014 at 12:43:12PM -0600, Felipe Balbi wrote: On Mon, Nov 03, 2014 at 10:36:53AM -0800, Guenter Roeck wrote: On Mon, Nov 03, 2014 at 11:59:54AM -0600, Felipe Balbi wrote: On Mon, Nov 03, 2014 at 05:56:45PM +, Lee Jones wrote: On Mon, 27 Oct 2014, Guenter Roeck wrote: Register with kernel power-off handler instead of setting pm_power_off directly. Register with low priority to reflect that the original code only sets pm_power_off if it was not already set. Cc: Samuel Ortiz sa...@linux.intel.com Cc: Lee Jones lee.jo...@linaro.org Signed-off-by: Guenter Roeck li...@roeck-us.net --- v3: - Replace poweroff in all newly introduced variables and in text with power_off or power-off as appropriate - Replace POWEROFF_PRIORITY_xxx with POWER_OFF_PRIORITY_xxx v2: - Use define to specify poweroff handler priority - Use devm_register_power_off_handler - Use dev_warn instead of dev_err drivers/mfd/palmas.c | 31 +-- include/linux/mfd/palmas.h | 3 +++ 2 files changed, 20 insertions(+), 14 deletions(-) Acked-by: Lee Jones lee.jo...@linaro.org missed lakml and linux-omap. Felipe, unfortunately, get_maintainer.pl doesn't give a hint that this and the other affected patches should be sent to linux-omap. How am I supposed to know ? yeah, just looked and nobody bothered to patch MAINTAINERS when those files were added. I just sent a patch adding them under OMAP SUPPORT. I'll add the omap list as Cc: to the affected patches directly for now. Note that linux-kernel@vger.kernel.org was copied on the entire series, if that is what you mean with lakml. linux...@vger.kernel.org was also copied on all patches. Additional mailing lists were only copied for affected architectures to avoid for the patches to be tagged as spam. If there is a list named lakml, I must have missed it, and I seem to be unable to find a reference to it. If that is the case, my apologies, and please provide a link to it. here it is: Linux ARM Kernel Mailing List linux-arm-ker...@lists.infradead.org Same problem here, though. If there are any ARM specific patches where the arm mailing list was not copied, that was because the dependency is not listed in the MAINTAINERS file. As mentioned before, copying the entire series to all lists touched by one of the patches in the series just doesn't work (and may be considered severe noise by some subscribers of those lists). Guenter -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[PATCH v3 09/47] mfd: palmas: Register with kernel power-off handler
Register with kernel power-off handler instead of setting pm_power_off directly. Register with low priority to reflect that the original code only sets pm_power_off if it was not already set. Cc: Samuel Ortiz Cc: Lee Jones Signed-off-by: Guenter Roeck --- v3: - Replace poweroff in all newly introduced variables and in text with power_off or power-off as appropriate - Replace POWEROFF_PRIORITY_xxx with POWER_OFF_PRIORITY_xxx v2: - Use define to specify poweroff handler priority - Use devm_register_power_off_handler - Use dev_warn instead of dev_err drivers/mfd/palmas.c | 31 +-- include/linux/mfd/palmas.h | 3 +++ 2 files changed, 20 insertions(+), 14 deletions(-) diff --git a/drivers/mfd/palmas.c b/drivers/mfd/palmas.c index 28cb048..99c488e 100644 --- a/drivers/mfd/palmas.c +++ b/drivers/mfd/palmas.c @@ -19,6 +19,7 @@ #include #include #include +#include #include #include #include @@ -425,20 +426,18 @@ static void palmas_dt_to_pdata(struct i2c_client *i2c, "ti,system-power-controller"); } -static struct palmas *palmas_dev; -static void palmas_power_off(void) +static int palmas_power_off(struct notifier_block *this, unsigned long unused1, + void *unused2) { + struct palmas *palmas = container_of(this, struct palmas, power_off_nb); unsigned int addr; int ret, slave; - if (!palmas_dev) - return; - slave = PALMAS_BASE_TO_SLAVE(PALMAS_PMU_CONTROL_BASE); addr = PALMAS_BASE_TO_REG(PALMAS_PMU_CONTROL_BASE, PALMAS_DEV_CTRL); ret = regmap_update_bits( - palmas_dev->regmap[slave], + palmas->regmap[slave], addr, PALMAS_DEV_CTRL_DEV_ON, 0); @@ -446,6 +445,8 @@ static void palmas_power_off(void) if (ret) pr_err("%s: Unable to write to DEV_CTRL_DEV_ON: %d\n", __func__, ret); + + return NOTIFY_DONE; } static unsigned int palmas_features = PALMAS_PMIC_FEATURE_SMPS10_BOOST; @@ -668,9 +669,16 @@ no_irq: ret = of_platform_populate(node, NULL, NULL, >dev); if (ret < 0) { goto err_irq; - } else if (pdata->pm_off && !pm_power_off) { - palmas_dev = palmas; - pm_power_off = palmas_power_off; + } else if (pdata->pm_off) { + int ret2; + + palmas->power_off_nb.notifier_call = palmas_power_off; + palmas->power_off_nb.priority = POWER_OFF_PRIORITY_LOW; + ret2 = devm_register_power_off_handler(palmas->dev, + >power_off_nb); + if (ret2) + dev_warn(palmas->dev, +"Failed to register power-off handler"); } } @@ -698,11 +706,6 @@ static int palmas_i2c_remove(struct i2c_client *i2c) i2c_unregister_device(palmas->i2c_clients[i]); } - if (palmas == palmas_dev) { - pm_power_off = NULL; - palmas_dev = NULL; - } - return 0; } diff --git a/include/linux/mfd/palmas.h b/include/linux/mfd/palmas.h index fb0390a..7dbfe24 100644 --- a/include/linux/mfd/palmas.h +++ b/include/linux/mfd/palmas.h @@ -18,6 +18,7 @@ #include #include +#include #include #include #include @@ -68,6 +69,8 @@ struct palmas { struct i2c_client *i2c_clients[PALMAS_NUM_CLIENTS]; struct regmap *regmap[PALMAS_NUM_CLIENTS]; + struct notifier_block power_off_nb; + /* Stored chip id */ int id; -- 1.9.1 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[PATCH v3 09/47] mfd: palmas: Register with kernel power-off handler
Register with kernel power-off handler instead of setting pm_power_off directly. Register with low priority to reflect that the original code only sets pm_power_off if it was not already set. Cc: Samuel Ortiz sa...@linux.intel.com Cc: Lee Jones lee.jo...@linaro.org Signed-off-by: Guenter Roeck li...@roeck-us.net --- v3: - Replace poweroff in all newly introduced variables and in text with power_off or power-off as appropriate - Replace POWEROFF_PRIORITY_xxx with POWER_OFF_PRIORITY_xxx v2: - Use define to specify poweroff handler priority - Use devm_register_power_off_handler - Use dev_warn instead of dev_err drivers/mfd/palmas.c | 31 +-- include/linux/mfd/palmas.h | 3 +++ 2 files changed, 20 insertions(+), 14 deletions(-) diff --git a/drivers/mfd/palmas.c b/drivers/mfd/palmas.c index 28cb048..99c488e 100644 --- a/drivers/mfd/palmas.c +++ b/drivers/mfd/palmas.c @@ -19,6 +19,7 @@ #include linux/i2c.h #include linux/interrupt.h #include linux/irq.h +#include linux/pm.h #include linux/regmap.h #include linux/err.h #include linux/mfd/core.h @@ -425,20 +426,18 @@ static void palmas_dt_to_pdata(struct i2c_client *i2c, ti,system-power-controller); } -static struct palmas *palmas_dev; -static void palmas_power_off(void) +static int palmas_power_off(struct notifier_block *this, unsigned long unused1, + void *unused2) { + struct palmas *palmas = container_of(this, struct palmas, power_off_nb); unsigned int addr; int ret, slave; - if (!palmas_dev) - return; - slave = PALMAS_BASE_TO_SLAVE(PALMAS_PMU_CONTROL_BASE); addr = PALMAS_BASE_TO_REG(PALMAS_PMU_CONTROL_BASE, PALMAS_DEV_CTRL); ret = regmap_update_bits( - palmas_dev-regmap[slave], + palmas-regmap[slave], addr, PALMAS_DEV_CTRL_DEV_ON, 0); @@ -446,6 +445,8 @@ static void palmas_power_off(void) if (ret) pr_err(%s: Unable to write to DEV_CTRL_DEV_ON: %d\n, __func__, ret); + + return NOTIFY_DONE; } static unsigned int palmas_features = PALMAS_PMIC_FEATURE_SMPS10_BOOST; @@ -668,9 +669,16 @@ no_irq: ret = of_platform_populate(node, NULL, NULL, i2c-dev); if (ret 0) { goto err_irq; - } else if (pdata-pm_off !pm_power_off) { - palmas_dev = palmas; - pm_power_off = palmas_power_off; + } else if (pdata-pm_off) { + int ret2; + + palmas-power_off_nb.notifier_call = palmas_power_off; + palmas-power_off_nb.priority = POWER_OFF_PRIORITY_LOW; + ret2 = devm_register_power_off_handler(palmas-dev, + palmas-power_off_nb); + if (ret2) + dev_warn(palmas-dev, +Failed to register power-off handler); } } @@ -698,11 +706,6 @@ static int palmas_i2c_remove(struct i2c_client *i2c) i2c_unregister_device(palmas-i2c_clients[i]); } - if (palmas == palmas_dev) { - pm_power_off = NULL; - palmas_dev = NULL; - } - return 0; } diff --git a/include/linux/mfd/palmas.h b/include/linux/mfd/palmas.h index fb0390a..7dbfe24 100644 --- a/include/linux/mfd/palmas.h +++ b/include/linux/mfd/palmas.h @@ -18,6 +18,7 @@ #include linux/usb/otg.h #include linux/leds.h +#include linux/notifier.h #include linux/regmap.h #include linux/regulator/driver.h #include linux/extcon.h @@ -68,6 +69,8 @@ struct palmas { struct i2c_client *i2c_clients[PALMAS_NUM_CLIENTS]; struct regmap *regmap[PALMAS_NUM_CLIENTS]; + struct notifier_block power_off_nb; + /* Stored chip id */ int id; -- 1.9.1 -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/