2024-04-02 07:11:29

by Wojciech Macek

[permalink] [raw]
Subject: [PATCH] drm/mediatek/dp: fix mtk_dp_aux_transfer return value

From: Wojciech Macek <[email protected]>

In case there is no DP device attached to the port the
transfer function should return IO error, similar to what
other drivers do.
In case EAGAIN is returned then any read from /dev/drm_dp_aux
device ends up in an infinite loop as the upper layers
constantly repeats the transfer request.

Signed-off-by: Wojciech Macek <[email protected]>
---
drivers/gpu/drm/mediatek/mtk_dp.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/mediatek/mtk_dp.c b/drivers/gpu/drm/mediatek/mtk_dp.c
index 0ba72102636a..536366956447 100644
--- a/drivers/gpu/drm/mediatek/mtk_dp.c
+++ b/drivers/gpu/drm/mediatek/mtk_dp.c
@@ -2104,7 +2104,7 @@ static ssize_t mtk_dp_aux_transfer(struct drm_dp_aux *mtk_aux,

if (mtk_dp->bridge.type != DRM_MODE_CONNECTOR_eDP &&
!mtk_dp->train_info.cable_plugged_in) {
- ret = -EAGAIN;
+ ret = -EIO;
goto err;
}

--
2.44.0.478.gd926399ef9-goog



2024-04-17 02:50:12

by CK Hu (胡俊光)

[permalink] [raw]
Subject: Re: [PATCH] drm/mediatek/dp: fix mtk_dp_aux_transfer return value

Hi, Wojciech:

On Tue, 2024-04-02 at 07:11 +0000, Wojciech Macek wrote:
>
> External email : Please do not click links or open attachments until
> you have verified the sender or the content.
> From: Wojciech Macek <[email protected]>
>
> In case there is no DP device attached to the port the
> transfer function should return IO error, similar to what
> other drivers do.
> In case EAGAIN is returned then any read from /dev/drm_dp_aux
> device ends up in an infinite loop as the upper layers
> constantly repeats the transfer request.

This patch looks good to me, but need fixes tag, please refer to [1] to
add fixes tag.

[1]
https://www.kernel.org/doc/html/v6.8/process/submitting-patches.html

Regards,
CK

>
> Signed-off-by: Wojciech Macek <[email protected]>
> ---
> drivers/gpu/drm/mediatek/mtk_dp.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/mediatek/mtk_dp.c
> b/drivers/gpu/drm/mediatek/mtk_dp.c
> index 0ba72102636a..536366956447 100644
> --- a/drivers/gpu/drm/mediatek/mtk_dp.c
> +++ b/drivers/gpu/drm/mediatek/mtk_dp.c
> @@ -2104,7 +2104,7 @@ static ssize_t mtk_dp_aux_transfer(struct
> drm_dp_aux *mtk_aux,
>
> if (mtk_dp->bridge.type != DRM_MODE_CONNECTOR_eDP &&
> !mtk_dp->train_info.cable_plugged_in) {
> - ret = -EAGAIN;
> + ret = -EIO;
> goto err;
> }
>
> --
> 2.44.0.478.gd926399ef9-goog
>