| From b1daadab6517c6b17b7814b911f75beaa939b75e Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Sat, 15 Jun 2024 17:03:55 +0000 |
| Subject: drm/rockchip: dw_hdmi: Fix reading EDID when using a forced mode |
| |
| From: Jonas Karlman <jonas@kwiboo.se> |
| |
| [ Upstream commit a5d024541ec466f428e6c514577d511a40779c7b ] |
| |
| EDID cannot be read on RK3328 until after read_hpd has been called and |
| correct io voltage has been configured based on connection status. |
| |
| When a forced mode is used, e.g. video=1920x1080@60e, the connector |
| detect ops, that in turn normally calls the read_hpd, never gets called. |
| |
| This result in reading EDID to fail in connector get_modes ops. |
| |
| Call dw_hdmi_rk3328_read_hpd at end of dw_hdmi_rk3328_setup_hpd to |
| correct io voltage and allow reading EDID after setup_hpd. |
| |
| Fixes: 1c53ba8f22a1 ("drm/rockchip: dw_hdmi: add dw-hdmi support for the rk3328") |
| Signed-off-by: Jonas Karlman <jonas@kwiboo.se> |
| Signed-off-by: Heiko Stuebner <heiko@sntech.de> |
| Link: https://patchwork.freedesktop.org/patch/msgid/20240615170417.3134517-5-jonas@kwiboo.se |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c | 2 ++ |
| 1 file changed, 2 insertions(+) |
| |
| diff --git a/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c b/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c |
| index fe33092abbe7d..aae48e906af11 100644 |
| --- a/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c |
| +++ b/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c |
| @@ -434,6 +434,8 @@ static void dw_hdmi_rk3328_setup_hpd(struct dw_hdmi *dw_hdmi, void *data) |
| HIWORD_UPDATE(RK3328_HDMI_SDAIN_MSK | RK3328_HDMI_SCLIN_MSK, |
| RK3328_HDMI_SDAIN_MSK | RK3328_HDMI_SCLIN_MSK | |
| RK3328_HDMI_HPD_IOE)); |
| + |
| + dw_hdmi_rk3328_read_hpd(dw_hdmi, data); |
| } |
| |
| static const struct dw_hdmi_phy_ops rk3228_hdmi_phy_ops = { |
| -- |
| 2.43.0 |
| |