linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 1/3] mfd: arizona: Remove BUG_ON usage
@ 2020-05-29 15:57 Charles Keepax
  2020-05-29 15:57 ` [PATCH 2/3] mfd: madera: Fix minor formatting issues Charles Keepax
  2020-05-29 15:57 ` [PATCH 3/3] mfd: arizona: Ensure 32k clock is put on driver unbind and error Charles Keepax
  0 siblings, 2 replies; 6+ messages in thread
From: Charles Keepax @ 2020-05-29 15:57 UTC (permalink / raw)
  To: lee.jones; +Cc: s.nawrocki, linux-kernel, patches

BUG_ON macros are generally frowned upon when the issue isn't super
critical, the kernel can certainly carry on with the 32k clock on the
CODEC in a bad state so change the BUG_ON to a WARN_ON.

Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
---
 drivers/mfd/arizona-core.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/mfd/arizona-core.c b/drivers/mfd/arizona-core.c
index f73cf76d1373d..19e0bc3c0683e 100644
--- a/drivers/mfd/arizona-core.c
+++ b/drivers/mfd/arizona-core.c
@@ -80,7 +80,7 @@ int arizona_clk32k_disable(struct arizona *arizona)
 {
 	mutex_lock(&arizona->clk_lock);
 
-	BUG_ON(arizona->clk32k_ref <= 0);
+	WARN_ON(arizona->clk32k_ref <= 0);
 
 	arizona->clk32k_ref--;
 
-- 
2.11.0


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH 2/3] mfd: madera: Fix minor formatting issues
  2020-05-29 15:57 [PATCH 1/3] mfd: arizona: Remove BUG_ON usage Charles Keepax
@ 2020-05-29 15:57 ` Charles Keepax
  2020-06-01  5:24   ` Lee Jones
  2020-05-29 15:57 ` [PATCH 3/3] mfd: arizona: Ensure 32k clock is put on driver unbind and error Charles Keepax
  1 sibling, 1 reply; 6+ messages in thread
From: Charles Keepax @ 2020-05-29 15:57 UTC (permalink / raw)
  To: lee.jones; +Cc: s.nawrocki, linux-kernel, patches

Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
---
 drivers/mfd/madera-core.c        | 12 ++++++------
 drivers/mfd/madera-i2c.c         |  1 -
 include/linux/mfd/madera/pdata.h |  1 -
 3 files changed, 6 insertions(+), 8 deletions(-)

diff --git a/drivers/mfd/madera-core.c b/drivers/mfd/madera-core.c
index 7e0835cb062b1..4724c1a01a39f 100644
--- a/drivers/mfd/madera-core.c
+++ b/drivers/mfd/madera-core.c
@@ -44,7 +44,7 @@ static const char * const madera_core_supplies[] = {
 };
 
 static const struct mfd_cell madera_ldo1_devs[] = {
-	{ .name = "madera-ldo1" },
+	{ .name = "madera-ldo1", },
 };
 
 static const char * const cs47l15_supplies[] = {
@@ -55,8 +55,8 @@ static const char * const cs47l15_supplies[] = {
 
 static const struct mfd_cell cs47l15_devs[] = {
 	{ .name = "madera-pinctrl", },
-	{ .name = "madera-irq" },
-	{ .name = "madera-gpio" },
+	{ .name = "madera-irq", },
+	{ .name = "madera-gpio", },
 	{
 		.name = "madera-extcon",
 		.parent_supplies = cs47l15_supplies,
@@ -108,7 +108,7 @@ static const char * const cs47l85_supplies[] = {
 static const struct mfd_cell cs47l85_devs[] = {
 	{ .name = "madera-pinctrl", },
 	{ .name = "madera-irq", },
-	{ .name = "madera-micsupp" },
+	{ .name = "madera-micsupp", },
 	{ .name = "madera-gpio", },
 	{
 		.name = "madera-extcon",
@@ -155,10 +155,10 @@ static const char * const cs47l92_supplies[] = {
 };
 
 static const struct mfd_cell cs47l92_devs[] = {
-	{ .name = "madera-pinctrl" },
+	{ .name = "madera-pinctrl", },
 	{ .name = "madera-irq", },
 	{ .name = "madera-micsupp", },
-	{ .name = "madera-gpio" },
+	{ .name = "madera-gpio", },
 	{
 		.name = "madera-extcon",
 		.parent_supplies = cs47l92_supplies,
diff --git a/drivers/mfd/madera-i2c.c b/drivers/mfd/madera-i2c.c
index 6b965eb034b6c..7df5b9ba58554 100644
--- a/drivers/mfd/madera-i2c.c
+++ b/drivers/mfd/madera-i2c.c
@@ -88,7 +88,6 @@ static int madera_i2c_probe(struct i2c_client *i2c,
 	if (!madera)
 		return -ENOMEM;
 
-
 	madera->regmap = devm_regmap_init_i2c(i2c, regmap_16bit_config);
 	if (IS_ERR(madera->regmap)) {
 		ret = PTR_ERR(madera->regmap);
diff --git a/include/linux/mfd/madera/pdata.h b/include/linux/mfd/madera/pdata.h
index fa9595dd42ba5..601cbbc10370c 100644
--- a/include/linux/mfd/madera/pdata.h
+++ b/include/linux/mfd/madera/pdata.h
@@ -21,7 +21,6 @@
 
 struct gpio_desc;
 struct pinctrl_map;
-struct madera_codec_pdata;
 
 /**
  * struct madera_pdata - Configuration data for Madera devices
-- 
2.11.0


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH 3/3] mfd: arizona: Ensure 32k clock is put on driver unbind and error
  2020-05-29 15:57 [PATCH 1/3] mfd: arizona: Remove BUG_ON usage Charles Keepax
  2020-05-29 15:57 ` [PATCH 2/3] mfd: madera: Fix minor formatting issues Charles Keepax
@ 2020-05-29 15:57 ` Charles Keepax
  1 sibling, 0 replies; 6+ messages in thread
From: Charles Keepax @ 2020-05-29 15:57 UTC (permalink / raw)
  To: lee.jones; +Cc: s.nawrocki, linux-kernel, patches

Whilst it doesn't matter if the internal 32k clock register settings
are cleaned up on exit, as the part will be turned off losing any
settings, hence the driver hasn't historially bothered. The external
clock should however be cleaned up, as it could cause clocks to be
left on, and will at best generate a warning on unbind.

Add clean up on both the probe error path and unbind for the 32k
clock.

Fixes: cdd8da8cc66b ("mfd: arizona: Add gating of external MCLKn clocks")
Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
---
 drivers/mfd/arizona-core.c | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/drivers/mfd/arizona-core.c b/drivers/mfd/arizona-core.c
index 19e0bc3c0683e..000cb82023e35 100644
--- a/drivers/mfd/arizona-core.c
+++ b/drivers/mfd/arizona-core.c
@@ -1426,6 +1426,15 @@ int arizona_dev_init(struct arizona *arizona)
 	arizona_irq_exit(arizona);
 err_pm:
 	pm_runtime_disable(arizona->dev);
+
+	switch (arizona->pdata.clk32k_src) {
+	case ARIZONA_32KZ_MCLK1:
+	case ARIZONA_32KZ_MCLK2:
+		arizona_clk32k_disable(arizona);
+		break;
+	default:
+		break;
+	}
 err_reset:
 	arizona_enable_reset(arizona);
 	regulator_disable(arizona->dcvdd);
@@ -1448,6 +1457,15 @@ int arizona_dev_exit(struct arizona *arizona)
 	regulator_disable(arizona->dcvdd);
 	regulator_put(arizona->dcvdd);
 
+	switch (arizona->pdata.clk32k_src) {
+	case ARIZONA_32KZ_MCLK1:
+	case ARIZONA_32KZ_MCLK2:
+		arizona_clk32k_disable(arizona);
+		break;
+	default:
+		break;
+	}
+
 	mfd_remove_devices(arizona->dev);
 	arizona_free_irq(arizona, ARIZONA_IRQ_UNDERCLOCKED, arizona);
 	arizona_free_irq(arizona, ARIZONA_IRQ_OVERCLOCKED, arizona);
-- 
2.11.0


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH 2/3] mfd: madera: Fix minor formatting issues
  2020-05-29 15:57 ` [PATCH 2/3] mfd: madera: Fix minor formatting issues Charles Keepax
@ 2020-06-01  5:24   ` Lee Jones
  2020-06-01  9:54     ` Charles Keepax
  0 siblings, 1 reply; 6+ messages in thread
From: Lee Jones @ 2020-06-01  5:24 UTC (permalink / raw)
  To: Charles Keepax; +Cc: s.nawrocki, linux-kernel, patches

On Fri, 29 May 2020, Charles Keepax wrote:

Still needs a commit log.

> Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
> ---
>  drivers/mfd/madera-core.c        | 12 ++++++------
>  drivers/mfd/madera-i2c.c         |  1 -
>  include/linux/mfd/madera/pdata.h |  1 -
>  3 files changed, 6 insertions(+), 8 deletions(-)
> 
> diff --git a/drivers/mfd/madera-core.c b/drivers/mfd/madera-core.c
> index 7e0835cb062b1..4724c1a01a39f 100644
> --- a/drivers/mfd/madera-core.c
> +++ b/drivers/mfd/madera-core.c
> @@ -44,7 +44,7 @@ static const char * const madera_core_supplies[] = {
>  };
>  
>  static const struct mfd_cell madera_ldo1_devs[] = {
> -	{ .name = "madera-ldo1" },
> +	{ .name = "madera-ldo1", },

What issue does this solve?

Why are ','s a requirement, even for single entries?

>  };
>  
>  static const char * const cs47l15_supplies[] = {
> @@ -55,8 +55,8 @@ static const char * const cs47l15_supplies[] = {
>  
>  static const struct mfd_cell cs47l15_devs[] = {
>  	{ .name = "madera-pinctrl", },
> -	{ .name = "madera-irq" },
> -	{ .name = "madera-gpio" },
> +	{ .name = "madera-irq", },
> +	{ .name = "madera-gpio", },
>  	{
>  		.name = "madera-extcon",
>  		.parent_supplies = cs47l15_supplies,
> @@ -108,7 +108,7 @@ static const char * const cs47l85_supplies[] = {
>  static const struct mfd_cell cs47l85_devs[] = {
>  	{ .name = "madera-pinctrl", },
>  	{ .name = "madera-irq", },
> -	{ .name = "madera-micsupp" },
> +	{ .name = "madera-micsupp", },
>  	{ .name = "madera-gpio", },
>  	{
>  		.name = "madera-extcon",
> @@ -155,10 +155,10 @@ static const char * const cs47l92_supplies[] = {
>  };
>  
>  static const struct mfd_cell cs47l92_devs[] = {
> -	{ .name = "madera-pinctrl" },
> +	{ .name = "madera-pinctrl", },
>  	{ .name = "madera-irq", },
>  	{ .name = "madera-micsupp", },
> -	{ .name = "madera-gpio" },
> +	{ .name = "madera-gpio", },
>  	{
>  		.name = "madera-extcon",
>  		.parent_supplies = cs47l92_supplies,
> diff --git a/drivers/mfd/madera-i2c.c b/drivers/mfd/madera-i2c.c
> index 6b965eb034b6c..7df5b9ba58554 100644
> --- a/drivers/mfd/madera-i2c.c
> +++ b/drivers/mfd/madera-i2c.c
> @@ -88,7 +88,6 @@ static int madera_i2c_probe(struct i2c_client *i2c,
>  	if (!madera)
>  		return -ENOMEM;
>  
> -
>  	madera->regmap = devm_regmap_init_i2c(i2c, regmap_16bit_config);
>  	if (IS_ERR(madera->regmap)) {
>  		ret = PTR_ERR(madera->regmap);
> diff --git a/include/linux/mfd/madera/pdata.h b/include/linux/mfd/madera/pdata.h
> index fa9595dd42ba5..601cbbc10370c 100644
> --- a/include/linux/mfd/madera/pdata.h
> +++ b/include/linux/mfd/madera/pdata.h
> @@ -21,7 +21,6 @@
>  
>  struct gpio_desc;
>  struct pinctrl_map;
> -struct madera_codec_pdata;

This is not a formatting issue.

>  /**
>   * struct madera_pdata - Configuration data for Madera devices

-- 
Lee Jones [李琼斯]
Linaro Services Technical Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH 2/3] mfd: madera: Fix minor formatting issues
  2020-06-01  5:24   ` Lee Jones
@ 2020-06-01  9:54     ` Charles Keepax
  2020-06-01 10:47       ` Lee Jones
  0 siblings, 1 reply; 6+ messages in thread
From: Charles Keepax @ 2020-06-01  9:54 UTC (permalink / raw)
  To: Lee Jones; +Cc: s.nawrocki, linux-kernel, patches

On Mon, Jun 01, 2020 at 06:24:33AM +0100, Lee Jones wrote:
> On Fri, 29 May 2020, Charles Keepax wrote:
> 
> Still needs a commit log.
> 
> > Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
> > ---
> >  drivers/mfd/madera-core.c        | 12 ++++++------
> >  drivers/mfd/madera-i2c.c         |  1 -
> >  include/linux/mfd/madera/pdata.h |  1 -
> >  3 files changed, 6 insertions(+), 8 deletions(-)
> > 
> > diff --git a/drivers/mfd/madera-core.c b/drivers/mfd/madera-core.c
> > index 7e0835cb062b1..4724c1a01a39f 100644
> > --- a/drivers/mfd/madera-core.c
> > +++ b/drivers/mfd/madera-core.c
> > @@ -44,7 +44,7 @@ static const char * const madera_core_supplies[] = {
> >  };
> >  
> >  static const struct mfd_cell madera_ldo1_devs[] = {
> > -	{ .name = "madera-ldo1" },
> > +	{ .name = "madera-ldo1", },
> 
> What issue does this solve?
> 
> Why are ','s a requirement, even for single entries?
> 

Was more just a consistency thing, we seem to have ended up with
half the lines having commas and half not, happy to move them all
to not having comma's if that is your preference?

> >  };
> >  
> >  static const char * const cs47l15_supplies[] = {
> > @@ -55,8 +55,8 @@ static const char * const cs47l15_supplies[] = {
> >  
> >  static const struct mfd_cell cs47l15_devs[] = {
> >  	{ .name = "madera-pinctrl", },
> > -	{ .name = "madera-irq" },
> > -	{ .name = "madera-gpio" },
> > +	{ .name = "madera-irq", },
> > +	{ .name = "madera-gpio", },
> >  	{
> >  		.name = "madera-extcon",
> >  		.parent_supplies = cs47l15_supplies,
> > @@ -108,7 +108,7 @@ static const char * const cs47l85_supplies[] = {
> >  static const struct mfd_cell cs47l85_devs[] = {
> >  	{ .name = "madera-pinctrl", },
> >  	{ .name = "madera-irq", },
> > -	{ .name = "madera-micsupp" },
> > +	{ .name = "madera-micsupp", },
> >  	{ .name = "madera-gpio", },
> >  	{
> >  		.name = "madera-extcon",
> > @@ -155,10 +155,10 @@ static const char * const cs47l92_supplies[] = {
> >  };
> >  
> >  static const struct mfd_cell cs47l92_devs[] = {
> > -	{ .name = "madera-pinctrl" },
> > +	{ .name = "madera-pinctrl", },
> >  	{ .name = "madera-irq", },
> >  	{ .name = "madera-micsupp", },
> > -	{ .name = "madera-gpio" },
> > +	{ .name = "madera-gpio", },
> >  	{
> >  		.name = "madera-extcon",
> >  		.parent_supplies = cs47l92_supplies,
> > diff --git a/drivers/mfd/madera-i2c.c b/drivers/mfd/madera-i2c.c
> > index 6b965eb034b6c..7df5b9ba58554 100644
> > --- a/drivers/mfd/madera-i2c.c
> > +++ b/drivers/mfd/madera-i2c.c
> > @@ -88,7 +88,6 @@ static int madera_i2c_probe(struct i2c_client *i2c,
> >  	if (!madera)
> >  		return -ENOMEM;
> >  
> > -
> >  	madera->regmap = devm_regmap_init_i2c(i2c, regmap_16bit_config);
> >  	if (IS_ERR(madera->regmap)) {
> >  		ret = PTR_ERR(madera->regmap);
> > diff --git a/include/linux/mfd/madera/pdata.h b/include/linux/mfd/madera/pdata.h
> > index fa9595dd42ba5..601cbbc10370c 100644
> > --- a/include/linux/mfd/madera/pdata.h
> > +++ b/include/linux/mfd/madera/pdata.h
> > @@ -21,7 +21,6 @@
> >  
> >  struct gpio_desc;
> >  struct pinctrl_map;
> > -struct madera_codec_pdata;
> 
> This is not a formatting issue.

Fair point will split out into a separate patch.

Thanks,
Charles

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH 2/3] mfd: madera: Fix minor formatting issues
  2020-06-01  9:54     ` Charles Keepax
@ 2020-06-01 10:47       ` Lee Jones
  0 siblings, 0 replies; 6+ messages in thread
From: Lee Jones @ 2020-06-01 10:47 UTC (permalink / raw)
  To: Charles Keepax; +Cc: s.nawrocki, linux-kernel, patches

On Mon, 01 Jun 2020, Charles Keepax wrote:

> On Mon, Jun 01, 2020 at 06:24:33AM +0100, Lee Jones wrote:
> > On Fri, 29 May 2020, Charles Keepax wrote:
> > 
> > Still needs a commit log.
> > 
> > > Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
> > > ---
> > >  drivers/mfd/madera-core.c        | 12 ++++++------
> > >  drivers/mfd/madera-i2c.c         |  1 -
> > >  include/linux/mfd/madera/pdata.h |  1 -
> > >  3 files changed, 6 insertions(+), 8 deletions(-)
> > > 
> > > diff --git a/drivers/mfd/madera-core.c b/drivers/mfd/madera-core.c
> > > index 7e0835cb062b1..4724c1a01a39f 100644
> > > --- a/drivers/mfd/madera-core.c
> > > +++ b/drivers/mfd/madera-core.c
> > > @@ -44,7 +44,7 @@ static const char * const madera_core_supplies[] = {
> > >  };
> > >  
> > >  static const struct mfd_cell madera_ldo1_devs[] = {
> > > -	{ .name = "madera-ldo1" },
> > > +	{ .name = "madera-ldo1", },
> > 
> > What issue does this solve?
> > 
> > Why are ','s a requirement, even for single entries?
> > 
> 
> Was more just a consistency thing, we seem to have ended up with
> half the lines having commas and half not, happy to move them all
> to not having comma's if that is your preference?

I don't have a preference.  Consistency is more important to me.

Please describe your changes in the commit log.

-- 
Lee Jones [李琼斯]
Linaro Services Technical Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2020-06-01 10:48 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-05-29 15:57 [PATCH 1/3] mfd: arizona: Remove BUG_ON usage Charles Keepax
2020-05-29 15:57 ` [PATCH 2/3] mfd: madera: Fix minor formatting issues Charles Keepax
2020-06-01  5:24   ` Lee Jones
2020-06-01  9:54     ` Charles Keepax
2020-06-01 10:47       ` Lee Jones
2020-05-29 15:57 ` [PATCH 3/3] mfd: arizona: Ensure 32k clock is put on driver unbind and error Charles Keepax

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).