Hi All,
To set background I am capturing SXGA@15fps in RAW Bayer format from sensor and dump to memory without any processing.
As per i.MX6q RM for CSI->MEM use case IDMAC_CH_5 should be used, whereas in ipu_csi_enc.c if I follow the trace I see that IDMAC_CH_0 is being used. This follows use case of CSI->SMFC->MEM. Why is the difference in implementation and RM? And also what would be the preprocessing done on RAW data for CSI->SMFC->MEM use case?
Another clarification required is that as per IPU register dump I can see that double buffering is used by above mentioned driver. But CPMEM dump shows eba0 and eba1 addresses are same. So how i.MX6q does double buffering?
Appreciate your response.
-Dipen Patel
Hi Ray,
Thanks for clarification.
I have i.MX 6Dual/6Quad Multimedia Applications Processor Reference Manual (Rev. C, 1/2012). It may be little older.
In ipu_csi_enc.c in csi_enc_setup() it calls ipu_init_channel_buffer(). Here it passes two buffer address for double buffering which are same.This two dummy addresses points to dummy_frame variable of type struct mxc_v4l_frame which is member of cam_data structure defined in mxc_v4l2_capture.h
Whereas for the still image capture use case they are actually using two different buffers if you look at ipu_still.c
There could be some reason for doing this way. Anyways I will try changing it to make sure it uses two different buffers.
Regards,
Dipen Patel
Hi Dipen,
Could you point out which version of RM you are referring to? perhaps it should be a typo since we usually use the IDMAC_CH_) for capturing output.
For your second question, if EBA0 and EBA1 are set as the same value, the data captured would be overwritten. you'd better change it.
Regards,
Ray