Hi Nini, This patch has now been merged in mainline as commit ce5d241c3ad45 ("media: cec: core: remove length check of Timer Status"). To get this into older kernels please post this patch to stable@xxxxxxxxxxxxxxx, CC the linux-media mailinglist, and mention the mainline commit that I provided above. Also mention that this patch applies to 5.10 and up. You can mention that the patch applies to 5.4 and 4.19 as well after removing the '/core' directory from the pathnames. Since you are the author of the patch, you should be the one to post the patch. Regards, Hans On 25/01/2024 14:28, nini.song@xxxxxxxxxxxx wrote: > From: "nini.song" <nini.song@xxxxxxxxxxxx> > > The valid_la is used to check the length requirements, > including special cases of Timer Status. If the length is > shorter than 5, that means no Duration Available is returned, > the message will be forced to be invalid. > > However, the description of Duration Available in the spec > is that this parameter may be returned when these cases, or > that it can be optionally return when these cases. The key > words in the spec description are flexible choices. > > Remove the special length check of Timer Status to fit the > spec which is not compulsory about that. > > Signed-off-by: Nini Song <nini.song@xxxxxxxxxxxx> > --- > drivers/media/cec/core/cec-adap.c | 14 -------------- > 1 file changed, 14 deletions(-) > > diff --git a/drivers/media/cec/core/cec-adap.c b/drivers/media/cec/core/cec-adap.c > index 5741adf09a2e..559a172ebc6c 100644 > --- a/drivers/media/cec/core/cec-adap.c > +++ b/drivers/media/cec/core/cec-adap.c > @@ -1151,20 +1151,6 @@ void cec_received_msg_ts(struct cec_adapter *adap, > if (valid_la && min_len) { > /* These messages have special length requirements */ > switch (cmd) { > - case CEC_MSG_TIMER_STATUS: > - if (msg->msg[2] & 0x10) { > - switch (msg->msg[2] & 0xf) { > - case CEC_OP_PROG_INFO_NOT_ENOUGH_SPACE: > - case CEC_OP_PROG_INFO_MIGHT_NOT_BE_ENOUGH_SPACE: > - if (msg->len < 5) > - valid_la = false; > - break; > - } > - } else if ((msg->msg[2] & 0xf) == CEC_OP_PROG_ERROR_DUPLICATE) { > - if (msg->len < 5) > - valid_la = false; > - } > - break; > case CEC_MSG_RECORD_ON: > switch (msg->msg[2]) { > case CEC_OP_RECORD_SRC_OWN: