| 5256cfec | 20-Jun-2024 |
Max Staudt <mstaudt@chromium.org> |
staging: media: ipu3: Stop streaming in inverse order of starting
imgu_vb2_stop_streaming() did not order shutdown items in the inverse order and count of what imgu_vb2_start_streaming() does. Conse
staging: media: ipu3: Stop streaming in inverse order of starting
imgu_vb2_stop_streaming() did not order shutdown items in the inverse order and count of what imgu_vb2_start_streaming() does. Consequently, v6.7's new WARN_ON in call_s_stream() started screaming because it was called multiple times on the entire pipe, yet it should only be called when the pipe is interrupted by any first node being taken offline.
This reorders streamoff to be the inverse of streamon, and uses analogous conditions to decide when and how often to call additional teardown functions.
v4l2_subdev_call(s_stream, 0) remains outside the streaming_lock, analogously to imgu_vb2_start_streaming().
Signed-off-by: Max Staudt <mstaudt@chromium.org> Reviewed-by: Bingbu Cao <bingbu.cao@intel.com> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com> Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
show more ...
|
| cf27c5a1 | 20-Jun-2024 |
Max Staudt <mstaudt@chromium.org> |
staging: media: ipu3: Return buffers outside of needless locking
In imgu_vb2_start_streaming()'s error path, imgu_return_all_buffers() is outside the streaming_lock and after the call to video_devic
staging: media: ipu3: Return buffers outside of needless locking
In imgu_vb2_start_streaming()'s error path, imgu_return_all_buffers() is outside the streaming_lock and after the call to video_device_pipeline_stop().
Let's apply the same order in imgu_vb2_stop_streaming() as well.
Signed-off-by: Max Staudt <mstaudt@chromium.org> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com> Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
show more ...
|