aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLukasz Majczak <lmajczak@google.com>2021-07-28 14:39:08 +0200
committerGoogle Cont Rebase <goog-rebase-dev@semihalf.com>2021-08-17 14:25:29 +0200
commite56ec43c5d29d49e540a3883be0a5d2ffa441103 (patch)
tree48d9de6f2bc155faa82d530acda2cbdba66ca5ce
parent2331db3a85ce59194e2af2f127b87f22cdb8b3a3 (diff)
downloadchromeos-e56ec43c5d29d49e540a3883be0a5d2ffa441103.tar.gz
FIXUP:media: v4l2-subdev: add subdev-wide state struct
Change-Id: Iccec7404f786a42c278fb0c4614f51ebe8bdbe95
-rw-r--r--drivers/media/pci/intel/ipu-isys-csi2-be-soc.c18
-rw-r--r--drivers/media/pci/intel/ipu-isys-csi2-be.c22
-rw-r--r--drivers/media/pci/intel/ipu-isys-csi2.c14
-rw-r--r--drivers/media/pci/intel/ipu-isys-subdev.c77
-rw-r--r--drivers/media/pci/intel/ipu-isys-subdev.h23
-rw-r--r--drivers/media/platform/mtk-isp/isp_50/dip/mtk_dip-v4l2.c20
-rw-r--r--drivers/media/platform/mtk-isp/isp_50/seninf/mtk_seninf.c14
7 files changed, 93 insertions, 95 deletions
diff --git a/drivers/media/pci/intel/ipu-isys-csi2-be-soc.c b/drivers/media/pci/intel/ipu-isys-csi2-be-soc.c
index daaed97d1b137..ef381facb5ba6 100644
--- a/drivers/media/pci/intel/ipu-isys-csi2-be-soc.c
+++ b/drivers/media/pci/intel/ipu-isys-csi2-be-soc.c
@@ -116,7 +116,7 @@ __subdev_link_validate(struct v4l2_subdev *sd, struct media_link *link,
static int
ipu_isys_csi2_be_soc_set_sel(struct v4l2_subdev *sd,
- struct v4l2_subdev_pad_config *cfg,
+ struct v4l2_subdev_state *state,
struct v4l2_subdev_selection *sel)
{
struct ipu_isys_subdev *asd = to_ipu_isys_subdev(sd);
@@ -128,7 +128,7 @@ ipu_isys_csi2_be_soc_set_sel(struct v4l2_subdev *sd,
enum isys_subdev_prop_tgt tgt =
IPU_ISYS_SUBDEV_PROP_TGT_SOURCE_CROP;
struct v4l2_mbus_framefmt *ffmt =
- __ipu_isys_get_ffmt(sd, cfg, sel->pad, sel->which);
+ __ipu_isys_get_ffmt(sd, state, sel->pad, sel->which);
if (get_supported_code_index(ffmt->code) < 0) {
/* Non-bayer formats can't be odd lines cropped */
@@ -142,9 +142,9 @@ ipu_isys_csi2_be_soc_set_sel(struct v4l2_subdev *sd,
sel->r.height = clamp(sel->r.height, IPU_ISYS_MIN_HEIGHT,
IPU_ISYS_MAX_HEIGHT);
- *__ipu_isys_get_selection(sd, cfg, sel->target, sel->pad,
+ *__ipu_isys_get_selection(sd, state, sel->target, sel->pad,
sel->which) = sel->r;
- ipu_isys_subdev_fmt_propagate(sd, cfg, NULL, &sel->r,
+ ipu_isys_subdev_fmt_propagate(sd, state, NULL, &sel->r,
tgt, sel->pad, sel->which);
return 0;
}
@@ -171,11 +171,11 @@ static struct media_entity_operations csi2_be_soc_entity_ops = {
};
static void csi2_be_soc_set_ffmt(struct v4l2_subdev *sd,
- struct v4l2_subdev_pad_config *cfg,
+ struct v4l2_subdev_state *state,
struct v4l2_subdev_format *fmt)
{
struct v4l2_mbus_framefmt *ffmt =
- __ipu_isys_get_ffmt(sd, cfg, fmt->pad,
+ __ipu_isys_get_ffmt(sd, state, fmt->pad,
fmt->which);
if (sd->entity.pads[fmt->pad].flags & MEDIA_PAD_FL_SINK) {
@@ -183,19 +183,19 @@ static void csi2_be_soc_set_ffmt(struct v4l2_subdev *sd,
fmt->format.field = V4L2_FIELD_NONE;
*ffmt = fmt->format;
- ipu_isys_subdev_fmt_propagate(sd, cfg, &fmt->format,
+ ipu_isys_subdev_fmt_propagate(sd, state, &fmt->format,
NULL,
IPU_ISYS_SUBDEV_PROP_TGT_SINK_FMT,
fmt->pad, fmt->which);
} else if (sd->entity.pads[fmt->pad].flags & MEDIA_PAD_FL_SOURCE) {
struct v4l2_mbus_framefmt *sink_ffmt;
- struct v4l2_rect *r = __ipu_isys_get_selection(sd, cfg,
+ struct v4l2_rect *r = __ipu_isys_get_selection(sd, state,
V4L2_SEL_TGT_CROP, fmt->pad, fmt->which);
struct ipu_isys_subdev *asd = to_ipu_isys_subdev(sd);
u32 code;
int idx;
- sink_ffmt = __ipu_isys_get_ffmt(sd, cfg, 0, fmt->which);
+ sink_ffmt = __ipu_isys_get_ffmt(sd, state, 0, fmt->which);
code = sink_ffmt->code;
idx = get_supported_code_index(code);
diff --git a/drivers/media/pci/intel/ipu-isys-csi2-be.c b/drivers/media/pci/intel/ipu-isys-csi2-be.c
index 99ceb607fedad..61a22e416d07d 100644
--- a/drivers/media/pci/intel/ipu-isys-csi2-be.c
+++ b/drivers/media/pci/intel/ipu-isys-csi2-be.c
@@ -93,7 +93,7 @@ static int get_supported_code_index(u32 code)
}
static int ipu_isys_csi2_be_set_sel(struct v4l2_subdev *sd,
- struct v4l2_subdev_pad_config *cfg,
+ struct v4l2_subdev_state *state,
struct v4l2_subdev_selection *sel)
{
struct ipu_isys_subdev *asd = to_ipu_isys_subdev(sd);
@@ -103,9 +103,9 @@ static int ipu_isys_csi2_be_set_sel(struct v4l2_subdev *sd,
pad->flags & MEDIA_PAD_FL_SOURCE &&
asd->valid_tgts[CSI2_BE_PAD_SOURCE].crop) {
struct v4l2_mbus_framefmt *ffmt =
- __ipu_isys_get_ffmt(sd, cfg, sel->pad, sel->which);
+ __ipu_isys_get_ffmt(sd, state, sel->pad, sel->which);
struct v4l2_rect *r = __ipu_isys_get_selection
- (sd, cfg, sel->target, CSI2_BE_PAD_SINK, sel->which);
+ (sd, state, sel->target, CSI2_BE_PAD_SINK, sel->which);
if (get_supported_code_index(ffmt->code) < 0) {
/* Non-bayer formats can't be single line cropped */
@@ -127,15 +127,15 @@ static int ipu_isys_csi2_be_set_sel(struct v4l2_subdev *sd,
*/
sel->r.height = clamp(sel->r.height, IPU_ISYS_MIN_HEIGHT,
r->height);
- *__ipu_isys_get_selection(sd, cfg, sel->target, sel->pad,
+ *__ipu_isys_get_selection(sd, state, sel->target, sel->pad,
sel->which) = sel->r;
ipu_isys_subdev_fmt_propagate
- (sd, cfg, NULL, &sel->r,
+ (sd, state, NULL, &sel->r,
IPU_ISYS_SUBDEV_PROP_TGT_SOURCE_CROP,
sel->pad, sel->which);
return 0;
}
- return ipu_isys_subdev_set_sel(sd, cfg, sel);
+ return ipu_isys_subdev_set_sel(sd, state, sel);
}
static const struct v4l2_subdev_pad_ops csi2_be_sd_pad_ops = {
@@ -158,12 +158,12 @@ static struct media_entity_operations csi2_be_entity_ops = {
};
static void csi2_be_set_ffmt(struct v4l2_subdev *sd,
- struct v4l2_subdev_pad_config *cfg,
+ struct v4l2_subdev_state *state,
struct v4l2_subdev_format *fmt)
{
struct ipu_isys_csi2 *csi2 = to_ipu_isys_csi2(sd);
struct v4l2_mbus_framefmt *ffmt =
- __ipu_isys_get_ffmt(sd, cfg, fmt->pad, fmt->which);
+ __ipu_isys_get_ffmt(sd, state, fmt->pad, fmt->which);
switch (fmt->pad) {
case CSI2_BE_PAD_SINK:
@@ -172,15 +172,15 @@ static void csi2_be_set_ffmt(struct v4l2_subdev *sd,
*ffmt = fmt->format;
ipu_isys_subdev_fmt_propagate
- (sd, cfg, &fmt->format, NULL,
+ (sd, state, &fmt->format, NULL,
IPU_ISYS_SUBDEV_PROP_TGT_SINK_FMT, fmt->pad, fmt->which);
return;
case CSI2_BE_PAD_SOURCE: {
struct v4l2_mbus_framefmt *sink_ffmt =
- __ipu_isys_get_ffmt(sd, cfg, CSI2_BE_PAD_SINK,
+ __ipu_isys_get_ffmt(sd, state, CSI2_BE_PAD_SINK,
fmt->which);
struct v4l2_rect *r =
- __ipu_isys_get_selection(sd, cfg, V4L2_SEL_TGT_CROP,
+ __ipu_isys_get_selection(sd, state, V4L2_SEL_TGT_CROP,
CSI2_BE_PAD_SOURCE,
fmt->which);
struct ipu_isys_subdev *asd = to_ipu_isys_subdev(sd);
diff --git a/drivers/media/pci/intel/ipu-isys-csi2.c b/drivers/media/pci/intel/ipu-isys-csi2.c
index 4437e1bf88b2d..d202fa6fb9ca8 100644
--- a/drivers/media/pci/intel/ipu-isys-csi2.c
+++ b/drivers/media/pci/intel/ipu-isys-csi2.c
@@ -314,17 +314,17 @@ static const struct v4l2_subdev_video_ops csi2_sd_video_ops = {
};
static int ipu_isys_csi2_get_fmt(struct v4l2_subdev *sd,
- struct v4l2_subdev_pad_config *cfg,
+ struct v4l2_subdev_state *state,
struct v4l2_subdev_format *fmt)
{
- return ipu_isys_subdev_get_ffmt(sd, cfg, fmt);
+ return ipu_isys_subdev_get_ffmt(sd, state, fmt);
}
static int ipu_isys_csi2_set_fmt(struct v4l2_subdev *sd,
- struct v4l2_subdev_pad_config *cfg,
+ struct v4l2_subdev_state *state,
struct v4l2_subdev_format *fmt)
{
- return ipu_isys_subdev_set_ffmt(sd, cfg, fmt);
+ return ipu_isys_subdev_set_ffmt(sd, state, fmt);
}
static int __subdev_link_validate(struct v4l2_subdev *sd,
@@ -360,12 +360,12 @@ static struct media_entity_operations csi2_entity_ops = {
};
static void csi2_set_ffmt(struct v4l2_subdev *sd,
- struct v4l2_subdev_pad_config *cfg,
+ struct v4l2_subdev_state *state,
struct v4l2_subdev_format *fmt)
{
enum isys_subdev_prop_tgt tgt = IPU_ISYS_SUBDEV_PROP_TGT_SINK_FMT;
struct v4l2_mbus_framefmt *ffmt =
- __ipu_isys_get_ffmt(sd, cfg, fmt->pad,
+ __ipu_isys_get_ffmt(sd, state, fmt->pad,
fmt->which);
if (fmt->format.field != V4L2_FIELD_ALTERNATE)
@@ -373,7 +373,7 @@ static void csi2_set_ffmt(struct v4l2_subdev *sd,
if (fmt->pad == CSI2_PAD_SINK) {
*ffmt = fmt->format;
- ipu_isys_subdev_fmt_propagate(sd, cfg, &fmt->format, NULL,
+ ipu_isys_subdev_fmt_propagate(sd, state, &fmt->format, NULL,
tgt, fmt->pad, fmt->which);
return;
}
diff --git a/drivers/media/pci/intel/ipu-isys-subdev.c b/drivers/media/pci/intel/ipu-isys-subdev.c
index 71a5fa592d446..68c4a8492a165 100644
--- a/drivers/media/pci/intel/ipu-isys-subdev.c
+++ b/drivers/media/pci/intel/ipu-isys-subdev.c
@@ -134,8 +134,7 @@ u32 ipu_isys_subdev_code_to_uncompressed(u32 sink_code)
}
struct v4l2_mbus_framefmt *__ipu_isys_get_ffmt(struct v4l2_subdev *sd,
- struct v4l2_subdev_pad_config
- *cfg,
+ struct v4l2_subdev_state *state,
unsigned int pad,
unsigned int which)
{
@@ -144,11 +143,11 @@ struct v4l2_mbus_framefmt *__ipu_isys_get_ffmt(struct v4l2_subdev *sd,
if (which == V4L2_SUBDEV_FORMAT_ACTIVE)
return &asd->ffmt[pad];
else
- return v4l2_subdev_get_try_format(sd, cfg, pad);
+ return v4l2_subdev_get_try_format(sd, state, pad);
}
struct v4l2_rect *__ipu_isys_get_selection(struct v4l2_subdev *sd,
- struct v4l2_subdev_pad_config *cfg,
+ struct v4l2_subdev_state *state,
unsigned int target,
unsigned int pad, unsigned int which)
{
@@ -164,9 +163,9 @@ struct v4l2_rect *__ipu_isys_get_selection(struct v4l2_subdev *sd,
} else {
switch (target) {
case V4L2_SEL_TGT_CROP:
- return v4l2_subdev_get_try_crop(sd, cfg, pad);
+ return v4l2_subdev_get_try_crop(sd, state, pad);
case V4L2_SEL_TGT_COMPOSE:
- return v4l2_subdev_get_try_compose(sd, cfg, pad);
+ return v4l2_subdev_get_try_compose(sd, state, pad);
}
}
WARN_ON(1);
@@ -189,7 +188,7 @@ static int target_valid(struct v4l2_subdev *sd, unsigned int target,
}
int ipu_isys_subdev_fmt_propagate(struct v4l2_subdev *sd,
- struct v4l2_subdev_pad_config *cfg,
+ struct v4l2_subdev_state *state,
struct v4l2_mbus_framefmt *ffmt,
struct v4l2_rect *r,
enum isys_subdev_prop_tgt tgt,
@@ -228,10 +227,10 @@ int ipu_isys_subdev_fmt_propagate(struct v4l2_subdev *sd,
}
for (i = 0; i < sd->entity.num_pads; i++) {
- ffmts[i] = __ipu_isys_get_ffmt(sd, cfg, i, which);
- crops[i] = __ipu_isys_get_selection(sd, cfg, V4L2_SEL_TGT_CROP,
+ ffmts[i] = __ipu_isys_get_ffmt(sd, state, i, which);
+ crops[i] = __ipu_isys_get_selection(sd, state, V4L2_SEL_TGT_CROP,
i, which);
- compose[i] = __ipu_isys_get_selection(sd, cfg,
+ compose[i] = __ipu_isys_get_selection(sd, state,
V4L2_SEL_TGT_COMPOSE,
i, which);
}
@@ -242,7 +241,7 @@ int ipu_isys_subdev_fmt_propagate(struct v4l2_subdev *sd,
crops[pad]->top = 0;
crops[pad]->width = ffmt->width;
crops[pad]->height = ffmt->height;
- rval = ipu_isys_subdev_fmt_propagate(sd, cfg, ffmt, crops[pad],
+ rval = ipu_isys_subdev_fmt_propagate(sd, state, ffmt, crops[pad],
tgt + 1, pad, which);
goto out_subdev_fmt_propagate;
case IPU_ISYS_SUBDEV_PROP_TGT_SINK_CROP:
@@ -253,7 +252,7 @@ int ipu_isys_subdev_fmt_propagate(struct v4l2_subdev *sd,
compose[pad]->top = 0;
compose[pad]->width = r->width;
compose[pad]->height = r->height;
- rval = ipu_isys_subdev_fmt_propagate(sd, cfg, ffmt,
+ rval = ipu_isys_subdev_fmt_propagate(sd, state, ffmt,
compose[pad], tgt + 1,
pad, which);
goto out_subdev_fmt_propagate;
@@ -272,7 +271,7 @@ int ipu_isys_subdev_fmt_propagate(struct v4l2_subdev *sd,
compose[i]->top = 0;
compose[i]->width = r->width;
compose[i]->height = r->height;
- rval = ipu_isys_subdev_fmt_propagate(sd, cfg,
+ rval = ipu_isys_subdev_fmt_propagate(sd, state,
ffmt,
compose[i],
tgt + 1, i,
@@ -291,7 +290,7 @@ int ipu_isys_subdev_fmt_propagate(struct v4l2_subdev *sd,
crops[pad]->top = 0;
crops[pad]->width = r->width;
crops[pad]->height = r->height;
- rval = ipu_isys_subdev_fmt_propagate(sd, cfg, ffmt,
+ rval = ipu_isys_subdev_fmt_propagate(sd, state, ffmt,
crops[pad], tgt + 1,
pad, which);
goto out_subdev_fmt_propagate;
@@ -313,7 +312,7 @@ int ipu_isys_subdev_fmt_propagate(struct v4l2_subdev *sd,
},
};
- asd->set_ffmt(sd, cfg, &fmt);
+ asd->set_ffmt(sd, state, &fmt);
goto out_subdev_fmt_propagate;
}
}
@@ -326,16 +325,16 @@ out_subdev_fmt_propagate:
}
int ipu_isys_subdev_set_ffmt_default(struct v4l2_subdev *sd,
- struct v4l2_subdev_pad_config *cfg,
+ struct v4l2_subdev_state *state,
struct v4l2_subdev_format *fmt)
{
struct v4l2_mbus_framefmt *ffmt =
- __ipu_isys_get_ffmt(sd, cfg, fmt->pad, fmt->which);
+ __ipu_isys_get_ffmt(sd, state, fmt->pad, fmt->which);
/* No propagation for non-zero pads. */
if (fmt->pad) {
struct v4l2_mbus_framefmt *sink_ffmt =
- __ipu_isys_get_ffmt(sd, cfg, 0, fmt->which);
+ __ipu_isys_get_ffmt(sd, state, 0, fmt->which);
ffmt->width = sink_ffmt->width;
ffmt->height = sink_ffmt->height;
@@ -350,18 +349,18 @@ int ipu_isys_subdev_set_ffmt_default(struct v4l2_subdev *sd,
ffmt->code = fmt->format.code;
ffmt->field = fmt->format.field;
- return ipu_isys_subdev_fmt_propagate(sd, cfg, &fmt->format, NULL,
+ return ipu_isys_subdev_fmt_propagate(sd, state, &fmt->format, NULL,
IPU_ISYS_SUBDEV_PROP_TGT_SINK_FMT,
fmt->pad, fmt->which);
}
int __ipu_isys_subdev_set_ffmt(struct v4l2_subdev *sd,
- struct v4l2_subdev_pad_config *cfg,
+ struct v4l2_subdev_state *state,
struct v4l2_subdev_format *fmt)
{
struct ipu_isys_subdev *asd = to_ipu_isys_subdev(sd);
struct v4l2_mbus_framefmt *ffmt =
- __ipu_isys_get_ffmt(sd, cfg, fmt->pad, fmt->which);
+ __ipu_isys_get_ffmt(sd, state, fmt->pad, fmt->which);
u32 code = asd->supported_codes[fmt->pad][0];
unsigned int i;
@@ -381,7 +380,7 @@ int __ipu_isys_subdev_set_ffmt(struct v4l2_subdev *sd,
fmt->format.code = code;
- asd->set_ffmt(sd, cfg, fmt);
+ asd->set_ffmt(sd, state, fmt);
fmt->format = *ffmt;
@@ -389,27 +388,27 @@ int __ipu_isys_subdev_set_ffmt(struct v4l2_subdev *sd,
}
int ipu_isys_subdev_set_ffmt(struct v4l2_subdev *sd,
- struct v4l2_subdev_pad_config *cfg,
+ struct v4l2_subdev_state *state,
struct v4l2_subdev_format *fmt)
{
struct ipu_isys_subdev *asd = to_ipu_isys_subdev(sd);
int rval;
mutex_lock(&asd->mutex);
- rval = __ipu_isys_subdev_set_ffmt(sd, cfg, fmt);
+ rval = __ipu_isys_subdev_set_ffmt(sd, state, fmt);
mutex_unlock(&asd->mutex);
return rval;
}
int ipu_isys_subdev_get_ffmt(struct v4l2_subdev *sd,
- struct v4l2_subdev_pad_config *cfg,
+ struct v4l2_subdev_state *state,
struct v4l2_subdev_format *fmt)
{
struct ipu_isys_subdev *asd = to_ipu_isys_subdev(sd);
mutex_lock(&asd->mutex);
- fmt->format = *__ipu_isys_get_ffmt(sd, cfg, fmt->pad,
+ fmt->format = *__ipu_isys_get_ffmt(sd, state, fmt->pad,
fmt->which);
mutex_unlock(&asd->mutex);
@@ -417,7 +416,7 @@ int ipu_isys_subdev_get_ffmt(struct v4l2_subdev *sd,
}
int ipu_isys_subdev_set_sel(struct v4l2_subdev *sd,
- struct v4l2_subdev_pad_config *cfg,
+ struct v4l2_subdev_state *state,
struct v4l2_subdev_selection *sel)
{
struct ipu_isys_subdev *asd = to_ipu_isys_subdev(sd);
@@ -432,7 +431,7 @@ int ipu_isys_subdev_set_sel(struct v4l2_subdev *sd,
case V4L2_SEL_TGT_CROP:
if (pad->flags & MEDIA_PAD_FL_SINK) {
struct v4l2_mbus_framefmt *ffmt =
- __ipu_isys_get_ffmt(sd, cfg, sel->pad,
+ __ipu_isys_get_ffmt(sd, state, sel->pad,
sel->which);
__r.width = ffmt->width;
@@ -441,7 +440,7 @@ int ipu_isys_subdev_set_sel(struct v4l2_subdev *sd,
tgt = IPU_ISYS_SUBDEV_PROP_TGT_SINK_CROP;
} else {
/* 0 is the sink pad. */
- r = __ipu_isys_get_selection(sd, cfg, sel->target, 0,
+ r = __ipu_isys_get_selection(sd, state, sel->target, 0,
sel->which);
tgt = IPU_ISYS_SUBDEV_PROP_TGT_SOURCE_CROP;
}
@@ -449,11 +448,11 @@ int ipu_isys_subdev_set_sel(struct v4l2_subdev *sd,
break;
case V4L2_SEL_TGT_COMPOSE:
if (pad->flags & MEDIA_PAD_FL_SINK) {
- r = __ipu_isys_get_selection(sd, cfg, V4L2_SEL_TGT_CROP,
+ r = __ipu_isys_get_selection(sd, state, V4L2_SEL_TGT_CROP,
sel->pad, sel->which);
tgt = IPU_ISYS_SUBDEV_PROP_TGT_SINK_COMPOSE;
} else {
- r = __ipu_isys_get_selection(sd, cfg,
+ r = __ipu_isys_get_selection(sd, state,
V4L2_SEL_TGT_COMPOSE, 0,
sel->which);
tgt = IPU_ISYS_SUBDEV_PROP_TGT_SOURCE_COMPOSE;
@@ -465,27 +464,27 @@ int ipu_isys_subdev_set_sel(struct v4l2_subdev *sd,
sel->r.width = clamp(sel->r.width, IPU_ISYS_MIN_WIDTH, r->width);
sel->r.height = clamp(sel->r.height, IPU_ISYS_MIN_HEIGHT, r->height);
- *__ipu_isys_get_selection(sd, cfg, sel->target, sel->pad,
+ *__ipu_isys_get_selection(sd, state, sel->target, sel->pad,
sel->which) = sel->r;
- return ipu_isys_subdev_fmt_propagate(sd, cfg, NULL, &sel->r, tgt,
+ return ipu_isys_subdev_fmt_propagate(sd, state, NULL, &sel->r, tgt,
sel->pad, sel->which);
}
int ipu_isys_subdev_get_sel(struct v4l2_subdev *sd,
- struct v4l2_subdev_pad_config *cfg,
+ struct v4l2_subdev_state *state,
struct v4l2_subdev_selection *sel)
{
if (!target_valid(sd, sel->target, sel->pad))
return -EINVAL;
- sel->r = *__ipu_isys_get_selection(sd, cfg, sel->target,
+ sel->r = *__ipu_isys_get_selection(sd, state, sel->target,
sel->pad, sel->which);
return 0;
}
int ipu_isys_subdev_enum_mbus_code(struct v4l2_subdev *sd,
- struct v4l2_subdev_pad_config *cfg,
+ struct v4l2_subdev_state *state,
struct v4l2_subdev_mbus_code_enum *code)
{
struct ipu_isys_subdev *asd = to_ipu_isys_subdev(sd);
@@ -555,11 +554,11 @@ int ipu_isys_subdev_open(struct v4l2_subdev *sd, struct v4l2_subdev_fh *fh)
for (i = 0; i < asd->sd.entity.num_pads; i++) {
struct v4l2_mbus_framefmt *try_fmt =
- v4l2_subdev_get_try_format(sd, fh->pad, i);
+ v4l2_subdev_get_try_format(sd, fh->state, i);
struct v4l2_rect *try_crop =
- v4l2_subdev_get_try_crop(sd, fh->pad, i);
+ v4l2_subdev_get_try_crop(sd, fh->state, i);
struct v4l2_rect *try_compose =
- v4l2_subdev_get_try_compose(sd, fh->pad, i);
+ v4l2_subdev_get_try_compose(sd, fh->state, i);
*try_fmt = asd->ffmt[i];
*try_crop = asd->crop[i];
diff --git a/drivers/media/pci/intel/ipu-isys-subdev.h b/drivers/media/pci/intel/ipu-isys-subdev.h
index 35eb9d1d3cb73..d16d95670f992 100644
--- a/drivers/media/pci/intel/ipu-isys-subdev.h
+++ b/drivers/media/pci/intel/ipu-isys-subdev.h
@@ -75,7 +75,7 @@ struct ipu_isys_subdev {
struct v4l2_ctrl_handler ctrl_handler;
void (*ctrl_init)(struct v4l2_subdev *sd);
void (*set_ffmt)(struct v4l2_subdev *sd,
- struct v4l2_subdev_pad_config *cfg,
+ struct v4l2_subdev_state *state,
struct v4l2_subdev_format *fmt);
struct {
bool crop;
@@ -90,8 +90,7 @@ struct ipu_isys_subdev {
container_of(__sd, struct ipu_isys_subdev, sd)
struct v4l2_mbus_framefmt *__ipu_isys_get_ffmt(struct v4l2_subdev *sd,
- struct v4l2_subdev_pad_config
- *cfg,
+ struct v4l2_subdev_state *state,
unsigned int pad,
unsigned int which);
@@ -102,37 +101,37 @@ u32 ipu_isys_subdev_code_to_uncompressed(u32 sink_code);
enum ipu_isys_subdev_pixelorder ipu_isys_subdev_get_pixelorder(u32 code);
int ipu_isys_subdev_fmt_propagate(struct v4l2_subdev *sd,
- struct v4l2_subdev_pad_config *cfg,
+ struct v4l2_subdev_state *state,
struct v4l2_mbus_framefmt *ffmt,
struct v4l2_rect *r,
enum isys_subdev_prop_tgt tgt,
unsigned int pad, unsigned int which);
int ipu_isys_subdev_set_ffmt_default(struct v4l2_subdev *sd,
- struct v4l2_subdev_pad_config *cfg,
+ struct v4l2_subdev_state *state,
struct v4l2_subdev_format *fmt);
int __ipu_isys_subdev_set_ffmt(struct v4l2_subdev *sd,
- struct v4l2_subdev_pad_config *cfg,
+ struct v4l2_subdev_state *state,
struct v4l2_subdev_format *fmt);
struct v4l2_rect *__ipu_isys_get_selection(struct v4l2_subdev *sd,
- struct v4l2_subdev_pad_config *cfg,
+ struct v4l2_subdev_state *state,
unsigned int target,
unsigned int pad,
unsigned int which);
int ipu_isys_subdev_set_ffmt(struct v4l2_subdev *sd,
- struct v4l2_subdev_pad_config *cfg,
+ struct v4l2_subdev_state *state,
struct v4l2_subdev_format *fmt);
int ipu_isys_subdev_get_ffmt(struct v4l2_subdev *sd,
- struct v4l2_subdev_pad_config *cfg,
+ struct v4l2_subdev_state *state,
struct v4l2_subdev_format *fmt);
int ipu_isys_subdev_get_sel(struct v4l2_subdev *sd,
- struct v4l2_subdev_pad_config *cfg,
+ struct v4l2_subdev_state *state,
struct v4l2_subdev_selection *sel);
int ipu_isys_subdev_set_sel(struct v4l2_subdev *sd,
- struct v4l2_subdev_pad_config *cfg,
+ struct v4l2_subdev_state *state,
struct v4l2_subdev_selection *sel);
int ipu_isys_subdev_enum_mbus_code(struct v4l2_subdev *sd,
- struct v4l2_subdev_pad_config *cfg,
+ struct v4l2_subdev_state *state,
struct v4l2_subdev_mbus_code_enum
*code);
int ipu_isys_subdev_link_validate(struct v4l2_subdev *sd,
diff --git a/drivers/media/platform/mtk-isp/isp_50/dip/mtk_dip-v4l2.c b/drivers/media/platform/mtk-isp/isp_50/dip/mtk_dip-v4l2.c
index 232c45ff5f90c..be5a9d0aac00d 100644
--- a/drivers/media/platform/mtk-isp/isp_50/dip/mtk_dip-v4l2.c
+++ b/drivers/media/platform/mtk-isp/isp_50/dip/mtk_dip-v4l2.c
@@ -28,9 +28,9 @@ static int mtk_dip_subdev_open(struct v4l2_subdev *sd,
struct mtk_dip_pipe *pipe = mtk_dip_subdev_to_pipe(sd);
for (i = 0; i < pipe->desc->total_queues; i++) {
- *v4l2_subdev_get_try_format(&pipe->subdev, fh->pad, i) =
+ *v4l2_subdev_get_try_format(&pipe->subdev, fh->state, i) =
pipe->nodes[i].pad_fmt;
- *v4l2_subdev_get_try_crop(&pipe->subdev, fh->pad, i) =
+ *v4l2_subdev_get_try_crop(&pipe->subdev, fh->state, i) =
pipe->nodes[i].crop;
}
@@ -61,7 +61,7 @@ static int mtk_dip_subdev_s_stream(struct v4l2_subdev *sd,
}
static int mtk_dip_subdev_get_fmt(struct v4l2_subdev *sd,
- struct v4l2_subdev_pad_config *cfg,
+ struct v4l2_subdev_state *state,
struct v4l2_subdev_format *fmt)
{
struct mtk_dip_pipe *dip_pipe = mtk_dip_subdev_to_pipe(sd);
@@ -74,7 +74,7 @@ static int mtk_dip_subdev_get_fmt(struct v4l2_subdev *sd,
if (fmt->which == V4L2_SUBDEV_FORMAT_ACTIVE) {
fmt->format = dip_pipe->nodes[pad].pad_fmt;
} else {
- mf = v4l2_subdev_get_try_format(sd, cfg, pad);
+ mf = v4l2_subdev_get_try_format(sd, state, pad);
fmt->format = *mf;
}
@@ -82,7 +82,7 @@ static int mtk_dip_subdev_get_fmt(struct v4l2_subdev *sd,
}
static int mtk_dip_subdev_set_fmt(struct v4l2_subdev *sd,
- struct v4l2_subdev_pad_config *cfg,
+ struct v4l2_subdev_state *state,
struct v4l2_subdev_format *fmt)
{
struct mtk_dip_pipe *dip_pipe = mtk_dip_subdev_to_pipe(sd);
@@ -94,7 +94,7 @@ static int mtk_dip_subdev_set_fmt(struct v4l2_subdev *sd,
return -EINVAL;
if (fmt->which == V4L2_SUBDEV_FORMAT_TRY)
- mf = v4l2_subdev_get_try_format(sd, cfg, pad);
+ mf = v4l2_subdev_get_try_format(sd, state, pad);
else
mf = &dip_pipe->nodes[pad].pad_fmt;
@@ -114,7 +114,7 @@ static int mtk_dip_subdev_set_fmt(struct v4l2_subdev *sd,
}
static int mtk_dip_subdev_get_selection(struct v4l2_subdev *sd,
- struct v4l2_subdev_pad_config *cfg,
+ struct v4l2_subdev_state *state,
struct v4l2_subdev_selection *sel)
{
struct v4l2_rect *try_sel, *r;
@@ -130,7 +130,7 @@ static int mtk_dip_subdev_get_selection(struct v4l2_subdev *sd,
switch (sel->target) {
case V4L2_SEL_TGT_CROP:
- try_sel = v4l2_subdev_get_try_crop(sd, cfg, sel->pad);
+ try_sel = v4l2_subdev_get_try_crop(sd, state, sel->pad);
r = &dip_pipe->nodes[sel->pad].crop; /* effective resolution */
break;
default:
@@ -150,7 +150,7 @@ static int mtk_dip_subdev_get_selection(struct v4l2_subdev *sd,
}
static int mtk_dip_subdev_set_selection(struct v4l2_subdev *sd,
- struct v4l2_subdev_pad_config *cfg,
+ struct v4l2_subdev_state *state,
struct v4l2_subdev_selection *sel)
{
struct v4l2_rect *rect, *try_sel;
@@ -166,7 +166,7 @@ static int mtk_dip_subdev_set_selection(struct v4l2_subdev *sd,
switch (sel->target) {
case V4L2_SEL_TGT_CROP:
- try_sel = v4l2_subdev_get_try_crop(sd, cfg, sel->pad);
+ try_sel = v4l2_subdev_get_try_crop(sd, state, sel->pad);
rect = &dip_pipe->nodes[sel->pad].crop;
break;
default:
diff --git a/drivers/media/platform/mtk-isp/isp_50/seninf/mtk_seninf.c b/drivers/media/platform/mtk-isp/isp_50/seninf/mtk_seninf.c
index 4ee2a9065b86c..7b1feba75ef35 100644
--- a/drivers/media/platform/mtk-isp/isp_50/seninf/mtk_seninf.c
+++ b/drivers/media/platform/mtk-isp/isp_50/seninf/mtk_seninf.c
@@ -495,13 +495,13 @@ static void init_fmt(struct mtk_seninf *priv)
}
static int seninf_init_cfg(struct v4l2_subdev *sd,
- struct v4l2_subdev_pad_config *cfg)
+ struct v4l2_subdev_state *state)
{
struct v4l2_mbus_framefmt *mf;
unsigned int i;
for (i = 0; i < sd->entity.num_pads; i++) {
- mf = v4l2_subdev_get_try_format(sd, cfg, i);
+ mf = v4l2_subdev_get_try_format(sd, state, i);
*mf = mtk_seninf_default_fmt;
}
@@ -509,7 +509,7 @@ static int seninf_init_cfg(struct v4l2_subdev *sd,
}
static int seninf_set_fmt(struct v4l2_subdev *sd,
- struct v4l2_subdev_pad_config *cfg,
+ struct v4l2_subdev_state *state,
struct v4l2_subdev_format *fmt)
{
struct mtk_seninf *priv = container_of(sd, struct mtk_seninf, subdev);
@@ -518,7 +518,7 @@ static int seninf_set_fmt(struct v4l2_subdev *sd,
fmt->format.code = MEDIA_BUS_FMT_SBGGR10_1X10;
if (fmt->which == V4L2_SUBDEV_FORMAT_TRY) {
- *v4l2_subdev_get_try_format(sd, cfg, fmt->pad) = fmt->format;
+ *v4l2_subdev_get_try_format(sd, state, fmt->pad) = fmt->format;
} else {
priv->fmt[fmt->pad].pad = fmt->pad;
priv->fmt[fmt->pad].format.code = fmt->format.code;
@@ -530,13 +530,13 @@ static int seninf_set_fmt(struct v4l2_subdev *sd,
}
static int seninf_get_fmt(struct v4l2_subdev *sd,
- struct v4l2_subdev_pad_config *cfg,
+ struct v4l2_subdev_state *state,
struct v4l2_subdev_format *fmt)
{
struct mtk_seninf *priv = container_of(sd, struct mtk_seninf, subdev);
if (fmt->which == V4L2_SUBDEV_FORMAT_TRY) {
- fmt->format = *v4l2_subdev_get_try_format(sd, cfg, fmt->pad);
+ fmt->format = *v4l2_subdev_get_try_format(sd, state, fmt->pad);
} else {
fmt->format.code = priv->fmt[fmt->pad].format.code;
fmt->format.width = priv->fmt[fmt->pad].format.width;
@@ -553,7 +553,7 @@ static int seninf_get_fmt(struct v4l2_subdev *sd,
}
static int seninf_enum_mbus_code(struct v4l2_subdev *sd,
- struct v4l2_subdev_pad_config *cfg,
+ struct v4l2_subdev_state *state,
struct v4l2_subdev_mbus_code_enum *code)
{
struct mtk_seninf *priv = container_of(sd, struct mtk_seninf, subdev);