Message ID | 1515435242-22956-1-git-send-email-kieran.bingham@ideasonboard.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On 01/08/2018 07:14 PM, Kieran Bingham wrote: > The ADV748x handles interlaced media using V4L2_FIELD_ALTERNATE field > types. The correct specification for the height on the mbus is the > image height, in this instance, the field height. > > The AFE component already correctly adjusts the height on the mbus, but > the HDMI component got left behind. > > Adjust the mbus height to correctly describe the image height of the > fields when processing interlaced video for HDMI pipelines. > > Fixes: 3e89586a64df ("media: i2c: adv748x: add adv748x driver") > Reviewed-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se> > Signed-off-by: Kieran Bingham <kieran.bingham+renesas@ideasonboard.com> Reviewed-by: Hans Verkuil <hans.verkuil@cisco.com> Regards, Hans > --- > v2: > - switch conditional to check the fmt->field, removing the need for > the comment. > > drivers/media/i2c/adv748x/adv748x-hdmi.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/drivers/media/i2c/adv748x/adv748x-hdmi.c b/drivers/media/i2c/adv748x/adv748x-hdmi.c > index 4da4253553fc..10d229a4f088 100644 > --- a/drivers/media/i2c/adv748x/adv748x-hdmi.c > +++ b/drivers/media/i2c/adv748x/adv748x-hdmi.c > @@ -105,6 +105,9 @@ static void adv748x_hdmi_fill_format(struct adv748x_hdmi *hdmi, > > fmt->width = hdmi->timings.bt.width; > fmt->height = hdmi->timings.bt.height; > + > + if (fmt->field == V4L2_FIELD_ALTERNATE) > + fmt->height /= 2; > } > > static void adv748x_fill_optional_dv_timings(struct v4l2_dv_timings *timings) >
diff --git a/drivers/media/i2c/adv748x/adv748x-hdmi.c b/drivers/media/i2c/adv748x/adv748x-hdmi.c index 4da4253553fc..10d229a4f088 100644 --- a/drivers/media/i2c/adv748x/adv748x-hdmi.c +++ b/drivers/media/i2c/adv748x/adv748x-hdmi.c @@ -105,6 +105,9 @@ static void adv748x_hdmi_fill_format(struct adv748x_hdmi *hdmi, fmt->width = hdmi->timings.bt.width; fmt->height = hdmi->timings.bt.height; + + if (fmt->field == V4L2_FIELD_ALTERNATE) + fmt->height /= 2; } static void adv748x_fill_optional_dv_timings(struct v4l2_dv_timings *timings)