ARM: samsung: remove s3c_pm_debug_init()
authorArnd Bergmann <arnd@arndb.de>
Thu, 6 Aug 2020 18:20:28 +0000 (20:20 +0200)
committerKrzysztof Kozlowski <krzk@kernel.org>
Wed, 19 Aug 2020 19:10:50 +0000 (21:10 +0200)
On s3c24xx and s3c64xx, this is just a wrapper around
s3c_pm_debug_init_uart(), but this function does not exist on s5pv210,
which always uses an empty stub as CONFIG_SAMSUNG_ATAGS is normally
not set.

In a configuration that supports both s5pv210 and s3c64xx, we would
always call the s3c64xx function, which is probably incorrect when
running on s5pv210.

Remove the function call completely on s5pv210 and skip the wrapper on
s3c as a cleanup.

As a side-effect, the s3c64xx behavior is now always the same, regardless
of whether it is a DT-only configuration or both DT and ATAGS are
supported for booting.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Link: https://lore.kernel.org/r/20200806182059.2431-11-krzk@kernel.org
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
arch/arm/mach-s3c24xx/include/mach/pm-core.h
arch/arm/mach-s3c64xx/include/mach/pm-core.h
arch/arm/mach-s5pv210/pm.c
arch/arm/plat-samsung/include/plat/pm-common.h
arch/arm/plat-samsung/pm-debug.c
arch/arm/plat-samsung/pm.c

index 5e4ce89d01582d719a68a0e4d998bca4b45ed212..cd6406820cb138573a153ceef8fa4c351979ce6c 100644 (file)
@@ -15,6 +15,7 @@
 
 static inline void s3c_pm_debug_init_uart(void)
 {
+#ifdef CONFIG_SAMSUNG_PM_DEBUG
        unsigned long tmp = __raw_readl(S3C2410_CLKCON);
 
        /* re-start uart clocks */
@@ -24,6 +25,7 @@ static inline void s3c_pm_debug_init_uart(void)
 
        __raw_writel(tmp, S3C2410_CLKCON);
        udelay(10);
+#endif
 }
 
 static inline void s3c_pm_arch_prepare_irqs(void)
index bbf79ed285838b916b33b61476b43b7808c19cca..1c7d179a86f3b7c95686634bf868fed0df07faf8 100644 (file)
@@ -20,6 +20,7 @@
 
 static inline void s3c_pm_debug_init_uart(void)
 {
+#ifdef CONFIG_SAMSUNG_PM_DEBUG
        u32 tmp = __raw_readl(S3C_PCLK_GATE);
 
        /* As a note, since the S3C64XX UARTs generally have multiple
@@ -35,6 +36,7 @@ static inline void s3c_pm_debug_init_uart(void)
 
        __raw_writel(tmp, S3C_PCLK_GATE);
        udelay(10);
+#endif
 }
 
 static inline void s3c_pm_arch_prepare_irqs(void)
index b336df0c57f393ef72045e2dcfc5fb82ddffbe09..725e6746f345b4446071eb00e569437dd5a7564b 100644 (file)
@@ -99,8 +99,6 @@ static int s5pv210_suspend_enter(suspend_state_t state)
        u32 eint_wakeup_mask = s5pv210_read_eint_wakeup_mask();
        int ret;
 
-       s3c_pm_debug_init();
-
        S3C_PMDBG("%s: suspending the system...\n", __func__);
 
        S3C_PMDBG("%s: wakeup masks: %08x,%08x\n", __func__,
index 1268bae04234b648a3edd87baf588fe4c09f190e..467e7c867c46e1512d3c5311304c24f1dc6707e0 100644 (file)
@@ -69,22 +69,12 @@ struct pm_uart_save {
  */
 extern void s3c_pm_dbg(const char *msg, ...);
 
-/**
- * s3c_pm_debug_init() - suspend/resume low level debug initialization.
- * @base: Virtual base of UART to use for suspend/resume debugging.
- *
- * This function needs to be called before S3C_PMDBG() can be used, to set up
- * UART port base address and configuration.
- */
-extern void s3c_pm_debug_init(void);
-
 #define S3C_PMDBG(fmt...) s3c_pm_dbg(fmt)
 
 extern void s3c_pm_save_uarts(void);
 extern void s3c_pm_restore_uarts(void);
 #else
 #define S3C_PMDBG(fmt...) pr_debug(fmt)
-#define s3c_pm_debug_init() do { } while (0)
 
 static inline void s3c_pm_save_uarts(void) { }
 static inline void s3c_pm_restore_uarts(void) { }
index b76b1e9ba4ae76619868f4483371d10b1ff4551a..105b61f3304eb538da7b759e5cb62a51c75ecbc4 100644 (file)
@@ -22,7 +22,6 @@
 #include <plat/pm.h>
 #include <mach/pm-core.h>
 #else
-static inline void s3c_pm_debug_init_uart(void) {}
 static inline void s3c_pm_arch_update_uart(void __iomem *regs,
                                           struct pm_uart_save *save) {}
 #endif
@@ -43,12 +42,6 @@ void s3c_pm_dbg(const char *fmt, ...)
        printascii(buff);
 }
 
-void s3c_pm_debug_init(void)
-{
-       /* restart uart clocks so we can use them to output */
-       s3c_pm_debug_init_uart();
-}
-
 static inline void __iomem *s3c_pm_uart_base(void)
 {
        unsigned long paddr;
index d6bfd66592b04f094742eeb177077f6b17ccc8bf..b40ab7abe6a931d01de653a51e6b43140c6f0b8a 100644 (file)
@@ -70,8 +70,7 @@ static int s3c_pm_enter(suspend_state_t state)
 {
        int ret;
        /* ensure the debug is initialised (if enabled) */
-
-       s3c_pm_debug_init();
+       s3c_pm_debug_init_uart();
 
        S3C_PMDBG("%s(%d)\n", __func__, state);
 
@@ -144,7 +143,7 @@ static int s3c_pm_enter(suspend_state_t state)
                s3c_pm_restored_gpios();
        }
 
-       s3c_pm_debug_init();
+       s3c_pm_debug_init_uart();
 
        /* check what irq (if any) restored the system */