CSI->MEM use case on i.MX6q

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

CSI->MEM use case on i.MX6q

1,337 Views
DipenPatel1z
Contributor III

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

2 Replies

630 Views
DipenPatel1z
Contributor III

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

0 Kudos

630 Views
Yanfei_Sun
Contributor IV

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

0 Kudos