Lines Matching refs:mc_io

159 static int mc_polling_wait_preemptible(struct fsl_mc_io *mc_io,  in mc_polling_wait_preemptible()  argument
171 status = mc_read_response(mc_io->portal_virt_addr, cmd); in mc_polling_wait_preemptible()
183 dev_dbg(mc_io->dev, in mc_polling_wait_preemptible()
185 &mc_io->portal_phys_addr, in mc_polling_wait_preemptible()
205 static int mc_polling_wait_atomic(struct fsl_mc_io *mc_io, in mc_polling_wait_atomic() argument
216 status = mc_read_response(mc_io->portal_virt_addr, cmd); in mc_polling_wait_atomic()
223 dev_dbg(mc_io->dev, in mc_polling_wait_atomic()
225 &mc_io->portal_phys_addr, in mc_polling_wait_atomic()
245 int mc_send_command(struct fsl_mc_io *mc_io, struct fsl_mc_command *cmd) in mc_send_command() argument
251 if (in_irq() && !(mc_io->flags & FSL_MC_IO_ATOMIC_CONTEXT_PORTAL)) in mc_send_command()
254 if (mc_io->flags & FSL_MC_IO_ATOMIC_CONTEXT_PORTAL) in mc_send_command()
255 raw_spin_lock_irqsave(&mc_io->spinlock, irq_flags); in mc_send_command()
257 mutex_lock(&mc_io->mutex); in mc_send_command()
262 mc_write_command(mc_io->portal_virt_addr, cmd); in mc_send_command()
267 if (!(mc_io->flags & FSL_MC_IO_ATOMIC_CONTEXT_PORTAL)) in mc_send_command()
268 error = mc_polling_wait_preemptible(mc_io, cmd, &status); in mc_send_command()
270 error = mc_polling_wait_atomic(mc_io, cmd, &status); in mc_send_command()
276 dev_dbg(mc_io->dev, in mc_send_command()
278 &mc_io->portal_phys_addr, in mc_send_command()
290 if (mc_io->flags & FSL_MC_IO_ATOMIC_CONTEXT_PORTAL) in mc_send_command()
291 raw_spin_unlock_irqrestore(&mc_io->spinlock, irq_flags); in mc_send_command()
293 mutex_unlock(&mc_io->mutex); in mc_send_command()