|
@@ -128,16 +128,23 @@ static int exynos_irq_set_wake(struct irq_data *data, unsigned int state)
|
|
|
return -ENOENT;
|
|
|
}
|
|
|
|
|
|
-#define EXYNOS_BOOT_VECTOR_ADDR (samsung_rev() == EXYNOS4210_REV_1_1 ? \
|
|
|
- pmu_base_addr + S5P_INFORM7 : \
|
|
|
- (samsung_rev() == EXYNOS4210_REV_1_0 ? \
|
|
|
- (sysram_base_addr + 0x24) : \
|
|
|
- pmu_base_addr + S5P_INFORM0))
|
|
|
-#define EXYNOS_BOOT_VECTOR_FLAG (samsung_rev() == EXYNOS4210_REV_1_1 ? \
|
|
|
- pmu_base_addr + S5P_INFORM6 : \
|
|
|
- (samsung_rev() == EXYNOS4210_REV_1_0 ? \
|
|
|
- (sysram_base_addr + 0x20) : \
|
|
|
- pmu_base_addr + S5P_INFORM1))
|
|
|
+static inline void __iomem *exynos_boot_vector_addr(void)
|
|
|
+{
|
|
|
+ if (samsung_rev() == EXYNOS4210_REV_1_1)
|
|
|
+ return pmu_base_addr + S5P_INFORM7;
|
|
|
+ else if (samsung_rev() == EXYNOS4210_REV_1_0)
|
|
|
+ return sysram_base_addr + 0x24;
|
|
|
+ return pmu_base_addr + S5P_INFORM0;
|
|
|
+}
|
|
|
+
|
|
|
+static inline void __iomem *exynos_boot_vector_flag(void)
|
|
|
+{
|
|
|
+ if (samsung_rev() == EXYNOS4210_REV_1_1)
|
|
|
+ return pmu_base_addr + S5P_INFORM6;
|
|
|
+ else if (samsung_rev() == EXYNOS4210_REV_1_0)
|
|
|
+ return sysram_base_addr + 0x20;
|
|
|
+ return pmu_base_addr + S5P_INFORM1;
|
|
|
+}
|
|
|
|
|
|
#define S5P_CHECK_AFTR 0xFCBA0D10
|
|
|
#define S5P_CHECK_SLEEP 0x00000BAD
|
|
@@ -222,8 +229,9 @@ static void exynos_set_wakeupmask(long mask)
|
|
|
|
|
|
static void exynos_cpu_set_boot_vector(long flags)
|
|
|
{
|
|
|
- __raw_writel(virt_to_phys(exynos_cpu_resume), EXYNOS_BOOT_VECTOR_ADDR);
|
|
|
- __raw_writel(flags, EXYNOS_BOOT_VECTOR_FLAG);
|
|
|
+ __raw_writel(virt_to_phys(exynos_cpu_resume),
|
|
|
+ exynos_boot_vector_addr());
|
|
|
+ __raw_writel(flags, exynos_boot_vector_flag());
|
|
|
}
|
|
|
|
|
|
static int exynos_aftr_finisher(unsigned long flags)
|