Ejemplo n.º 1
0
/* config function simliar to origanl msm_ioctl_config*/
int msm_isp_config(struct msm_cam_media_controller *pmctl,
                   unsigned int cmd, unsigned long arg)
{

    int rc = -EINVAL;
    void __user *argp = (void __user *)arg;
    struct v4l2_subdev *sd;
    if (!pmctl->vfe_sdev) {
        pr_err("%s vfe subdev is NULL\n", __func__);
        return -ENXIO;
    }
    sd = pmctl->vfe_sdev;
    D("%s: cmd %d\n", __func__, _IOC_NR(cmd));
    switch (cmd) {
    case MSM_CAM_IOCTL_CONFIG_VFE:
        /* Coming from config thread for update */
        rc = msm_config_vfe(sd, pmctl, argp);
        break;

    case MSM_CAM_IOCTL_AXI_CONFIG:
#if	0//def F_PANTECH_CAMERA_DEADBEEF_ERROR_FIX
        D("Received MSM_CAM_IOCTL_AXI_CONFIG\n");
#else
        pr_err("%s: Received MSM_CAM_IOCTL_AXI_CONFIG\n", __func__);
#endif
        rc = msm_axi_config(sd, pmctl, argp);
        break;

    case MSM_CAM_IOCTL_RELEASE_STATS_BUFFER:
        rc = msm_put_stats_buffer(sd, pmctl, argp);
        break;

    case MSM_CAM_IOCTL_STATS_REQBUF:
    case MSM_CAM_IOCTL_STATS_ENQUEUEBUF:
    case MSM_CAM_IOCTL_STATS_FLUSH_BUFQ:
    case MSM_CAM_IOCTL_STATS_UNREG_BUF:
        rc = msm_vfe_stats_buf_ioctl(sd, cmd, pmctl, argp);
        break;

    default:
        break;
    }

    D("%s: cmd %d DONE\n", __func__, _IOC_NR(cmd));

    return rc;
}
Ejemplo n.º 2
0
/* config function simliar to origanl msm_ioctl_config*/
static int msm_isp_config(struct msm_cam_media_controller *pmctl,
			 unsigned int cmd, unsigned long arg)
{

	int rc = -EINVAL;
	void __user *argp = (void __user *)arg;
	struct v4l2_subdev *sd = pmctl->isp_sdev->sd;

	D("%s: cmd %d\n", __func__, _IOC_NR(cmd));
	switch (cmd) {
	case MSM_CAM_IOCTL_CONFIG_VFE:
		/* Coming from config thread for update */
		rc = msm_config_vfe(sd, pmctl, argp);
		break;

	case MSM_CAM_IOCTL_AXI_CONFIG:
		D("Received MSM_CAM_IOCTL_AXI_CONFIG\n");
		rc = msm_axi_config(sd, pmctl, argp);
		break;

	case MSM_CAM_IOCTL_RELEASE_STATS_BUFFER:
		rc = msm_put_stats_buffer(sd, pmctl, argp);
		break;

	case MSM_CAM_IOCTL_STATS_REQBUF:
	case MSM_CAM_IOCTL_STATS_ENQUEUEBUF:
	case MSM_CAM_IOCTL_STATS_FLUSH_BUFQ:
	case MSM_CAM_IOCTL_STATS_UNREG_BUF:
		rc = msm_vfe_stats_buf_ioctl(sd, cmd, pmctl, argp);
		break;

	default:
		break;
	}

	D("%s: cmd %d DONE\n", __func__, _IOC_NR(cmd));

	return rc;
}