Please help to see how to solve it。
Here is the main problem
ret = ioctl(mDev, VIDIOC_S_PARM, ¶m);
if (ret < 0) {
ALOGE("%s: VIDIOC_S_PARM Failed: %s", __func__, strerror(errno));
return ret;
}
error log
E FslCameraHAL: onDeviceConfigureLocked: VIDIOC_S_PARM Failed: Not a typewriter
E FslCameraHAL: handleConfigureLocked onDeviceConfigure failed
in the kernel
//vendor/nxp-opensource/kernel_imx/drivers/staging/media/imx/imx8-isi-cap.c
static int mxc_isi_cap_s_parm(struct file *file, void *fh,
struct v4l2_streamparm *a)
{
struct mxc_isi_cap_dev *isi_cap = video_drvdata(file);
struct v4l2_subdev *sd;
sd = mxc_get_remote_subdev(isi_cap, __func__);
if (!sd)
return -ENODEV;
return v4l2_s_parm_cap(video_devdata(file), sd, a);
}
Did not call nvp6324_s_parm。
The following three functions are called
.enum_frame_size = nvp6324_enum_framesizes,
.get_fmt = nvp6324_get_fmt,
.set_fmt = nvp6324_set_fmt,