diff for duplicates of <64d593e87d518dc109bbcbf8e1a3e2aef770a384.camel@mediatek.com> diff --git a/N1/2.bin b/N1/2.bin new file mode 100644 index 0000000..fe703cf --- /dev/null +++ b/N1/2.bin @@ -0,0 +1,111 @@ +<html><body><p> +<pre> +Hi, Mac: + +On Fri, 2024-11-01 at 15:18 +0800, CK Hu wrote: +> 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_rep_send_recvid_list(struct mtk_hdcp_info *hdcp_info) +> > +{ +> > +struct mtk_dp *mtk_dp = container_of(hdcp_info, struct mtk_dp, hdcp_info); +> > +u8 rx_status = 0; +> > +ssize_t ret; +> > + +> > +dev_dbg(mtk_dp->dev, "[HDCP2.X] HDCP_2_2_REP_SEND_RECVID_LIST\n"); +> > + +> > +dp_tx_hdcp2x_wait_for_cp_irq(hdcp_info, HDCP_2_2_RECVID_LIST_TIMEOUT_MS); +> > +hdcp_info->hdcp2_info.cp_irq_cached = atomic_read(&hdcp_info->hdcp2_info.cp_irq); +> > + +> > +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_READY(rx_status)) { +> > +dev_err(mtk_dp->dev, "[HDCP2.X] RX status no ready\n"); +> > +return -EAGAIN; +> > +} +> > + +> > +ret = drm_dp_dpcd_read(&mtk_dp->aux, DP_HDCP_2_2_REP_SEND_RECVID_LIST_OFFSET, +> > +       hdcp_info->hdcp2_info.hdcp_rx.recvid_list.rx_info, +> > +HDCP_2_2_RXINFO_LEN); +>  +> In [1], intel use DP_HDCP_2_2_REG_RXINFO_OFFSET to get device count. +> But here you use DP_HDCP_2_2_REP_SEND_RECVID_LIST_OFFSET to get device count. +> So both command can get device count? Or something wrong? + +Forget my previous comment. In [2], intel use DP_HDCP_2_2_REP_SEND_RECVID_LIST_OFFSET to get device count. + +[2] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/gpu/drm/i915/display/intel_hdcp.c?h=v6.12-rc6#n1749 + +Regards, +CK + +>  +> [1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/gpu/drm/i915/display/intel_dp_hdcp.c?h=v6.12-rc5#n497 +>  +> Regards, +> CK +>  +> > +if (ret < 0) +> > +return ret; +> > + +> > +hdcp_info->hdcp2_info.device_count = +> > +(HDCP_2_2_DEV_COUNT_HI(hdcp_info->hdcp2_info.hdcp_rx.recvid_list.rx_info[0]) << 4 | +> > +HDCP_2_2_DEV_COUNT_LO(hdcp_info->hdcp2_info.hdcp_rx.recvid_list.rx_info[1])); +> > + +> > +ret = drm_dp_dpcd_read(&mtk_dp->aux, DP_HDCP_2_2_REG_SEQ_NUM_V_OFFSET, +> > +       hdcp_info->hdcp2_info.hdcp_rx.recvid_list.seq_num_v, +> > +HDCP_2_2_SEQ_NUM_LEN); +> > +if (ret < 0) +> > +return ret; +> > + +> > +ret = drm_dp_dpcd_read(&mtk_dp->aux, DP_HDCP_2_2_REG_VPRIME_OFFSET, +> > +       hdcp_info->hdcp2_info.hdcp_rx.recvid_list.v_prime, +> > +HDCP_2_2_V_PRIME_HALF_LEN); +> > +if (ret < 0) +> > +return ret; +> > + +> > +ret = drm_dp_dpcd_read(&mtk_dp->aux, DP_HDCP_2_2_REG_RECV_ID_LIST_OFFSET, +> > +       hdcp_info->hdcp2_info.hdcp_rx.recvid_list.receiver_ids, +> > +hdcp_info->hdcp2_info.device_count * HDCP_2_2_RECEIVER_ID_LEN); +> > +if (ret < 0) +> > +return ret; +> > + +> > +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 b1d0a36..0f9e248 100644 --- a/a/content_digest +++ b/N1/content_digest @@ -17,7 +17,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" @@ -113,5 +113,118 @@ "> > +\n" "> \n" > + "\01:2\0" + "b\0" + "<html><body><p>\r\n" + "<pre>\r\n" + "Hi, Mac:\r\n" + "\r\n" + "On Fri, 2024-11-01 at 15:18 +0800, CK Hu wrote:\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" + "> > +\r\n" + "> > +static int dp_tx_hdcp2x_read_rep_send_recvid_list(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" + "> > +u8 rx_status = 0;\r\n" + "> > +ssize_t ret;\r\n" + "> > +\r\n" + "> > +dev_dbg(mtk_dp->dev, "[HDCP2.X] HDCP_2_2_REP_SEND_RECVID_LIST\n");\r\n" + "> > +\r\n" + "> > +dp_tx_hdcp2x_wait_for_cp_irq(hdcp_info, HDCP_2_2_RECVID_LIST_TIMEOUT_MS);\r\n" + "> > +hdcp_info->hdcp2_info.cp_irq_cached = atomic_read(&hdcp_info->hdcp2_info.cp_irq);\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_READY(rx_status)) {\r\n" + "> > +dev_err(mtk_dp->dev, "[HDCP2.X] RX status no ready\n");\r\n" + "> > +return -EAGAIN;\r\n" + "> > +}\r\n" + "> > +\r\n" + "> > +ret = drm_dp_dpcd_read(&mtk_dp->aux, DP_HDCP_2_2_REP_SEND_RECVID_LIST_OFFSET,\r\n" + "> > +       hdcp_info->hdcp2_info.hdcp_rx.recvid_list.rx_info,\r\n" + "> > +HDCP_2_2_RXINFO_LEN);\r\n" + "> \r\n" + "> In [1], intel use DP_HDCP_2_2_REG_RXINFO_OFFSET to get device count.\r\n" + "> But here you use DP_HDCP_2_2_REP_SEND_RECVID_LIST_OFFSET to get device count.\r\n" + "> So both command can get device count? Or something wrong?\r\n" + "\r\n" + "Forget my previous comment. In [2], intel use DP_HDCP_2_2_REP_SEND_RECVID_LIST_OFFSET to get device count.\r\n" + "\r\n" + "[2] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/gpu/drm/i915/display/intel_hdcp.c?h=v6.12-rc6#n1749\r\n" + "\r\n" + "Regards,\r\n" + "CK\r\n" + "\r\n" + "> \r\n" + "> [1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/gpu/drm/i915/display/intel_dp_hdcp.c?h=v6.12-rc5#n497\r\n" + "> \r\n" + "> Regards,\r\n" + "> CK\r\n" + "> \r\n" + "> > +if (ret < 0)\r\n" + "> > +return ret;\r\n" + "> > +\r\n" + "> > +hdcp_info->hdcp2_info.device_count =\r\n" + "> > +(HDCP_2_2_DEV_COUNT_HI(hdcp_info->hdcp2_info.hdcp_rx.recvid_list.rx_info[0]) << 4 |\r\n" + "> > +HDCP_2_2_DEV_COUNT_LO(hdcp_info->hdcp2_info.hdcp_rx.recvid_list.rx_info[1]));\r\n" + "> > +\r\n" + "> > +ret = drm_dp_dpcd_read(&mtk_dp->aux, DP_HDCP_2_2_REG_SEQ_NUM_V_OFFSET,\r\n" + "> > +       hdcp_info->hdcp2_info.hdcp_rx.recvid_list.seq_num_v,\r\n" + "> > +HDCP_2_2_SEQ_NUM_LEN);\r\n" + "> > +if (ret < 0)\r\n" + "> > +return ret;\r\n" + "> > +\r\n" + "> > +ret = drm_dp_dpcd_read(&mtk_dp->aux, DP_HDCP_2_2_REG_VPRIME_OFFSET,\r\n" + "> > +       hdcp_info->hdcp2_info.hdcp_rx.recvid_list.v_prime,\r\n" + "> > +HDCP_2_2_V_PRIME_HALF_LEN);\r\n" + "> > +if (ret < 0)\r\n" + "> > +return ret;\r\n" + "> > +\r\n" + "> > +ret = drm_dp_dpcd_read(&mtk_dp->aux, DP_HDCP_2_2_REG_RECV_ID_LIST_OFFSET,\r\n" + "> > +       hdcp_info->hdcp2_info.hdcp_rx.recvid_list.receiver_ids,\r\n" + "> > +hdcp_info->hdcp2_info.device_count * HDCP_2_2_RECEIVER_ID_LEN);\r\n" + "> > +if (ret < 0)\r\n" + "> > +return ret;\r\n" + "> > +\r\n" + "> > +return 0;\r\n" + "> > +}\r\n" + "> > +\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><!--}--> -308f426fcd921dedd94932b5369c9ebe8886f39e04162463168577d455844e25 +f16de4e9c8266b0d290ff1ebc91a79553bdd72b514456a8a5148573e8cc9176f
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.