Re: [PATCH v6 01/11] drm/mediatek: dp: Add missing error checks in mtk_dp_parse_capabilities

From: CK Hu (胡俊光)
Date: Tue Jul 18 2023 - 04:04:18 EST


Hi, Angelo:

On Mon, 2023-07-17 at 16:14 +0200, AngeloGioacchino Del Regno wrote:
>
> External email : Please do not click links or open attachments until
> you have verified the sender or the content.
> If reading the RX capabilities fails the training pattern will be
> set
> wrongly: add error checking for drm_dp_read_dpcd_caps() and return if
> anything went wrong with it.
>
> While at it, also add a less critical error check when writing to
> clear the ESI0 IRQ vector.

Reviwed-by: CK Hu <ck.hu@xxxxxxxxxxxx>

>
> Fixes: f70ac097a2cf ("drm/mediatek: Add MT8195 Embedded DisplayPort
> driver")
> Signed-off-by: AngeloGioacchino Del Regno <
> angelogioacchino.delregno@xxxxxxxxxxxxx>
> ---
> drivers/gpu/drm/mediatek/mtk_dp.c | 15 ++++++++++-----
> 1 file changed, 10 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/gpu/drm/mediatek/mtk_dp.c
> b/drivers/gpu/drm/mediatek/mtk_dp.c
> index 64eee77452c0..c58b775877a3 100644
> --- a/drivers/gpu/drm/mediatek/mtk_dp.c
> +++ b/drivers/gpu/drm/mediatek/mtk_dp.c
> @@ -1588,7 +1588,9 @@ static int mtk_dp_parse_capabilities(struct
> mtk_dp *mtk_dp)
> u8 val;
> ssize_t ret;
>
> - drm_dp_read_dpcd_caps(&mtk_dp->aux, mtk_dp->rx_cap);
> + ret = drm_dp_read_dpcd_caps(&mtk_dp->aux, mtk_dp->rx_cap);
> + if (ret < 0)
> + return ret;
>
> if (drm_dp_tps4_supported(mtk_dp->rx_cap))
> mtk_dp->train_info.channel_eq_pattern =
> DP_TRAINING_PATTERN_4;
> @@ -1615,10 +1617,13 @@ static int mtk_dp_parse_capabilities(struct
> mtk_dp *mtk_dp)
> return ret == 0 ? -EIO : ret;
> }
>
> - if (val)
> - drm_dp_dpcd_writeb(&mtk_dp->aux,
> - DP_DEVICE_SERVICE_IRQ_VECTOR
> _ESI0,
> - val);
> + if (val) {
> + ret = drm_dp_dpcd_writeb(&mtk_dp->aux,
> + DP_DEVICE_SERVICE_IRQ_
> VECTOR_ESI0,
> + val);
> + if (ret < 0)
> + return ret;
> + }
> }
>
> return 0;
> --
> 2.40.1