Commit 8a7bc891 authored by Niklas Söderlund's avatar Niklas Söderlund Committed by Hans Verkuil

media: i2c: adv748x: Write initial DV timings to device

When initializing the HDMI block during probe an initial set of timings
are selected. These timings are stored in the drivers private data, but
not written to the device.

This in itself is not bad, but in s_dv_timings() the timings stored in
the drivers private data are compared to the new timings, if they match
no action is taken. This creates the corner-case where the timing
selected at initialization is the first timings a user want to use as
the driver then never writes it to the device preventing proper
operation.

Fix this by writing the timings to the device at initialization in
addition to storing them in the drivers private data.
Signed-off-by: default avatarNiklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
Signed-off-by: default avatarHans Verkuil <hverkuil-cisco@xs4all.nl>
parent 1e293874
...@@ -721,11 +721,10 @@ static int adv748x_hdmi_init_controls(struct adv748x_hdmi *hdmi) ...@@ -721,11 +721,10 @@ static int adv748x_hdmi_init_controls(struct adv748x_hdmi *hdmi)
int adv748x_hdmi_init(struct adv748x_hdmi *hdmi) int adv748x_hdmi_init(struct adv748x_hdmi *hdmi)
{ {
struct adv748x_state *state = adv748x_hdmi_to_state(hdmi); struct adv748x_state *state = adv748x_hdmi_to_state(hdmi);
static const struct v4l2_dv_timings cea1280x720 = struct v4l2_dv_timings cea1280x720 = V4L2_DV_BT_CEA_1280X720P30;
V4L2_DV_BT_CEA_1280X720P30;
int ret; int ret;
hdmi->timings = cea1280x720; adv748x_hdmi_s_dv_timings(&hdmi->sd, &cea1280x720);
/* Initialise a default 16:9 aspect ratio */ /* Initialise a default 16:9 aspect ratio */
hdmi->aspect_ratio.numerator = 16; hdmi->aspect_ratio.numerator = 16;
......
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