x86/platform/intel-mid: Run PWRMU command immediately
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Thu, 18 Aug 2016 14:29:40 +0000 (17:29 +0300)
committerIngo Molnar <mingo@kernel.org>
Thu, 18 Aug 2016 17:23:27 +0000 (19:23 +0200)
On some firmwares we have to tell how exactly we want the command to be
proceeded. The default case, based on the official BSP code, is to run it
immediately.

This appears to be a safer approach based on the documentation.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Link: http://lkml.kernel.org/r/1471530580-94247-1-git-send-email-andriy.shevchenko@linux.intel.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
arch/x86/platform/intel-mid/pwr.c

index c901a342377233390ee0cd9b255502e1dfdfe67a..0548741b6894948cc6a47ec1d3640e5633056974 100644 (file)
 /* Bits in PM_CMD */
 #define PM_CMD_CMD(x)          ((x) << 0)
 #define PM_CMD_IOC             (1 << 8)
+#define PM_CMD_CM_NOP          (0 << 9)
+#define PM_CMD_CM_IMMEDIATE    (1 << 9)
+#define PM_CMD_CM_DELAY                (2 << 9)
+#define PM_CMD_CM_TRIGGER      (3 << 9)
 #define PM_CMD_D3cold          (1 << 21)
 
 /* List of commands */
@@ -137,7 +141,7 @@ static int mid_pwr_wait(struct mid_pwr *pwr)
 
 static int mid_pwr_wait_for_cmd(struct mid_pwr *pwr, u8 cmd)
 {
-       writel(PM_CMD_CMD(cmd), pwr->regs + PM_CMD);
+       writel(PM_CMD_CMD(cmd) | PM_CMD_CM_IMMEDIATE, pwr->regs + PM_CMD);
        return mid_pwr_wait(pwr);
 }
 
This page took 0.02576 seconds and 5 git commands to generate.