Loading drivers/gpu/drm/msm/dp/dp_display.c +27 −0 Original line number Diff line number Diff line Loading @@ -65,6 +65,8 @@ struct dp_display_private { bool power_on; bool audio_supported; atomic_t aborted; struct platform_device *pdev; struct dentry *root; struct completion notification_comp; Loading Loading @@ -645,6 +647,11 @@ static int dp_display_handle_disconnect(struct dp_display_private *dp) int rc; rc = dp_display_process_hpd_low(dp); if (rc) { /* cancel any pending request */ dp->ctrl->abort(dp->ctrl); dp->aux->abort(dp->aux); } mutex_lock(&dp->session_lock); if (rc && dp->power_on) Loading Loading @@ -687,6 +694,7 @@ static int dp_display_usbpd_disconnect_cb(struct device *dev) dp->link->psm_config(dp->link, &dp->panel->link_info, true); /* cancel any pending request */ atomic_set(&dp->aborted, 1); dp->ctrl->abort(dp->ctrl); dp->aux->abort(dp->aux); Loading @@ -695,6 +703,7 @@ static int dp_display_usbpd_disconnect_cb(struct device *dev) flush_workqueue(dp->wq); dp_display_handle_disconnect(dp); atomic_set(&dp->aborted, 0); end: return rc; } Loading Loading @@ -786,6 +795,7 @@ static int dp_display_usbpd_attention_cb(struct device *dev) queue_delayed_work(dp->wq, &dp->connect_work, 0); } else { /* cancel any pending request */ atomic_set(&dp->aborted, 1); dp->ctrl->abort(dp->ctrl); dp->aux->abort(dp->aux); Loading @@ -794,6 +804,7 @@ static int dp_display_usbpd_attention_cb(struct device *dev) flush_workqueue(dp->wq); dp_display_handle_disconnect(dp); atomic_set(&dp->aborted, 0); } return 0; Loading @@ -810,6 +821,11 @@ static void dp_display_connect_work(struct work_struct *work) return; } if (atomic_read(&dp->aborted)) { pr_err("aborted\n"); return; } dp_display_process_hpd_high(dp); } Loading Loading @@ -1062,6 +1078,11 @@ static int dp_display_enable(struct dp_display *dp_display) goto end; } if (atomic_read(&dp->aborted)) { pr_err("aborted\n"); goto end; } dp->aux->init(dp->aux, dp->parser->aux_cfg); rc = dp->ctrl->on(dp->ctrl); Loading Loading @@ -1094,6 +1115,11 @@ static int dp_display_post_enable(struct dp_display *dp_display) goto end; } if (atomic_read(&dp->aborted)) { pr_err("aborted\n"); goto end; } dp->panel->spd_config(dp->panel); if (dp->audio_supported) { Loading Loading @@ -1369,6 +1395,7 @@ static int dp_display_probe(struct platform_device *pdev) dp->pdev = pdev; dp->name = "drm_dp"; dp->audio_status = -ENODEV; atomic_set(&dp->aborted, 0); rc = dp_display_create_workqueue(dp); if (rc) { Loading Loading
drivers/gpu/drm/msm/dp/dp_display.c +27 −0 Original line number Diff line number Diff line Loading @@ -65,6 +65,8 @@ struct dp_display_private { bool power_on; bool audio_supported; atomic_t aborted; struct platform_device *pdev; struct dentry *root; struct completion notification_comp; Loading Loading @@ -645,6 +647,11 @@ static int dp_display_handle_disconnect(struct dp_display_private *dp) int rc; rc = dp_display_process_hpd_low(dp); if (rc) { /* cancel any pending request */ dp->ctrl->abort(dp->ctrl); dp->aux->abort(dp->aux); } mutex_lock(&dp->session_lock); if (rc && dp->power_on) Loading Loading @@ -687,6 +694,7 @@ static int dp_display_usbpd_disconnect_cb(struct device *dev) dp->link->psm_config(dp->link, &dp->panel->link_info, true); /* cancel any pending request */ atomic_set(&dp->aborted, 1); dp->ctrl->abort(dp->ctrl); dp->aux->abort(dp->aux); Loading @@ -695,6 +703,7 @@ static int dp_display_usbpd_disconnect_cb(struct device *dev) flush_workqueue(dp->wq); dp_display_handle_disconnect(dp); atomic_set(&dp->aborted, 0); end: return rc; } Loading Loading @@ -786,6 +795,7 @@ static int dp_display_usbpd_attention_cb(struct device *dev) queue_delayed_work(dp->wq, &dp->connect_work, 0); } else { /* cancel any pending request */ atomic_set(&dp->aborted, 1); dp->ctrl->abort(dp->ctrl); dp->aux->abort(dp->aux); Loading @@ -794,6 +804,7 @@ static int dp_display_usbpd_attention_cb(struct device *dev) flush_workqueue(dp->wq); dp_display_handle_disconnect(dp); atomic_set(&dp->aborted, 0); } return 0; Loading @@ -810,6 +821,11 @@ static void dp_display_connect_work(struct work_struct *work) return; } if (atomic_read(&dp->aborted)) { pr_err("aborted\n"); return; } dp_display_process_hpd_high(dp); } Loading Loading @@ -1062,6 +1078,11 @@ static int dp_display_enable(struct dp_display *dp_display) goto end; } if (atomic_read(&dp->aborted)) { pr_err("aborted\n"); goto end; } dp->aux->init(dp->aux, dp->parser->aux_cfg); rc = dp->ctrl->on(dp->ctrl); Loading Loading @@ -1094,6 +1115,11 @@ static int dp_display_post_enable(struct dp_display *dp_display) goto end; } if (atomic_read(&dp->aborted)) { pr_err("aborted\n"); goto end; } dp->panel->spd_config(dp->panel); if (dp->audio_supported) { Loading Loading @@ -1369,6 +1395,7 @@ static int dp_display_probe(struct platform_device *pdev) dp->pdev = pdev; dp->name = "drm_dp"; dp->audio_status = -ENODEV; atomic_set(&dp->aborted, 0); rc = dp_display_create_workqueue(dp); if (rc) { Loading