[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <ce46e9b2-8e34-b6cd-d802-35b3ae66e02d@collabora.com>
Date: Wed, 27 Jul 2022 11:40:44 +0200
From: AngeloGioacchino Del Regno
<angelogioacchino.delregno@...labora.com>
To: Bo-Chen Chen <rex-bc.chen@...iatek.com>, chunkuang.hu@...nel.org,
p.zabel@...gutronix.de, daniel@...ll.ch, robh+dt@...nel.org,
krzysztof.kozlowski+dt@...aro.org, mripard@...nel.org,
tzimmermann@...e.de, matthias.bgg@...il.com, deller@....de,
airlied@...ux.ie
Cc: msp@...libre.com, granquet@...libre.com, jitao.shi@...iatek.com,
wenst@...omium.org, ck.hu@...iatek.com, liangxu.xu@...iatek.com,
dri-devel@...ts.freedesktop.org,
linux-mediatek@...ts.infradead.org, devicetree@...r.kernel.org,
linux-kernel@...r.kernel.org, linux-arm-kernel@...ts.infradead.org,
linux-fbdev@...r.kernel.org,
Project_Global_Chrome_Upstream_Group@...iatek.com
Subject: Re: [PATCH v15 07/11] drm/mediatek: Add retry to prevent misjudgment
for sink devices
Il 27/07/22 06:50, Bo-Chen Chen ha scritto:
> For some DP dungles, we need to train more than onece to confirm that we
> don't misjudge the status of sink device.
Please fix the typos in your commit title and description.
title: misjudgment -> misjudgement
desc: dungles->dongles; onece->once
>
> Signed-off-by: Bo-Chen Chen <rex-bc.chen@...iatek.com>
> ---
> drivers/gpu/drm/mediatek/mtk_dp.c | 21 ++++++++++++++++++---
> 1 file changed, 18 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/gpu/drm/mediatek/mtk_dp.c b/drivers/gpu/drm/mediatek/mtk_dp.c
> index ce817cb59445..80d7d6488105 100644
> --- a/drivers/gpu/drm/mediatek/mtk_dp.c
> +++ b/drivers/gpu/drm/mediatek/mtk_dp.c
> @@ -42,6 +42,7 @@
> #define MTK_DP_CHECK_SINK_CAP_TIMEOUT_COUNT 3
> #define MTK_DP_TBC_BUF_READ_START_ADDR 0x08
> #define MTK_DP_TRAIN_DOWNSCALE_RETRY 8
> +#define MTK_DP_TRAIN_CLEAR_RETRY 50
>
> struct mtk_dp_train_info {
> bool tps3;
> @@ -1431,11 +1432,25 @@ static int mtk_dp_video_config(struct mtk_dp *mtk_dp)
>
> static int mtk_dp_training(struct mtk_dp *mtk_dp)
> {
> + short max_retry = MTK_DP_TRAIN_CLEAR_RETRY;
> int ret;
>
> - ret = mtk_dp_train_start(mtk_dp);
> - if (ret)
> - return ret;
> + /*
> + * We do retry to confirm that we don't misjudge the sink status.
> + * If it is still failed, we can confirm there are some issues for the
> + * sink device.
> + */
> + do {
> + ret = mtk_dp_train_start(mtk_dp);
> + if (!ret)
> + break;
> + } while (--max_retry);
> +
> + dev_info(mtk_dp->dev, "dp training clear retry times: %d\n",
> + MTK_DP_TRAIN_CLEAR_RETRY - max_retry);
dev_dbg() here.
...after which,
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@...labora.com>
> +
> + if (!max_retry)
> + return -ETIMEDOUT;
>
> ret = mtk_dp_video_config(mtk_dp);
> if (ret)
Powered by blists - more mailing lists