Weidong,
You said that the NXP team tested the USB camera on a Sabre-SD board running 7.1.2 and it worked. I assume that was an MX6-based Sabre? With that in mind, I removed all changes we made to any related components (video, gpu, ipu, USB and camera) and tested again but it still does not work. So it seems there is some strange difference between our system and the Sabre-SD. Would the NXP team have some suggestions as to where to look or what might have changed to break our build? Here are some possibly relevant pieces of information for them:
1) It worked in 6.0 and 7.1.1.
2) The same build works fine using a CSI-based camera. Only the USB camera fails.
3) We didn't make any additional changes to our 7.1.2 build that were not in the 7.1.1 build, except as noted in 4) below.
4) In 7.1.2, we had to switch our CSI camera HAL to use MMAPStream as it had strange preview problems when using the USPStream. I saw this same change was made to the NXP CSI-based camera HALs. Could this be related somehow? The UVC Camera HAL for MX6 uses the DMAStream which is derived from USPStream.
5) To distinguish between our two USB cameras, we had to give them unique names: ci_hdrc.1-1.X, where X is the USB port number for the camera (2 or 3 in this case). Could this mess something up in the 7.1.2 HAL somehow?
6) Similarly to 5), our USB cameras are FRONT and BACK rather than EXTERNAL.
7) We had to make some IPU and LCD related DTS changes for our display panel. Could these be messing up the preview streaming in some way?
Thanks,
Trevor