diff for duplicates of <088b8e5aa04c24059301a3f14a1214aa3a8865df.camel@mediatek.com> diff --git a/N1/2.bin b/N1/2.bin new file mode 100644 index 0000000..9da1536 --- /dev/null +++ b/N1/2.bin @@ -0,0 +1,83 @@ +<html><body><p> +<pre> +Hi, Mac: + +On Sat, 2024-06-08 at 20:01 +0800, mac.shen wrote: +> Changes in v3: +> - refine the function to get system time +> - refine the flow to do HDCP with content type and +>   protection value which set by user space +> - refine the flow to update content protection +> - refine the flow to do HDCP2.x authentication +> per suggestion from the previous thread: +> https://urldefense.com/v3/__https://patchwork.kernel.org/project/linux-mediatek__;!!CTRNKA9wMg0ARbw!md6xUiYN88D2YmETs8FQgaExM2zH8S1SmAEU9GRchwpNsXOyDFul3ziVKhRpCJaj8Rcn-gvM-801runjwA$  +> /patch/20240205055055.25340-3-mac.shen@mediatek.com/ +>  +> Signed-off-by: mac.shen <mac.shen@mediatek.com> +> --- + +[snip] + +> +static int dp_tx_hdcp2x_read_ake_send_hprime(struct mtk_hdcp_info *hdcp_info) +> +{ +> +struct mtk_dp *mtk_dp = container_of(hdcp_info, struct mtk_dp, hdcp_info); +> +ktime_t msg_end; +> +bool msg_expired; +> +u8 rx_status = 0; +> +int timeout; +> +ssize_t ret; +> + +> +dev_dbg(mtk_dp->dev, "[HDCP2.X] HDCP_2_2_AKE_SEND_HPRIME\n"); +> + +> +timeout = hdcp_info->hdcp2_info.stored_km ? +> +HDCP_2_2_HPRIME_PAIRED_TIMEOUT_MS : HDCP_2_2_HPRIME_NO_PAIRED_TIMEOUT_MS; +> + +> +dp_tx_hdcp2x_wait_for_cp_irq(hdcp_info, timeout); +> +hdcp_info->hdcp2_info.cp_irq_cached = atomic_read(&hdcp_info->hdcp2_info.cp_irq); + +cp_irq_cached is updated always after dp_tx_hdcp2x_wait_for_cp_irq(), +and  cp_irq_cached is only used in dp_tx_hdcp2x_wait_for_cp_irq(), +so move this update into dp_tx_hdcp2x_wait_for_cp_irq(). + +Regards, +CK + +> + +> +ret = drm_dp_dpcd_read(&mtk_dp->aux, DP_HDCP_2_2_REG_RXSTATUS_OFFSET, &rx_status, +> +       HDCP_2_2_DP_RXSTATUS_LEN); +> +if (ret != HDCP_2_2_DP_RXSTATUS_LEN) +> +return ret >= 0 ? -EIO : ret; +> + +> +if (!HDCP_2_2_DP_RXSTATUS_H_PRIME(rx_status)) +> +return -EAGAIN; +> + +> +msg_end = ktime_add_ms(ktime_get_raw(), HDCP_2_2_DP_HPRIME_READ_TIMEOUT_MS); +> + +> +ret = drm_dp_dpcd_read(&mtk_dp->aux, DP_HDCP_2_2_AKE_SEND_HPRIME_OFFSET, +> +       hdcp_info->hdcp2_info.hdcp_rx.send_hprime.h_prime, +> +HDCP_2_2_H_PRIME_LEN); +> +if (ret < 0) +> +return ret; +> + +> +msg_expired = ktime_after(ktime_get_raw(), msg_end); +> +if (msg_expired) +> +dev_dbg(mtk_dp->dev, "[HDCP2.X] Timeout to read AKE hprime\n"); +> + +> +return 0; +> +} +> + + +</pre> +</p></body></html><!--type:text--><!--{--><pre>************* MEDIATEK Confidentiality Notice ******************** +The information contained in this e-mail message (including any +attachments) may be confidential, proprietary, privileged, or otherwise +exempt from disclosure under applicable laws. It is intended to be +conveyed only to the designated recipient(s). Any use, dissemination, +distribution, printing, retaining or copying of this e-mail (including its +attachments) by unintended recipient(s) is strictly prohibited and may +be unlawful. If you are not an intended recipient of this e-mail, or believe +that you have received this e-mail in error, please notify the sender +immediately (by replying to this e-mail), delete any and all copies of +this e-mail (including any attachments) from your system, and do not +disclose the content of this e-mail to any other person. Thank you! +</pre><!--}--> diff --git a/N1/2.hdr b/N1/2.hdr new file mode 100644 index 0000000..da1f671 --- /dev/null +++ b/N1/2.hdr @@ -0,0 +1,3 @@ +Content-Type: text/html; + charset="utf-8" +Content-Transfer-Encoding: base64 diff --git a/a/content_digest b/N1/content_digest index 88a2787..562359e 100644 --- a/a/content_digest +++ b/N1/content_digest @@ -16,7 +16,7 @@ linux-mediatek@lists.infradead.org <linux-mediatek@lists.infradead.org> linux-arm-kernel@lists.infradead.org <linux-arm-kernel@lists.infradead.org> " Shuijing Li (\346\235\216\346\260\264\351\235\231) <Shuijing.Li@mediatek.com>\0" - "\00:1\0" + "\01:1\0" "b\0" "Hi, Mac:\n" "\n" @@ -84,5 +84,90 @@ "> +\treturn 0;\n" "> +}\n" > + + "\01:2\0" + "b\0" + "<html><body><p>\r\n" + "<pre>\r\n" + "Hi, Mac:\r\n" + "\r\n" + "On Sat, 2024-06-08 at 20:01 +0800, mac.shen wrote:\r\n" + "> Changes in v3:\r\n" + "> - refine the function to get system time\r\n" + "> - refine the flow to do HDCP with content type and\r\n" + ">   protection value which set by user space\r\n" + "> - refine the flow to update content protection\r\n" + "> - refine the flow to do HDCP2.x authentication\r\n" + "> per suggestion from the previous thread:\r\n" + "> https://urldefense.com/v3/__https://patchwork.kernel.org/project/linux-mediatek__;!!CTRNKA9wMg0ARbw!md6xUiYN88D2YmETs8FQgaExM2zH8S1SmAEU9GRchwpNsXOyDFul3ziVKhRpCJaj8Rcn-gvM-801runjwA$ \r\n" + "> /patch/20240205055055.25340-3-mac.shen@mediatek.com/\r\n" + "> \r\n" + "> Signed-off-by: mac.shen <mac.shen@mediatek.com>\r\n" + "> ---\r\n" + "\r\n" + "[snip]\r\n" + "\r\n" + "> +static int dp_tx_hdcp2x_read_ake_send_hprime(struct mtk_hdcp_info *hdcp_info)\r\n" + "> +{\r\n" + "> +struct mtk_dp *mtk_dp = container_of(hdcp_info, struct mtk_dp, hdcp_info);\r\n" + "> +ktime_t msg_end;\r\n" + "> +bool msg_expired;\r\n" + "> +u8 rx_status = 0;\r\n" + "> +int timeout;\r\n" + "> +ssize_t ret;\r\n" + "> +\r\n" + "> +dev_dbg(mtk_dp->dev, "[HDCP2.X] HDCP_2_2_AKE_SEND_HPRIME\n");\r\n" + "> +\r\n" + "> +timeout = hdcp_info->hdcp2_info.stored_km ?\r\n" + "> +HDCP_2_2_HPRIME_PAIRED_TIMEOUT_MS : HDCP_2_2_HPRIME_NO_PAIRED_TIMEOUT_MS;\r\n" + "> +\r\n" + "> +dp_tx_hdcp2x_wait_for_cp_irq(hdcp_info, timeout);\r\n" + "> +hdcp_info->hdcp2_info.cp_irq_cached = atomic_read(&hdcp_info->hdcp2_info.cp_irq);\r\n" + "\r\n" + "cp_irq_cached is updated always after dp_tx_hdcp2x_wait_for_cp_irq(),\r\n" + "and  cp_irq_cached is only used in dp_tx_hdcp2x_wait_for_cp_irq(),\r\n" + "so move this update into dp_tx_hdcp2x_wait_for_cp_irq().\r\n" + "\r\n" + "Regards,\r\n" + "CK\r\n" + "\r\n" + "> +\r\n" + "> +ret = drm_dp_dpcd_read(&mtk_dp->aux, DP_HDCP_2_2_REG_RXSTATUS_OFFSET, &rx_status,\r\n" + "> +       HDCP_2_2_DP_RXSTATUS_LEN);\r\n" + "> +if (ret != HDCP_2_2_DP_RXSTATUS_LEN)\r\n" + "> +return ret >= 0 ? -EIO : ret;\r\n" + "> +\r\n" + "> +if (!HDCP_2_2_DP_RXSTATUS_H_PRIME(rx_status))\r\n" + "> +return -EAGAIN;\r\n" + "> +\r\n" + "> +msg_end = ktime_add_ms(ktime_get_raw(), HDCP_2_2_DP_HPRIME_READ_TIMEOUT_MS);\r\n" + "> +\r\n" + "> +ret = drm_dp_dpcd_read(&mtk_dp->aux, DP_HDCP_2_2_AKE_SEND_HPRIME_OFFSET,\r\n" + "> +       hdcp_info->hdcp2_info.hdcp_rx.send_hprime.h_prime,\r\n" + "> +HDCP_2_2_H_PRIME_LEN);\r\n" + "> +if (ret < 0)\r\n" + "> +return ret;\r\n" + "> +\r\n" + "> +msg_expired = ktime_after(ktime_get_raw(), msg_end);\r\n" + "> +if (msg_expired)\r\n" + "> +dev_dbg(mtk_dp->dev, "[HDCP2.X] Timeout to read AKE hprime\n");\r\n" + "> +\r\n" + "> +return 0;\r\n" + "> +}\r\n" + "> +\r\n" + "\r\n" + "</pre>\r\n" + "</p></body></html><!--type:text--><!--{--><pre>************* MEDIATEK Confidentiality Notice ********************\r\n" + "The information contained in this e-mail message (including any \r\n" + "attachments) may be confidential, proprietary, privileged, or otherwise\r\n" + "exempt from disclosure under applicable laws. It is intended to be \r\n" + "conveyed only to the designated recipient(s). Any use, dissemination, \r\n" + "distribution, printing, retaining or copying of this e-mail (including its \r\n" + "attachments) by unintended recipient(s) is strictly prohibited and may \r\n" + "be unlawful. If you are not an intended recipient of this e-mail, or believe \r\n" + "that you have received this e-mail in error, please notify the sender \r\n" + "immediately (by replying to this e-mail), delete any and all copies of \r\n" + "this e-mail (including any attachments) from your system, and do not\r\n" + "disclose the content of this e-mail to any other person. Thank you!\r\n" + </pre><!--}--> -51f9dade3e80629770b85b422883c44c488d1b40d654ec41ae7345d15faeef92 +86f02d9e783274cbfc25dd4bc48152bbe64fda29b5e659901bb6a0944128db0d
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.