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 <[email protected]>
---
No changes since v1.
Thanks,
Charles
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
This forward declaration is redundant since the header including the
full data structure is included.
Signed-off-by: Charles Keepax <[email protected]>
---
New since v1 of the series.
Thanks,
Charles
include/linux/mfd/madera/pdata.h | 1 -
1 file changed, 1 deletion(-)
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
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 <[email protected]>
---
No changes since v1.
Thanks,
Charles
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
On Mon, 15 Jun 2020, Charles Keepax wrote:
> 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 <[email protected]>
> ---
>
> No changes since v1.
>
> Thanks,
> Charles
>
> drivers/mfd/arizona-core.c | 18 ++++++++++++++++++
> 1 file changed, 18 insertions(+)
Applied, thanks.
--
Lee Jones [李琼斯]
Senior Technical Lead - Developer Services
Linaro.org │ Open source software for Arm SoCs
Follow Linaro: Facebook | Twitter | Blog
On Mon, 15 Jun 2020, Charles Keepax wrote:
> 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 <[email protected]>
> ---
>
> No changes since v1.
>
> Thanks,
> Charles
>
> drivers/mfd/arizona-core.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
Applied, thanks.
--
Lee Jones [李琼斯]
Senior Technical Lead - Developer Services
Linaro.org │ Open source software for Arm SoCs
Follow Linaro: Facebook | Twitter | Blog
On Mon, 15 Jun 2020, Charles Keepax wrote:
> This forward declaration is redundant since the header including the
> full data structure is included.
>
> Signed-off-by: Charles Keepax <[email protected]>
> ---
>
> New since v1 of the series.
>
> Thanks,
> Charles
>
> include/linux/mfd/madera/pdata.h | 1 -
> 1 file changed, 1 deletion(-)
Applied, thanks.
--
Lee Jones [李琼斯]
Senior Technical Lead - Developer Services
Linaro.org │ Open source software for Arm SoCs
Follow Linaro: Facebook | Twitter | Blog