diff options
author | Tomasz Figa <t.figa@samsung.com> | 2014-03-17 23:28:09 +0100 |
---|---|---|
committer | Kukjin Kim <kgene.kim@samsung.com> | 2014-03-20 20:06:11 +0100 |
commit | 99b2fc2b8b40256538332769f11f2fe6ee942f6c (patch) | |
tree | 7303be5f6d13dc66e07c14f8da99e2593d87ce0e /arch/arm/plat-samsung | |
parent | ARM: SAMSUNG: Save UART DIVSLOT register based on SoC type (diff) | |
download | linux-99b2fc2b8b40256538332769f11f2fe6ee942f6c.tar.xz linux-99b2fc2b8b40256538332769f11f2fe6ee942f6c.zip |
ARM: SAMSUNG: Use debug_ll_addr() to get UART base address
This patch modifies Samsung PM debug helpers to use a multiplatform
friendly way of getting base address of debug UART port, so instead
of using a per-mach static macro, a generic debug_ll_addr() helper
is used.
Signed-off-by: Tomasz Figa <t.figa@samsung.com>
Acked-by: Kyungmin Park <kyungmin.park@samsung.com>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
Diffstat (limited to 'arch/arm/plat-samsung')
-rw-r--r-- | arch/arm/plat-samsung/pm.c | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/arch/arm/plat-samsung/pm.c b/arch/arm/plat-samsung/pm.c index 3563421d63ab..c7fac34de621 100644 --- a/arch/arm/plat-samsung/pm.c +++ b/arch/arm/plat-samsung/pm.c @@ -22,6 +22,7 @@ #include <linux/io.h> #include <asm/cacheflush.h> +#include <asm/mach/map.h> #include <asm/suspend.h> #include <plat/cpu.h> @@ -74,9 +75,19 @@ static inline void s3c_pm_debug_init(void) static struct pm_uart_save uart_save; +static inline void __iomem *s3c_pm_uart_base(void) +{ + unsigned long paddr; + unsigned long vaddr; + + debug_ll_addr(&paddr, &vaddr); + + return (void __iomem *)vaddr; +} + static void s3c_pm_save_uart(unsigned int uart, struct pm_uart_save *save) { - void __iomem *regs = S3C_VA_UARTx(uart); + void __iomem *regs = s3c_pm_uart_base(); save->ulcon = __raw_readl(regs + S3C2410_ULCON); save->ucon = __raw_readl(regs + S3C2410_UCON); @@ -98,7 +109,7 @@ static void s3c_pm_save_uarts(void) static void s3c_pm_restore_uart(unsigned int uart, struct pm_uart_save *save) { - void __iomem *regs = S3C_VA_UARTx(uart); + void __iomem *regs = s3c_pm_uart_base(); s3c_pm_arch_update_uart(regs, save); |