From: "CK Hu (胡俊光)" <ck.hu@mediatek.com>
To: "Mac Shen (沈俊)" <Mac.Shen@mediatek.com>,
"chunkuang.hu@kernel.org" <chunkuang.hu@kernel.org>,
"Jitao Shi (石记涛)" <jitao.shi@mediatek.com>,
"daniel@ffwll.ch" <daniel@ffwll.ch>,
"p.zabel@pengutronix.de" <p.zabel@pengutronix.de>,
"airlied@gmail.com" <airlied@gmail.com>,
"matthias.bgg@gmail.com" <matthias.bgg@gmail.com>,
"AngeloGioacchino Del Regno"
<angelogioacchino.delregno@collabora.com>
Cc: "dri-devel@lists.freedesktop.org"
<dri-devel@lists.freedesktop.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"linux-mediatek@lists.infradead.org"
<linux-mediatek@lists.infradead.org>,
"linux-arm-kernel@lists.infradead.org"
<linux-arm-kernel@lists.infradead.org>,
"Shuijing Li (李水静)" <Shuijing.Li@mediatek.com>
Subject: Re: [PATCH v3 2/3] Subject: [PATCH] drm/mediatek/dp: Add HDCP2.x feature for DisplayPort
Date: Wed, 30 Oct 2024 08:20:55 +0000 [thread overview]
Message-ID: <a292c445fa662b0af54c47b192e281490636bdd0.camel@mediatek.com> (raw)
In-Reply-To: <20240608120219.21817-3-mac.shen@mediatek.com>
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;
In [1], intel return -ETIMEOUT and not retry. Maybe return -ETIMEOUT is better?
[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#n428
Regards,
CK
> + }
> +
> + 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);
> + 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;
> +}
> +
WARNING: multiple messages have this Message-ID (diff)
From: "CK Hu (胡俊光)" <ck.hu@mediatek.com>
To: "Mac Shen (沈俊)" <Mac.Shen@mediatek.com>,
"chunkuang.hu@kernel.org" <chunkuang.hu@kernel.org>,
"Jitao Shi (石记涛)" <jitao.shi@mediatek.com>,
"daniel@ffwll.ch" <daniel@ffwll.ch>,
"p.zabel@pengutronix.de" <p.zabel@pengutronix.de>,
"airlied@gmail.com" <airlied@gmail.com>,
"matthias.bgg@gmail.com" <matthias.bgg@gmail.com>,
"AngeloGioacchino Del Regno"
<angelogioacchino.delregno@collabora.com>
Cc: "dri-devel@lists.freedesktop.org"
<dri-devel@lists.freedesktop.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"linux-mediatek@lists.infradead.org"
<linux-mediatek@lists.infradead.org>,
"linux-arm-kernel@lists.infradead.org"
<linux-arm-kernel@lists.infradead.org>,
"Shuijing Li (李水静)" <Shuijing.Li@mediatek.com>
Subject: Re: [PATCH v3 2/3] Subject: [PATCH] drm/mediatek/dp: Add HDCP2.x feature for DisplayPort
Date: Wed, 30 Oct 2024 08:20:55 +0000 [thread overview]
Message-ID: <a292c445fa662b0af54c47b192e281490636bdd0.camel@mediatek.com> (raw)
In-Reply-To: <20240608120219.21817-3-mac.shen@mediatek.com>
[-- Attachment #1: Type: text/plain, Size: 2908 bytes --]
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;
In [1], intel return -ETIMEOUT and not retry. Maybe return -ETIMEOUT is better?
[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#n428
Regards,
CK
> + }
> +
> + 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);
> + 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;
> +}
> +
[-- Attachment #2: Type: text/html, Size: 5138 bytes --]
next prev parent reply other threads:[~2024-10-30 8:21 UTC|newest]
Thread overview: 42+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-06-08 12:01 [PATCH v3 0/3] Add HDCP feature for DisplayPort mac.shen
2024-06-08 12:01 ` mac.shen
2024-06-08 12:01 ` [PATCH v3 1/3] Subject: [PATCH] drm/mediatek/dp: Add tee client application for HDCP feature mac.shen
2024-06-08 12:01 ` mac.shen
2024-06-08 12:01 ` [PATCH v3 2/3] Subject: [PATCH] drm/mediatek/dp: Add HDCP2.x feature for DisplayPort mac.shen
2024-06-08 12:01 ` mac.shen
2024-07-18 5:41 ` CK Hu (胡俊光)
2024-07-18 5:41 ` CK Hu (胡俊光)
2024-07-18 6:23 ` CK Hu (胡俊光)
2024-07-18 6:23 ` CK Hu (胡俊光)
2024-07-18 7:48 ` CK Hu (胡俊光)
2024-07-18 7:48 ` CK Hu (胡俊光)
2024-07-19 4:05 ` CK Hu (胡俊光)
2024-07-19 4:05 ` CK Hu (胡俊光)
2024-07-23 7:16 ` CK Hu (胡俊光)
2024-07-23 7:16 ` CK Hu (胡俊光)
2024-08-12 7:05 ` CK Hu (胡俊光)
2024-08-12 7:05 ` CK Hu (胡俊光)
2024-08-12 7:25 ` CK Hu (胡俊光)
2024-08-12 7:25 ` CK Hu (胡俊光)
2024-08-22 5:39 ` CK Hu (胡俊光)
2024-08-22 5:39 ` CK Hu (胡俊光)
2024-08-22 6:20 ` CK Hu (胡俊光)
2024-08-22 6:20 ` CK Hu (胡俊光)
2024-08-23 1:07 ` CK Hu (胡俊光)
2024-08-23 1:07 ` CK Hu (胡俊光)
2024-08-23 2:44 ` CK Hu (胡俊光)
2024-08-23 2:44 ` CK Hu (胡俊光)
2024-08-23 7:30 ` CK Hu (胡俊光)
2024-08-23 7:30 ` CK Hu (胡俊光)
2024-10-30 8:20 ` CK Hu (胡俊光) [this message]
2024-10-30 8:20 ` CK Hu (胡俊光)
2024-11-01 7:18 ` CK Hu (胡俊光)
2024-11-01 7:18 ` CK Hu (胡俊光)
2024-11-07 7:05 ` CK Hu (胡俊光)
2024-11-07 7:05 ` CK Hu (胡俊光)
2024-11-01 9:01 ` CK Hu (胡俊光)
2024-11-01 9:01 ` CK Hu (胡俊光)
2024-06-08 12:01 ` [PATCH v3 3/3] Subject: [PATCH] drm/mediatek/dp: Add HDCP1.x " mac.shen
2024-06-08 12:01 ` mac.shen
2024-08-30 9:03 ` CK Hu (胡俊光)
2024-08-30 9:03 ` CK Hu (胡俊光)
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=a292c445fa662b0af54c47b192e281490636bdd0.camel@mediatek.com \
--to=ck.hu@mediatek.com \
--cc=Mac.Shen@mediatek.com \
--cc=Shuijing.Li@mediatek.com \
--cc=airlied@gmail.com \
--cc=angelogioacchino.delregno@collabora.com \
--cc=chunkuang.hu@kernel.org \
--cc=daniel@ffwll.ch \
--cc=dri-devel@lists.freedesktop.org \
--cc=jitao.shi@mediatek.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mediatek@lists.infradead.org \
--cc=matthias.bgg@gmail.com \
--cc=p.zabel@pengutronix.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.