Message ID | 20181101233144.31507-26-niklas.soderlund+renesas@ragnatech.se (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | v4l: add support for multiplexed streams | expand |
Hi Niklas, On Fri, Nov 02, 2018 at 12:31:39AM +0100, Niklas Söderlund wrote: > Once the CSI-2 subdevice of the ADV748X becomes aware of multiplexed > streams the format of the source pad is of no value as it carries > multiple streams. Prepare for this by explicitly denying setting a > format on anything but the sink pad. > > Signed-off-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se> > --- > drivers/media/i2c/adv748x/adv748x-csi2.c | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/drivers/media/i2c/adv748x/adv748x-csi2.c b/drivers/media/i2c/adv748x/adv748x-csi2.c > index 8a7cc713c7adfcc1..9f2c49221a8ddebc 100644 > --- a/drivers/media/i2c/adv748x/adv748x-csi2.c > +++ b/drivers/media/i2c/adv748x/adv748x-csi2.c > @@ -163,6 +163,9 @@ static int adv748x_csi2_get_format(struct v4l2_subdev *sd, > struct adv748x_state *state = tx->state; > struct v4l2_mbus_framefmt *mbusformat; > > + if (sdformat->pad != ADV748X_CSI2_SINK) > + return -EINVAL; > + > mbusformat = adv748x_csi2_get_pad_format(sd, cfg, sdformat->pad, > sdformat->which); > if (!mbusformat) > @@ -186,6 +189,9 @@ static int adv748x_csi2_set_format(struct v4l2_subdev *sd, > struct v4l2_mbus_framefmt *mbusformat; > int ret = 0; > > + if (sdformat->pad != ADV748X_CSI2_SINK) > + return -EINVAL; > + The adv748x set_format on the source pad already ignores the provided format argument and just replicates the format applied on the sink on itself. I agree this change makes sense, but then you should remove the big if switch a few lines here below. if (sdformat->pad == ADV748X_CSI2_SOURCE) { With your ack, I can make this change in the forthcoming v3. Thanks j PS: I'm thinking of sending the v4l2-mux core patches (01->23 of v2) separate from adv748x and rcar-csi2 ones, to ease review, and maybe speed up inclusion of the core changes. What would your (and Sakari's and Laurent's) opinion on that? > mbusformat = adv748x_csi2_get_pad_format(sd, cfg, sdformat->pad, > sdformat->which); > if (!mbusformat) > -- > 2.19.1 >
diff --git a/drivers/media/i2c/adv748x/adv748x-csi2.c b/drivers/media/i2c/adv748x/adv748x-csi2.c index 8a7cc713c7adfcc1..9f2c49221a8ddebc 100644 --- a/drivers/media/i2c/adv748x/adv748x-csi2.c +++ b/drivers/media/i2c/adv748x/adv748x-csi2.c @@ -163,6 +163,9 @@ static int adv748x_csi2_get_format(struct v4l2_subdev *sd, struct adv748x_state *state = tx->state; struct v4l2_mbus_framefmt *mbusformat; + if (sdformat->pad != ADV748X_CSI2_SINK) + return -EINVAL; + mbusformat = adv748x_csi2_get_pad_format(sd, cfg, sdformat->pad, sdformat->which); if (!mbusformat) @@ -186,6 +189,9 @@ static int adv748x_csi2_set_format(struct v4l2_subdev *sd, struct v4l2_mbus_framefmt *mbusformat; int ret = 0; + if (sdformat->pad != ADV748X_CSI2_SINK) + return -EINVAL; + mbusformat = adv748x_csi2_get_pad_format(sd, cfg, sdformat->pad, sdformat->which); if (!mbusformat)
Once the CSI-2 subdevice of the ADV748X becomes aware of multiplexed streams the format of the source pad is of no value as it carries multiple streams. Prepare for this by explicitly denying setting a format on anything but the sink pad. Signed-off-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se> --- drivers/media/i2c/adv748x/adv748x-csi2.c | 6 ++++++ 1 file changed, 6 insertions(+)