mirror of
https://github.com/torvalds/linux.git
synced 2026-06-08 06:25:52 +02:00
UPSTREAM: media: cec: only increase the seqnr if CEC_TRANSMIT would
return 0
The transmit code would increase the sequence number first thing, even though
CEC_TRANSMIT would return an error due to a malformatted cec_msg struct later
on.
While valid behavior, this had the disadvantage of producing holes in the
sequence list that made debugging harder.
Only increase the sequence number when the whole message is validated.
When debugging (i.e. with cec-ctl -M) the sequence numbering is now nicely
increasing by 1 per message.
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
(cherry picked from commit 15e809e961)
Change-Id: I65ec4219bc2e65c8deae6f243a7b6105715113a1
Signed-off-by: Algea Cao <algea.cao@rock-chips.com>
This commit is contained in:
parent
90d3939bab
commit
14989a866f
|
|
@ -630,9 +630,7 @@ int cec_transmit_msg_fh(struct cec_adapter *adap, struct cec_msg *msg,
|
|||
msg->tx_nack_cnt = 0;
|
||||
msg->tx_low_drive_cnt = 0;
|
||||
msg->tx_error_cnt = 0;
|
||||
msg->sequence = ++adap->sequence;
|
||||
if (!msg->sequence)
|
||||
msg->sequence = ++adap->sequence;
|
||||
msg->sequence = 0;
|
||||
|
||||
if (msg->reply && msg->timeout == 0) {
|
||||
/* Make sure the timeout isn't 0. */
|
||||
|
|
@ -671,6 +669,9 @@ int cec_transmit_msg_fh(struct cec_adapter *adap, struct cec_msg *msg,
|
|||
msg->tx_status = CEC_TX_STATUS_NACK |
|
||||
CEC_TX_STATUS_MAX_RETRIES;
|
||||
msg->tx_nack_cnt = 1;
|
||||
msg->sequence = ++adap->sequence;
|
||||
if (!msg->sequence)
|
||||
msg->sequence = ++adap->sequence;
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
|
@ -705,6 +706,10 @@ int cec_transmit_msg_fh(struct cec_adapter *adap, struct cec_msg *msg,
|
|||
if (!data)
|
||||
return -ENOMEM;
|
||||
|
||||
msg->sequence = ++adap->sequence;
|
||||
if (!msg->sequence)
|
||||
msg->sequence = ++adap->sequence;
|
||||
|
||||
if (msg->len > 1 && msg->msg[1] == CEC_MSG_CDC_MESSAGE) {
|
||||
msg->msg[2] = adap->phys_addr >> 8;
|
||||
msg->msg[3] = adap->phys_addr & 0xff;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user