This small patchset helps rework the VSP1 driver to repair an issue on suspend/resume operations whereby the pipeline does not get reconfigured after it has been re-initialised following a resume operation. Along side this, there was an intrinsic race in the vsp1_video_start_streaming() function whereby multiple streams operating through a BRU, could find themselves commencing an operation before the pipeline has been configured, or worse - commencing, just as the pipeline is being configured resulting in a null pointer dereference on pipe->dl. Patch [1/4] fixes the multiple stream BRU race Patch [2/4] is a code move only, with no functional change. Patch [3/4] fixes the suspend/resume operations for video pipelines by marking the new pipe configured flag as false, and configuring the pipe during the vsp1_video_pipeline_run() call. Patch [4/4] removes the context scoped 'pipe->dl' from vsp1_drm.c which is only used in a single function v4: - Rework and separate out the BRU race back to v1 style implementation - Split BRU race and Suspend Resume fixes into separate commits. v3: - Move configured=false from vsp1_device_init to vsp1_reset_wpf() - Clean up flag dereferencing with a local struct * v2: - Refactor video pipeline configuration implementation to solve both suspend resume and the VSP BRU race in a single change v1: - Original pipeline configuration rework Kieran Bingham (4): v4l: vsp1: Prevent multiple streamon race commencing pipeline early v4l: vsp1: Move vsp1_video_setup_pipeline() v4l: vsp1: Repair suspend resume operations for video pipelines v4l: vsp1: Remove redundant pipe->dl usage from drm drivers/media/platform/vsp1/vsp1_drm.c | 20 ++-- drivers/media/platform/vsp1/vsp1_drv.c | 4 +- drivers/media/platform/vsp1/vsp1_pipe.c | 1 +- drivers/media/platform/vsp1/vsp1_pipe.h | 4 +- drivers/media/platform/vsp1/vsp1_video.c | 133 ++++++++++++------------ 5 files changed, 86 insertions(+), 76 deletions(-) base-commit: 16b6839d4e6f0c3fe6d5db2b4c90fb39dabc8640 -- git-series 0.9.1