Lines Matching full:dp

123 	{.compatible = "qcom,sc7180-dp"},
183 struct dp_display_private *dp; in dp_display_signal_audio_complete() local
185 dp = container_of(dp_display, struct dp_display_private, dp_display); in dp_display_signal_audio_complete()
187 complete_all(&dp->audio_comp); in dp_display_signal_audio_complete()
194 struct dp_display_private *dp; in dp_display_bind() local
200 dp = container_of(g_dp_display, in dp_display_bind()
202 if (!dp) { in dp_display_bind()
203 DRM_ERROR("DP driver bind failed. Invalid driver data\n"); in dp_display_bind()
207 dp->dp_display.drm_dev = drm; in dp_display_bind()
209 priv->dp = &(dp->dp_display); in dp_display_bind()
211 rc = dp->parser->parse(dp->parser); in dp_display_bind()
217 rc = dp_aux_register(dp->aux); in dp_display_bind()
219 DRM_ERROR("DRM DP AUX register failed\n"); in dp_display_bind()
223 rc = dp_power_client_init(dp->power); in dp_display_bind()
229 rc = dp_register_audio_driver(dev, dp->audio); in dp_display_bind()
231 DRM_ERROR("Audio registration Dp failed\n"); in dp_display_bind()
240 struct dp_display_private *dp; in dp_display_unbind() local
244 dp = container_of(g_dp_display, in dp_display_unbind()
246 if (!dp) { in dp_display_unbind()
247 DRM_ERROR("Invalid DP driver data\n"); in dp_display_unbind()
251 dp_power_client_deinit(dp->power); in dp_display_unbind()
252 dp_aux_unregister(dp->aux); in dp_display_unbind()
253 priv->dp = NULL; in dp_display_unbind()
267 static bool dp_display_is_sink_count_zero(struct dp_display_private *dp) in dp_display_is_sink_count_zero() argument
269 return dp_display_is_ds_bridge(dp->panel) && in dp_display_is_sink_count_zero()
270 (dp->link->sink_count == 0); in dp_display_is_sink_count_zero()
275 struct dp_display_private *dp; in dp_display_send_hpd_event() local
278 dp = container_of(dp_display, struct dp_display_private, dp_display); in dp_display_send_hpd_event()
280 connector = dp->dp_display.connector; in dp_display_send_hpd_event()
284 static int dp_display_send_hpd_notification(struct dp_display_private *dp, in dp_display_send_hpd_notification() argument
288 struct msm_drm_private *priv = dp->dp_display.drm_dev->dev_private; in dp_display_send_hpd_notification()
291 if ((hpd && dp->dp_display.is_connected) || in dp_display_send_hpd_notification()
292 (!hpd && !dp->dp_display.is_connected)) { in dp_display_send_hpd_notification()
299 dp->panel->video_test = false; in dp_display_send_hpd_notification()
301 dp->dp_display.is_connected = hpd; in dp_display_send_hpd_notification()
303 if (dp->dp_display.is_connected && dp->dp_display.encoder in dp_display_send_hpd_notification()
307 dp->dp_display.encoder, false); in dp_display_send_hpd_notification()
312 dp_display_send_hpd_event(&dp->dp_display); in dp_display_send_hpd_notification()
317 static int dp_display_process_hpd_high(struct dp_display_private *dp) in dp_display_process_hpd_high() argument
322 dp->panel->max_dp_lanes = dp->parser->max_dp_lanes; in dp_display_process_hpd_high()
324 rc = dp_panel_read_sink_caps(dp->panel, dp->dp_display.connector); in dp_display_process_hpd_high()
328 dp_link_process_request(dp->link); in dp_display_process_hpd_high()
330 edid = dp->panel->edid; in dp_display_process_hpd_high()
332 dp->audio_supported = drm_detect_monitor_audio(edid); in dp_display_process_hpd_high()
333 dp_panel_handle_sink_request(dp->panel); in dp_display_process_hpd_high()
335 dp->dp_display.max_pclk_khz = DP_MAX_PIXEL_CLK_KHZ; in dp_display_process_hpd_high()
336 dp->dp_display.max_dp_lanes = dp->parser->max_dp_lanes; in dp_display_process_hpd_high()
338 rc = dp_ctrl_on_link(dp->ctrl); in dp_display_process_hpd_high()
340 DRM_ERROR("failed to complete DP link training\n"); in dp_display_process_hpd_high()
344 dp_add_event(dp, EV_USER_NOTIFICATION, true, 0); in dp_display_process_hpd_high()
351 static void dp_display_host_init(struct dp_display_private *dp) in dp_display_host_init() argument
355 if (dp->core_initialized) { in dp_display_host_init()
356 DRM_DEBUG_DP("DP core already initialized\n"); in dp_display_host_init()
360 if (dp->usbpd->orientation == ORIENTATION_CC2) in dp_display_host_init()
363 dp_power_init(dp->power, flip); in dp_display_host_init()
364 dp_ctrl_host_init(dp->ctrl, flip); in dp_display_host_init()
365 dp_aux_init(dp->aux); in dp_display_host_init()
366 dp->core_initialized = true; in dp_display_host_init()
372 struct dp_display_private *dp; in dp_display_usbpd_configure_cb() local
380 dp = container_of(g_dp_display, in dp_display_usbpd_configure_cb()
382 if (!dp) { in dp_display_usbpd_configure_cb()
388 dp_display_host_init(dp); in dp_display_usbpd_configure_cb()
394 dp_link_psm_config(dp->link, &dp->panel->link_info, false); in dp_display_usbpd_configure_cb()
395 rc = dp_display_process_hpd_high(dp); in dp_display_usbpd_configure_cb()
403 struct dp_display_private *dp; in dp_display_usbpd_disconnect_cb() local
411 dp = container_of(g_dp_display, in dp_display_usbpd_disconnect_cb()
413 if (!dp) { in dp_display_usbpd_disconnect_cb()
419 dp_add_event(dp, EV_USER_NOTIFICATION, false, 0); in dp_display_usbpd_disconnect_cb()
424 static void dp_display_handle_video_request(struct dp_display_private *dp) in dp_display_handle_video_request() argument
426 if (dp->link->sink_request & DP_TEST_LINK_VIDEO_PATTERN) { in dp_display_handle_video_request()
427 dp->panel->video_test = true; in dp_display_handle_video_request()
428 dp_link_send_test_response(dp->link); in dp_display_handle_video_request()
432 static int dp_display_handle_irq_hpd(struct dp_display_private *dp) in dp_display_handle_irq_hpd() argument
436 sink_request = dp->link->sink_request; in dp_display_handle_irq_hpd()
439 dp_add_event(dp, EV_USER_NOTIFICATION, false, 0); in dp_display_handle_irq_hpd()
440 if (dp_display_is_sink_count_zero(dp)) { in dp_display_handle_irq_hpd()
445 return dp_display_process_hpd_high(dp); in dp_display_handle_irq_hpd()
448 dp_ctrl_handle_sink_request(dp->ctrl); in dp_display_handle_irq_hpd()
450 if (dp->link->sink_request & DP_TEST_LINK_VIDEO_PATTERN) in dp_display_handle_irq_hpd()
451 dp_display_handle_video_request(dp); in dp_display_handle_irq_hpd()
459 struct dp_display_private *dp; in dp_display_usbpd_attention_cb() local
466 dp = container_of(g_dp_display, in dp_display_usbpd_attention_cb()
468 if (!dp) { in dp_display_usbpd_attention_cb()
474 rc = dp_link_process_request(dp->link); in dp_display_usbpd_attention_cb()
476 dp_display_handle_irq_hpd(dp); in dp_display_usbpd_attention_cb()
481 static int dp_hpd_plug_handle(struct dp_display_private *dp, u32 data) in dp_hpd_plug_handle() argument
483 struct dp_usbpd *hpd = dp->usbpd; in dp_hpd_plug_handle()
491 mutex_lock(&dp->event_mutex); in dp_hpd_plug_handle()
493 state = atomic_read(&dp->hpd_state); in dp_hpd_plug_handle()
495 mutex_unlock(&dp->event_mutex); in dp_hpd_plug_handle()
500 mutex_unlock(&dp->event_mutex); in dp_hpd_plug_handle()
506 dp_add_event(dp, EV_HPD_PLUG_INT, 0, 1); /* delay = 1 */ in dp_hpd_plug_handle()
507 mutex_unlock(&dp->event_mutex); in dp_hpd_plug_handle()
514 atomic_set(&dp->hpd_state, ST_CONNECT_PENDING); in dp_hpd_plug_handle()
518 ret = dp_display_usbpd_configure_cb(&dp->pdev->dev); in dp_hpd_plug_handle()
521 atomic_set(&dp->hpd_state, ST_DISCONNECTED); in dp_hpd_plug_handle()
525 dp_add_event(dp, EV_CONNECT_PENDING_TIMEOUT, 0, tout); in dp_hpd_plug_handle()
527 mutex_unlock(&dp->event_mutex); in dp_hpd_plug_handle()
533 static int dp_display_enable(struct dp_display_private *dp, u32 data);
534 static int dp_display_disable(struct dp_display_private *dp, u32 data);
536 static int dp_connect_pending_timeout(struct dp_display_private *dp, u32 data) in dp_connect_pending_timeout() argument
540 mutex_lock(&dp->event_mutex); in dp_connect_pending_timeout()
542 state = atomic_read(&dp->hpd_state); in dp_connect_pending_timeout()
544 dp_display_enable(dp, 0); in dp_connect_pending_timeout()
545 atomic_set(&dp->hpd_state, ST_CONNECTED); in dp_connect_pending_timeout()
548 mutex_unlock(&dp->event_mutex); in dp_connect_pending_timeout()
560 static int dp_hpd_unplug_handle(struct dp_display_private *dp, u32 data) in dp_hpd_unplug_handle() argument
562 struct dp_usbpd *hpd = dp->usbpd; in dp_hpd_unplug_handle()
568 mutex_lock(&dp->event_mutex); in dp_hpd_unplug_handle()
570 state = atomic_read(&dp->hpd_state); in dp_hpd_unplug_handle()
572 mutex_unlock(&dp->event_mutex); in dp_hpd_unplug_handle()
577 mutex_unlock(&dp->event_mutex); in dp_hpd_unplug_handle()
583 dp_add_event(dp, EV_HPD_UNPLUG_INT, 0, 1); /* delay = 1 */ in dp_hpd_unplug_handle()
584 mutex_unlock(&dp->event_mutex); in dp_hpd_unplug_handle()
588 atomic_set(&dp->hpd_state, ST_DISCONNECT_PENDING); in dp_hpd_unplug_handle()
591 dp_catalog_hpd_config_intr(dp->catalog, DP_DP_HPD_PLUG_INT_MASK in dp_hpd_unplug_handle()
600 dp_display_usbpd_disconnect_cb(&dp->pdev->dev); in dp_hpd_unplug_handle()
603 dp_add_event(dp, EV_DISCONNECT_PENDING_TIMEOUT, 0, DP_TIMEOUT_5_SECOND); in dp_hpd_unplug_handle()
607 reinit_completion(&dp->audio_comp); in dp_hpd_unplug_handle()
609 dp_catalog_hpd_config_intr(dp->catalog, DP_DP_HPD_PLUG_INT_MASK | in dp_hpd_unplug_handle()
613 mutex_unlock(&dp->event_mutex); in dp_hpd_unplug_handle()
617 static int dp_disconnect_pending_timeout(struct dp_display_private *dp, u32 data) in dp_disconnect_pending_timeout() argument
621 mutex_lock(&dp->event_mutex); in dp_disconnect_pending_timeout()
623 state = atomic_read(&dp->hpd_state); in dp_disconnect_pending_timeout()
625 dp_display_disable(dp, 0); in dp_disconnect_pending_timeout()
626 atomic_set(&dp->hpd_state, ST_DISCONNECTED); in dp_disconnect_pending_timeout()
629 mutex_unlock(&dp->event_mutex); in dp_disconnect_pending_timeout()
634 static int dp_irq_hpd_handle(struct dp_display_private *dp, u32 data) in dp_irq_hpd_handle() argument
638 mutex_lock(&dp->event_mutex); in dp_irq_hpd_handle()
641 state = atomic_read(&dp->hpd_state); in dp_irq_hpd_handle()
643 mutex_unlock(&dp->event_mutex); in dp_irq_hpd_handle()
647 dp_display_usbpd_attention_cb(&dp->pdev->dev); in dp_irq_hpd_handle()
649 mutex_unlock(&dp->event_mutex); in dp_irq_hpd_handle()
654 static void dp_display_deinit_sub_modules(struct dp_display_private *dp) in dp_display_deinit_sub_modules() argument
656 dp_debug_put(dp->debug); in dp_display_deinit_sub_modules()
657 dp_ctrl_put(dp->ctrl); in dp_display_deinit_sub_modules()
658 dp_panel_put(dp->panel); in dp_display_deinit_sub_modules()
659 dp_aux_put(dp->aux); in dp_display_deinit_sub_modules()
660 dp_audio_put(dp->audio); in dp_display_deinit_sub_modules()
663 static int dp_init_sub_modules(struct dp_display_private *dp) in dp_init_sub_modules() argument
666 struct device *dev = &dp->pdev->dev; in dp_init_sub_modules()
667 struct dp_usbpd_cb *cb = &dp->usbpd_cb; in dp_init_sub_modules()
677 dp->usbpd = dp_hpd_get(dev, cb); in dp_init_sub_modules()
678 if (IS_ERR(dp->usbpd)) { in dp_init_sub_modules()
679 rc = PTR_ERR(dp->usbpd); in dp_init_sub_modules()
681 dp->usbpd = NULL; in dp_init_sub_modules()
685 dp->parser = dp_parser_get(dp->pdev); in dp_init_sub_modules()
686 if (IS_ERR(dp->parser)) { in dp_init_sub_modules()
687 rc = PTR_ERR(dp->parser); in dp_init_sub_modules()
689 dp->parser = NULL; in dp_init_sub_modules()
693 dp->catalog = dp_catalog_get(dev, &dp->parser->io); in dp_init_sub_modules()
694 if (IS_ERR(dp->catalog)) { in dp_init_sub_modules()
695 rc = PTR_ERR(dp->catalog); in dp_init_sub_modules()
697 dp->catalog = NULL; in dp_init_sub_modules()
701 dp->power = dp_power_get(dp->parser); in dp_init_sub_modules()
702 if (IS_ERR(dp->power)) { in dp_init_sub_modules()
703 rc = PTR_ERR(dp->power); in dp_init_sub_modules()
705 dp->power = NULL; in dp_init_sub_modules()
709 dp->aux = dp_aux_get(dev, dp->catalog); in dp_init_sub_modules()
710 if (IS_ERR(dp->aux)) { in dp_init_sub_modules()
711 rc = PTR_ERR(dp->aux); in dp_init_sub_modules()
713 dp->aux = NULL; in dp_init_sub_modules()
717 dp->link = dp_link_get(dev, dp->aux); in dp_init_sub_modules()
718 if (IS_ERR(dp->link)) { in dp_init_sub_modules()
719 rc = PTR_ERR(dp->link); in dp_init_sub_modules()
721 dp->link = NULL; in dp_init_sub_modules()
725 panel_in.aux = dp->aux; in dp_init_sub_modules()
726 panel_in.catalog = dp->catalog; in dp_init_sub_modules()
727 panel_in.link = dp->link; in dp_init_sub_modules()
729 dp->panel = dp_panel_get(&panel_in); in dp_init_sub_modules()
730 if (IS_ERR(dp->panel)) { in dp_init_sub_modules()
731 rc = PTR_ERR(dp->panel); in dp_init_sub_modules()
733 dp->panel = NULL; in dp_init_sub_modules()
737 dp->ctrl = dp_ctrl_get(dev, dp->link, dp->panel, dp->aux, in dp_init_sub_modules()
738 dp->power, dp->catalog, dp->parser); in dp_init_sub_modules()
739 if (IS_ERR(dp->ctrl)) { in dp_init_sub_modules()
740 rc = PTR_ERR(dp->ctrl); in dp_init_sub_modules()
742 dp->ctrl = NULL; in dp_init_sub_modules()
746 dp->audio = dp_audio_get(dp->pdev, dp->panel, dp->catalog); in dp_init_sub_modules()
747 if (IS_ERR(dp->audio)) { in dp_init_sub_modules()
748 rc = PTR_ERR(dp->audio); in dp_init_sub_modules()
750 dp->audio = NULL; in dp_init_sub_modules()
757 dp_ctrl_put(dp->ctrl); in dp_init_sub_modules()
759 dp_panel_put(dp->panel); in dp_init_sub_modules()
761 dp_aux_put(dp->aux); in dp_init_sub_modules()
769 struct dp_display_private *dp; in dp_display_set_mode() local
771 dp = container_of(dp_display, struct dp_display_private, dp_display); in dp_display_set_mode()
773 dp->panel->dp_mode.drm_mode = mode->drm_mode; in dp_display_set_mode()
774 dp->panel->dp_mode.bpp = mode->bpp; in dp_display_set_mode()
775 dp->panel->dp_mode.capabilities = mode->capabilities; in dp_display_set_mode()
776 dp_panel_init_panel_info(dp->panel); in dp_display_set_mode()
780 static int dp_display_prepare(struct msm_dp *dp) in dp_display_prepare() argument
785 static int dp_display_enable(struct dp_display_private *dp, u32 data) in dp_display_enable() argument
797 rc = dp_ctrl_on_stream(dp->ctrl); in dp_display_enable()
802 complete(&dp->resume_comp); in dp_display_enable()
808 struct dp_display_private *dp; in dp_display_post_enable() local
811 dp = container_of(dp_display, struct dp_display_private, dp_display); in dp_display_post_enable()
813 rate = dp->link->link_params.rate; in dp_display_post_enable()
815 if (dp->audio_supported) { in dp_display_post_enable()
816 dp->audio->bw_code = drm_dp_link_rate_to_bw_code(rate); in dp_display_post_enable()
817 dp->audio->lane_count = dp->link->link_params.num_lanes; in dp_display_post_enable()
825 static int dp_display_disable(struct dp_display_private *dp, u32 data) in dp_display_disable() argument
836 if (!wait_for_completion_timeout(&dp->audio_comp, in dp_display_disable()
843 dp_ctrl_off(dp->ctrl); in dp_display_disable()
845 dp->core_initialized = false; in dp_display_disable()
852 static int dp_display_unprepare(struct msm_dp *dp) in dp_display_unprepare() argument
870 int dp_display_validate_mode(struct msm_dp *dp, u32 mode_pclk_khz) in dp_display_validate_mode() argument
877 if (!dp || !mode_pclk_khz || !dp->connector) { in dp_display_validate_mode()
882 dp_display = container_of(dp, struct dp_display_private, dp_display); in dp_display_validate_mode()
885 mode_bpp = dp->connector->display_info.bpc * num_components; in dp_display_validate_mode()
901 int dp_display_get_modes(struct msm_dp *dp, in dp_display_get_modes() argument
907 if (!dp) { in dp_display_get_modes()
912 dp_display = container_of(dp, struct dp_display_private, dp_display); in dp_display_get_modes()
915 dp->connector, dp_mode); in dp_display_get_modes()
917 dp->max_pclk_khz = dp_mode->drm_mode.clock; in dp_display_get_modes()
921 bool dp_display_check_video_test(struct msm_dp *dp) in dp_display_check_video_test() argument
925 dp_display = container_of(dp, struct dp_display_private, dp_display); in dp_display_check_video_test()
930 int dp_display_get_test_bpp(struct msm_dp *dp) in dp_display_get_test_bpp() argument
934 if (!dp) { in dp_display_get_test_bpp()
939 dp_display = container_of(dp, struct dp_display_private, dp_display); in dp_display_get_test_bpp()
945 static void dp_display_config_hpd(struct dp_display_private *dp) in dp_display_config_hpd() argument
948 dp_display_host_init(dp); in dp_display_config_hpd()
949 dp_catalog_ctrl_hpd_config(dp->catalog); in dp_display_config_hpd()
952 * we are leaving dp clocks on during disconnect in dp_display_config_hpd()
955 enable_irq(dp->irq); in dp_display_config_hpd()
1058 struct dp_display_private *dp = dev_id; in dp_display_irq_handler() local
1062 if (!dp) { in dp_display_irq_handler()
1067 hpd_isr_status = dp_catalog_hpd_get_intr_status(dp->catalog); in dp_display_irq_handler()
1073 dp_add_event(dp, EV_HPD_PLUG_INT, 0, 0); in dp_display_irq_handler()
1078 dp_del_event(dp, EV_CONNECT_PENDING_TIMEOUT); in dp_display_irq_handler()
1079 dp_add_event(dp, EV_IRQ_HPD_INT, 0, 0); in dp_display_irq_handler()
1083 dp_add_event(dp, EV_HPD_REPLUG_INT, 0, 0); in dp_display_irq_handler()
1086 dp_add_event(dp, EV_HPD_UNPLUG_INT, 0, 0); in dp_display_irq_handler()
1089 /* DP controller isr */ in dp_display_irq_handler()
1090 dp_ctrl_isr(dp->ctrl); in dp_display_irq_handler()
1092 /* DP aux isr */ in dp_display_irq_handler()
1093 dp_aux_isr(dp->aux); in dp_display_irq_handler()
1101 struct dp_display_private *dp; in dp_display_request_irq() local
1108 dp = container_of(dp_display, struct dp_display_private, dp_display); in dp_display_request_irq()
1110 dp->irq = irq_of_parse_and_map(dp->pdev->dev.of_node, 0); in dp_display_request_irq()
1111 if (dp->irq < 0) { in dp_display_request_irq()
1112 rc = dp->irq; in dp_display_request_irq()
1117 rc = devm_request_irq(&dp->pdev->dev, dp->irq, in dp_display_request_irq()
1119 IRQF_TRIGGER_HIGH, "dp_display_isr", dp); in dp_display_request_irq()
1122 dp->irq, rc); in dp_display_request_irq()
1125 disable_irq(dp->irq); in dp_display_request_irq()
1133 struct dp_display_private *dp; in dp_display_probe() local
1140 dp = devm_kzalloc(&pdev->dev, sizeof(*dp), GFP_KERNEL); in dp_display_probe()
1141 if (!dp) in dp_display_probe()
1144 dp->pdev = pdev; in dp_display_probe()
1145 dp->name = "drm_dp"; in dp_display_probe()
1147 rc = dp_init_sub_modules(dp); in dp_display_probe()
1153 mutex_init(&dp->event_mutex); in dp_display_probe()
1155 init_completion(&dp->resume_comp); in dp_display_probe()
1157 g_dp_display = &dp->dp_display; in dp_display_probe()
1159 /* Store DP audio handle inside DP display */ in dp_display_probe()
1160 g_dp_display->dp_audio = dp->audio; in dp_display_probe()
1162 init_completion(&dp->audio_comp); in dp_display_probe()
1169 dp_display_deinit_sub_modules(dp); in dp_display_probe()
1177 struct dp_display_private *dp; in dp_display_remove() local
1179 dp = container_of(g_dp_display, in dp_display_remove()
1182 dp_display_deinit_sub_modules(dp); in dp_display_remove()
1198 struct dp_display_private *dp = platform_get_drvdata(pdev); in dp_pm_suspend() local
1200 if (!dp) { in dp_pm_suspend()
1201 DRM_ERROR("DP driver bind failed. Invalid driver data\n"); in dp_pm_suspend()
1205 atomic_set(&dp->hpd_state, ST_SUSPENDED); in dp_pm_suspend()
1231 .name = "msm-dp-display",
1244 DRM_ERROR("Dp display driver register failed"); in msm_dp_register()
1256 struct dp_display_private *dp; in msm_dp_irq_postinstall() local
1261 dp = container_of(dp_display, struct dp_display_private, dp_display); in msm_dp_irq_postinstall()
1263 dp_hpd_event_setup(dp); in msm_dp_irq_postinstall()
1265 dp_add_event(dp, EV_HPD_INIT_SETUP, 0, 100); in msm_dp_irq_postinstall()
1270 struct dp_display_private *dp; in msm_dp_debugfs_init() local
1274 dp = container_of(dp_display, struct dp_display_private, dp_display); in msm_dp_debugfs_init()
1275 dev = &dp->pdev->dev; in msm_dp_debugfs_init()
1277 dp->debug = dp_debug_get(dev, dp->panel, dp->usbpd, in msm_dp_debugfs_init()
1278 dp->link, &dp->dp_display.connector, in msm_dp_debugfs_init()
1280 if (IS_ERR(dp->debug)) { in msm_dp_debugfs_init()
1281 rc = PTR_ERR(dp->debug); in msm_dp_debugfs_init()
1283 dp->debug = NULL; in msm_dp_debugfs_init()
1311 "failed to create dp connector: %d\n", ret); in msm_dp_modeset_init()
1320 static int dp_display_wait4resume_done(struct dp_display_private *dp) in dp_display_wait4resume_done() argument
1324 reinit_completion(&dp->resume_comp); in dp_display_wait4resume_done()
1325 if (!wait_for_completion_timeout(&dp->resume_comp, in dp_display_wait4resume_done()
1333 int msm_dp_display_enable(struct msm_dp *dp, struct drm_encoder *encoder) in msm_dp_display_enable() argument
1339 dp_display = container_of(dp, struct dp_display_private, dp_display); in msm_dp_display_enable()
1347 rc = dp_display_set_mode(dp, &dp_display->dp_mode); in msm_dp_display_enable()
1354 rc = dp_display_prepare(dp); in msm_dp_display_enable()
1356 DRM_ERROR("DP display prepare failed, rc=%d\n", rc); in msm_dp_display_enable()
1367 /* wait until dp interface is up */ in msm_dp_display_enable()
1373 rc = dp_display_post_enable(dp); in msm_dp_display_enable()
1375 DRM_ERROR("DP display post enable failed, rc=%d\n", rc); in msm_dp_display_enable()
1377 dp_display_unprepare(dp); in msm_dp_display_enable()
1397 int msm_dp_display_pre_disable(struct msm_dp *dp, struct drm_encoder *encoder) in msm_dp_display_pre_disable() argument
1401 dp_display = container_of(dp, struct dp_display_private, dp_display); in msm_dp_display_pre_disable()
1408 int msm_dp_display_disable(struct msm_dp *dp, struct drm_encoder *encoder) in msm_dp_display_disable() argument
1414 dp_display = container_of(dp, struct dp_display_private, dp_display); in msm_dp_display_disable()
1420 rc = dp_display_unprepare(dp); in msm_dp_display_disable()
1422 DRM_ERROR("DP display unprepare failed, rc=%d\n", rc); in msm_dp_display_disable()
1438 void msm_dp_display_mode_set(struct msm_dp *dp, struct drm_encoder *encoder, in msm_dp_display_mode_set() argument
1444 dp_display = container_of(dp, struct dp_display_private, dp_display); in msm_dp_display_mode_set()
1448 if (dp_display_check_video_test(dp)) in msm_dp_display_mode_set()
1449 dp_display->dp_mode.bpp = dp_display_get_test_bpp(dp); in msm_dp_display_mode_set()
1451 dp_display->dp_mode.bpp = dp->connector->display_info.bpc * 3; in msm_dp_display_mode_set()