Lines Matching refs:dp_display

104 	struct msm_dp dp_display;  member
147 return container_of(dp, struct dp_display_private, dp_display); in dev_get_dp_display_private()
204 void dp_display_signal_audio_start(struct msm_dp *dp_display) in dp_display_signal_audio_start() argument
208 dp = container_of(dp_display, struct dp_display_private, dp_display); in dp_display_signal_audio_start()
213 void dp_display_signal_audio_complete(struct msm_dp *dp_display) in dp_display_signal_audio_complete() argument
217 dp = container_of(dp_display, struct dp_display_private, dp_display); in dp_display_signal_audio_complete()
232 dp->dp_display.drm_dev = drm; in dp_display_bind()
234 priv->dp[dp->id] = &dp->dp_display; in dp_display_bind()
236 rc = dp->parser->parse(dp->parser, dp->dp_display.connector_type); in dp_display_bind()
242 dp->dp_display.panel_bridge = dp->parser->panel_bridge; in dp_display_bind()
296 static void dp_display_send_hpd_event(struct msm_dp *dp_display) in dp_display_send_hpd_event() argument
301 dp = container_of(dp_display, struct dp_display_private, dp_display); in dp_display_send_hpd_event()
303 connector = dp->dp_display.connector; in dp_display_send_hpd_event()
311 if ((hpd && dp->dp_display.is_connected) || in dp_display_send_hpd_notification()
312 (!hpd && !dp->dp_display.is_connected)) { in dp_display_send_hpd_notification()
321 dp->dp_display.is_connected = hpd; in dp_display_send_hpd_notification()
324 dp_display_send_hpd_event(&dp->dp_display); in dp_display_send_hpd_notification()
336 rc = dp_panel_read_sink_caps(dp->panel, dp->dp_display.connector); in dp_display_process_hpd_high()
347 dp->dp_display.max_pclk_khz = DP_MAX_PIXEL_CLK_KHZ; in dp_display_process_hpd_high()
348 dp->dp_display.max_dp_lanes = dp->parser->max_dp_lanes; in dp_display_process_hpd_high()
569 static void dp_display_handle_plugged_change(struct msm_dp *dp_display, in dp_display_handle_plugged_change() argument
574 dp = container_of(dp_display, in dp_display_handle_plugged_change()
575 struct dp_display_private, dp_display); in dp_display_handle_plugged_change()
578 if (dp_display->plugged_cb && dp_display->codec_dev && in dp_display_handle_plugged_change()
580 dp_display->plugged_cb(dp_display->codec_dev, plugged); in dp_display_handle_plugged_change()
643 dp_display_handle_plugged_change(&dp->dp_display, false); in dp_hpd_unplug_handle()
816 static int dp_display_set_mode(struct msm_dp *dp_display, in dp_display_set_mode() argument
821 dp = container_of(dp_display, struct dp_display_private, dp_display); in dp_display_set_mode()
830 static int dp_display_prepare(struct msm_dp *dp_display) in dp_display_prepare() argument
838 struct msm_dp *dp_display = &dp->dp_display; in dp_display_enable() local
841 if (dp_display->power_on) { in dp_display_enable()
848 dp_display->power_on = true; in dp_display_enable()
853 static int dp_display_post_enable(struct msm_dp *dp_display) in dp_display_post_enable() argument
858 dp = container_of(dp_display, struct dp_display_private, dp_display); in dp_display_post_enable()
868 dp_display_handle_plugged_change(dp_display, true); in dp_display_post_enable()
874 struct msm_dp *dp_display = &dp->dp_display; in dp_display_disable() local
876 if (!dp_display->power_on) in dp_display_disable()
880 if (dp_display->audio_enabled) { in dp_display_disable()
882 dp_display_handle_plugged_change(dp_display, false); in dp_display_disable()
888 dp_display->audio_enabled = false; in dp_display_disable()
898 dp_display->power_on = false; in dp_display_disable()
904 static int dp_display_unprepare(struct msm_dp *dp_display) in dp_display_unprepare() argument
909 int dp_display_set_plugged_cb(struct msm_dp *dp_display, in dp_display_set_plugged_cb() argument
914 dp_display->plugged_cb = fn; in dp_display_set_plugged_cb()
915 dp_display->codec_dev = codec_dev; in dp_display_set_plugged_cb()
916 plugged = dp_display->is_connected; in dp_display_set_plugged_cb()
917 dp_display_handle_plugged_change(dp_display, plugged); in dp_display_set_plugged_cb()
925 struct dp_display_private *dp_display; in dp_display_validate_mode() local
934 dp_display = container_of(dp, struct dp_display_private, dp_display); in dp_display_validate_mode()
935 link_info = &dp_display->panel->link_info; in dp_display_validate_mode()
941 mode_bpp = dp_panel_get_mode_bpp(dp_display->panel, in dp_display_validate_mode()
956 struct dp_display_private *dp_display; in dp_display_get_modes() local
964 dp_display = container_of(dp, struct dp_display_private, dp_display); in dp_display_get_modes()
966 ret = dp_panel_get_modes(dp_display->panel, in dp_display_get_modes()
975 struct dp_display_private *dp_display; in dp_display_check_video_test() local
977 dp_display = container_of(dp, struct dp_display_private, dp_display); in dp_display_check_video_test()
979 return dp_display->panel->video_test; in dp_display_check_video_test()
984 struct dp_display_private *dp_display; in dp_display_get_test_bpp() local
991 dp_display = container_of(dp, struct dp_display_private, dp_display); in dp_display_get_test_bpp()
994 dp_display->link->test_video.test_bit_depth); in dp_display_get_test_bpp()
999 struct dp_display_private *dp_display; in msm_dp_snapshot() local
1001 dp_display = container_of(dp, struct dp_display_private, dp_display); in msm_dp_snapshot()
1010 mutex_lock(&dp_display->event_mutex); in msm_dp_snapshot()
1013 mutex_unlock(&dp_display->event_mutex); in msm_dp_snapshot()
1017 dp_catalog_snapshot(dp_display->catalog, disp_state); in msm_dp_snapshot()
1019 mutex_unlock(&dp_display->event_mutex); in msm_dp_snapshot()
1173 int dp_display_request_irq(struct msm_dp *dp_display) in dp_display_request_irq() argument
1178 if (!dp_display) { in dp_display_request_irq()
1183 dp = container_of(dp_display, struct dp_display_private, dp_display); in dp_display_request_irq()
1248 dp->dp_display.connector_type = desc->connector_type; in dp_display_probe()
1259 dp->dp_display.dp_audio = dp->audio; in dp_display_probe()
1263 platform_set_drvdata(pdev, &dp->dp_display); in dp_display_probe()
1289 struct msm_dp *dp_display = platform_get_drvdata(pdev); in dp_pm_resume() local
1293 dp = container_of(dp_display, struct dp_display_private, dp_display); in dp_pm_resume()
1298 dp->core_initialized, dp_display->power_on); in dp_pm_resume()
1328 dp->dp_display.is_connected = true; in dp_pm_resume()
1330 dp->dp_display.is_connected = false; in dp_pm_resume()
1331 dp_display_handle_plugged_change(dp_display, false); in dp_pm_resume()
1335 dp->link->sink_count, dp->dp_display.is_connected, in dp_pm_resume()
1336 dp->core_initialized, dp_display->power_on); in dp_pm_resume()
1346 struct msm_dp *dp_display = platform_get_drvdata(pdev); in dp_pm_suspend() local
1349 dp = container_of(dp_display, struct dp_display_private, dp_display); in dp_pm_suspend()
1354 dp->core_initialized, dp_display->power_on); in dp_pm_suspend()
1370 dp->core_initialized, dp_display->power_on); in dp_pm_suspend()
1421 void msm_dp_irq_postinstall(struct msm_dp *dp_display) in msm_dp_irq_postinstall() argument
1425 if (!dp_display) in msm_dp_irq_postinstall()
1428 dp = container_of(dp_display, struct dp_display_private, dp_display); in msm_dp_irq_postinstall()
1435 void msm_dp_debugfs_init(struct msm_dp *dp_display, struct drm_minor *minor) in msm_dp_debugfs_init() argument
1441 dp = container_of(dp_display, struct dp_display_private, dp_display); in msm_dp_debugfs_init()
1445 dp->link, dp->dp_display.connector, in msm_dp_debugfs_init()
1454 int msm_dp_modeset_init(struct msm_dp *dp_display, struct drm_device *dev, in msm_dp_modeset_init() argument
1460 if (WARN_ON(!encoder) || WARN_ON(!dp_display) || WARN_ON(!dev)) in msm_dp_modeset_init()
1464 dp_display->drm_dev = dev; in msm_dp_modeset_init()
1466 ret = dp_display_request_irq(dp_display); in msm_dp_modeset_init()
1472 dp_display->encoder = encoder; in msm_dp_modeset_init()
1474 dp_display->connector = dp_drm_connector_init(dp_display); in msm_dp_modeset_init()
1475 if (IS_ERR(dp_display->connector)) { in msm_dp_modeset_init()
1476 ret = PTR_ERR(dp_display->connector); in msm_dp_modeset_init()
1479 dp_display->connector = NULL; in msm_dp_modeset_init()
1483 priv->connectors[priv->num_connectors++] = dp_display->connector; in msm_dp_modeset_init()
1490 struct dp_display_private *dp_display; in msm_dp_display_enable() local
1493 dp_display = container_of(dp, struct dp_display_private, dp_display); in msm_dp_display_enable()
1494 if (!dp_display->dp_mode.drm_mode.clock) { in msm_dp_display_enable()
1499 mutex_lock(&dp_display->event_mutex); in msm_dp_display_enable()
1502 dp_del_event(dp_display, EV_CONNECT_PENDING_TIMEOUT); in msm_dp_display_enable()
1504 rc = dp_display_set_mode(dp, &dp_display->dp_mode); in msm_dp_display_enable()
1507 mutex_unlock(&dp_display->event_mutex); in msm_dp_display_enable()
1514 mutex_unlock(&dp_display->event_mutex); in msm_dp_display_enable()
1518 state = dp_display->hpd_state; in msm_dp_display_enable()
1521 dp_display_host_init(dp_display, true); in msm_dp_display_enable()
1523 dp_display_enable(dp_display, 0); in msm_dp_display_enable()
1528 dp_display_disable(dp_display, 0); in msm_dp_display_enable()
1534 dp_add_event(dp_display, EV_IRQ_HPD_INT, 0, 0); in msm_dp_display_enable()
1537 dp_display->hpd_state = ST_CONNECTED; in msm_dp_display_enable()
1539 mutex_unlock(&dp_display->event_mutex); in msm_dp_display_enable()
1546 struct dp_display_private *dp_display; in msm_dp_display_pre_disable() local
1548 dp_display = container_of(dp, struct dp_display_private, dp_display); in msm_dp_display_pre_disable()
1550 dp_ctrl_push_idle(dp_display->ctrl); in msm_dp_display_pre_disable()
1559 struct dp_display_private *dp_display; in msm_dp_display_disable() local
1561 dp_display = container_of(dp, struct dp_display_private, dp_display); in msm_dp_display_disable()
1563 mutex_lock(&dp_display->event_mutex); in msm_dp_display_disable()
1566 dp_del_event(dp_display, EV_DISCONNECT_PENDING_TIMEOUT); in msm_dp_display_disable()
1568 dp_display_disable(dp_display, 0); in msm_dp_display_disable()
1574 state = dp_display->hpd_state; in msm_dp_display_disable()
1577 dp_display->hpd_state = ST_DISCONNECTED; in msm_dp_display_disable()
1579 dp_display->hpd_state = ST_DISPLAY_OFF; in msm_dp_display_disable()
1582 mutex_unlock(&dp_display->event_mutex); in msm_dp_display_disable()
1590 struct dp_display_private *dp_display; in msm_dp_display_mode_set() local
1592 dp_display = container_of(dp, struct dp_display_private, dp_display); in msm_dp_display_mode_set()
1594 memset(&dp_display->dp_mode, 0x0, sizeof(struct dp_display_mode)); in msm_dp_display_mode_set()
1597 dp_display->dp_mode.bpp = dp_display_get_test_bpp(dp); in msm_dp_display_mode_set()
1599 dp_display->dp_mode.bpp = dp->connector->display_info.bpc * 3; in msm_dp_display_mode_set()
1601 if (!dp_display->dp_mode.bpp) in msm_dp_display_mode_set()
1602 dp_display->dp_mode.bpp = 24; /* Default bpp */ in msm_dp_display_mode_set()
1604 drm_mode_copy(&dp_display->dp_mode.drm_mode, adjusted_mode); in msm_dp_display_mode_set()
1606 dp_display->dp_mode.v_active_low = in msm_dp_display_mode_set()
1607 !!(dp_display->dp_mode.drm_mode.flags & DRM_MODE_FLAG_NVSYNC); in msm_dp_display_mode_set()
1609 dp_display->dp_mode.h_active_low = in msm_dp_display_mode_set()
1610 !!(dp_display->dp_mode.drm_mode.flags & DRM_MODE_FLAG_NHSYNC); in msm_dp_display_mode_set()