| .. | .. |
|---|
| 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 | /** |
|---|