All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v1 0/6] Tegra cpuidle driver fixes and improvements for 5.16
@ 2021-09-12 20:29 Dmitry Osipenko
  2021-09-12 20:29 ` [PATCH v1 1/6] soc/tegra: fuse: Add stubs needed for compile testing Dmitry Osipenko
                   ` (5 more replies)
  0 siblings, 6 replies; 12+ messages in thread
From: Dmitry Osipenko @ 2021-09-12 20:29 UTC (permalink / raw)
  To: Thierry Reding, Jonathan Hunter, Daniel Lezcano
  Cc: Rafael J. Wysocki, linux-pm, linux-tegra, linux-kernel

This series adds compile-testing support to Tegra cpuidle driver and fixes
a non-critical problem that should pop up only when power management patches
[1] will be merged. Previously I sent out these patches separately[2][3],
but they partially missed recent kernel release. I combined the remaining
patches into this series and added ack from Daniel Lezcano that he gave
to the "Check whether PMC is ready" patch [3].

[1] https://patchwork.ozlabs.org/project/linux-tegra/list/?series=261973
[2] https://patchwork.ozlabs.org/project/linux-tegra/list/?series=252996
[3] https://patchwork.ozlabs.org/project/linux-tegra/list/?series=254040

Dmitry Osipenko (6):
  soc/tegra: fuse: Add stubs needed for compile testing
  soc/tegra: irq: Add stubs needed for compile testing
  soc/tegra: pm: Make stubs usable for compile testing
  clk: tegra: Add stubs needed for compile testing
  cpuidle: tegra: Enable compile testing
  cpuidle: tegra: Check whether PMC is ready

 drivers/cpuidle/Kconfig.arm     |  2 +-
 drivers/cpuidle/cpuidle-tegra.c |  3 +++
 include/linux/clk/tegra.h       |  4 ++++
 include/soc/tegra/fuse.h        | 31 ++++++++++++++++++++++++++-----
 include/soc/tegra/irq.h         |  9 ++++++++-
 include/soc/tegra/pm.h          |  2 +-
 6 files changed, 43 insertions(+), 8 deletions(-)

-- 
2.32.0


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

* [PATCH v1 1/6] soc/tegra: fuse: Add stubs needed for compile testing
  2021-09-12 20:29 [PATCH v1 0/6] Tegra cpuidle driver fixes and improvements for 5.16 Dmitry Osipenko
@ 2021-09-12 20:29 ` Dmitry Osipenko
  2021-09-12 20:29 ` [PATCH v1 2/6] soc/tegra: irq: " Dmitry Osipenko
                   ` (4 subsequent siblings)
  5 siblings, 0 replies; 12+ messages in thread
From: Dmitry Osipenko @ 2021-09-12 20:29 UTC (permalink / raw)
  To: Thierry Reding, Jonathan Hunter, Daniel Lezcano
  Cc: Rafael J. Wysocki, linux-pm, linux-tegra, linux-kernel

Add stubs needed for compile-testing of tegra-cpuidle driver.

Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
---
 include/soc/tegra/fuse.h | 31 ++++++++++++++++++++++++++-----
 1 file changed, 26 insertions(+), 5 deletions(-)

diff --git a/include/soc/tegra/fuse.h b/include/soc/tegra/fuse.h
index 990701f788bc..67d2bc856fbc 100644
--- a/include/soc/tegra/fuse.h
+++ b/include/soc/tegra/fuse.h
@@ -6,6 +6,8 @@
 #ifndef __SOC_TEGRA_FUSE_H__
 #define __SOC_TEGRA_FUSE_H__
 
+#include <linux/types.h>
+
 #define TEGRA20		0x20
 #define TEGRA30		0x30
 #define TEGRA114	0x35
@@ -22,11 +24,6 @@
 
 #ifndef __ASSEMBLY__
 
-u32 tegra_read_chipid(void);
-u8 tegra_get_chip_id(void);
-u8 tegra_get_platform(void);
-bool tegra_is_silicon(void);
-
 enum tegra_revision {
 	TEGRA_REVISION_UNKNOWN = 0,
 	TEGRA_REVISION_A01,
@@ -57,6 +54,10 @@ extern struct tegra_sku_info tegra_sku_info;
 u32 tegra_read_straps(void);
 u32 tegra_read_ram_code(void);
 int tegra_fuse_readl(unsigned long offset, u32 *value);
+u32 tegra_read_chipid(void);
+u8 tegra_get_chip_id(void);
+u8 tegra_get_platform(void);
+bool tegra_is_silicon(void);
 #else
 static struct tegra_sku_info tegra_sku_info __maybe_unused;
 
@@ -74,6 +75,26 @@ static inline int tegra_fuse_readl(unsigned long offset, u32 *value)
 {
 	return -ENODEV;
 }
+
+static inline u32 tegra_read_chipid(void)
+{
+	return 0;
+}
+
+static inline u8 tegra_get_chip_id(void)
+{
+	return 0;
+}
+
+static inline u8 tegra_get_platform(void)
+{
+	return 0;
+}
+
+static inline bool tegra_is_silicon(void)
+{
+	return false;
+}
 #endif
 
 struct device *tegra_soc_device_register(void);
-- 
2.32.0


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

* [PATCH v1 2/6] soc/tegra: irq: Add stubs needed for compile testing
  2021-09-12 20:29 [PATCH v1 0/6] Tegra cpuidle driver fixes and improvements for 5.16 Dmitry Osipenko
  2021-09-12 20:29 ` [PATCH v1 1/6] soc/tegra: fuse: Add stubs needed for compile testing Dmitry Osipenko
@ 2021-09-12 20:29 ` Dmitry Osipenko
  2021-09-12 20:29 ` [PATCH v1 3/6] soc/tegra: pm: Make stubs usable " Dmitry Osipenko
                   ` (3 subsequent siblings)
  5 siblings, 0 replies; 12+ messages in thread
From: Dmitry Osipenko @ 2021-09-12 20:29 UTC (permalink / raw)
  To: Thierry Reding, Jonathan Hunter, Daniel Lezcano
  Cc: Rafael J. Wysocki, linux-pm, linux-tegra, linux-kernel

Add stubs needed for compile-testing of tegra-cpuidle driver.

Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
---
 include/soc/tegra/irq.h | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/include/soc/tegra/irq.h b/include/soc/tegra/irq.h
index 8eb11a7109e4..94539551c8c1 100644
--- a/include/soc/tegra/irq.h
+++ b/include/soc/tegra/irq.h
@@ -6,8 +6,15 @@
 #ifndef __SOC_TEGRA_IRQ_H
 #define __SOC_TEGRA_IRQ_H
 
-#if defined(CONFIG_ARM)
+#include <linux/types.h>
+
+#if defined(CONFIG_ARM) && defined(CONFIG_ARCH_TEGRA)
 bool tegra_pending_sgi(void);
+#else
+static inline bool tegra_pending_sgi(void)
+{
+	return false;
+}
 #endif
 
 #endif /* __SOC_TEGRA_IRQ_H */
-- 
2.32.0


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

* [PATCH v1 3/6] soc/tegra: pm: Make stubs usable for compile testing
  2021-09-12 20:29 [PATCH v1 0/6] Tegra cpuidle driver fixes and improvements for 5.16 Dmitry Osipenko
  2021-09-12 20:29 ` [PATCH v1 1/6] soc/tegra: fuse: Add stubs needed for compile testing Dmitry Osipenko
  2021-09-12 20:29 ` [PATCH v1 2/6] soc/tegra: irq: " Dmitry Osipenko
@ 2021-09-12 20:29 ` Dmitry Osipenko
  2021-09-12 20:29 ` [PATCH v1 4/6] clk: tegra: Add stubs needed " Dmitry Osipenko
                   ` (2 subsequent siblings)
  5 siblings, 0 replies; 12+ messages in thread
From: Dmitry Osipenko @ 2021-09-12 20:29 UTC (permalink / raw)
  To: Thierry Reding, Jonathan Hunter, Daniel Lezcano
  Cc: Rafael J. Wysocki, linux-pm, linux-tegra, linux-kernel

The PM stubs need to depend on ARCH_TEGRA in order to be usable for
compile-testing of tegra-cpuidle driver. Add the dependency.

Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
---
 include/soc/tegra/pm.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/include/soc/tegra/pm.h b/include/soc/tegra/pm.h
index 433878927026..ce4d0b1bd0d6 100644
--- a/include/soc/tegra/pm.h
+++ b/include/soc/tegra/pm.h
@@ -17,7 +17,7 @@ enum tegra_suspend_mode {
 	TEGRA_SUSPEND_NOT_READY,
 };
 
-#if defined(CONFIG_PM_SLEEP) && defined(CONFIG_ARM)
+#if defined(CONFIG_PM_SLEEP) && defined(CONFIG_ARM) && defined(CONFIG_ARCH_TEGRA)
 enum tegra_suspend_mode
 tegra_pm_validate_suspend_mode(enum tegra_suspend_mode mode);
 
-- 
2.32.0


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

* [PATCH v1 4/6] clk: tegra: Add stubs needed for compile testing
  2021-09-12 20:29 [PATCH v1 0/6] Tegra cpuidle driver fixes and improvements for 5.16 Dmitry Osipenko
                   ` (2 preceding siblings ...)
  2021-09-12 20:29 ` [PATCH v1 3/6] soc/tegra: pm: Make stubs usable " Dmitry Osipenko
@ 2021-09-12 20:29 ` Dmitry Osipenko
  2021-10-04 19:33   ` Thierry Reding
  2021-09-12 20:29 ` [PATCH v1 5/6] cpuidle: tegra: Enable " Dmitry Osipenko
  2021-09-12 20:29 ` [PATCH v1 6/6] cpuidle: tegra: Check whether PMC is ready Dmitry Osipenko
  5 siblings, 1 reply; 12+ messages in thread
From: Dmitry Osipenko @ 2021-09-12 20:29 UTC (permalink / raw)
  To: Thierry Reding, Jonathan Hunter, Daniel Lezcano
  Cc: Rafael J. Wysocki, linux-pm, linux-tegra, linux-kernel

Add stubs needed for compile-testing of tegra-cpuidle driver.

Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
---
 include/linux/clk/tegra.h | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/include/linux/clk/tegra.h b/include/linux/clk/tegra.h
index d128ad1570aa..9bd06d8a5436 100644
--- a/include/linux/clk/tegra.h
+++ b/include/linux/clk/tegra.h
@@ -42,7 +42,11 @@ struct tegra_cpu_car_ops {
 #endif
 };
 
+#ifdef CONFIG_ARCH_TEGRA
 extern struct tegra_cpu_car_ops *tegra_cpu_car_ops;
+#else
+static struct tegra_cpu_car_ops *tegra_cpu_car_ops __maybe_unused;
+#endif
 
 static inline void tegra_wait_cpu_in_reset(u32 cpu)
 {
-- 
2.32.0


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

* [PATCH v1 5/6] cpuidle: tegra: Enable compile testing
  2021-09-12 20:29 [PATCH v1 0/6] Tegra cpuidle driver fixes and improvements for 5.16 Dmitry Osipenko
                   ` (3 preceding siblings ...)
  2021-09-12 20:29 ` [PATCH v1 4/6] clk: tegra: Add stubs needed " Dmitry Osipenko
@ 2021-09-12 20:29 ` Dmitry Osipenko
  2021-09-27 16:33   ` Dmitry Osipenko
  2021-09-12 20:29 ` [PATCH v1 6/6] cpuidle: tegra: Check whether PMC is ready Dmitry Osipenko
  5 siblings, 1 reply; 12+ messages in thread
From: Dmitry Osipenko @ 2021-09-12 20:29 UTC (permalink / raw)
  To: Thierry Reding, Jonathan Hunter, Daniel Lezcano
  Cc: Rafael J. Wysocki, linux-pm, linux-tegra, linux-kernel

Enable compile testing of tegra-cpuidle driver.

Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
---
 drivers/cpuidle/Kconfig.arm | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/cpuidle/Kconfig.arm b/drivers/cpuidle/Kconfig.arm
index 334f83e56120..599286fc0b08 100644
--- a/drivers/cpuidle/Kconfig.arm
+++ b/drivers/cpuidle/Kconfig.arm
@@ -99,7 +99,7 @@ config ARM_MVEBU_V7_CPUIDLE
 
 config ARM_TEGRA_CPUIDLE
 	bool "CPU Idle Driver for NVIDIA Tegra SoCs"
-	depends on ARCH_TEGRA && !ARM64
+	depends on (ARCH_TEGRA || COMPILE_TEST) && !ARM64 && MMU
 	select ARCH_NEEDS_CPU_IDLE_COUPLED if SMP
 	select ARM_CPU_SUSPEND
 	help
-- 
2.32.0


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

* [PATCH v1 6/6] cpuidle: tegra: Check whether PMC is ready
  2021-09-12 20:29 [PATCH v1 0/6] Tegra cpuidle driver fixes and improvements for 5.16 Dmitry Osipenko
                   ` (4 preceding siblings ...)
  2021-09-12 20:29 ` [PATCH v1 5/6] cpuidle: tegra: Enable " Dmitry Osipenko
@ 2021-09-12 20:29 ` Dmitry Osipenko
  5 siblings, 0 replies; 12+ messages in thread
From: Dmitry Osipenko @ 2021-09-12 20:29 UTC (permalink / raw)
  To: Thierry Reding, Jonathan Hunter, Daniel Lezcano
  Cc: Rafael J. Wysocki, linux-pm, linux-tegra, linux-kernel

Check whether PMC is ready before proceeding with the cpuidle registration.
This fixes racing with the PMC driver probe order, which results in a
disabled deepest CC6 idling state if cpuidle driver is probed before the
PMC.

Acked-by: Daniel Lezcano <daniel.lezcano@linaro.org>
Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
---
 drivers/cpuidle/cpuidle-tegra.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/drivers/cpuidle/cpuidle-tegra.c b/drivers/cpuidle/cpuidle-tegra.c
index 508bd9f23792..9845629aeb6d 100644
--- a/drivers/cpuidle/cpuidle-tegra.c
+++ b/drivers/cpuidle/cpuidle-tegra.c
@@ -337,6 +337,9 @@ static void tegra_cpuidle_setup_tegra114_c7_state(void)
 
 static int tegra_cpuidle_probe(struct platform_device *pdev)
 {
+	if (tegra_pmc_get_suspend_mode() == TEGRA_SUSPEND_NOT_READY)
+		return -EPROBE_DEFER;
+
 	/* LP2 could be disabled in device-tree */
 	if (tegra_pmc_get_suspend_mode() < TEGRA_SUSPEND_LP2)
 		tegra_cpuidle_disable_state(TEGRA_CC6);
-- 
2.32.0


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

* Re: [PATCH v1 5/6] cpuidle: tegra: Enable compile testing
  2021-09-12 20:29 ` [PATCH v1 5/6] cpuidle: tegra: Enable " Dmitry Osipenko
@ 2021-09-27 16:33   ` Dmitry Osipenko
  2021-09-29 10:32     ` Daniel Lezcano
  0 siblings, 1 reply; 12+ messages in thread
From: Dmitry Osipenko @ 2021-09-27 16:33 UTC (permalink / raw)
  To: Thierry Reding, Jonathan Hunter, Daniel Lezcano, Rafael J. Wysocki
  Cc: linux-pm, linux-tegra, linux-kernel

12.09.2021 23:29, Dmitry Osipenko пишет:
> Enable compile testing of tegra-cpuidle driver.
> 
> Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
> ---
>  drivers/cpuidle/Kconfig.arm | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/cpuidle/Kconfig.arm b/drivers/cpuidle/Kconfig.arm
> index 334f83e56120..599286fc0b08 100644
> --- a/drivers/cpuidle/Kconfig.arm
> +++ b/drivers/cpuidle/Kconfig.arm
> @@ -99,7 +99,7 @@ config ARM_MVEBU_V7_CPUIDLE
>  
>  config ARM_TEGRA_CPUIDLE
>  	bool "CPU Idle Driver for NVIDIA Tegra SoCs"
> -	depends on ARCH_TEGRA && !ARM64
> +	depends on (ARCH_TEGRA || COMPILE_TEST) && !ARM64 && MMU
>  	select ARCH_NEEDS_CPU_IDLE_COUPLED if SMP
>  	select ARM_CPU_SUSPEND
>  	help
> 

Daniel / Rafael, could you please ack this patch to allow Thierry to
take this whole series via the Tegra tree?

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

* Re: [PATCH v1 5/6] cpuidle: tegra: Enable compile testing
  2021-09-27 16:33   ` Dmitry Osipenko
@ 2021-09-29 10:32     ` Daniel Lezcano
  0 siblings, 0 replies; 12+ messages in thread
From: Daniel Lezcano @ 2021-09-29 10:32 UTC (permalink / raw)
  To: Dmitry Osipenko, Thierry Reding, Jonathan Hunter, Rafael J. Wysocki
  Cc: linux-pm, linux-tegra, linux-kernel

On 27/09/2021 18:33, Dmitry Osipenko wrote:
> 12.09.2021 23:29, Dmitry Osipenko пишет:
>> Enable compile testing of tegra-cpuidle driver.
>>
>> Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
>> ---
>>  drivers/cpuidle/Kconfig.arm | 2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/drivers/cpuidle/Kconfig.arm b/drivers/cpuidle/Kconfig.arm
>> index 334f83e56120..599286fc0b08 100644
>> --- a/drivers/cpuidle/Kconfig.arm
>> +++ b/drivers/cpuidle/Kconfig.arm
>> @@ -99,7 +99,7 @@ config ARM_MVEBU_V7_CPUIDLE
>>  
>>  config ARM_TEGRA_CPUIDLE
>>  	bool "CPU Idle Driver for NVIDIA Tegra SoCs"
>> -	depends on ARCH_TEGRA && !ARM64
>> +	depends on (ARCH_TEGRA || COMPILE_TEST) && !ARM64 && MMU
>>  	select ARCH_NEEDS_CPU_IDLE_COUPLED if SMP
>>  	select ARM_CPU_SUSPEND
>>  	help
>>
> 
> Daniel / Rafael, could you please ack this patch to allow Thierry to
> take this whole series via the Tegra tree?
> 

Acked-by: Daniel Lezcano <daniel.lezcano@linaro.org>

-- 
<http://www.linaro.org/> Linaro.org │ Open source software for ARM SoCs

Follow Linaro:  <http://www.facebook.com/pages/Linaro> Facebook |
<http://twitter.com/#!/linaroorg> Twitter |
<http://www.linaro.org/linaro-blog/> Blog

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

* Re: [PATCH v1 4/6] clk: tegra: Add stubs needed for compile testing
  2021-09-12 20:29 ` [PATCH v1 4/6] clk: tegra: Add stubs needed " Dmitry Osipenko
@ 2021-10-04 19:33   ` Thierry Reding
  2021-10-04 20:02     ` Thierry Reding
  0 siblings, 1 reply; 12+ messages in thread
From: Thierry Reding @ 2021-10-04 19:33 UTC (permalink / raw)
  To: Dmitry Osipenko
  Cc: Jonathan Hunter, Daniel Lezcano, Rafael J. Wysocki, linux-pm,
	linux-tegra, linux-kernel

[-- Attachment #1: Type: text/plain, Size: 1086 bytes --]

On Sun, Sep 12, 2021 at 11:29:05PM +0300, Dmitry Osipenko wrote:
> Add stubs needed for compile-testing of tegra-cpuidle driver.
> 
> Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
> ---
>  include/linux/clk/tegra.h | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/include/linux/clk/tegra.h b/include/linux/clk/tegra.h
> index d128ad1570aa..9bd06d8a5436 100644
> --- a/include/linux/clk/tegra.h
> +++ b/include/linux/clk/tegra.h
> @@ -42,7 +42,11 @@ struct tegra_cpu_car_ops {
>  #endif
>  };
>  
> +#ifdef CONFIG_ARCH_TEGRA
>  extern struct tegra_cpu_car_ops *tegra_cpu_car_ops;
> +#else
> +static struct tegra_cpu_car_ops *tegra_cpu_car_ops __maybe_unused;
> +#endif

Ugh... this one seems a bit over the top, to be honest. The only place
where this seems to be used is in arch/arm/mach-tegra/pm.c, but that
already uses one of the stubs from include/linux/clk/tegra.h, so I'm
wondering if we can't define that latter stub in a way to make it
unnecessary to declare this bogus pointer.

I'll play around with this a little bit.

Thierry

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

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

* Re: [PATCH v1 4/6] clk: tegra: Add stubs needed for compile testing
  2021-10-04 19:33   ` Thierry Reding
@ 2021-10-04 20:02     ` Thierry Reding
  2021-10-04 20:41       ` Dmitry Osipenko
  0 siblings, 1 reply; 12+ messages in thread
From: Thierry Reding @ 2021-10-04 20:02 UTC (permalink / raw)
  To: Dmitry Osipenko
  Cc: Jonathan Hunter, Daniel Lezcano, Rafael J. Wysocki, linux-pm,
	linux-tegra, linux-kernel

[-- Attachment #1: Type: text/plain, Size: 2353 bytes --]

On Mon, Oct 04, 2021 at 09:33:57PM +0200, Thierry Reding wrote:
> On Sun, Sep 12, 2021 at 11:29:05PM +0300, Dmitry Osipenko wrote:
> > Add stubs needed for compile-testing of tegra-cpuidle driver.
> > 
> > Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
> > ---
> >  include/linux/clk/tegra.h | 4 ++++
> >  1 file changed, 4 insertions(+)
> > 
> > diff --git a/include/linux/clk/tegra.h b/include/linux/clk/tegra.h
> > index d128ad1570aa..9bd06d8a5436 100644
> > --- a/include/linux/clk/tegra.h
> > +++ b/include/linux/clk/tegra.h
> > @@ -42,7 +42,11 @@ struct tegra_cpu_car_ops {
> >  #endif
> >  };
> >  
> > +#ifdef CONFIG_ARCH_TEGRA
> >  extern struct tegra_cpu_car_ops *tegra_cpu_car_ops;
> > +#else
> > +static struct tegra_cpu_car_ops *tegra_cpu_car_ops __maybe_unused;
> > +#endif
> 
> Ugh... this one seems a bit over the top, to be honest. The only place
> where this seems to be used is in arch/arm/mach-tegra/pm.c, but that
> already uses one of the stubs from include/linux/clk/tegra.h, so I'm
> wondering if we can't define that latter stub in a way to make it
> unnecessary to declare this bogus pointer.
> 
> I'll play around with this a little bit.

The below does the trick for me as well:

--- >8 ---
diff --git a/include/linux/clk/tegra.h b/include/linux/clk/tegra.h
index d128ad1570aa..d261db7e6060 100644
--- a/include/linux/clk/tegra.h
+++ b/include/linux/clk/tegra.h
@@ -42,6 +42,7 @@ struct tegra_cpu_car_ops {
 #endif
 };

+#ifdef CONFIG_ARCH_TEGRA
 extern struct tegra_cpu_car_ops *tegra_cpu_car_ops;

 static inline void tegra_wait_cpu_in_reset(u32 cpu)
@@ -83,6 +84,27 @@ static inline void tegra_disable_cpu_clock(u32 cpu)

 	tegra_cpu_car_ops->disable_clock(cpu);
 }
+#else
+static inline void tegra_wait_cpu_in_reset(u32 cpu)
+{
+}
+
+static inline void tegra_put_cpu_in_reset(u32 cpu)
+{
+}
+
+static inline void tegra_cpu_out_of_reset(u32 cpu)
+{
+}
+
+static inline void tegra_enable_cpu_clock(u32 cpu)
+{
+}
+
+static inline void tegra_disable_cpu_clock(u32 cpu)
+{
+}
+#endif

 #ifdef CONFIG_PM_SLEEP
 static inline bool tegra_cpu_rail_off_ready(void)
--- >8 ---

Do you mind if I replace your version with that? I think that's a little
bit cleaner because it should be easier for the compiler to completely
compile it out.

Thierry

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

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

* Re: [PATCH v1 4/6] clk: tegra: Add stubs needed for compile testing
  2021-10-04 20:02     ` Thierry Reding
@ 2021-10-04 20:41       ` Dmitry Osipenko
  0 siblings, 0 replies; 12+ messages in thread
From: Dmitry Osipenko @ 2021-10-04 20:41 UTC (permalink / raw)
  To: Thierry Reding
  Cc: Jonathan Hunter, Daniel Lezcano, Rafael J. Wysocki, linux-pm,
	linux-tegra, linux-kernel

04.10.2021 23:02, Thierry Reding пишет:
> On Mon, Oct 04, 2021 at 09:33:57PM +0200, Thierry Reding wrote:
>> On Sun, Sep 12, 2021 at 11:29:05PM +0300, Dmitry Osipenko wrote:
>>> Add stubs needed for compile-testing of tegra-cpuidle driver.
>>>
>>> Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
>>> ---
>>>  include/linux/clk/tegra.h | 4 ++++
>>>  1 file changed, 4 insertions(+)
>>>
>>> diff --git a/include/linux/clk/tegra.h b/include/linux/clk/tegra.h
>>> index d128ad1570aa..9bd06d8a5436 100644
>>> --- a/include/linux/clk/tegra.h
>>> +++ b/include/linux/clk/tegra.h
>>> @@ -42,7 +42,11 @@ struct tegra_cpu_car_ops {
>>>  #endif
>>>  };
>>>  
>>> +#ifdef CONFIG_ARCH_TEGRA
>>>  extern struct tegra_cpu_car_ops *tegra_cpu_car_ops;
>>> +#else
>>> +static struct tegra_cpu_car_ops *tegra_cpu_car_ops __maybe_unused;
>>> +#endif
>>
>> Ugh... this one seems a bit over the top, to be honest. The only place
>> where this seems to be used is in arch/arm/mach-tegra/pm.c, but that
>> already uses one of the stubs from include/linux/clk/tegra.h, so I'm
>> wondering if we can't define that latter stub in a way to make it
>> unnecessary to declare this bogus pointer.
>>
>> I'll play around with this a little bit.
> 
> The below does the trick for me as well:
> 
> --- >8 ---
> diff --git a/include/linux/clk/tegra.h b/include/linux/clk/tegra.h
> index d128ad1570aa..d261db7e6060 100644
> --- a/include/linux/clk/tegra.h
> +++ b/include/linux/clk/tegra.h
> @@ -42,6 +42,7 @@ struct tegra_cpu_car_ops {
>  #endif
>  };
> 
> +#ifdef CONFIG_ARCH_TEGRA
>  extern struct tegra_cpu_car_ops *tegra_cpu_car_ops;
> 
>  static inline void tegra_wait_cpu_in_reset(u32 cpu)
> @@ -83,6 +84,27 @@ static inline void tegra_disable_cpu_clock(u32 cpu)
> 
>  	tegra_cpu_car_ops->disable_clock(cpu);
>  }
> +#else
> +static inline void tegra_wait_cpu_in_reset(u32 cpu)
> +{
> +}
> +
> +static inline void tegra_put_cpu_in_reset(u32 cpu)
> +{
> +}
> +
> +static inline void tegra_cpu_out_of_reset(u32 cpu)
> +{
> +}
> +
> +static inline void tegra_enable_cpu_clock(u32 cpu)
> +{
> +}
> +
> +static inline void tegra_disable_cpu_clock(u32 cpu)
> +{
> +}
> +#endif
> 
>  #ifdef CONFIG_PM_SLEEP
>  static inline bool tegra_cpu_rail_off_ready(void)
> --- >8 ---
> 
> Do you mind if I replace your version with that? I think that's a little
> bit cleaner because it should be easier for the compiler to completely
> compile it out.

I don't mind, please choose what you prefer more. This was one of the
first variants of this patch, it adds more lines and it won't be
compiled with ARCH_TEGRA=n and COMPILE_TEST=n anyways.

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

end of thread, other threads:[~2021-10-04 20:41 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-09-12 20:29 [PATCH v1 0/6] Tegra cpuidle driver fixes and improvements for 5.16 Dmitry Osipenko
2021-09-12 20:29 ` [PATCH v1 1/6] soc/tegra: fuse: Add stubs needed for compile testing Dmitry Osipenko
2021-09-12 20:29 ` [PATCH v1 2/6] soc/tegra: irq: " Dmitry Osipenko
2021-09-12 20:29 ` [PATCH v1 3/6] soc/tegra: pm: Make stubs usable " Dmitry Osipenko
2021-09-12 20:29 ` [PATCH v1 4/6] clk: tegra: Add stubs needed " Dmitry Osipenko
2021-10-04 19:33   ` Thierry Reding
2021-10-04 20:02     ` Thierry Reding
2021-10-04 20:41       ` Dmitry Osipenko
2021-09-12 20:29 ` [PATCH v1 5/6] cpuidle: tegra: Enable " Dmitry Osipenko
2021-09-27 16:33   ` Dmitry Osipenko
2021-09-29 10:32     ` Daniel Lezcano
2021-09-12 20:29 ` [PATCH v1 6/6] cpuidle: tegra: Check whether PMC is ready Dmitry Osipenko

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.