static int32_t mm_camera_poll_proc_msm(mm_camera_poll_thread_t *poll_cb, struct pollfd *fds) { int i; for(i = 0; i < poll_cb->data.num_fds-1; i++) { /*Checking for data events*/ if((poll_cb->data.poll_type == MM_CAMERA_POLL_TYPE_CH) && (fds[i].revents & POLLIN) && (fds[i].revents & POLLRDNORM)) { if(poll_cb->data.used) { mm_camera_msm_data_notify(poll_cb->data.my_obj, fds[i].fd, poll_cb->data.poll_streams[i]->stream_type); } } /*Checking for ctrl events*/ if((poll_cb->data.poll_type == MM_CAMERA_POLL_TYPE_EVT) && (fds[i].revents & POLLPRI)) { CDBG("%s: mm_camera_msm_evt_notify\n", __func__); mm_camera_msm_evt_notify(poll_cb->data.my_obj, fds[i].fd); } } return 0; }
static int32_t mm_camera_poll_task_fn_poll_proc_msm(mm_camera_obj_t * my_obj, struct pollfd *fds, int num_fds, mm_camera_stream_type_t *type) { int i; for(i = 1; i < num_fds; i++) { if((fds[i].revents & POLLIN) && (fds[i].revents & POLLRDNORM)) { CDBG("%s:data stream type=%d,fd=%d\n",__func__, type[i], fds[i].fd); mm_camera_msm_data_notify(my_obj, fds[i].fd, type[i]); } } return 0; }