media: xilinx-vipp: Look for entities also in waiting_list
The big V4L2 async framework overhaul simplified linked lists used by the
V4L2 async framework. This affected a few drivers and it turns out a few
of those drivers rely on searching for entities in both async notifier's
waiting and done lists. Do that by separately traversing both.
Fixes: 9bf19fbf0c
("media: v4l: async: Rework internal lists")
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
This commit is contained in:
parent
4800021c63
commit
30c1886ab5
|
@ -55,11 +55,18 @@ xvip_graph_find_entity(struct xvip_composite_device *xdev,
|
|||
{
|
||||
struct xvip_graph_entity *entity;
|
||||
struct v4l2_async_connection *asd;
|
||||
struct list_head *lists[] = {
|
||||
&xdev->notifier.done_list,
|
||||
&xdev->notifier.waiting_list
|
||||
};
|
||||
unsigned int i;
|
||||
|
||||
list_for_each_entry(asd, &xdev->notifier.done_list, asc_entry) {
|
||||
entity = to_xvip_entity(asd);
|
||||
if (entity->asd.match.fwnode == fwnode)
|
||||
return entity;
|
||||
for (i = 0; i < ARRAY_SIZE(lists); i++) {
|
||||
list_for_each_entry(asd, lists[i], asc_entry) {
|
||||
entity = to_xvip_entity(asd);
|
||||
if (entity->asd.match.fwnode == fwnode)
|
||||
return entity;
|
||||
}
|
||||
}
|
||||
|
||||
return NULL;
|
||||
|
|
Loading…
Reference in New Issue