mirror of https://gitee.com/openkylin/linux.git
bus: fsl-mc: use raw spin lock to serialize mc cmds
Replace the spinlock that serializes the MC commands with a raw spinlock. This is needed for the RT kernel because there are MC commands sent in interrupt context. Signed-off-by: Laurentiu Tudor <laurentiu.tudor@nxp.com> Signed-off-by: Ioana Ciornei <ioana.ciornei@nxp.com> Reviewed-by: Laurentiu Tudor <laurentiu.tudor@nxp.com> Link: https://lore.kernel.org/r/20200717154800.17169-3-ioana.ciornei@nxp.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
a3b7a58182
commit
9a872def59
|
@ -82,7 +82,7 @@ int __must_check fsl_create_mc_io(struct device *dev,
|
|||
mc_io->portal_phys_addr = mc_portal_phys_addr;
|
||||
mc_io->portal_size = mc_portal_size;
|
||||
if (flags & FSL_MC_IO_ATOMIC_CONTEXT_PORTAL)
|
||||
spin_lock_init(&mc_io->spinlock);
|
||||
raw_spin_lock_init(&mc_io->spinlock);
|
||||
else
|
||||
mutex_init(&mc_io->mutex);
|
||||
|
||||
|
|
|
@ -251,7 +251,7 @@ int mc_send_command(struct fsl_mc_io *mc_io, struct fsl_mc_command *cmd)
|
|||
return -EINVAL;
|
||||
|
||||
if (mc_io->flags & FSL_MC_IO_ATOMIC_CONTEXT_PORTAL)
|
||||
spin_lock_irqsave(&mc_io->spinlock, irq_flags);
|
||||
raw_spin_lock_irqsave(&mc_io->spinlock, irq_flags);
|
||||
else
|
||||
mutex_lock(&mc_io->mutex);
|
||||
|
||||
|
@ -287,7 +287,7 @@ int mc_send_command(struct fsl_mc_io *mc_io, struct fsl_mc_command *cmd)
|
|||
error = 0;
|
||||
common_exit:
|
||||
if (mc_io->flags & FSL_MC_IO_ATOMIC_CONTEXT_PORTAL)
|
||||
spin_unlock_irqrestore(&mc_io->spinlock, irq_flags);
|
||||
raw_spin_unlock_irqrestore(&mc_io->spinlock, irq_flags);
|
||||
else
|
||||
mutex_unlock(&mc_io->mutex);
|
||||
|
||||
|
|
|
@ -339,7 +339,7 @@ struct fsl_mc_io {
|
|||
* This field is only meaningful if the
|
||||
* FSL_MC_IO_ATOMIC_CONTEXT_PORTAL flag is set
|
||||
*/
|
||||
spinlock_t spinlock; /* serializes mc_send_command() */
|
||||
raw_spinlock_t spinlock; /* serializes mc_send_command() */
|
||||
};
|
||||
};
|
||||
|
||||
|
|
Loading…
Reference in New Issue