AnsweredAssumed Answered

Getting an 'err_id_vc0' error on iMX6 MIPI-CSI

Question asked by Erez Steinberg on Nov 11, 2014
Latest reply on May 20, 2016 by Fan Al

Hello experts,


I'm working on a device driver for a Sony IMX208 MIPI Image Sensor for the iMX6 on Linux 3.0.35.


My MIPI is set up as follows:


   mipi_csi2_info.mipi_en   = 1

   mipi_csi2_info.ipu_id    = 0

   mipi_csi2_info.csi_id    = 0

   mipi_csi2_info.v_channel = 0

   mipi_csi2_info.lanes     = 1

   mipi_csi2_info.datatype  = 0x2b  (RAW10)


I am able to communicate with the sensor over I2C and everything seems to be working. However, starting the stream and waiting for buffers (using select()), no buffers are available. I have 'DEBUG' enabled for the drivers; the log I get is:


In MVC:mxc_streamon


In MVC:mxc_poll

In MVC:mxc_v4l_ioctl

In MVC: mxc_v4l_do_ioctl c0445611


In MVC:mxc_v4l_dqueue

ERROR: v4l2 capture: mxc_v4l_dqueue() interrupt received

fps=In MVC:mxc_v4l_ioctl


If I check the CSI-MIPI Error registers, I see an err_id_vc0 in MIPI_CSI_ERR2 ("Unrecognized or unimplemented data type detected in Virtual Channel 0"). I tried both RAW8 and RAW10 formats, and I get the same error. According to MIPI-CSI2 Specs, this would be an "Unrecognized ID, caused by the presence of an unimplemented or unrecognized ID in the header", and the proposed receiver behavior "to indicate that the data packet is unidentified and cannot be unpacked by the receiver".  So, my guess is that the MIPI-CSI2 hardware detects an error and doesn't forward any data, and that's why dqbuf fails.


But -- I don't understand why this error is happening!


Does anyone know of possible reasons for such an error to occur?

Any recommendations how to debug this issue?