Skip to content

Commit

Permalink
media: staging: rkisp1: cap: move code that manages the buffers to rk…
Browse files Browse the repository at this point in the history
…isp1_set_next_buf

The function 'rkisp1_set_next_buf' configures the registers
according to 'cap->buf.next'. It is called after updating
'cap->buf.next' and 'cap->buf.curr'. This patch moves the
code that updates those fields to rkisp1_set_next_buf.
This is a preparation for later patch that change a call to
'rkisp1_handle_buffer' with a call to 'rkisp1_set_next_buf'.

Signed-off-by: Dafna Hirschfeld <dafna.hirschfeld@collabora.com>
Acked-by: Helen Koike <helen.koike@collabora.com>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
  • Loading branch information
Dafna Hirschfeld authored and Mauro Carvalho Chehab committed Jul 19, 2020
1 parent 454748e commit 23780e1
Showing 1 changed file with 14 additions and 16 deletions.
30 changes: 14 additions & 16 deletions drivers/staging/media/rkisp1/rkisp1-capture.c
Original file line number Diff line number Diff line change
Expand Up @@ -575,12 +575,16 @@ static void rkisp1_dummy_buf_destroy(struct rkisp1_capture *cap)

static void rkisp1_set_next_buf(struct rkisp1_capture *cap)
{
/*
* Use the dummy space allocated by dma_alloc_coherent to
* throw data if there is no available buffer.
*/
if (cap->buf.next) {
u32 *buff_addr = cap->buf.next->buff_addr;
cap->buf.curr = cap->buf.next;
cap->buf.next = NULL;

if (!list_empty(&cap->buf.queue)) {
u32 *buff_addr;

cap->buf.next = list_first_entry(&cap->buf.queue, struct rkisp1_buffer, queue);
list_del(&cap->buf.next->queue);

buff_addr = cap->buf.next->buff_addr;

rkisp1_write(cap->rkisp1,
buff_addr[RKISP1_PLANE_Y],
Expand All @@ -592,6 +596,10 @@ static void rkisp1_set_next_buf(struct rkisp1_capture *cap)
buff_addr[RKISP1_PLANE_CR],
cap->config->mi.cr_base_ad_init);
} else {
/*
* Use the dummy space allocated by dma_alloc_coherent to
* throw data if there is no available buffer.
*/
rkisp1_write(cap->rkisp1,
cap->buf.dummy.dma_addr,
cap->config->mi.y_base_ad_init);
Expand Down Expand Up @@ -632,16 +640,6 @@ static void rkisp1_handle_buffer(struct rkisp1_capture *cap)
cap->rkisp1->debug.frame_drop[cap->id]++;
}

cap->buf.curr = cap->buf.next;
cap->buf.next = NULL;

if (!list_empty(&cap->buf.queue)) {
cap->buf.next = list_first_entry(&cap->buf.queue,
struct rkisp1_buffer,
queue);
list_del(&cap->buf.next->queue);
}

rkisp1_set_next_buf(cap);
spin_unlock_irqrestore(&cap->buf.lock, flags);
}
Expand Down

0 comments on commit 23780e1

Please sign in to comment.