提交 00f71277 编写于 作者: H Hans Verkuil 提交者: Yang Yingliang

media: cec-funcs.h: add status_req checks

[ Upstream commit 9b211f9c5a0b67afc435b86f75d78273b97db1c5 ]

The CEC_MSG_GIVE_DECK_STATUS and CEC_MSG_GIVE_TUNER_DEVICE_STATUS commands
both have a status_req argument: ON, OFF, ONCE. If ON or ONCE, then the
follower will reply with a STATUS message. Either once or whenever the
status changes (status_req == ON).

If status_req == OFF, then it will stop sending continuous status updates,
but the follower will *not* send a STATUS message in that case.

This means that if status_req == OFF, then msg->reply should be 0 as well
since no reply is expected in that case.
Signed-off-by: NHans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: NMauro Carvalho Chehab <mchehab+samsung@kernel.org>
Signed-off-by: NSasha Levin <sashal@kernel.org>
Signed-off-by: NYang Yingliang <yangyingliang@huawei.com>
上级 7607e9b7
...@@ -923,7 +923,8 @@ static inline void cec_msg_give_deck_status(struct cec_msg *msg, ...@@ -923,7 +923,8 @@ static inline void cec_msg_give_deck_status(struct cec_msg *msg,
msg->len = 3; msg->len = 3;
msg->msg[1] = CEC_MSG_GIVE_DECK_STATUS; msg->msg[1] = CEC_MSG_GIVE_DECK_STATUS;
msg->msg[2] = status_req; msg->msg[2] = status_req;
msg->reply = reply ? CEC_MSG_DECK_STATUS : 0; msg->reply = (reply && status_req != CEC_OP_STATUS_REQ_OFF) ?
CEC_MSG_DECK_STATUS : 0;
} }
static inline void cec_ops_give_deck_status(const struct cec_msg *msg, static inline void cec_ops_give_deck_status(const struct cec_msg *msg,
...@@ -1027,7 +1028,8 @@ static inline void cec_msg_give_tuner_device_status(struct cec_msg *msg, ...@@ -1027,7 +1028,8 @@ static inline void cec_msg_give_tuner_device_status(struct cec_msg *msg,
msg->len = 3; msg->len = 3;
msg->msg[1] = CEC_MSG_GIVE_TUNER_DEVICE_STATUS; msg->msg[1] = CEC_MSG_GIVE_TUNER_DEVICE_STATUS;
msg->msg[2] = status_req; msg->msg[2] = status_req;
msg->reply = reply ? CEC_MSG_TUNER_DEVICE_STATUS : 0; msg->reply = (reply && status_req != CEC_OP_STATUS_REQ_OFF) ?
CEC_MSG_TUNER_DEVICE_STATUS : 0;
} }
static inline void cec_ops_give_tuner_device_status(const struct cec_msg *msg, static inline void cec_ops_give_tuner_device_status(const struct cec_msg *msg,
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册