@@ -434,69 +434,18 @@ static int dcp_dptx_disconnect(struct apple_dcp *dcp, u32 port)
434434 return 0 ;
435435}
436436
437- static void dcp_deferred_hpd_work (struct work_struct * work )
438- {
439- struct apple_dcp * dcp = container_of (to_delayed_work (work ), struct apple_dcp , hpd_wq );
440- int err ;
441-
442- guard (mutex )(& dcp -> hpd_deferred_mutex );
443- dev_info (dcp -> dev , "%s\n" , __func__ );
444-
445- switch (dcp -> hpd .state ) {
446- case DCP_HPD_OOB_CONNECTED :
447- err = dcp_dptx_connect (dcp , dcp -> hpd .port );
448- if (err < 0 )
449- dev_warn (dcp -> dev , "OOB HPD connect failed:%d\n" , err );
450- break ;
451- case DCP_HPD_OOB_DISCONNECTED :
452- dptxport_set_hpd (dcp -> dptxport [dcp -> hpd .port ].service , false);
453- err = dcp_dptx_disconnect (dcp , dcp -> hpd .port );
454- if (err < 0 )
455- dev_warn (dcp -> dev , "OOB HPD disconnect failed:%d\n" , err );
456- break ;
457- default :
458- return ;
459- }
460- }
461-
462- static int dcp_dptx_schedule_hdp_work (struct apple_dcp * dcp ,
463- enum dcp_hdp_state state , u32 port )
464- {
465- guard (mutex )(& dcp -> hpd_deferred_mutex );
466- dcp -> hpd .port = port ;
467- dcp -> hpd .state = state ;
468-
469- if (state == DCP_HPD_OOB_CONNECTED )
470- {
471- guard (mutex )(& dcp -> hpd_mutex );
472- if (dcp -> dptxport [port ].connected )
473- return 0 ;
474-
475- if (delayed_work_pending (& dcp -> hpd_wq ))
476- timer_reduce (& dcp -> hpd_wq .timer , msecs_to_jiffies (100 ));
477- else
478- schedule_delayed_work (& dcp -> hpd_wq , msecs_to_jiffies (2000 ));
479- } else {
480- if (!delayed_work_pending (& dcp -> hpd_wq ))
481- schedule_delayed_work (& dcp -> hpd_wq , msecs_to_jiffies (25 ));
482- }
483-
484- return 0 ;
485- }
486-
487437int dcp_dptx_connect_oob (struct platform_device * pdev , u32 port )
488438{
489439 struct apple_dcp * dcp = platform_get_drvdata (pdev );
490-
491- return dcp_dptx_schedule_hdp_work (dcp , DCP_HPD_OOB_CONNECTED , port );
440+ return dcp_dptx_connect (dcp , port );
492441}
493442EXPORT_SYMBOL_GPL (dcp_dptx_connect_oob );
494443
495444int dcp_dptx_disconnect_oob (struct platform_device * pdev , u32 port )
496445{
497446 struct apple_dcp * dcp = platform_get_drvdata (pdev );
498-
499- return dcp_dptx_schedule_hdp_work (dcp , DCP_HPD_OOB_DISCONNECTED , port );
447+ dptxport_set_hpd ( dcp -> dptxport [ port ]. service , false);
448+ return dcp_dptx_disconnect (dcp , port );
500449}
501450EXPORT_SYMBOL_GPL (dcp_dptx_disconnect_oob );
502451
@@ -1021,8 +970,6 @@ static int dcp_comp_bind(struct device *dev, struct device *main, void *data)
1021970 dev_info (dev , "DCP index:%u dptx target phy: %u dptx die: %u\n" ,
1022971 dcp -> index , dcp -> dptx_phy , dcp -> dptx_die );
1023972 mutex_init (& dcp -> hpd_mutex );
1024- mutex_init (& dcp -> hpd_deferred_mutex );
1025- INIT_DELAYED_WORK (& dcp -> hpd_wq , dcp_deferred_hpd_work );
1026973
1027974 if (!show_notch )
1028975 ret = of_property_read_u32 (dev -> of_node , "apple,notch-height" ,
@@ -1166,7 +1113,6 @@ static void dcp_comp_unbind(struct device *dev, struct device *main, void *data)
11661113 cancel_work_sync (& dcp -> bl_update_wq );
11671114 }
11681115 cancel_work_sync (& dcp -> vblank_wq );
1169- cancel_delayed_work_sync (& dcp -> hpd_wq );
11701116
11711117 devm_clk_put (dev , dcp -> clk );
11721118 dcp -> clk = NULL ;
0 commit comments