Hello Steve, On Thu, Jan 17, 2019 at 6:15 PM Steve Longerbeam <slongerbeam@xxxxxxxxx> wrote: > > Disable the CSI immediately after receiving the last EOF before stream > off (and thus before disabling the IDMA channel). > > This fixes a complete system hard lockup on the SabreAuto when streaming > from the ADV7180, by repeatedly sending a stream off immediately followed > by stream on: > > 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 channel at stream off. Disabling > the CSI before disabling the IDMA channel appears to be a reliable fix for > the hard lockup. > > Fixes: 4a34ec8e470cb ("[media] media: imx: Add CSI subdev driver") [...] Similar lockup observed on a custom i.mx6 board, fixed locally by the following patch/workaround: diff --git a/drivers/staging/media/imx/imx-media-csi.c b/drivers/staging/media/imx/imx-media-csi.c index 555aa45e02e3..f04d1695f7a4 100644 --- a/drivers/staging/media/imx/imx-media-csi.c +++ b/drivers/staging/media/imx/imx-media-csi.c @@ -560,8 +560,8 @@ static int csi_idmac_setup_channel(struct csi_priv *priv) static void csi_idmac_unsetup(struct csi_priv *priv, enum vb2_buffer_state state) { - ipu_idmac_disable_channel(priv->idmac_ch); ipu_smfc_disable(priv->smfc); + ipu_idmac_disable_channel(priv->idmac_ch); csi_idmac_unsetup_vb2_buf(priv, state); } Will test your patch the next days... Regards, Peter [Sorry for missing some of the CC and Message-Id, not fully subscribed to linux-media]