i.MX6: 16-bit parallel CSI

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Another thing. I'm using a 16-bit parallel CSI camera (with the so
called BT.1120, the 16-bit version of BT.656). Both BT.1120 and BT.656
send sync info embedded in the pixel data stream. The current code calls
for "passthrough" in 16-bit YCbCr (YUV) mode, though this isn't actually
required in such situation. "Passthrough" seems to be needed only when
the input is "generic data", e.g. in YCbCr (YUV) modes (no matter how
wide) with dedicated sync inputs (also with Bayer, Y and non-standard
stuff).

According to IMX6SDLIEC (i.MX 6Solo/6DualLite Applications Processors
for Industrial Products, 4.11.10.1 IPU Sensor Interface Signal Mapping),
even 20-bit YCbCr mode is supported with the "on-the-fly processing",
though I haven't tested it.

Currently drivers/staging/media/imx/imx-media-csi.c:
	/*
 	 * Check for conditions that require the IPU to handle the
 	 * data internally as generic data, aka passthrough mode:
 	 * - raw bayer formats
	 * - the sensor bus is 16-bit parallel
 	 */
@@ -353,19 +353,19 @@ static int csi_idmac_setup_channel(struct csi_priv *priv)
 	case V4L2_PIX_FMT_NV12:
 		burst_size = (image.pix.width & 0x3f) ?
 			     ((image.pix.width & 0x1f) ?
 			      ((image.pix.width & 0xf) ? 8 : 16) : 32) : 64;
 		passthrough = (sensor_ep->bus_type != V4L2_MBUS_CSI2 &&
			       sensor_ep->bus.parallel.bus_width >= 16);
 		passthrough_bits = 16;
 		break;
(and so on)

I wonder how to fix it. Should we simply drop the bus_width test, and
use other means of signalling that the incoming data should be treated
as "generic"? Perhaps it could depend on some mbus_cfg->type
(drivers/gpu/ipu-v3/ipu-csi.c), which is either V4L2_MBUS_PARALLEL,
V4L2_MBUS_BT656 or V4L2_MBUS_CSI2 (should we add V4L2_MBUS_BT1120 here?)
-- 
Krzysztof Halasa

Industrial Research Institute for Automation and Measurements PIAP
Al. Jerozolimskie 202, 02-486 Warsaw, Poland



[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux