Messages in this thread | | | Date | Wed, 27 Jul 2022 11:40:44 +0200 | Subject | Re: [PATCH v15 07/11] drm/mediatek: Add retry to prevent misjudgment for sink devices | From | AngeloGioacchino Del Regno <> |
| |
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@mediatek.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@collabora.com>
> + > + if (!max_retry) > + return -ETIMEDOUT; > > ret = mtk_dp_video_config(mtk_dp); > if (ret)
| |