| 
						
						
							
								
							
						
						
					 | 
					 | 
					@ -28,6 +28,7 @@ | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					//#define FRAME_STRIDE 1936 // for 8 bit output
 | 
					 | 
					 | 
					 | 
					//#define FRAME_STRIDE 1936 // for 8 bit output
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					#define FRAME_STRIDE 2416  // for 10 bit output
 | 
					 | 
					 | 
					 | 
					#define FRAME_STRIDE 2416  // for 10 bit output
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					/*
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					static void hexdump(uint8_t *data, int len) { | 
					 | 
					 | 
					 | 
					static void hexdump(uint8_t *data, int len) { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  for (int i = 0; i < len; i++) { | 
					 | 
					 | 
					 | 
					  for (int i = 0; i < len; i++) { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    if (i!=0&&i%0x10==0) printf("\n"); | 
					 | 
					 | 
					 | 
					    if (i!=0&&i%0x10==0) printf("\n"); | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -35,6 +36,7 @@ static void hexdump(uint8_t *data, int len) { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  } | 
					 | 
					 | 
					 | 
					  } | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  printf("\n"); | 
					 | 
					 | 
					 | 
					  printf("\n"); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					} | 
					 | 
					 | 
					 | 
					} | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					*/ | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					extern volatile sig_atomic_t do_exit; | 
					 | 
					 | 
					 | 
					extern volatile sig_atomic_t do_exit; | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -79,8 +81,6 @@ int device_control(int fd, int op_code, int session_handle, int dev_handle) { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					} | 
					 | 
					 | 
					 | 
					} | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					void *alloc_w_mmu_hdl(int video0_fd, int len, int align, int flags, uint32_t *handle, int mmu_hdl, int mmu_hdl2) { | 
					 | 
					 | 
					 | 
					void *alloc_w_mmu_hdl(int video0_fd, int len, int align, int flags, uint32_t *handle, int mmu_hdl, int mmu_hdl2) { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  int ret; | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  static struct cam_mem_mgr_alloc_cmd mem_mgr_alloc_cmd = {0}; | 
					 | 
					 | 
					 | 
					  static struct cam_mem_mgr_alloc_cmd mem_mgr_alloc_cmd = {0}; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  mem_mgr_alloc_cmd.len = len; | 
					 | 
					 | 
					 | 
					  mem_mgr_alloc_cmd.len = len; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  mem_mgr_alloc_cmd.align = align; | 
					 | 
					 | 
					 | 
					  mem_mgr_alloc_cmd.align = align; | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -141,7 +141,7 @@ void sensors_poke(struct CameraState *s, int request_id) { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  pkt->header.size = size; | 
					 | 
					 | 
					 | 
					  pkt->header.size = size; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  pkt->header.op_code = 0x7f; | 
					 | 
					 | 
					 | 
					  pkt->header.op_code = 0x7f; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  pkt->header.request_id = request_id; | 
					 | 
					 | 
					 | 
					  pkt->header.request_id = request_id; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  struct cam_cmd_buf_desc *buf_desc = (struct cam_cmd_buf_desc *)&pkt->payload; | 
					 | 
					 | 
					 | 
					  //struct cam_cmd_buf_desc *buf_desc = (struct cam_cmd_buf_desc *)&pkt->payload;
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  static struct cam_config_dev_cmd config_dev_cmd = {}; | 
					 | 
					 | 
					 | 
					  static struct cam_config_dev_cmd config_dev_cmd = {}; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  config_dev_cmd.session_handle = s->session_handle; | 
					 | 
					 | 
					 | 
					  config_dev_cmd.session_handle = s->session_handle; | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -169,7 +169,7 @@ void sensors_i2c(struct CameraState *s, struct i2c_random_wr_payload* dat, int l | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  buf_desc[0].size = buf_desc[0].length = sizeof(struct cam_cmd_i2c_random_wr) + (len-1)*sizeof(struct i2c_random_wr_payload); | 
					 | 
					 | 
					 | 
					  buf_desc[0].size = buf_desc[0].length = sizeof(struct cam_cmd_i2c_random_wr) + (len-1)*sizeof(struct i2c_random_wr_payload); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  buf_desc[0].type = CAM_CMD_BUF_I2C; | 
					 | 
					 | 
					 | 
					  buf_desc[0].type = CAM_CMD_BUF_I2C; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  struct cam_cmd_power *power = alloc(s->video0_fd, buf_desc[0].size, 8, CAM_MEM_FLAG_KMD_ACCESS | CAM_MEM_FLAG_UMD_ACCESS | CAM_MEM_FLAG_CMD_BUF_TYPE, &buf_desc[0].mem_handle); | 
					 | 
					 | 
					 | 
					  struct cam_cmd_power *power = alloc(s->video0_fd, buf_desc[0].size, 8, CAM_MEM_FLAG_KMD_ACCESS | CAM_MEM_FLAG_UMD_ACCESS | CAM_MEM_FLAG_CMD_BUF_TYPE, (uint32_t*)&buf_desc[0].mem_handle); | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  struct cam_cmd_i2c_random_wr *i2c_random_wr = (void*)power; | 
					 | 
					 | 
					 | 
					  struct cam_cmd_i2c_random_wr *i2c_random_wr = (void*)power; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  i2c_random_wr->header.count = len; | 
					 | 
					 | 
					 | 
					  i2c_random_wr->header.count = len; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  i2c_random_wr->header.op_code = 1; | 
					 | 
					 | 
					 | 
					  i2c_random_wr->header.op_code = 1; | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -204,7 +204,7 @@ void sensors_init(int video0_fd, int sensor_fd, int camera_num) { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  buf_desc[0].size = buf_desc[0].length = sizeof(struct cam_cmd_i2c_info) + sizeof(struct cam_cmd_probe); | 
					 | 
					 | 
					 | 
					  buf_desc[0].size = buf_desc[0].length = sizeof(struct cam_cmd_i2c_info) + sizeof(struct cam_cmd_probe); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  buf_desc[0].type = CAM_CMD_BUF_LEGACY; | 
					 | 
					 | 
					 | 
					  buf_desc[0].type = CAM_CMD_BUF_LEGACY; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  struct cam_cmd_i2c_info *i2c_info = alloc(video0_fd, buf_desc[0].size, 8, CAM_MEM_FLAG_KMD_ACCESS | CAM_MEM_FLAG_UMD_ACCESS | CAM_MEM_FLAG_CMD_BUF_TYPE, &buf_desc[0].mem_handle); | 
					 | 
					 | 
					 | 
					  struct cam_cmd_i2c_info *i2c_info = alloc(video0_fd, buf_desc[0].size, 8, CAM_MEM_FLAG_KMD_ACCESS | CAM_MEM_FLAG_UMD_ACCESS | CAM_MEM_FLAG_CMD_BUF_TYPE, (uint32_t*)&buf_desc[0].mem_handle); | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  struct cam_cmd_probe *probe = (struct cam_cmd_probe *)((uint8_t *)i2c_info) + sizeof(struct cam_cmd_i2c_info); | 
					 | 
					 | 
					 | 
					  struct cam_cmd_probe *probe = (struct cam_cmd_probe *)((uint8_t *)i2c_info) + sizeof(struct cam_cmd_i2c_info); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  switch (camera_num) { | 
					 | 
					 | 
					 | 
					  switch (camera_num) { | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -241,11 +241,11 @@ void sensors_init(int video0_fd, int sensor_fd, int camera_num) { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  //buf_desc[1].size = buf_desc[1].length = 148;
 | 
					 | 
					 | 
					 | 
					  //buf_desc[1].size = buf_desc[1].length = 148;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  buf_desc[1].size = buf_desc[1].length = 196; | 
					 | 
					 | 
					 | 
					  buf_desc[1].size = buf_desc[1].length = 196; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  buf_desc[1].type = CAM_CMD_BUF_I2C; | 
					 | 
					 | 
					 | 
					  buf_desc[1].type = CAM_CMD_BUF_I2C; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  struct cam_cmd_power *power = alloc(video0_fd, buf_desc[1].size, 8, CAM_MEM_FLAG_KMD_ACCESS | CAM_MEM_FLAG_UMD_ACCESS | CAM_MEM_FLAG_CMD_BUF_TYPE, &buf_desc[1].mem_handle); | 
					 | 
					 | 
					 | 
					  struct cam_cmd_power *power = alloc(video0_fd, buf_desc[1].size, 8, CAM_MEM_FLAG_KMD_ACCESS | CAM_MEM_FLAG_UMD_ACCESS | CAM_MEM_FLAG_CMD_BUF_TYPE, (uint32_t*)&buf_desc[1].mem_handle); | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  memset(power, 0, buf_desc[1].size); | 
					 | 
					 | 
					 | 
					  memset(power, 0, buf_desc[1].size); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  struct cam_cmd_unconditional_wait *unconditional_wait; | 
					 | 
					 | 
					 | 
					  struct cam_cmd_unconditional_wait *unconditional_wait; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  void *ptr = power; | 
					 | 
					 | 
					 | 
					  //void *ptr = power;
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  // 7750
 | 
					 | 
					 | 
					 | 
					  // 7750
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  /*power->count = 2;
 | 
					 | 
					 | 
					 | 
					  /*power->count = 2;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  power->cmd_type = CAMERA_SENSOR_CMD_TYPE_PWR_UP; | 
					 | 
					 | 
					 | 
					  power->cmd_type = CAMERA_SENSOR_CMD_TYPE_PWR_UP; | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -350,7 +350,7 @@ void sensors_init(int video0_fd, int sensor_fd, int camera_num) { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  power = (void*)power + (sizeof(struct cam_cmd_power) + (power->count-1)*sizeof(struct cam_power_settings)); | 
					 | 
					 | 
					 | 
					  power = (void*)power + (sizeof(struct cam_cmd_power) + (power->count-1)*sizeof(struct cam_power_settings)); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  LOGD("probing the sensor"); | 
					 | 
					 | 
					 | 
					  LOGD("probing the sensor"); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  int ret = cam_control(sensor_fd, CAM_SENSOR_PROBE_CMD, (void *)cam_packet_handle, 0); | 
					 | 
					 | 
					 | 
					  int ret = cam_control(sensor_fd, CAM_SENSOR_PROBE_CMD, (void *)(uintptr_t)cam_packet_handle, 0); | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  assert(ret == 0); | 
					 | 
					 | 
					 | 
					  assert(ret == 0); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  release_fd(video0_fd, buf_desc[0].mem_handle); | 
					 | 
					 | 
					 | 
					  release_fd(video0_fd, buf_desc[0].mem_handle); | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -401,7 +401,7 @@ void config_isp(struct CameraState *s, int io_mem_handle, int fence, int request | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  } | 
					 | 
					 | 
					 | 
					  } | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  buf_desc[1].type = CAM_CMD_BUF_GENERIC; | 
					 | 
					 | 
					 | 
					  buf_desc[1].type = CAM_CMD_BUF_GENERIC; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  buf_desc[1].meta_data = CAM_ISP_PACKET_META_GENERIC_BLOB_COMMON; | 
					 | 
					 | 
					 | 
					  buf_desc[1].meta_data = CAM_ISP_PACKET_META_GENERIC_BLOB_COMMON; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  uint32_t *buf2 = alloc(s->video0_fd, buf_desc[1].size, 0x20, CAM_MEM_FLAG_KMD_ACCESS | CAM_MEM_FLAG_UMD_ACCESS | CAM_MEM_FLAG_CMD_BUF_TYPE, &buf_desc[1].mem_handle); | 
					 | 
					 | 
					 | 
					  uint32_t *buf2 = alloc(s->video0_fd, buf_desc[1].size, 0x20, CAM_MEM_FLAG_KMD_ACCESS | CAM_MEM_FLAG_UMD_ACCESS | CAM_MEM_FLAG_CMD_BUF_TYPE, (uint32_t*)&buf_desc[1].mem_handle); | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  // cam_isp_packet_generic_blob_handler
 | 
					 | 
					 | 
					 | 
					  // cam_isp_packet_generic_blob_handler
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  uint32_t tmp[] = { | 
					 | 
					 | 
					 | 
					  uint32_t tmp[] = { | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -526,7 +526,6 @@ void enqueue_buffer(struct CameraState *s, int i) { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					// ******************* camera *******************
 | 
					 | 
					 | 
					 | 
					// ******************* camera *******************
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					static void camera_release_buffer(void* cookie, int i) { | 
					 | 
					 | 
					 | 
					static void camera_release_buffer(void* cookie, int i) { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  int ret; | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  CameraState *s = cookie; | 
					 | 
					 | 
					 | 
					  CameraState *s = cookie; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  enqueue_buffer(s, i); | 
					 | 
					 | 
					 | 
					  enqueue_buffer(s, i); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					} | 
					 | 
					 | 
					 | 
					} | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -692,7 +691,7 @@ static void camera_open(CameraState *s, VisionBuf* b) { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  // acquires done
 | 
					 | 
					 | 
					 | 
					  // acquires done
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  // config ISP
 | 
					 | 
					 | 
					 | 
					  // config ISP
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  void *buf0 = alloc_w_mmu_hdl(s->video0_fd, 984480, 0x20, CAM_MEM_FLAG_HW_READ_WRITE | CAM_MEM_FLAG_KMD_ACCESS | CAM_MEM_FLAG_UMD_ACCESS | CAM_MEM_FLAG_CMD_BUF_TYPE, &s->buf0_handle, s->device_iommu, s->cdm_iommu); | 
					 | 
					 | 
					 | 
					  alloc_w_mmu_hdl(s->video0_fd, 984480, 0x20, CAM_MEM_FLAG_HW_READ_WRITE | CAM_MEM_FLAG_KMD_ACCESS | CAM_MEM_FLAG_UMD_ACCESS | CAM_MEM_FLAG_CMD_BUF_TYPE, (uint32_t*)&s->buf0_handle, s->device_iommu, s->cdm_iommu); | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  config_isp(s, 0, 0, 1, s->buf0_handle, 0); | 
					 | 
					 | 
					 | 
					  config_isp(s, 0, 0, 1, s->buf0_handle, 0); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  LOG("-- Configuring sensor"); | 
					 | 
					 | 
					 | 
					  LOG("-- Configuring sensor"); | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -715,7 +714,7 @@ static void camera_open(CameraState *s, VisionBuf* b) { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    buf_desc[0].size = buf_desc[0].length = sizeof(struct cam_csiphy_info); | 
					 | 
					 | 
					 | 
					    buf_desc[0].size = buf_desc[0].length = sizeof(struct cam_csiphy_info); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    buf_desc[0].type = CAM_CMD_BUF_GENERIC; | 
					 | 
					 | 
					 | 
					    buf_desc[0].type = CAM_CMD_BUF_GENERIC; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    struct cam_csiphy_info *csiphy_info = alloc(s->video0_fd, buf_desc[0].size, 8, CAM_MEM_FLAG_KMD_ACCESS | CAM_MEM_FLAG_UMD_ACCESS | CAM_MEM_FLAG_CMD_BUF_TYPE, &buf_desc[0].mem_handle); | 
					 | 
					 | 
					 | 
					    struct cam_csiphy_info *csiphy_info = alloc(s->video0_fd, buf_desc[0].size, 8, CAM_MEM_FLAG_KMD_ACCESS | CAM_MEM_FLAG_UMD_ACCESS | CAM_MEM_FLAG_CMD_BUF_TYPE, (uint32_t*)&buf_desc[0].mem_handle); | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    csiphy_info->lane_mask = 0x1f; | 
					 | 
					 | 
					 | 
					    csiphy_info->lane_mask = 0x1f; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    csiphy_info->lane_assign = 0x3210;// skip clk. How is this 16 bit for 5 channels??
 | 
					 | 
					 | 
					 | 
					    csiphy_info->lane_assign = 0x3210;// skip clk. How is this 16 bit for 5 channels??
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
					 | 
					
  |