Merge branch 'next/fixes-non-critical' into next/soc
authorArnd Bergmann <arnd@arndb.de>
Sat, 26 Jul 2014 15:54:21 +0000 (17:54 +0200)
committerArnd Bergmann <arnd@arndb.de>
Sat, 26 Jul 2014 15:54:21 +0000 (17:54 +0200)
This resolves a nontrivial conflict against a bug fix
in another branch.

Conflicts:
arch/arm/mach-exynos/pm.c

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
1  2 
MAINTAINERS
arch/arm/boot/dts/omap5.dtsi
arch/arm/mach-exynos/platsmp.c
arch/arm/mach-exynos/pm.c

diff --combined MAINTAINERS
index 16458d98594f1a3a79aa0f624bb0bbc5130d0a00,a36b11c7717327ab1f1288d2cd60e5266e93f7f9..fb784e03db0d996bc86ec9b528c08f51c799c03a
@@@ -156,6 -156,7 +156,6 @@@ F: drivers/net/hamradio/6pack.
  
  8169 10/100/1000 GIGABIT ETHERNET DRIVER
  M:    Realtek linux nic maintainers <nic_swsd@realtek.com>
 -M:    Francois Romieu <romieu@fr.zoreil.com>
  L:    netdev@vger.kernel.org
  S:    Maintained
  F:    drivers/net/ethernet/realtek/r8169.c
@@@ -965,14 -966,6 +965,14 @@@ F:       arch/arm/mach-pxa/hx4700.
  F:    arch/arm/mach-pxa/include/mach/hx4700.h
  F:    sound/soc/pxa/hx4700.c
  
 +ARM/HISILICON SOC SUPPORT
 +M:    Wei Xu <xuwei5@hisilicon.com>
 +L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
 +W:    http://www.hisilicon.com
 +S:    Supported
 +T:    git git://github.com/hisilicon/linux-hisi.git
 +F:    arch/arm/mach-hisi/
 +
  ARM/HP JORNADA 7XX MACHINE SUPPORT
  M:    Kristoffer Ericson <kristoffer.ericson@gmail.com>
  W:    www.jlime.com
@@@ -1364,6 -1357,7 +1364,7 @@@ F:      drivers/pinctrl/pinctrl-st.
  F:    drivers/media/rc/st_rc.c
  F:    drivers/i2c/busses/i2c-st.c
  F:    drivers/tty/serial/st-asc.c
+ F:    drivers/mmc/host/sdhci-st.c
  
  ARM/TECHNOLOGIC SYSTEMS TS7250 MACHINE SUPPORT
  M:    Lennert Buytenhek <kernel@wantstofly.org>
@@@ -4518,7 -4512,8 +4519,7 @@@ S:      Supporte
  F:    drivers/idle/i7300_idle.c
  
  IEEE 802.15.4 SUBSYSTEM
 -M:    Alexander Smirnov <alex.bluesman.smirnov@gmail.com>
 -M:    Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
 +M:    Alexander Aring <alex.aring@gmail.com>
  L:    linux-zigbee-devel@lists.sourceforge.net (moderated for non-subscribers)
  W:    http://apps.sourceforge.net/trac/linux-zigbee
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/lowpan/lowpan.git
index cbf6a173088a8bc026ae41b57a3762cab21dbbc2,8eee6fbef7ad048fa487627803adb45891fcd3de..fc8df1739f393657e9040e67e486e08a47e04648
                        reg = <0x4a0f4000 0x200>;
                        interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
                        ti,hwmods = "mailbox";
 +                      ti,mbox-num-users = <3>;
 +                      ti,mbox-num-fifos = <8>;
                };
  
                timer1: timer@4ae18000 {
                                dma-names = "audio_tx";
                        };
                };
+               abb_mpu: regulator-abb-mpu {
+                       compatible = "ti,abb-v2";
+                       regulator-name = "abb_mpu";
+                       #address-cells = <0>;
+                       #size-cells = <0>;
+                       clocks = <&sys_clkin>;
+                       ti,settling-time = <50>;
+                       ti,clock-cycles = <16>;
+                       reg = <0x4ae07cdc 0x8>, <0x4ae06014 0x4>,
+                             <0x4a0021c4 0x8>, <0x4ae0c318 0x4>;
+                       reg-names = "base-address", "int-address",
+                                   "efuse-address", "ldo-address";
+                       ti,tranxdone-status-mask = <0x80>;
+                       /* LDOVBBMPU_MUX_CTRL */
+                       ti,ldovbb-override-mask = <0x400>;
+                       /* LDOVBBMPU_VSET_OUT */
+                       ti,ldovbb-vset-mask = <0x1F>;
+                       /*
+                        * NOTE: only FBB mode used but actual vset will
+                        * determine final biasing
+                        */
+                       ti,abb_info = <
+                       /*uV            ABB     efuse   rbb_m fbb_m     vset_m*/
+                       1060000         0       0x0     0 0x02000000 0x01F00000
+                       1250000         0       0x4     0 0x02000000 0x01F00000
+                       >;
+               };
+               abb_mm: regulator-abb-mm {
+                       compatible = "ti,abb-v2";
+                       regulator-name = "abb_mm";
+                       #address-cells = <0>;
+                       #size-cells = <0>;
+                       clocks = <&sys_clkin>;
+                       ti,settling-time = <50>;
+                       ti,clock-cycles = <16>;
+                       reg = <0x4ae07ce4 0x8>, <0x4ae06010 0x4>,
+                             <0x4a0021a4 0x8>, <0x4ae0c314 0x4>;
+                       reg-names = "base-address", "int-address",
+                                   "efuse-address", "ldo-address";
+                       ti,tranxdone-status-mask = <0x80000000>;
+                       /* LDOVBBMM_MUX_CTRL */
+                       ti,ldovbb-override-mask = <0x400>;
+                       /* LDOVBBMM_VSET_OUT */
+                       ti,ldovbb-vset-mask = <0x1F>;
+                       /*
+                        * NOTE: only FBB mode used but actual vset will
+                        * determine final biasing
+                        */
+                       ti,abb_info = <
+                       /*uV            ABB     efuse   rbb_m fbb_m     vset_m*/
+                       1025000         0       0x0     0 0x02000000 0x01F00000
+                       1120000         0       0x4     0 0x02000000 0x01F00000
+                       >;
+               };
        };
  };
  
index 7c829989859c2418a5f484c6324b3aba85585831,29500da24dd54971d0c012010cf1e724e235efc9..2207598ce0495d7556330c8a5593f7c1b1ce4d26
@@@ -1,4 -1,5 +1,4 @@@
 -/* linux/arch/arm/mach-exynos4/platsmp.c
 - *
 + /*
   * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd.
   *            http://www.samsung.com
   *
  #include <asm/smp_scu.h>
  #include <asm/firmware.h>
  
 +#include <mach/map.h>
 +
  #include "common.h"
  #include "regs-pmu.h"
  
  extern void exynos4_secondary_startup(void);
  
 -      __raw_writel(0, EXYNOS_ARM_CORE_CONFIGURATION(cpu));
+ /**
+  * exynos_core_power_down : power down the specified cpu
+  * @cpu : the cpu to power down
+  *
+  * Power down the specified cpu. The sequence must be finished by a
+  * call to cpu_do_idle()
+  *
+  */
+ void exynos_cpu_power_down(int cpu)
+ {
 -      __raw_writel(S5P_CORE_LOCAL_PWR_EN,
 -                   EXYNOS_ARM_CORE_CONFIGURATION(cpu));
++      pmu_raw_writel(0, EXYNOS_ARM_CORE_CONFIGURATION(cpu));
+ }
+ /**
+  * exynos_cpu_power_up : power up the specified cpu
+  * @cpu : the cpu to power up
+  *
+  * Power up the specified cpu
+  */
+ void exynos_cpu_power_up(int cpu)
+ {
 -      return (__raw_readl(EXYNOS_ARM_CORE_STATUS(cpu)) &
++      pmu_raw_writel(S5P_CORE_LOCAL_PWR_EN,
++                      EXYNOS_ARM_CORE_CONFIGURATION(cpu));
+ }
+ /**
+  * exynos_cpu_power_state : returns the power state of the cpu
+  * @cpu : the cpu to retrieve the power state from
+  *
+  */
+ int exynos_cpu_power_state(int cpu)
+ {
 -      __raw_writel(0, EXYNOS_COMMON_CONFIGURATION(cluster));
++      return (pmu_raw_readl(EXYNOS_ARM_CORE_STATUS(cpu)) &
+                       S5P_CORE_LOCAL_PWR_EN);
+ }
+ /**
+  * exynos_cluster_power_down : power down the specified cluster
+  * @cluster : the cluster to power down
+  */
+ void exynos_cluster_power_down(int cluster)
+ {
 -      __raw_writel(S5P_CORE_LOCAL_PWR_EN,
 -                   EXYNOS_COMMON_CONFIGURATION(cluster));
++      pmu_raw_writel(0, EXYNOS_COMMON_CONFIGURATION(cluster));
+ }
+ /**
+  * exynos_cluster_power_up : power up the specified cluster
+  * @cluster : the cluster to power up
+  */
+ void exynos_cluster_power_up(int cluster)
+ {
 -      return (__raw_readl(EXYNOS_COMMON_STATUS(cluster)) &
 -                      S5P_CORE_LOCAL_PWR_EN);
++      pmu_raw_writel(S5P_CORE_LOCAL_PWR_EN,
++                      EXYNOS_COMMON_CONFIGURATION(cluster));
+ }
+ /**
+  * exynos_cluster_power_state : returns the power state of the cluster
+  * @cluster : the cluster to retrieve the power state from
+  *
+  */
+ int exynos_cluster_power_state(int cluster)
+ {
++      return (pmu_raw_readl(EXYNOS_COMMON_STATUS(cluster)) &
++              S5P_CORE_LOCAL_PWR_EN);
+ }
  static inline void __iomem *cpu_boot_reg_base(void)
  {
        if (soc_is_exynos4210() && samsung_rev() == EXYNOS4210_REV_1_1)
 -              return S5P_INFORM5;
 +              return pmu_base_addr + S5P_INFORM5;
        return sysram_base_addr;
  }
  
@@@ -91,8 -156,7 +157,8 @@@ static void exynos_secondary_init(unsig
  static int exynos_boot_secondary(unsigned int cpu, struct task_struct *idle)
  {
        unsigned long timeout;
 -      unsigned long phys_cpu = cpu_logical_map(cpu);
 +      u32 mpidr = cpu_logical_map(cpu);
 +      u32 core_id = MPIDR_AFFINITY_LEVEL(mpidr, 0);
        int ret = -ENOSYS;
  
        /*
         * the holding pen - release it, then wait for it to flag
         * that it has been released by resetting pen_release.
         *
 -       * Note that "pen_release" is the hardware CPU ID, whereas
 +       * Note that "pen_release" is the hardware CPU core ID, whereas
         * "cpu" is Linux's internal ID.
         */
 -      write_pen_release(phys_cpu);
 +      write_pen_release(core_id);
  
 -      if (!exynos_cpu_power_state(cpu)) {
 -              exynos_cpu_power_up(cpu);
 +      if (!exynos_cpu_power_state(core_id)) {
 +              exynos_cpu_power_up(core_id);
                timeout = 10;
  
                /* wait max 10 ms until cpu1 is on */
 -              while (exynos_cpu_power_state(cpu) != S5P_CORE_LOCAL_PWR_EN) {
 +              while (exynos_cpu_power_state(core_id)
 +                     != S5P_CORE_LOCAL_PWR_EN) {
                        if (timeout-- == 0)
                                break;
  
                 * Try to set boot address using firmware first
                 * and fall back to boot register if it fails.
                 */
 -              ret = call_firmware_op(set_cpu_boot_addr, phys_cpu, boot_addr);
 +              ret = call_firmware_op(set_cpu_boot_addr, core_id, boot_addr);
                if (ret && ret != -ENOSYS)
                        goto fail;
                if (ret == -ENOSYS) {
 -                      void __iomem *boot_reg = cpu_boot_reg(phys_cpu);
 +                      void __iomem *boot_reg = cpu_boot_reg(core_id);
  
                        if (IS_ERR(boot_reg)) {
                                ret = PTR_ERR(boot_reg);
                                goto fail;
                        }
 -                      __raw_writel(boot_addr, cpu_boot_reg(phys_cpu));
 +                      __raw_writel(boot_addr, cpu_boot_reg(core_id));
                }
  
 -              call_firmware_op(cpu_boot, phys_cpu);
 +              call_firmware_op(cpu_boot, core_id);
  
                arch_send_wakeup_ipi_mask(cpumask_of(cpu));
  
@@@ -230,24 -293,22 +296,24 @@@ static void __init exynos_smp_prepare_c
         * boot register if it fails.
         */
        for (i = 1; i < max_cpus; ++i) {
 -              unsigned long phys_cpu;
                unsigned long boot_addr;
 +              u32 mpidr;
 +              u32 core_id;
                int ret;
  
 -              phys_cpu = cpu_logical_map(i);
 +              mpidr = cpu_logical_map(i);
 +              core_id = MPIDR_AFFINITY_LEVEL(mpidr, 0);
                boot_addr = virt_to_phys(exynos4_secondary_startup);
  
 -              ret = call_firmware_op(set_cpu_boot_addr, phys_cpu, boot_addr);
 +              ret = call_firmware_op(set_cpu_boot_addr, core_id, boot_addr);
                if (ret && ret != -ENOSYS)
                        break;
                if (ret == -ENOSYS) {
 -                      void __iomem *boot_reg = cpu_boot_reg(phys_cpu);
 +                      void __iomem *boot_reg = cpu_boot_reg(core_id);
  
                        if (IS_ERR(boot_reg))
                                break;
 -                      __raw_writel(boot_addr, cpu_boot_reg(phys_cpu));
 +                      __raw_writel(boot_addr, cpu_boot_reg(core_id));
                }
        }
  }
index c4c6d98ada52e03ce42d4b67f616c725d98a8d8e,20a8e0efd5db3f3c3e328032755a347ec34cf50d..3e046a986e602f33def35ef5c9038ef6046ef531
  #include <asm/suspend.h>
  
  #include <plat/pm-common.h>
 -#include <plat/pll.h>
  #include <plat/regs-srom.h>
  
  #include <mach/map.h>
  
  #include "common.h"
  #include "regs-pmu.h"
 +#include "regs-sys.h"
  
  /**
   * struct exynos_wkup_irq - Exynos GIC to PMU IRQ mapping
@@@ -100,82 -100,12 +100,16 @@@ static int exynos_irq_set_wake(struct i
        return -ENOENT;
  }
  
- /**
-  * exynos_core_power_down : power down the specified cpu
-  * @cpu : the cpu to power down
-  *
-  * Power down the specified cpu. The sequence must be finished by a
-  * call to cpu_do_idle()
-  *
-  */
- void exynos_cpu_power_down(int cpu)
- {
-       pmu_raw_writel(0, EXYNOS_ARM_CORE_CONFIGURATION(cpu));
- }
- /**
-  * exynos_cpu_power_up : power up the specified cpu
-  * @cpu : the cpu to power up
-  *
-  * Power up the specified cpu
-  */
- void exynos_cpu_power_up(int cpu)
- {
-       pmu_raw_writel(S5P_CORE_LOCAL_PWR_EN,
-                       EXYNOS_ARM_CORE_CONFIGURATION(cpu));
- }
- /**
-  * exynos_cpu_power_state : returns the power state of the cpu
-  * @cpu : the cpu to retrieve the power state from
-  *
-  */
- int exynos_cpu_power_state(int cpu)
- {
-       return (pmu_raw_readl(EXYNOS_ARM_CORE_STATUS(cpu)) &
-                       S5P_CORE_LOCAL_PWR_EN);
- }
- /**
-  * exynos_cluster_power_down : power down the specified cluster
-  * @cluster : the cluster to power down
-  */
- void exynos_cluster_power_down(int cluster)
- {
-       pmu_raw_writel(0, EXYNOS_COMMON_CONFIGURATION(cluster));
- }
- /**
-  * exynos_cluster_power_up : power up the specified cluster
-  * @cluster : the cluster to power up
-  */
- void exynos_cluster_power_up(int cluster)
- {
-       pmu_raw_writel(S5P_CORE_LOCAL_PWR_EN,
-                       EXYNOS_COMMON_CONFIGURATION(cluster));
- }
- /**
-  * exynos_cluster_power_state : returns the power state of the cluster
-  * @cluster : the cluster to retrieve the power state from
-  *
-  */
- int exynos_cluster_power_state(int cluster)
- {
-       return (pmu_raw_readl(EXYNOS_COMMON_STATUS(cluster)) &
-                       S5P_CORE_LOCAL_PWR_EN);
- }
  #define EXYNOS_BOOT_VECTOR_ADDR       (samsung_rev() == EXYNOS4210_REV_1_1 ? \
 -                      S5P_INFORM7 : (samsung_rev() == EXYNOS4210_REV_1_0 ? \
 -                      (sysram_base_addr + 0x24) : S5P_INFORM0))
 +                      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 ? \
 -                      S5P_INFORM6 : (samsung_rev() == EXYNOS4210_REV_1_0 ? \
 -                      (sysram_base_addr + 0x20) : S5P_INFORM1))
 +                      pmu_base_addr + S5P_INFORM6 : \
 +                      (samsung_rev() == EXYNOS4210_REV_1_0 ? \
 +                      (sysram_base_addr + 0x20) : \
 +                      pmu_base_addr + S5P_INFORM1))
  
  #define S5P_CHECK_AFTR  0xFCBA0D10
  #define S5P_CHECK_SLEEP 0x00000BAD
  /* Ext-GIC nIRQ/nFIQ is the only wakeup source in AFTR */
  static void exynos_set_wakeupmask(long mask)
  {
 -      __raw_writel(mask, S5P_WAKEUP_MASK);
 +      pmu_raw_writel(mask, S5P_WAKEUP_MASK);
  }
  
  static void exynos_cpu_set_boot_vector(long flags)
@@@ -260,27 -190,27 +194,27 @@@ static void exynos_pm_prepare(void
        unsigned int tmp;
  
        /* Set wake-up mask registers */
 -      __raw_writel(exynos_get_eint_wake_mask(), S5P_EINT_WAKEUP_MASK);
 -      __raw_writel(exynos_irqwake_intmask & ~(1 << 31), S5P_WAKEUP_MASK);
 +      pmu_raw_writel(exynos_get_eint_wake_mask(), S5P_EINT_WAKEUP_MASK);
 +      pmu_raw_writel(exynos_irqwake_intmask & ~(1 << 31), S5P_WAKEUP_MASK);
  
        s3c_pm_do_save(exynos_core_save, ARRAY_SIZE(exynos_core_save));
  
        if (soc_is_exynos5250()) {
                s3c_pm_do_save(exynos5_sys_save, ARRAY_SIZE(exynos5_sys_save));
                /* Disable USE_RETENTION of JPEG_MEM_OPTION */
 -              tmp = __raw_readl(EXYNOS5_JPEG_MEM_OPTION);
 +              tmp = pmu_raw_readl(EXYNOS5_JPEG_MEM_OPTION);
                tmp &= ~EXYNOS5_OPTION_USE_RETENTION;
 -              __raw_writel(tmp, EXYNOS5_JPEG_MEM_OPTION);
 +              pmu_raw_writel(tmp, EXYNOS5_JPEG_MEM_OPTION);
        }
  
        /* Set value of power down register for sleep mode */
  
        exynos_sys_powerdown_conf(SYS_SLEEP);
 -      __raw_writel(S5P_CHECK_SLEEP, S5P_INFORM1);
 +      pmu_raw_writel(S5P_CHECK_SLEEP, S5P_INFORM1);
  
        /* ensure at least INFORM0 has the resume address */
  
 -      __raw_writel(virt_to_phys(exynos_cpu_resume), S5P_INFORM0);
 +      pmu_raw_writel(virt_to_phys(exynos_cpu_resume), S5P_INFORM0);
  }
  
  static void exynos_pm_central_suspend(void)
        unsigned long tmp;
  
        /* Setting Central Sequence Register for power down mode */
 -      tmp = __raw_readl(S5P_CENTRAL_SEQ_CONFIGURATION);
 +      tmp = pmu_raw_readl(S5P_CENTRAL_SEQ_CONFIGURATION);
        tmp &= ~S5P_CENTRAL_LOWPWR_CFG;
 -      __raw_writel(tmp, S5P_CENTRAL_SEQ_CONFIGURATION);
 +      pmu_raw_writel(tmp, S5P_CENTRAL_SEQ_CONFIGURATION);
  }
  
  static int exynos_pm_suspend(void)
        /* Setting SEQ_OPTION register */
  
        tmp = (S5P_USE_STANDBY_WFI0 | S5P_USE_STANDBY_WFE0);
 -      __raw_writel(tmp, S5P_CENTRAL_SEQ_OPTION);
 +      pmu_raw_writel(tmp, S5P_CENTRAL_SEQ_OPTION);
  
        if (read_cpuid_part_number() == ARM_CPU_PART_CORTEX_A9)
                exynos_cpu_save_register();
@@@ -320,12 -250,12 +254,12 @@@ static int exynos_pm_central_resume(voi
         * S5P_CENTRAL_LOWPWR_CFG bit will not be set automatically
         * in this situation.
         */
 -      tmp = __raw_readl(S5P_CENTRAL_SEQ_CONFIGURATION);
 +      tmp = pmu_raw_readl(S5P_CENTRAL_SEQ_CONFIGURATION);
        if (!(tmp & S5P_CENTRAL_LOWPWR_CFG)) {
                tmp |= S5P_CENTRAL_LOWPWR_CFG;
 -              __raw_writel(tmp, S5P_CENTRAL_SEQ_CONFIGURATION);
 +              pmu_raw_writel(tmp, S5P_CENTRAL_SEQ_CONFIGURATION);
                /* clear the wakeup state register */
 -              __raw_writel(0x0, S5P_WAKEUP_STAT);
 +              pmu_raw_writel(0x0, S5P_WAKEUP_STAT);
                /* No need to perform below restore code */
                return -1;
        }
@@@ -343,13 -273,13 +277,13 @@@ static void exynos_pm_resume(void
  
        /* For release retention */
  
 -      __raw_writel((1 << 28), S5P_PAD_RET_MAUDIO_OPTION);
 -      __raw_writel((1 << 28), S5P_PAD_RET_GPIO_OPTION);
 -      __raw_writel((1 << 28), S5P_PAD_RET_UART_OPTION);
 -      __raw_writel((1 << 28), S5P_PAD_RET_MMCA_OPTION);
 -      __raw_writel((1 << 28), S5P_PAD_RET_MMCB_OPTION);
 -      __raw_writel((1 << 28), S5P_PAD_RET_EBIA_OPTION);
 -      __raw_writel((1 << 28), S5P_PAD_RET_EBIB_OPTION);
 +      pmu_raw_writel((1 << 28), S5P_PAD_RET_MAUDIO_OPTION);
 +      pmu_raw_writel((1 << 28), S5P_PAD_RET_GPIO_OPTION);
 +      pmu_raw_writel((1 << 28), S5P_PAD_RET_UART_OPTION);
 +      pmu_raw_writel((1 << 28), S5P_PAD_RET_MMCA_OPTION);
 +      pmu_raw_writel((1 << 28), S5P_PAD_RET_MMCB_OPTION);
 +      pmu_raw_writel((1 << 28), S5P_PAD_RET_EBIA_OPTION);
 +      pmu_raw_writel((1 << 28), S5P_PAD_RET_EBIB_OPTION);
  
        if (soc_is_exynos5250())
                s3c_pm_do_restore(exynos5_sys_save,
  early_wakeup:
  
        /* Clear SLEEP mode set in INFORM1 */
 -      __raw_writel(0x0, S5P_INFORM1);
 +      pmu_raw_writel(0x0, S5P_INFORM1);
  
        return;
  }
@@@ -407,7 -337,7 +341,7 @@@ static int exynos_suspend_enter(suspend
        s3c_pm_restore_uarts();
  
        S3C_PMDBG("%s: wakeup stat: %08x\n", __func__,
 -                      __raw_readl(S5P_WAKEUP_STAT));
 +                      pmu_raw_readl(S5P_WAKEUP_STAT));
  
        s3c_pm_check_restore();
  
@@@ -478,9 -408,9 +412,9 @@@ void __init exynos_pm_init(void
        gic_arch_extn.irq_set_wake = exynos_irq_set_wake;
  
        /* All wakeup disable */
 -      tmp = __raw_readl(S5P_WAKEUP_MASK);
 +      tmp = pmu_raw_readl(S5P_WAKEUP_MASK);
        tmp |= ((0xFF << 8) | (0x1F << 1));
 -      __raw_writel(tmp, S5P_WAKEUP_MASK);
 +      pmu_raw_writel(tmp, S5P_WAKEUP_MASK);
  
        register_syscore_ops(&exynos_pm_syscore_ops);
        suspend_set_ops(&exynos_suspend_ops);