Skip to content

Commit 1d34597

Browse files
Andy Yanmmind
authored andcommitted
drm/rockchip: dw_hdmi_qp: Fix io init for dw_hdmi_qp_rockchip_resume
Use cfg->ctrl_ops->io_init callback make it work for all platform. And it's also gets rid of code duplication Fixes: 3f60dbd ("drm/rockchip: dw_hdmi_qp: Add platform ctrl callback") Signed-off-by: Andy Yan <andy.yan@rock-chips.com> Reviewed-by: Sebastian Reichel <sebastian.reichel@collabora.com> Signed-off-by: Heiko Stuebner <heiko@sntech.de> Link: https://lore.kernel.org/r/20250317102757.565679-1-andyshrk@163.com
1 parent 210db26 commit 1d34597

File tree

1 file changed

+3
-20
lines changed

1 file changed

+3
-20
lines changed

drivers/gpu/drm/rockchip/dw_hdmi_qp-rockchip.c

Lines changed: 3 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,7 @@ struct rockchip_hdmi_qp {
9494
struct gpio_desc *enable_gpio;
9595
struct delayed_work hpd_work;
9696
int port_id;
97+
const struct rockchip_hdmi_qp_ctrl_ops *ctrl_ops;
9798
};
9899

99100
struct rockchip_hdmi_qp_ctrl_ops {
@@ -461,6 +462,7 @@ static int dw_hdmi_qp_rockchip_bind(struct device *dev, struct device *master,
461462
return -ENODEV;
462463
}
463464

465+
hdmi->ctrl_ops = cfg->ctrl_ops;
464466
hdmi->dev = &pdev->dev;
465467
hdmi->port_id = -ENODEV;
466468

@@ -600,27 +602,8 @@ static void dw_hdmi_qp_rockchip_remove(struct platform_device *pdev)
600602
static int __maybe_unused dw_hdmi_qp_rockchip_resume(struct device *dev)
601603
{
602604
struct rockchip_hdmi_qp *hdmi = dev_get_drvdata(dev);
603-
u32 val;
604605

605-
val = HIWORD_UPDATE(RK3588_SCLIN_MASK, RK3588_SCLIN_MASK) |
606-
HIWORD_UPDATE(RK3588_SDAIN_MASK, RK3588_SDAIN_MASK) |
607-
HIWORD_UPDATE(RK3588_MODE_MASK, RK3588_MODE_MASK) |
608-
HIWORD_UPDATE(RK3588_I2S_SEL_MASK, RK3588_I2S_SEL_MASK);
609-
regmap_write(hdmi->vo_regmap,
610-
hdmi->port_id ? RK3588_GRF_VO1_CON6 : RK3588_GRF_VO1_CON3,
611-
val);
612-
613-
val = HIWORD_UPDATE(RK3588_SET_HPD_PATH_MASK,
614-
RK3588_SET_HPD_PATH_MASK);
615-
regmap_write(hdmi->regmap, RK3588_GRF_SOC_CON7, val);
616-
617-
if (hdmi->port_id)
618-
val = HIWORD_UPDATE(RK3588_HDMI1_GRANT_SEL,
619-
RK3588_HDMI1_GRANT_SEL);
620-
else
621-
val = HIWORD_UPDATE(RK3588_HDMI0_GRANT_SEL,
622-
RK3588_HDMI0_GRANT_SEL);
623-
regmap_write(hdmi->vo_regmap, RK3588_GRF_VO1_CON9, val);
606+
hdmi->ctrl_ops->io_init(hdmi);
624607

625608
dw_hdmi_qp_resume(dev, hdmi->hdmi);
626609

0 commit comments

Comments
 (0)