Subject: Re: [PATCH] media: cec: core: remove length check of Timer Status
From: Hans Verkuil <[email-masked]>
To: Nini Song (宋宛妮) <[email-masked]>
Cc: CI Wu (伍倉億) <[email-masked]>, "[email-masked]" <[email-masked]>, "[email-masked]" <[email-masked]>, "[email-masked]" <[email-masked]>, "[email-masked]" <[email-masked]>, "[email-masked]" <[email-masked]>, Matthias Brugger <[email-masked]>, AngeloGioacchino Del Regno <[email-masked]>, Jani Nikula <[email-masked]>, "[email-masked]" <[email-masked]>
Date: Thu, 4 Apr 2024 08:40:44 +0000

External email : Please do not click links or open attachments until you have verified the sender or the content.

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
[email-masked], 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, [email-masked] wrote:
> From: "nini.song" <[email-masked]>
>
> 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 <[email-masked]>
> ---
>  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: