Loading drivers/cam_core/cam_subdev.c +2 −0 Original line number Diff line number Diff line Loading @@ -53,8 +53,10 @@ static long cam_subdev_ioctl(struct v4l2_subdev *sd, unsigned int cmd, switch (cmd) { case VIDIOC_CAM_CONTROL: cam_req_mgr_rwsem_read_op(CAM_SUBDEV_LOCK); rc = cam_node_handle_ioctl(node, (struct cam_control *) arg); cam_req_mgr_rwsem_read_op(CAM_SUBDEV_UNLOCK); break; default: CAM_ERR(CAM_CORE, "Invalid command %d for %s", cmd, Loading drivers/cam_fd/cam_fd_dev.c +5 −0 Original line number Diff line number Diff line Loading @@ -43,8 +43,11 @@ static int cam_fd_dev_open(struct v4l2_subdev *sd, { struct cam_fd_dev *fd_dev = &g_fd_dev; cam_req_mgr_rwsem_read_op(CAM_SUBDEV_LOCK); if (!fd_dev->probe_done) { CAM_ERR(CAM_FD, "FD Dev not initialized, fd_dev=%pK", fd_dev); cam_req_mgr_rwsem_read_op(CAM_SUBDEV_UNLOCK); return -ENODEV; } Loading @@ -53,6 +56,8 @@ static int cam_fd_dev_open(struct v4l2_subdev *sd, CAM_DBG(CAM_FD, "FD Subdev open count %d", fd_dev->open_cnt); mutex_unlock(&fd_dev->lock); cam_req_mgr_rwsem_read_op(CAM_SUBDEV_UNLOCK); return 0; } Loading drivers/cam_icp/cam_icp_subdev.c +3 −0 Original line number Diff line number Diff line Loading @@ -75,6 +75,8 @@ static int cam_icp_subdev_open(struct v4l2_subdev *sd, struct cam_node *node = v4l2_get_subdevdata(sd); int rc = 0; cam_req_mgr_rwsem_read_op(CAM_SUBDEV_LOCK); mutex_lock(&g_icp_dev.icp_lock); if (g_icp_dev.open_cnt >= 1) { CAM_ERR(CAM_ICP, "ICP subdev is already opened"); Loading @@ -97,6 +99,7 @@ static int cam_icp_subdev_open(struct v4l2_subdev *sd, g_icp_dev.open_cnt++; end: mutex_unlock(&g_icp_dev.icp_lock); cam_req_mgr_rwsem_read_op(CAM_SUBDEV_UNLOCK); return rc; } Loading drivers/cam_isp/cam_isp_dev.c +4 −0 Original line number Diff line number Diff line Loading @@ -50,10 +50,14 @@ static const struct of_device_id cam_isp_dt_match[] = { static int cam_isp_subdev_open(struct v4l2_subdev *sd, struct v4l2_subdev_fh *fh) { cam_req_mgr_rwsem_read_op(CAM_SUBDEV_LOCK); mutex_lock(&g_isp_dev.isp_mutex); g_isp_dev.open_cnt++; mutex_unlock(&g_isp_dev.isp_mutex); cam_req_mgr_rwsem_read_op(CAM_SUBDEV_UNLOCK); return 0; } Loading drivers/cam_jpeg/cam_jpeg_dev.c +2 −0 Original line number Diff line number Diff line Loading @@ -49,10 +49,12 @@ static const struct of_device_id cam_jpeg_dt_match[] = { static int cam_jpeg_subdev_open(struct v4l2_subdev *sd, struct v4l2_subdev_fh *fh) { cam_req_mgr_rwsem_read_op(CAM_SUBDEV_LOCK); mutex_lock(&g_jpeg_dev.jpeg_mutex); g_jpeg_dev.open_cnt++; mutex_unlock(&g_jpeg_dev.jpeg_mutex); cam_req_mgr_rwsem_read_op(CAM_SUBDEV_UNLOCK); return 0; } Loading Loading
drivers/cam_core/cam_subdev.c +2 −0 Original line number Diff line number Diff line Loading @@ -53,8 +53,10 @@ static long cam_subdev_ioctl(struct v4l2_subdev *sd, unsigned int cmd, switch (cmd) { case VIDIOC_CAM_CONTROL: cam_req_mgr_rwsem_read_op(CAM_SUBDEV_LOCK); rc = cam_node_handle_ioctl(node, (struct cam_control *) arg); cam_req_mgr_rwsem_read_op(CAM_SUBDEV_UNLOCK); break; default: CAM_ERR(CAM_CORE, "Invalid command %d for %s", cmd, Loading
drivers/cam_fd/cam_fd_dev.c +5 −0 Original line number Diff line number Diff line Loading @@ -43,8 +43,11 @@ static int cam_fd_dev_open(struct v4l2_subdev *sd, { struct cam_fd_dev *fd_dev = &g_fd_dev; cam_req_mgr_rwsem_read_op(CAM_SUBDEV_LOCK); if (!fd_dev->probe_done) { CAM_ERR(CAM_FD, "FD Dev not initialized, fd_dev=%pK", fd_dev); cam_req_mgr_rwsem_read_op(CAM_SUBDEV_UNLOCK); return -ENODEV; } Loading @@ -53,6 +56,8 @@ static int cam_fd_dev_open(struct v4l2_subdev *sd, CAM_DBG(CAM_FD, "FD Subdev open count %d", fd_dev->open_cnt); mutex_unlock(&fd_dev->lock); cam_req_mgr_rwsem_read_op(CAM_SUBDEV_UNLOCK); return 0; } Loading
drivers/cam_icp/cam_icp_subdev.c +3 −0 Original line number Diff line number Diff line Loading @@ -75,6 +75,8 @@ static int cam_icp_subdev_open(struct v4l2_subdev *sd, struct cam_node *node = v4l2_get_subdevdata(sd); int rc = 0; cam_req_mgr_rwsem_read_op(CAM_SUBDEV_LOCK); mutex_lock(&g_icp_dev.icp_lock); if (g_icp_dev.open_cnt >= 1) { CAM_ERR(CAM_ICP, "ICP subdev is already opened"); Loading @@ -97,6 +99,7 @@ static int cam_icp_subdev_open(struct v4l2_subdev *sd, g_icp_dev.open_cnt++; end: mutex_unlock(&g_icp_dev.icp_lock); cam_req_mgr_rwsem_read_op(CAM_SUBDEV_UNLOCK); return rc; } Loading
drivers/cam_isp/cam_isp_dev.c +4 −0 Original line number Diff line number Diff line Loading @@ -50,10 +50,14 @@ static const struct of_device_id cam_isp_dt_match[] = { static int cam_isp_subdev_open(struct v4l2_subdev *sd, struct v4l2_subdev_fh *fh) { cam_req_mgr_rwsem_read_op(CAM_SUBDEV_LOCK); mutex_lock(&g_isp_dev.isp_mutex); g_isp_dev.open_cnt++; mutex_unlock(&g_isp_dev.isp_mutex); cam_req_mgr_rwsem_read_op(CAM_SUBDEV_UNLOCK); return 0; } Loading
drivers/cam_jpeg/cam_jpeg_dev.c +2 −0 Original line number Diff line number Diff line Loading @@ -49,10 +49,12 @@ static const struct of_device_id cam_jpeg_dt_match[] = { static int cam_jpeg_subdev_open(struct v4l2_subdev *sd, struct v4l2_subdev_fh *fh) { cam_req_mgr_rwsem_read_op(CAM_SUBDEV_LOCK); mutex_lock(&g_jpeg_dev.jpeg_mutex); g_jpeg_dev.open_cnt++; mutex_unlock(&g_jpeg_dev.jpeg_mutex); cam_req_mgr_rwsem_read_op(CAM_SUBDEV_UNLOCK); return 0; } Loading