[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <17b6150d22280f994116d529dd11a47bace158a5.camel@mediatek.com>
Date: Thu, 27 Jul 2023 03:36:24 +0000
From: CK Hu (胡俊光) <ck.hu@...iatek.com>
To: "angelogioacchino.delregno@...labora.com"
<angelogioacchino.delregno@...labora.com>,
"chunkuang.hu@...nel.org" <chunkuang.hu@...nel.org>
CC: "linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
"linux-mediatek@...ts.infradead.org"
<linux-mediatek@...ts.infradead.org>,
"wenst@...omium.org" <wenst@...omium.org>,
"kernel@...labora.com" <kernel@...labora.com>,
"dri-devel@...ts.freedesktop.org" <dri-devel@...ts.freedesktop.org>,
"amergnat@...libre.com" <amergnat@...libre.com>,
"ehristev@...labora.com" <ehristev@...labora.com>,
"linux-arm-kernel@...ts.infradead.org"
<linux-arm-kernel@...ts.infradead.org>,
"matthias.bgg@...il.com" <matthias.bgg@...il.com>,
"nfraprado@...labora.com" <nfraprado@...labora.com>
Subject: Re: [PATCH v7 01/11] drm/mediatek: dp: Add missing error checks in
mtk_dp_parse_capabilities
Hi, Angelo:
On Tue, 2023-07-25 at 09:32 +0200, AngeloGioacchino Del Regno wrote:
> 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.
Reviewed-by: CK Hu <ck.hu@...iatek.com>
>
> Fixes: f70ac097a2cf ("drm/mediatek: Add MT8195 Embedded DisplayPort
> driver")
> Signed-off-by: AngeloGioacchino Del Regno <
> angelogioacchino.delregno@...labora.com>
> Tested-by: Chen-Yu Tsai <wenst@...omium.org>
> Reviewed-by: Alexandre Mergnat <amergnat@...libre.com>
> ---
> 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;
Powered by blists - more mailing lists