|  |  |  | @ -399,7 +399,7 @@ static void sensors_init(MultiCameraState *s) { | 
			
		
	
		
			
				
					|  |  |  |  |     .output_format = MSM_SENSOR_BAYER, | 
			
		
	
		
			
				
					|  |  |  |  |   }}; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |   unique_fd sensorinit_fd = open("/dev/v4l-subdev11", O_RDWR | O_NONBLOCK); | 
			
		
	
		
			
				
					|  |  |  |  |   unique_fd sensorinit_fd = HANDLE_EINTR(open("/dev/v4l-subdev11", O_RDWR | O_NONBLOCK)); | 
			
		
	
		
			
				
					|  |  |  |  |   assert(sensorinit_fd >= 0); | 
			
		
	
		
			
				
					|  |  |  |  |   for (auto &info : slave_infos) { | 
			
		
	
		
			
				
					|  |  |  |  |     info.power_setting_array.power_setting = &info.power_setting_array.power_setting_a[0]; | 
			
		
	
	
		
			
				
					|  |  |  | @ -419,29 +419,29 @@ static void camera_open(CameraState *s, bool is_road_cam) { | 
			
		
	
		
			
				
					|  |  |  |  |   // open devices
 | 
			
		
	
		
			
				
					|  |  |  |  |   const char *sensor_dev; | 
			
		
	
		
			
				
					|  |  |  |  |   if (is_road_cam) { | 
			
		
	
		
			
				
					|  |  |  |  |     s->csid_fd = open("/dev/v4l-subdev3", O_RDWR | O_NONBLOCK); | 
			
		
	
		
			
				
					|  |  |  |  |     s->csid_fd = HANDLE_EINTR(open("/dev/v4l-subdev3", O_RDWR | O_NONBLOCK)); | 
			
		
	
		
			
				
					|  |  |  |  |     assert(s->csid_fd >= 0); | 
			
		
	
		
			
				
					|  |  |  |  |     s->csiphy_fd = open("/dev/v4l-subdev0", O_RDWR | O_NONBLOCK); | 
			
		
	
		
			
				
					|  |  |  |  |     s->csiphy_fd = HANDLE_EINTR(open("/dev/v4l-subdev0", O_RDWR | O_NONBLOCK)); | 
			
		
	
		
			
				
					|  |  |  |  |     assert(s->csiphy_fd >= 0); | 
			
		
	
		
			
				
					|  |  |  |  |     sensor_dev = "/dev/v4l-subdev17"; | 
			
		
	
		
			
				
					|  |  |  |  |     s->isp_fd = open("/dev/v4l-subdev13", O_RDWR | O_NONBLOCK); | 
			
		
	
		
			
				
					|  |  |  |  |     s->isp_fd = HANDLE_EINTR(open("/dev/v4l-subdev13", O_RDWR | O_NONBLOCK)); | 
			
		
	
		
			
				
					|  |  |  |  |     assert(s->isp_fd >= 0); | 
			
		
	
		
			
				
					|  |  |  |  |     s->actuator_fd = open("/dev/v4l-subdev7", O_RDWR | O_NONBLOCK); | 
			
		
	
		
			
				
					|  |  |  |  |     s->actuator_fd = HANDLE_EINTR(open("/dev/v4l-subdev7", O_RDWR | O_NONBLOCK)); | 
			
		
	
		
			
				
					|  |  |  |  |     assert(s->actuator_fd >= 0); | 
			
		
	
		
			
				
					|  |  |  |  |   } else { | 
			
		
	
		
			
				
					|  |  |  |  |     s->csid_fd = open("/dev/v4l-subdev5", O_RDWR | O_NONBLOCK); | 
			
		
	
		
			
				
					|  |  |  |  |     s->csid_fd = HANDLE_EINTR(open("/dev/v4l-subdev5", O_RDWR | O_NONBLOCK)); | 
			
		
	
		
			
				
					|  |  |  |  |     assert(s->csid_fd >= 0); | 
			
		
	
		
			
				
					|  |  |  |  |     s->csiphy_fd = open("/dev/v4l-subdev2", O_RDWR | O_NONBLOCK); | 
			
		
	
		
			
				
					|  |  |  |  |     s->csiphy_fd = HANDLE_EINTR(open("/dev/v4l-subdev2", O_RDWR | O_NONBLOCK)); | 
			
		
	
		
			
				
					|  |  |  |  |     assert(s->csiphy_fd >= 0); | 
			
		
	
		
			
				
					|  |  |  |  |     sensor_dev = "/dev/v4l-subdev18"; | 
			
		
	
		
			
				
					|  |  |  |  |     s->isp_fd = open("/dev/v4l-subdev14", O_RDWR | O_NONBLOCK); | 
			
		
	
		
			
				
					|  |  |  |  |     s->isp_fd = HANDLE_EINTR(open("/dev/v4l-subdev14", O_RDWR | O_NONBLOCK)); | 
			
		
	
		
			
				
					|  |  |  |  |     assert(s->isp_fd >= 0); | 
			
		
	
		
			
				
					|  |  |  |  |   } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |   // wait for sensor device
 | 
			
		
	
		
			
				
					|  |  |  |  |   // on first startup, these devices aren't present yet
 | 
			
		
	
		
			
				
					|  |  |  |  |   for (int i = 0; i < 10; i++) { | 
			
		
	
		
			
				
					|  |  |  |  |     s->sensor_fd = open(sensor_dev, O_RDWR | O_NONBLOCK); | 
			
		
	
		
			
				
					|  |  |  |  |     s->sensor_fd = HANDLE_EINTR(open(sensor_dev, O_RDWR | O_NONBLOCK)); | 
			
		
	
		
			
				
					|  |  |  |  |     if (s->sensor_fd >= 0) break; | 
			
		
	
		
			
				
					|  |  |  |  |     LOGW("waiting for sensors..."); | 
			
		
	
		
			
				
					|  |  |  |  |     util::sleep_for(1000); // sleep one second
 | 
			
		
	
	
		
			
				
					|  |  |  | @ -927,15 +927,15 @@ void cameras_open(MultiCameraState *s) { | 
			
		
	
		
			
				
					|  |  |  |  |       {.vfe_intf = VFE0, .intftype = RDI2, .num_cids = 1, .cids[0] = CID2, .csid = CSID0}, | 
			
		
	
		
			
				
					|  |  |  |  |     }, | 
			
		
	
		
			
				
					|  |  |  |  |   }; | 
			
		
	
		
			
				
					|  |  |  |  |   s->msmcfg_fd = open("/dev/media0", O_RDWR | O_NONBLOCK); | 
			
		
	
		
			
				
					|  |  |  |  |   s->msmcfg_fd = HANDLE_EINTR(open("/dev/media0", O_RDWR | O_NONBLOCK)); | 
			
		
	
		
			
				
					|  |  |  |  |   assert(s->msmcfg_fd >= 0); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |   sensors_init(s); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |   s->v4l_fd = open("/dev/video0", O_RDWR | O_NONBLOCK); | 
			
		
	
		
			
				
					|  |  |  |  |   s->v4l_fd = HANDLE_EINTR(open("/dev/video0", O_RDWR | O_NONBLOCK)); | 
			
		
	
		
			
				
					|  |  |  |  |   assert(s->v4l_fd >= 0); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |   s->ispif_fd = open("/dev/v4l-subdev15", O_RDWR | O_NONBLOCK); | 
			
		
	
		
			
				
					|  |  |  |  |   s->ispif_fd = HANDLE_EINTR(open("/dev/v4l-subdev15", O_RDWR | O_NONBLOCK)); | 
			
		
	
		
			
				
					|  |  |  |  |   assert(s->ispif_fd >= 0); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |   // ISPIF: stop
 | 
			
		
	
	
		
			
				
					|  |  |  | 
 |