Commit b36bcbd6 authored by Robert Jarzmik's avatar Robert Jarzmik Committed by Mauro Carvalho Chehab

[media] media: platform: pxa_camera: introduce sensor_call

Introduce sensor_call(), which will be used for all sensor invocations.
This is a preparation move to v4l2 device conversion, ie. soc_camera
adherence removal.
Signed-off-by: default avatarRobert Jarzmik <robert.jarzmik@free.fr>
Signed-off-by: default avatarHans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@s-opensource.com>
parent 6f28435d
...@@ -168,6 +168,9 @@ ...@@ -168,6 +168,9 @@
CICR0_PERRM | CICR0_QDM | CICR0_CDM | CICR0_SOFM | \ CICR0_PERRM | CICR0_QDM | CICR0_CDM | CICR0_SOFM | \
CICR0_EOFM | CICR0_FOM) CICR0_EOFM | CICR0_FOM)
#define sensor_call(cam, o, f, args...) \
v4l2_subdev_call(sd, o, f, ##args)
/* /*
* Structures * Structures
*/ */
...@@ -731,7 +734,7 @@ static void pxa_camera_setup_cicr(struct soc_camera_device *icd, ...@@ -731,7 +734,7 @@ static void pxa_camera_setup_cicr(struct soc_camera_device *icd,
struct v4l2_subdev *sd = soc_camera_to_subdev(icd); struct v4l2_subdev *sd = soc_camera_to_subdev(icd);
unsigned long dw, bpp; unsigned long dw, bpp;
u32 cicr0, cicr1, cicr2, cicr3, cicr4 = 0, y_skip_top; u32 cicr0, cicr1, cicr2, cicr3, cicr4 = 0, y_skip_top;
int ret = v4l2_subdev_call(sd, sensor, g_skip_top_lines, &y_skip_top); int ret = sensor_call(pcdev, sensor, g_skip_top_lines, &y_skip_top);
if (ret < 0) if (ret < 0)
y_skip_top = 0; y_skip_top = 0;
...@@ -1073,7 +1076,7 @@ static int pxa_camera_set_bus_param(struct soc_camera_device *icd) ...@@ -1073,7 +1076,7 @@ static int pxa_camera_set_bus_param(struct soc_camera_device *icd)
if (ret < 0) if (ret < 0)
return ret; return ret;
ret = v4l2_subdev_call(sd, video, g_mbus_config, &cfg); ret = sensor_call(pcdev, video, g_mbus_config, &cfg);
if (!ret) { if (!ret) {
common_flags = soc_mbus_config_compatible(&cfg, common_flags = soc_mbus_config_compatible(&cfg,
bus_flags); bus_flags);
...@@ -1117,7 +1120,7 @@ static int pxa_camera_set_bus_param(struct soc_camera_device *icd) ...@@ -1117,7 +1120,7 @@ static int pxa_camera_set_bus_param(struct soc_camera_device *icd)
} }
cfg.flags = common_flags; cfg.flags = common_flags;
ret = v4l2_subdev_call(sd, video, s_mbus_config, &cfg); ret = sensor_call(pcdev, video, s_mbus_config, &cfg);
if (ret < 0 && ret != -ENOIOCTLCMD) { if (ret < 0 && ret != -ENOIOCTLCMD) {
dev_dbg(icd->parent, "camera s_mbus_config(0x%lx) returned %d\n", dev_dbg(icd->parent, "camera s_mbus_config(0x%lx) returned %d\n",
common_flags, ret); common_flags, ret);
...@@ -1144,7 +1147,7 @@ static int pxa_camera_try_bus_param(struct soc_camera_device *icd, ...@@ -1144,7 +1147,7 @@ static int pxa_camera_try_bus_param(struct soc_camera_device *icd,
if (ret < 0) if (ret < 0)
return ret; return ret;
ret = v4l2_subdev_call(sd, video, g_mbus_config, &cfg); ret = sensor_call(pcdev, video, g_mbus_config, &cfg);
if (!ret) { if (!ret) {
common_flags = soc_mbus_config_compatible(&cfg, common_flags = soc_mbus_config_compatible(&cfg,
bus_flags); bus_flags);
...@@ -1195,7 +1198,7 @@ static int pxa_camera_get_formats(struct soc_camera_device *icd, unsigned int id ...@@ -1195,7 +1198,7 @@ static int pxa_camera_get_formats(struct soc_camera_device *icd, unsigned int id
}; };
const struct soc_mbus_pixelfmt *fmt; const struct soc_mbus_pixelfmt *fmt;
ret = v4l2_subdev_call(sd, pad, enum_mbus_code, NULL, &code); ret = sensor_call(pcdev, pad, enum_mbus_code, NULL, &code);
if (ret < 0) if (ret < 0)
/* No more formats */ /* No more formats */
return 0; return 0;
...@@ -1303,7 +1306,7 @@ static int pxa_camera_set_selection(struct soc_camera_device *icd, ...@@ -1303,7 +1306,7 @@ static int pxa_camera_set_selection(struct soc_camera_device *icd,
if (pcdev->platform_flags & PXA_CAMERA_PCLK_EN) if (pcdev->platform_flags & PXA_CAMERA_PCLK_EN)
icd->sense = &sense; icd->sense = &sense;
ret = v4l2_subdev_call(sd, pad, set_selection, NULL, &sdsel); ret = sensor_call(pcdev, pad, set_selection, NULL, &sdsel);
icd->sense = NULL; icd->sense = NULL;
...@@ -1314,7 +1317,7 @@ static int pxa_camera_set_selection(struct soc_camera_device *icd, ...@@ -1314,7 +1317,7 @@ static int pxa_camera_set_selection(struct soc_camera_device *icd,
} }
sel->r = sdsel.r; sel->r = sdsel.r;
ret = v4l2_subdev_call(sd, pad, get_fmt, NULL, &fmt); ret = sensor_call(pcdev, pad, get_fmt, NULL, &fmt);
if (ret < 0) if (ret < 0)
return ret; return ret;
...@@ -1326,7 +1329,7 @@ static int pxa_camera_set_selection(struct soc_camera_device *icd, ...@@ -1326,7 +1329,7 @@ static int pxa_camera_set_selection(struct soc_camera_device *icd,
v4l_bound_align_image(&mf->width, 48, 2048, 1, v4l_bound_align_image(&mf->width, 48, 2048, 1,
&mf->height, 32, 2048, 0, &mf->height, 32, 2048, 0,
fourcc == V4L2_PIX_FMT_YUV422P ? 4 : 0); fourcc == V4L2_PIX_FMT_YUV422P ? 4 : 0);
ret = v4l2_subdev_call(sd, pad, set_fmt, NULL, &fmt); ret = sensor_call(pcdev, pad, set_fmt, NULL, &fmt);
if (ret < 0) if (ret < 0)
return ret; return ret;
...@@ -1391,7 +1394,7 @@ static int pxa_camera_set_fmt(struct soc_camera_device *icd, ...@@ -1391,7 +1394,7 @@ static int pxa_camera_set_fmt(struct soc_camera_device *icd,
mf->colorspace = pix->colorspace; mf->colorspace = pix->colorspace;
mf->code = xlate->code; mf->code = xlate->code;
ret = v4l2_subdev_call(sd, pad, set_fmt, NULL, &format); ret = sensor_call(pcdev, pad, set_fmt, NULL, &format);
if (mf->code != xlate->code) if (mf->code != xlate->code)
return -EINVAL; return -EINVAL;
...@@ -1466,7 +1469,7 @@ static int pxa_camera_try_fmt(struct soc_camera_device *icd, ...@@ -1466,7 +1469,7 @@ static int pxa_camera_try_fmt(struct soc_camera_device *icd,
mf->colorspace = pix->colorspace; mf->colorspace = pix->colorspace;
mf->code = xlate->code; mf->code = xlate->code;
ret = v4l2_subdev_call(sd, pad, set_fmt, &pad_cfg, &format); ret = sensor_call(pcdev, pad, set_fmt, &pad_cfg, &format);
if (ret < 0) if (ret < 0)
return ret; return ret;
...@@ -1524,7 +1527,7 @@ static int pxa_camera_suspend(struct device *dev) ...@@ -1524,7 +1527,7 @@ static int pxa_camera_suspend(struct device *dev)
if (pcdev->soc_host.icd) { if (pcdev->soc_host.icd) {
struct v4l2_subdev *sd = soc_camera_to_subdev(pcdev->soc_host.icd); struct v4l2_subdev *sd = soc_camera_to_subdev(pcdev->soc_host.icd);
ret = v4l2_subdev_call(sd, core, s_power, 0); ret = sensor_call(pcdev, core, s_power, 0);
if (ret == -ENOIOCTLCMD) if (ret == -ENOIOCTLCMD)
ret = 0; ret = 0;
} }
...@@ -1546,7 +1549,7 @@ static int pxa_camera_resume(struct device *dev) ...@@ -1546,7 +1549,7 @@ static int pxa_camera_resume(struct device *dev)
if (pcdev->soc_host.icd) { if (pcdev->soc_host.icd) {
struct v4l2_subdev *sd = soc_camera_to_subdev(pcdev->soc_host.icd); struct v4l2_subdev *sd = soc_camera_to_subdev(pcdev->soc_host.icd);
ret = v4l2_subdev_call(sd, core, s_power, 1); ret = sensor_call(pcdev, core, s_power, 1);
if (ret == -ENOIOCTLCMD) if (ret == -ENOIOCTLCMD)
ret = 0; ret = 0;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment