diff mbox series

ARM: dts: ti/omap: gta04: fix pm issues caused by spi module

Message ID 20241107225100.1803943-1-andreas@kemnade.info (mailing list archive)
State New
Headers show
Series ARM: dts: ti/omap: gta04: fix pm issues caused by spi module | expand

Commit Message

Andreas Kemnade Nov. 7, 2024, 10:51 p.m. UTC
Despite CM_IDLEST1_CORE and CM_FCLKEN1_CORE behaving normal,
disabling SPI leads to messages like:
Powerdomain (core_pwrdm) didn't enter target state 0
and according to /sys/kernel/debug/pm_debug/count off state is not
entered. That was not connected to SPI during the discussion
of disabling SPI. See:
https://lore.kernel.org/linux-omap/20230122100852.32ae082c@aktux/

Fix excess DMA channel usage by disabling DMA only instead of disabling
the SPI modules, so powermanagement can da all its work.

Fixes: a622310f7f01 ("ARM: dts: gta04: fix excess dma channel usage")
CC: stable@vger.kernel.org
Signed-off-by: Andreas Kemnade <andreas@kemnade.info>
---
 arch/arm/boot/dts/ti/omap/omap3-gta04.dtsi | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

Comments

Roger Quadros Nov. 8, 2024, 12:42 p.m. UTC | #1
Hi,

On 08/11/2024 00:51, Andreas Kemnade wrote:
> Despite CM_IDLEST1_CORE and CM_FCLKEN1_CORE behaving normal,
> disabling SPI leads to messages like:
> Powerdomain (core_pwrdm) didn't enter target state 0
> and according to /sys/kernel/debug/pm_debug/count off state is not
> entered. That was not connected to SPI during the discussion
> of disabling SPI. See:
> https://lore.kernel.org/linux-omap/20230122100852.32ae082c@aktux/
> 
> Fix excess DMA channel usage by disabling DMA only instead of disabling
> the SPI modules, so powermanagement can da all its work.

s/powermanagement/power management
s/da/do

> 
> Fixes: a622310f7f01 ("ARM: dts: gta04: fix excess dma channel usage")
> CC: stable@vger.kernel.org
> Signed-off-by: Andreas Kemnade <andreas@kemnade.info>
> ---
>  arch/arm/boot/dts/ti/omap/omap3-gta04.dtsi | 12 ++++++++----
>  1 file changed, 8 insertions(+), 4 deletions(-)
> 
> diff --git a/arch/arm/boot/dts/ti/omap/omap3-gta04.dtsi b/arch/arm/boot/dts/ti/omap/omap3-gta04.dtsi
> index 3661340009e7a..11f8af34498b1 100644
> --- a/arch/arm/boot/dts/ti/omap/omap3-gta04.dtsi
> +++ b/arch/arm/boot/dts/ti/omap/omap3-gta04.dtsi
> @@ -612,19 +612,23 @@ &i2c3 {
>  };
>  
>  &mcspi1 {
> -	status = "disabled";

But according to commit a622310f7f01 ("ARM: dts: gta04: fix excess dma channel usage"),
these mcspi modules are not used. So it doesn't make sense to enable them even if it
seems to solve the power management issue?

Does bootloader leave the mcspi modules in a unwanted state?
Would it make sense for the bus driver to explicitly turn off all modules?

> +	/delete-property/ dmas;
> +	/delete-property/ dma-names;
>  };
>  
>  &mcspi2 {
> -	status = "disabled";
> +	/delete-property/ dmas;
> +	/delete-property/ dma-names;
>  };
>  
>  &mcspi3 {
> -	status = "disabled";
> +	/delete-property/ dmas;
> +	/delete-property/ dma-names;
>  };
>  
>  &mcspi4 {
> -	status = "disabled";
> +	/delete-property/ dmas;
> +	/delete-property/ dma-names;
>  };
>  
>  &usb_otg_hs {
Andreas Kemnade Nov. 8, 2024, 5:41 p.m. UTC | #2
Am Fri, 8 Nov 2024 14:42:14 +0200
schrieb Roger Quadros <rogerq@kernel.org>:

> > diff --git a/arch/arm/boot/dts/ti/omap/omap3-gta04.dtsi b/arch/arm/boot/dts/ti/omap/omap3-gta04.dtsi
> > index 3661340009e7a..11f8af34498b1 100644
> > --- a/arch/arm/boot/dts/ti/omap/omap3-gta04.dtsi
> > +++ b/arch/arm/boot/dts/ti/omap/omap3-gta04.dtsi
> > @@ -612,19 +612,23 @@ &i2c3 {
> >  };
> >  
> >  &mcspi1 {
> > -	status = "disabled";  
> 
> But according to commit a622310f7f01 ("ARM: dts: gta04: fix excess dma channel usage"),
> these mcspi modules are not used. So it doesn't make sense to enable them even if it
> seems to solve the power management issue?
> 
They are not used, if they are just disabled, kernel does not touch
them, so if it is there, the kernel can handle
pm. At least as long as it is not under ti,sysc.

There are probably cleaner solutions for this, but for a CC: stable I
would prefer something less invasive.

I can try a ti-sysc based fix in parallel.

> Does bootloader leave the mcspi modules in a unwanted state?

Or at least something related to them. 
As said, for the blamed patch I checked only for CM_IDLEST1_CORE
and CM_FCLKEN1_CORE.

> Would it make sense for the bus driver to explicitly turn off all modules?

Hmm, not very clear what you mean. AFAIK everything below ti-sysc gets
turned off if a disable is in the child node. Explicitly disabling such
stuff in the dtsi and enable it in the board dts sound sane
to me at first glance. I think it is a common pattern. The question is
whether that causes confusion with not ti-sysc stuff. Well, having
status=okay everywhere in the dts should not harm.
But as said for a regression fix some overhaul affecting every device 
is out of scope.

Regards,
Andreas
diff mbox series

Patch

diff --git a/arch/arm/boot/dts/ti/omap/omap3-gta04.dtsi b/arch/arm/boot/dts/ti/omap/omap3-gta04.dtsi
index 3661340009e7a..11f8af34498b1 100644
--- a/arch/arm/boot/dts/ti/omap/omap3-gta04.dtsi
+++ b/arch/arm/boot/dts/ti/omap/omap3-gta04.dtsi
@@ -612,19 +612,23 @@  &i2c3 {
 };
 
 &mcspi1 {
-	status = "disabled";
+	/delete-property/ dmas;
+	/delete-property/ dma-names;
 };
 
 &mcspi2 {
-	status = "disabled";
+	/delete-property/ dmas;
+	/delete-property/ dma-names;
 };
 
 &mcspi3 {
-	status = "disabled";
+	/delete-property/ dmas;
+	/delete-property/ dma-names;
 };
 
 &mcspi4 {
-	status = "disabled";
+	/delete-property/ dmas;
+	/delete-property/ dma-names;
 };
 
 &usb_otg_hs {