static long msm_csid_subdev_ioctl(struct v4l2_subdev *sd, unsigned int cmd, void *arg) { int rc = -ENOIOCTLCMD; struct csid_device *csid_dev = v4l2_get_subdevdata(sd); mutex_lock(&csid_dev->mutex); CDBG("%s:%d id %d\n", __func__, __LINE__, csid_dev->pdev->id); switch (cmd) { case VIDIOC_MSM_SENSOR_GET_SUBDEV_ID: rc = msm_csid_get_subdev_id(csid_dev, arg); break; case VIDIOC_MSM_CSID_IO_CFG: rc = msm_csid_cmd(csid_dev, arg); break; case VIDIOC_MSM_CSID_RELEASE: case MSM_SD_SHUTDOWN: rc = msm_csid_release(csid_dev); break; default: pr_err("%s: command not found\n", __func__); } CDBG("%s:%d\n", __func__, __LINE__); mutex_unlock(&csid_dev->mutex); return rc; }
static long msm_csid_subdev_ioctl(struct v4l2_subdev *sd, unsigned int cmd, void *arg) { int rc = -ENOIOCTLCMD; struct csid_device *csid_dev = v4l2_get_subdevdata(sd); mutex_lock(&csid_dev->mutex); switch (cmd) { case VIDIOC_MSM_CSID_CFG: rc = msm_csid_cmd(csid_dev, arg); break; case VIDIOC_MSM_CSID_RELEASE: rc = msm_csid_release(csid_dev, 0); break; default: pr_err("%s: command not found\n", __func__); } mutex_unlock(&csid_dev->mutex); return rc; }