.. | .. |
---|
588 | 588 | static inline |
---|
589 | 589 | unsigned int v4l2_m2m_num_src_bufs_ready(struct v4l2_m2m_ctx *m2m_ctx) |
---|
590 | 590 | { |
---|
591 | | - return m2m_ctx->out_q_ctx.num_rdy; |
---|
| 591 | + unsigned int num_buf_rdy; |
---|
| 592 | + unsigned long flags; |
---|
| 593 | + |
---|
| 594 | + spin_lock_irqsave(&m2m_ctx->out_q_ctx.rdy_spinlock, flags); |
---|
| 595 | + num_buf_rdy = m2m_ctx->out_q_ctx.num_rdy; |
---|
| 596 | + spin_unlock_irqrestore(&m2m_ctx->out_q_ctx.rdy_spinlock, flags); |
---|
| 597 | + |
---|
| 598 | + return num_buf_rdy; |
---|
592 | 599 | } |
---|
593 | 600 | |
---|
594 | 601 | /** |
---|
.. | .. |
---|
600 | 607 | static inline |
---|
601 | 608 | unsigned int v4l2_m2m_num_dst_bufs_ready(struct v4l2_m2m_ctx *m2m_ctx) |
---|
602 | 609 | { |
---|
603 | | - return m2m_ctx->cap_q_ctx.num_rdy; |
---|
| 610 | + unsigned int num_buf_rdy; |
---|
| 611 | + unsigned long flags; |
---|
| 612 | + |
---|
| 613 | + spin_lock_irqsave(&m2m_ctx->cap_q_ctx.rdy_spinlock, flags); |
---|
| 614 | + num_buf_rdy = m2m_ctx->cap_q_ctx.num_rdy; |
---|
| 615 | + spin_unlock_irqrestore(&m2m_ctx->cap_q_ctx.rdy_spinlock, flags); |
---|
| 616 | + |
---|
| 617 | + return num_buf_rdy; |
---|
604 | 618 | } |
---|
605 | 619 | |
---|
606 | 620 | /** |
---|