diff options
| author | Rafael J. Wysocki <rafael.j.wysocki@intel.com> | 2017-10-11 15:39:38 +0200 |
|---|---|---|
| committer | Rafael J. Wysocki <rafael.j.wysocki@intel.com> | 2017-10-11 15:39:38 +0200 |
| commit | 8af4b3d7044d83c5426da6e45a9c7948bc7fa231 (patch) | |
| tree | 76e15a6cea6b526fe30c679f6e9bf60b08acf983 /arch/powerpc/sysdev/fsl_rmu.c | |
| parent | a5950f2617f71a3dce16520c4907bcdb31e654ba (diff) | |
| parent | c2ebf788f927dcca72beead19fab5f5aba79a098 (diff) | |
Merge branch 'acpi-pm' into pm-sleep
Diffstat (limited to 'arch/powerpc/sysdev/fsl_rmu.c')
| -rw-r--r-- | arch/powerpc/sysdev/fsl_rmu.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/arch/powerpc/sysdev/fsl_rmu.c b/arch/powerpc/sysdev/fsl_rmu.c index ab7a74c75be8..88b35a3dcdc5 100644 --- a/arch/powerpc/sysdev/fsl_rmu.c +++ b/arch/powerpc/sysdev/fsl_rmu.c @@ -104,6 +104,8 @@ #define DOORBELL_MESSAGE_SIZE 0x08 +static DEFINE_SPINLOCK(fsl_rio_doorbell_lock); + struct rio_msg_regs { u32 omr; u32 osr; @@ -626,9 +628,13 @@ err_out: int fsl_rio_doorbell_send(struct rio_mport *mport, int index, u16 destid, u16 data) { + unsigned long flags; + pr_debug("fsl_doorbell_send: index %d destid %4.4x data %4.4x\n", index, destid, data); + spin_lock_irqsave(&fsl_rio_doorbell_lock, flags); + /* In the serial version silicons, such as MPC8548, MPC8641, * below operations is must be. */ @@ -638,6 +644,8 @@ int fsl_rio_doorbell_send(struct rio_mport *mport, out_be32(&dbell->dbell_regs->oddatr, (index << 20) | data); out_be32(&dbell->dbell_regs->odmr, 0x00000001); + spin_unlock_irqrestore(&fsl_rio_doorbell_lock, flags); + return 0; } |
