|
@@ -943,22 +943,25 @@ static int mx2_camera_get_formats(struct soc_camera_device *icd,
|
|
|
struct v4l2_subdev *sd = soc_camera_to_subdev(icd);
|
|
|
const struct soc_mbus_pixelfmt *fmt;
|
|
|
struct device *dev = icd->parent;
|
|
|
- u32 code;
|
|
|
+ struct v4l2_subdev_mbus_code_enum code = {
|
|
|
+ .which = V4L2_SUBDEV_FORMAT_ACTIVE,
|
|
|
+ .index = idx,
|
|
|
+ };
|
|
|
int ret, formats = 0;
|
|
|
|
|
|
- ret = v4l2_subdev_call(sd, video, enum_mbus_fmt, idx, &code);
|
|
|
+ ret = v4l2_subdev_call(sd, pad, enum_mbus_code, NULL, &code);
|
|
|
if (ret < 0)
|
|
|
/* no more formats */
|
|
|
return 0;
|
|
|
|
|
|
- fmt = soc_mbus_get_fmtdesc(code);
|
|
|
+ fmt = soc_mbus_get_fmtdesc(code.code);
|
|
|
if (!fmt) {
|
|
|
- dev_err(dev, "Invalid format code #%u: %d\n", idx, code);
|
|
|
+ dev_err(dev, "Invalid format code #%u: %d\n", idx, code.code);
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
- if (code == MEDIA_BUS_FMT_YUYV8_2X8 ||
|
|
|
- code == MEDIA_BUS_FMT_UYVY8_2X8) {
|
|
|
+ if (code.code == MEDIA_BUS_FMT_YUYV8_2X8 ||
|
|
|
+ code.code == MEDIA_BUS_FMT_UYVY8_2X8) {
|
|
|
formats++;
|
|
|
if (xlate) {
|
|
|
/*
|
|
@@ -967,21 +970,21 @@ static int mx2_camera_get_formats(struct soc_camera_device *icd,
|
|
|
*/
|
|
|
xlate->host_fmt =
|
|
|
soc_mbus_get_fmtdesc(MEDIA_BUS_FMT_YUYV8_1_5X8);
|
|
|
- xlate->code = code;
|
|
|
+ xlate->code = code.code;
|
|
|
dev_dbg(dev, "Providing host format %s for sensor code %d\n",
|
|
|
- xlate->host_fmt->name, code);
|
|
|
+ xlate->host_fmt->name, code.code);
|
|
|
xlate++;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- if (code == MEDIA_BUS_FMT_UYVY8_2X8) {
|
|
|
+ if (code.code == MEDIA_BUS_FMT_UYVY8_2X8) {
|
|
|
formats++;
|
|
|
if (xlate) {
|
|
|
xlate->host_fmt =
|
|
|
soc_mbus_get_fmtdesc(MEDIA_BUS_FMT_YUYV8_2X8);
|
|
|
- xlate->code = code;
|
|
|
+ xlate->code = code.code;
|
|
|
dev_dbg(dev, "Providing host format %s for sensor code %d\n",
|
|
|
- xlate->host_fmt->name, code);
|
|
|
+ xlate->host_fmt->name, code.code);
|
|
|
xlate++;
|
|
|
}
|
|
|
}
|
|
@@ -990,7 +993,7 @@ static int mx2_camera_get_formats(struct soc_camera_device *icd,
|
|
|
formats++;
|
|
|
if (xlate) {
|
|
|
xlate->host_fmt = fmt;
|
|
|
- xlate->code = code;
|
|
|
+ xlate->code = code.code;
|
|
|
xlate++;
|
|
|
}
|
|
|
return formats;
|