lkml.org 
[lkml]   [2019]   [Dec]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH AUTOSEL 5.4 067/350] media: cec-funcs.h: add status_req checks
    Date
    From: Hans Verkuil <hverkuil-cisco@xs4all.nl>

    [ 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: Hans Verkuil <hverkuil-cisco@xs4all.nl>
    Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    include/uapi/linux/cec-funcs.h | 6 ++++--
    1 file changed, 4 insertions(+), 2 deletions(-)

    diff --git a/include/uapi/linux/cec-funcs.h b/include/uapi/linux/cec-funcs.h
    index 8997d5068c085..4511b85c84dfc 100644
    --- a/include/uapi/linux/cec-funcs.h
    +++ b/include/uapi/linux/cec-funcs.h
    @@ -923,7 +923,8 @@ static inline void cec_msg_give_deck_status(struct cec_msg *msg,
    msg->len = 3;
    msg->msg[1] = CEC_MSG_GIVE_DECK_STATUS;
    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,
    @@ -1027,7 +1028,8 @@ static inline void cec_msg_give_tuner_device_status(struct cec_msg *msg,
    msg->len = 3;
    msg->msg[1] = CEC_MSG_GIVE_TUNER_DEVICE_STATUS;
    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,
    --
    2.20.1
    \
     
     \ /
      Last update: 2019-12-10 22:08    [W:4.016 / U:0.184 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site