commit: http://blackfin.uclinux.org/git/?p=linux-kernel;a=commitdiff;h=04676e02de12a1b867bd0a641629e9b8bcf23492 branch: http://blackfin.uclinux.org/git/?p=linux-kernel;a=shortlog;h=refs/heads/trunk
This member can be optimized out. Signed-off-by: Scott Jiang <[email protected]> --- drivers/media/video/blackfin/bfin_display.c | 26 ++++++++++---------------- 1 files changed, 10 insertions(+), 16 deletions(-) diff --git a/drivers/media/video/blackfin/bfin_display.c b/drivers/media/video/blackfin/bfin_display.c index 7fdd44c..8ceed25 100644 --- a/drivers/media/video/blackfin/bfin_display.c +++ b/drivers/media/video/blackfin/bfin_display.c @@ -91,8 +91,6 @@ struct disp_device { int num_enc_formats; /* pointing to current video buffer */ struct disp_buffer *cur_frm; - /* pointing to next video buffer */ - struct disp_buffer *next_frm; /* buffer queue used in videobuf2 */ struct vb2_queue buffer_queue; /* allocator-specific contexts for each plane */ @@ -442,10 +440,10 @@ static int disp_stop_streaming(struct vb2_queue *vq) spin_lock_irqsave(&disp->lock, flags); /* release all active buffers */ while (!list_empty(&disp->dma_queue)) { - disp->next_frm = list_entry(disp->dma_queue.next, + disp->cur_frm = list_entry(disp->dma_queue.next, struct disp_buffer, list); - list_del(&disp->next_frm->list); - vb2_buffer_done(&disp->next_frm->vb, VB2_BUF_STATE_ERROR); + list_del(&disp->cur_frm->list); + vb2_buffer_done(&disp->cur_frm->vb, VB2_BUF_STATE_ERROR); } spin_unlock_irqrestore(&disp->lock, flags); return 0; @@ -524,22 +522,19 @@ static irqreturn_t disp_isr(int irq, void *dev_id) spin_lock(&disp->lock); - if (disp->cur_frm != disp->next_frm) { + if (!list_empty(&disp->dma_queue)) { do_gettimeofday(&timevalue); vb->v4l2_buf.timestamp = timevalue; vb2_buffer_done(vb, VB2_BUF_STATE_DONE); - disp->cur_frm = disp->next_frm; + disp->cur_frm = list_entry(disp->dma_queue.next, + struct disp_buffer, list); + list_del(&disp->cur_frm->list); } clear_dma_irqstat(ppi->info->dma_ch); - if (!list_empty(&disp->dma_queue)) { - disp->next_frm = list_entry(disp->dma_queue.next, - struct disp_buffer, list); - list_del(&disp->next_frm->list); - addr = vb2_dma_contig_plane_dma_addr(&disp->next_frm->vb, 0); - ppi->ops->update_addr(ppi, (unsigned long)addr); - } + addr = vb2_dma_contig_plane_dma_addr(&disp->cur_frm->vb, 0); + ppi->ops->update_addr(ppi, (unsigned long)addr); ppi->ops->start(ppi); spin_unlock(&disp->lock); @@ -572,9 +567,8 @@ static int disp_streamon(struct file *file, void *priv, } /* get the next frame from the dma queue */ - disp->next_frm = list_entry(disp->dma_queue.next, + disp->cur_frm = list_entry(disp->dma_queue.next, struct disp_buffer, list); - disp->cur_frm = disp->next_frm; /* remove buffer from the dma queue */ list_del(&disp->cur_frm->list); addr = vb2_dma_contig_plane_dma_addr(&disp->cur_frm->vb, 0);
_______________________________________________ Linux-kernel-commits mailing list [email protected] https://blackfin.uclinux.org/mailman/listinfo/linux-kernel-commits
