Commit 48ecf9fe authored by Lei Wen's avatar Lei Wen Committed by Mauro Carvalho Chehab

[media] soc-camera: change order of removing device

As our general practice, we use stream off before we close
the video node. So that the drivers its stream off function
would be called before its remove function.

But for the case for ctrl+c, the program would be force closed.
We have no chance to call that vb2 stream off from user space,
but directly call the remove function in soc_camera.

In that common code of soc_camera:

                ici->ops->remove(icd);
                if (ici->ops->init_videobuf2)
                        vb2_queue_release(&icd->vb2_vidq);

It would first call the device remove function, then release vb2,
in which stream off function is called. Thus it create different
order for the driver.

This patch change the order to make driver see the same sequence
to make it happy.
Signed-off-by: default avatarLei Wen <leiwen@marvell.com>
Signed-off-by: default avatarGuennadi Liakhovetski <g.liakhovetski@gmx.de>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
parent da673e60
...@@ -600,9 +600,9 @@ static int soc_camera_close(struct file *file) ...@@ -600,9 +600,9 @@ static int soc_camera_close(struct file *file)
pm_runtime_suspend(&icd->vdev->dev); pm_runtime_suspend(&icd->vdev->dev);
pm_runtime_disable(&icd->vdev->dev); pm_runtime_disable(&icd->vdev->dev);
ici->ops->remove(icd);
if (ici->ops->init_videobuf2) if (ici->ops->init_videobuf2)
vb2_queue_release(&icd->vb2_vidq); vb2_queue_release(&icd->vb2_vidq);
ici->ops->remove(icd);
soc_camera_power_off(icd, icl); soc_camera_power_off(icd, icl);
} }
......
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