diff options
author | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2017-10-09 03:02:35 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2017-10-09 03:02:35 -0400 |
commit | 1236d6bb6e19fc72ffc6bbcdeb1bfefe450e54ee (patch) | |
tree | 47da3feee8e263e8c9352c85cf518e624be3c211 /arch/powerpc/sysdev/fsl_rmu.c | |
parent | 750b1a6894ecc9b178c6e3d0a1170122971b2036 (diff) | |
parent | 8a5776a5f49812d29fe4b2d0a2d71675c3facf3f (diff) |
Merge 4.14-rc4 into staging-next
We want the staging/iio fixes in here as well to handle merge issues.
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
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 @@ | |||
104 | 104 | ||
105 | #define DOORBELL_MESSAGE_SIZE 0x08 | 105 | #define DOORBELL_MESSAGE_SIZE 0x08 |
106 | 106 | ||
107 | static DEFINE_SPINLOCK(fsl_rio_doorbell_lock); | ||
108 | |||
107 | struct rio_msg_regs { | 109 | struct rio_msg_regs { |
108 | u32 omr; | 110 | u32 omr; |
109 | u32 osr; | 111 | u32 osr; |
@@ -626,9 +628,13 @@ err_out: | |||
626 | int fsl_rio_doorbell_send(struct rio_mport *mport, | 628 | int fsl_rio_doorbell_send(struct rio_mport *mport, |
627 | int index, u16 destid, u16 data) | 629 | int index, u16 destid, u16 data) |
628 | { | 630 | { |
631 | unsigned long flags; | ||
632 | |||
629 | pr_debug("fsl_doorbell_send: index %d destid %4.4x data %4.4x\n", | 633 | pr_debug("fsl_doorbell_send: index %d destid %4.4x data %4.4x\n", |
630 | index, destid, data); | 634 | index, destid, data); |
631 | 635 | ||
636 | spin_lock_irqsave(&fsl_rio_doorbell_lock, flags); | ||
637 | |||
632 | /* In the serial version silicons, such as MPC8548, MPC8641, | 638 | /* In the serial version silicons, such as MPC8548, MPC8641, |
633 | * below operations is must be. | 639 | * below operations is must be. |
634 | */ | 640 | */ |
@@ -638,6 +644,8 @@ int fsl_rio_doorbell_send(struct rio_mport *mport, | |||
638 | out_be32(&dbell->dbell_regs->oddatr, (index << 20) | data); | 644 | out_be32(&dbell->dbell_regs->oddatr, (index << 20) | data); |
639 | out_be32(&dbell->dbell_regs->odmr, 0x00000001); | 645 | out_be32(&dbell->dbell_regs->odmr, 0x00000001); |
640 | 646 | ||
647 | spin_unlock_irqrestore(&fsl_rio_doorbell_lock, flags); | ||
648 | |||
641 | return 0; | 649 | return 0; |
642 | } | 650 | } |
643 | 651 | ||