Commit e1c216dd authored by Paweł Anikiel's avatar Paweł Anikiel Committed by Hans Verkuil

media: i2c: adv7842: Switch dv timing callbacks to pad ops

Change all (s|g|query)_dv_timings subdev callbacks to include
a pad argument.
Signed-off-by: default avatarPaweł Anikiel <panikiel@google.com>
Signed-off-by: default avatarHans Verkuil <hverkuil-cisco@xs4all.nl>
parent a5396251
...@@ -1518,7 +1518,7 @@ static void adv7842_fill_optional_dv_timings_fields(struct v4l2_subdev *sd, ...@@ -1518,7 +1518,7 @@ static void adv7842_fill_optional_dv_timings_fields(struct v4l2_subdev *sd,
timings->bt.flags |= V4L2_DV_FL_CAN_DETECT_REDUCED_FPS; timings->bt.flags |= V4L2_DV_FL_CAN_DETECT_REDUCED_FPS;
} }
static int adv7842_query_dv_timings(struct v4l2_subdev *sd, static int adv7842_query_dv_timings(struct v4l2_subdev *sd, unsigned int pad,
struct v4l2_dv_timings *timings) struct v4l2_dv_timings *timings)
{ {
struct adv7842_state *state = to_state(sd); struct adv7842_state *state = to_state(sd);
...@@ -1527,6 +1527,9 @@ static int adv7842_query_dv_timings(struct v4l2_subdev *sd, ...@@ -1527,6 +1527,9 @@ static int adv7842_query_dv_timings(struct v4l2_subdev *sd,
v4l2_dbg(1, debug, sd, "%s:\n", __func__); v4l2_dbg(1, debug, sd, "%s:\n", __func__);
if (pad != 0)
return -EINVAL;
memset(timings, 0, sizeof(struct v4l2_dv_timings)); memset(timings, 0, sizeof(struct v4l2_dv_timings));
/* SDP block */ /* SDP block */
...@@ -1643,7 +1646,7 @@ static int adv7842_query_dv_timings(struct v4l2_subdev *sd, ...@@ -1643,7 +1646,7 @@ static int adv7842_query_dv_timings(struct v4l2_subdev *sd,
return 0; return 0;
} }
static int adv7842_s_dv_timings(struct v4l2_subdev *sd, static int adv7842_s_dv_timings(struct v4l2_subdev *sd, unsigned int pad,
struct v4l2_dv_timings *timings) struct v4l2_dv_timings *timings)
{ {
struct adv7842_state *state = to_state(sd); struct adv7842_state *state = to_state(sd);
...@@ -1652,6 +1655,9 @@ static int adv7842_s_dv_timings(struct v4l2_subdev *sd, ...@@ -1652,6 +1655,9 @@ static int adv7842_s_dv_timings(struct v4l2_subdev *sd,
v4l2_dbg(1, debug, sd, "%s:\n", __func__); v4l2_dbg(1, debug, sd, "%s:\n", __func__);
if (pad != 0)
return -EINVAL;
if (state->mode == ADV7842_MODE_SDP) if (state->mode == ADV7842_MODE_SDP)
return -ENODATA; return -ENODATA;
...@@ -1689,11 +1695,14 @@ static int adv7842_s_dv_timings(struct v4l2_subdev *sd, ...@@ -1689,11 +1695,14 @@ static int adv7842_s_dv_timings(struct v4l2_subdev *sd,
return 0; return 0;
} }
static int adv7842_g_dv_timings(struct v4l2_subdev *sd, static int adv7842_g_dv_timings(struct v4l2_subdev *sd, unsigned int pad,
struct v4l2_dv_timings *timings) struct v4l2_dv_timings *timings)
{ {
struct adv7842_state *state = to_state(sd); struct adv7842_state *state = to_state(sd);
if (pad != 0)
return -EINVAL;
if (state->mode == ADV7842_MODE_SDP) if (state->mode == ADV7842_MODE_SDP)
return -ENODATA; return -ENODATA;
*timings = state->timings; *timings = state->timings;
...@@ -2780,7 +2789,7 @@ static int adv7842_cp_log_status(struct v4l2_subdev *sd) ...@@ -2780,7 +2789,7 @@ static int adv7842_cp_log_status(struct v4l2_subdev *sd)
"interlaced" : "progressive", "interlaced" : "progressive",
hs_pol, vs_pol); hs_pol, vs_pol);
} }
if (adv7842_query_dv_timings(sd, &timings)) if (adv7842_query_dv_timings(sd, 0, &timings))
v4l2_info(sd, "No video detected\n"); v4l2_info(sd, "No video detected\n");
else else
v4l2_print_dv_timings(sd->name, "Detected format: ", v4l2_print_dv_timings(sd->name, "Detected format: ",
...@@ -3226,7 +3235,7 @@ static int adv7842_command_ram_test(struct v4l2_subdev *sd) ...@@ -3226,7 +3235,7 @@ static int adv7842_command_ram_test(struct v4l2_subdev *sd)
memset(&state->timings, 0, sizeof(struct v4l2_dv_timings)); memset(&state->timings, 0, sizeof(struct v4l2_dv_timings));
adv7842_s_dv_timings(sd, &timings); adv7842_s_dv_timings(sd, 0, &timings);
return ret; return ret;
} }
...@@ -3298,9 +3307,6 @@ static const struct v4l2_subdev_video_ops adv7842_video_ops = { ...@@ -3298,9 +3307,6 @@ static const struct v4l2_subdev_video_ops adv7842_video_ops = {
.s_routing = adv7842_s_routing, .s_routing = adv7842_s_routing,
.querystd = adv7842_querystd, .querystd = adv7842_querystd,
.g_input_status = adv7842_g_input_status, .g_input_status = adv7842_g_input_status,
.s_dv_timings = adv7842_s_dv_timings,
.g_dv_timings = adv7842_g_dv_timings,
.query_dv_timings = adv7842_query_dv_timings,
}; };
static const struct v4l2_subdev_pad_ops adv7842_pad_ops = { static const struct v4l2_subdev_pad_ops adv7842_pad_ops = {
...@@ -3309,6 +3315,9 @@ static const struct v4l2_subdev_pad_ops adv7842_pad_ops = { ...@@ -3309,6 +3315,9 @@ static const struct v4l2_subdev_pad_ops adv7842_pad_ops = {
.set_fmt = adv7842_set_format, .set_fmt = adv7842_set_format,
.get_edid = adv7842_get_edid, .get_edid = adv7842_get_edid,
.set_edid = adv7842_set_edid, .set_edid = adv7842_set_edid,
.s_dv_timings = adv7842_s_dv_timings,
.g_dv_timings = adv7842_g_dv_timings,
.query_dv_timings = adv7842_query_dv_timings,
.enum_dv_timings = adv7842_enum_dv_timings, .enum_dv_timings = adv7842_enum_dv_timings,
.dv_timings_cap = adv7842_dv_timings_cap, .dv_timings_cap = adv7842_dv_timings_cap,
}; };
......
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