[media] adv7604/adv7842: replace FMT_CHANGED by V4L2_DEVICE_NOTIFY_EVENT
This makes it easier for the bridge driver to just passthrough such events to the corresponding device node. Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
This commit is contained in:
parent
17e484686b
commit
48519838cc
|
@ -341,6 +341,11 @@ static const struct adv76xx_video_standards adv76xx_prim_mode_hdmi_gr[] = {
|
||||||
{ },
|
{ },
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static const struct v4l2_event adv76xx_ev_fmt = {
|
||||||
|
.type = V4L2_EVENT_SOURCE_CHANGE,
|
||||||
|
.u.src_change.changes = V4L2_EVENT_SRC_CH_RESOLUTION,
|
||||||
|
};
|
||||||
|
|
||||||
/* ----------------------------------------------------------------------- */
|
/* ----------------------------------------------------------------------- */
|
||||||
|
|
||||||
static inline struct adv76xx_state *to_state(struct v4l2_subdev *sd)
|
static inline struct adv76xx_state *to_state(struct v4l2_subdev *sd)
|
||||||
|
@ -1744,11 +1749,11 @@ static int adv76xx_s_routing(struct v4l2_subdev *sd,
|
||||||
state->selected_input = input;
|
state->selected_input = input;
|
||||||
|
|
||||||
disable_input(sd);
|
disable_input(sd);
|
||||||
|
|
||||||
select_input(sd);
|
select_input(sd);
|
||||||
|
|
||||||
enable_input(sd);
|
enable_input(sd);
|
||||||
|
|
||||||
|
v4l2_subdev_notify(sd, V4L2_DEVICE_NOTIFY_EVENT,
|
||||||
|
(void *)&adv76xx_ev_fmt);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1915,7 +1920,8 @@ static int adv76xx_isr(struct v4l2_subdev *sd, u32 status, bool *handled)
|
||||||
"%s: fmt_change = 0x%x, fmt_change_digital = 0x%x\n",
|
"%s: fmt_change = 0x%x, fmt_change_digital = 0x%x\n",
|
||||||
__func__, fmt_change, fmt_change_digital);
|
__func__, fmt_change, fmt_change_digital);
|
||||||
|
|
||||||
v4l2_subdev_notify(sd, ADV76XX_FMT_CHANGE, NULL);
|
v4l2_subdev_notify(sd, V4L2_DEVICE_NOTIFY_EVENT,
|
||||||
|
(void *)&adv76xx_ev_fmt);
|
||||||
|
|
||||||
if (handled)
|
if (handled)
|
||||||
*handled = true;
|
*handled = true;
|
||||||
|
|
|
@ -242,6 +242,11 @@ static const struct adv7842_video_standards adv7842_prim_mode_hdmi_gr[] = {
|
||||||
{ },
|
{ },
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static const struct v4l2_event adv7842_ev_fmt = {
|
||||||
|
.type = V4L2_EVENT_SOURCE_CHANGE,
|
||||||
|
.u.src_change.changes = V4L2_EVENT_SRC_CH_RESOLUTION,
|
||||||
|
};
|
||||||
|
|
||||||
/* ----------------------------------------------------------------------- */
|
/* ----------------------------------------------------------------------- */
|
||||||
|
|
||||||
static inline struct adv7842_state *to_state(struct v4l2_subdev *sd)
|
static inline struct adv7842_state *to_state(struct v4l2_subdev *sd)
|
||||||
|
@ -1975,7 +1980,8 @@ static int adv7842_s_routing(struct v4l2_subdev *sd,
|
||||||
select_input(sd, state->vid_std_select);
|
select_input(sd, state->vid_std_select);
|
||||||
enable_input(sd);
|
enable_input(sd);
|
||||||
|
|
||||||
v4l2_subdev_notify(sd, ADV7842_FMT_CHANGE, NULL);
|
v4l2_subdev_notify(sd, V4L2_DEVICE_NOTIFY_EVENT,
|
||||||
|
(void *)&adv7842_ev_fmt);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -2208,7 +2214,8 @@ static int adv7842_isr(struct v4l2_subdev *sd, u32 status, bool *handled)
|
||||||
"%s: fmt_change_cp = 0x%x, fmt_change_digital = 0x%x, fmt_change_sdp = 0x%x\n",
|
"%s: fmt_change_cp = 0x%x, fmt_change_digital = 0x%x, fmt_change_sdp = 0x%x\n",
|
||||||
__func__, fmt_change_cp, fmt_change_digital,
|
__func__, fmt_change_cp, fmt_change_digital,
|
||||||
fmt_change_sdp);
|
fmt_change_sdp);
|
||||||
v4l2_subdev_notify(sd, ADV7842_FMT_CHANGE, NULL);
|
v4l2_subdev_notify(sd, V4L2_DEVICE_NOTIFY_EVENT,
|
||||||
|
(void *)&adv7842_ev_fmt);
|
||||||
if (handled)
|
if (handled)
|
||||||
*handled = true;
|
*handled = true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -168,6 +168,5 @@ enum adv76xx_pad {
|
||||||
|
|
||||||
/* notify events */
|
/* notify events */
|
||||||
#define ADV76XX_HOTPLUG 1
|
#define ADV76XX_HOTPLUG 1
|
||||||
#define ADV76XX_FMT_CHANGE 2
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -230,9 +230,6 @@ struct adv7842_platform_data {
|
||||||
#define V4L2_CID_ADV_RX_FREE_RUN_COLOR_MANUAL (V4L2_CID_DV_CLASS_BASE + 0x1001)
|
#define V4L2_CID_ADV_RX_FREE_RUN_COLOR_MANUAL (V4L2_CID_DV_CLASS_BASE + 0x1001)
|
||||||
#define V4L2_CID_ADV_RX_FREE_RUN_COLOR (V4L2_CID_DV_CLASS_BASE + 0x1002)
|
#define V4L2_CID_ADV_RX_FREE_RUN_COLOR (V4L2_CID_DV_CLASS_BASE + 0x1002)
|
||||||
|
|
||||||
/* notify events */
|
|
||||||
#define ADV7842_FMT_CHANGE 1
|
|
||||||
|
|
||||||
/* custom ioctl, used to test the external RAM that's used by the
|
/* custom ioctl, used to test the external RAM that's used by the
|
||||||
* deinterlacer. */
|
* deinterlacer. */
|
||||||
#define ADV7842_CMD_RAM_TEST _IO('V', BASE_VIDIOC_PRIVATE)
|
#define ADV7842_CMD_RAM_TEST _IO('V', BASE_VIDIOC_PRIVATE)
|
||||||
|
|
Loading…
Reference in New Issue