Commit 9d971b81 authored by Baokun Li's avatar Baokun Li Committed by Mauro Carvalho Chehab

media: atomisp: use list_splice_init in atomisp_compat_css20.c

Using list_splice_init() instead of entire while-loops
in atomisp_compat_css20.c.

Link: https://lore.kernel.org/linux-media/20210617140926.887680-1-libaokun1@huawei.comReported-by: default avatarHulk Robot <hulkci@huawei.com>
Signed-off-by: default avatarBaokun Li <libaokun1@huawei.com>
Reviewed-by: default avatarAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab+huawei@kernel.org>
parent 264f5908
......@@ -2102,9 +2102,6 @@ void atomisp_css_stop(struct atomisp_sub_device *asd,
enum ia_css_pipe_id pipe_id, bool in_reset)
{
struct atomisp_device *isp = asd->isp;
struct atomisp_s3a_buf *s3a_buf;
struct atomisp_dis_buf *dis_buf;
struct atomisp_metadata_buf *md_buf;
unsigned long irqflags;
unsigned int i;
......@@ -2144,42 +2141,17 @@ void atomisp_css_stop(struct atomisp_sub_device *asd,
}
/* move stats buffers to free queue list */
while (!list_empty(&asd->s3a_stats_in_css)) {
s3a_buf = list_entry(asd->s3a_stats_in_css.next,
struct atomisp_s3a_buf, list);
list_del(&s3a_buf->list);
list_add_tail(&s3a_buf->list, &asd->s3a_stats);
}
while (!list_empty(&asd->s3a_stats_ready)) {
s3a_buf = list_entry(asd->s3a_stats_ready.next,
struct atomisp_s3a_buf, list);
list_del(&s3a_buf->list);
list_add_tail(&s3a_buf->list, &asd->s3a_stats);
}
list_splice_init(&asd->s3a_stats_in_css, &asd->s3a_stats);
list_splice_init(&asd->s3a_stats_ready, &asd->s3a_stats);
spin_lock_irqsave(&asd->dis_stats_lock, irqflags);
while (!list_empty(&asd->dis_stats_in_css)) {
dis_buf = list_entry(asd->dis_stats_in_css.next,
struct atomisp_dis_buf, list);
list_del(&dis_buf->list);
list_add_tail(&dis_buf->list, &asd->dis_stats);
}
list_splice_init(&asd->dis_stats_in_css, &asd->dis_stats);
asd->params.dis_proj_data_valid = false;
spin_unlock_irqrestore(&asd->dis_stats_lock, irqflags);
for (i = 0; i < ATOMISP_METADATA_TYPE_NUM; i++) {
while (!list_empty(&asd->metadata_in_css[i])) {
md_buf = list_entry(asd->metadata_in_css[i].next,
struct atomisp_metadata_buf, list);
list_del(&md_buf->list);
list_add_tail(&md_buf->list, &asd->metadata[i]);
}
while (!list_empty(&asd->metadata_ready[i])) {
md_buf = list_entry(asd->metadata_ready[i].next,
struct atomisp_metadata_buf, list);
list_del(&md_buf->list);
list_add_tail(&md_buf->list, &asd->metadata[i]);
}
list_splice_init(&asd->metadata_in_css[i], &asd->metadata[i]);
list_splice_init(&asd->metadata_ready[i], &asd->metadata[i]);
}
atomisp_flush_params_queue(&asd->video_out_capture);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment