Repeatedly sending a stream off immediately followed by stream on can eventually cause a complete system hard lockup on the SabreAuto when streaming from the ADV7180: while true; do v4l2-ctl -d4 --stream-mmap --stream-count=3; done Eventually this either causes the system lockup or EOF timeouts at all subsequent stream on, until a system reset. The lockup occurs when disabling the IDMA channels at stream off. Stopping the video data stream entering the IDMA channel before disabling the channel itself appears to be a reliable fix for the hard lockup. In the CSI subdevice, this can be done by disabling the CSI before disabling the CSI IDMA channel, instead of after. In the IC-PRPENVVF subdevice, this can be done by stopping upstream before disabling the PRPENC/VF IDMA channel. History: v4: - Disabling SMFC will have no effect if both CSI's are streaming. So go back to disabling CSI before channel as in v2, but split up csi_idmac_stop such that ipu_csi_disable can still be called within csi_stop. v3: - Switch to disabling the SMFC before the channel, instead of the CSI before the channel. v2: - Whitespace fixes - Add Fixes: and Cc: stable@xxxxxxxxxxxxxxx - No functional changes. Steve Longerbeam (3): media: imx: csi: Disable CSI immediately after last EOF media: imx: csi: Stop upstream before disabling IDMA channel media: imx: prpencvf: Stop upstream before disabling IDMA channel drivers/staging/media/imx/imx-ic-prpencvf.c | 26 ++++++++----- drivers/staging/media/imx/imx-media-csi.c | 42 +++++++++++++-------- 2 files changed, 44 insertions(+), 24 deletions(-) -- 2.17.1