spin_lock_irqsave(&this->slock, flag)
#define framemgr_x_barrier_irqr(this, index, flag) \
spin_unlock_irqrestore(&this->slock, flag)
-#define framemgr_e_barrier_irq(this, index) \
- spin_lock_irq(&this->slock)
-#define framemgr_x_barrier_irq(this, index) \
- spin_unlock_irq(&this->slock)
+
#define framemgr_e_barrier(this, index) \
spin_lock(&this->slock)
#define framemgr_x_barrier(this, index) \
int ret = 0;
struct fimc_is_framemgr *framemgr;
struct fimc_is_frame *frame;
+ unsigned long flags;
BUG_ON(!subdev);
BUG_ON(index >= FRAMEMGR_MAX_REQUEST);
goto p_err;
}
- framemgr_e_barrier_irq(framemgr, index);
+ framemgr_e_barrier_irqs(framemgr, index, flags);
fimc_is_frame_complete_head(framemgr, &frame);
if (frame) {
ret = -EINVAL;
}
- framemgr_x_barrier_irq(framemgr, index);
+ framemgr_x_barrier_irqr(framemgr, index, flags);
p_err:
return ret;
bool blocking;
struct fimc_is_queue *queue;
struct fimc_is_framemgr *framemgr;
+ unsigned long flags;
BUG_ON(!file);
BUG_ON(!vctx);
goto p_err;
}
- framemgr_e_barrier_irq(framemgr, 0);
+ framemgr_e_barrier_irqs(framemgr, 0, flags);
qcount = framemgr->frame_req_cnt +
framemgr->frame_pro_cnt +
framemgr->frame_com_cnt;
- framemgr_x_barrier_irq(framemgr, 0);
+ framemgr_x_barrier_irqr(framemgr, 0, flags);
if (qcount <= 0) {
/* HACK : this log is commented until timeout issue fixed */
struct fimc_is_queue *queue;
struct vb2_queue *vbq;
struct fimc_is_framemgr *framemgr;
+ unsigned long flags;
BUG_ON(!file);
BUG_ON(!vctx);
goto p_err;
}
- framemgr_e_barrier_irq(framemgr, 0);
+ framemgr_e_barrier_irqs(framemgr, 0, flags);
qcount = framemgr->frame_req_cnt +
framemgr->frame_pro_cnt +
framemgr->frame_com_cnt;
- framemgr_x_barrier_irq(framemgr, 0);
+ framemgr_x_barrier_irqr(framemgr, 0, flags);
if (qcount > 0)
mwarn("video%d stream off : queued buffer is not empty(%d)", vctx,