@@ -94,6 +94,7 @@ struct rockchip_hdmi_qp {
94
94
struct gpio_desc * enable_gpio ;
95
95
struct delayed_work hpd_work ;
96
96
int port_id ;
97
+ const struct rockchip_hdmi_qp_ctrl_ops * ctrl_ops ;
97
98
};
98
99
99
100
struct rockchip_hdmi_qp_ctrl_ops {
@@ -461,6 +462,7 @@ static int dw_hdmi_qp_rockchip_bind(struct device *dev, struct device *master,
461
462
return - ENODEV ;
462
463
}
463
464
465
+ hdmi -> ctrl_ops = cfg -> ctrl_ops ;
464
466
hdmi -> dev = & pdev -> dev ;
465
467
hdmi -> port_id = - ENODEV ;
466
468
@@ -600,27 +602,8 @@ static void dw_hdmi_qp_rockchip_remove(struct platform_device *pdev)
600
602
static int __maybe_unused dw_hdmi_qp_rockchip_resume (struct device * dev )
601
603
{
602
604
struct rockchip_hdmi_qp * hdmi = dev_get_drvdata (dev );
603
- u32 val ;
604
605
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 );
624
607
625
608
dw_hdmi_qp_resume (dev , hdmi -> hdmi );
626
609
0 commit comments