Lines Matching refs:intel_dsi
84 void vlv_dsi_wait_for_fifo_empty(struct intel_dsi *intel_dsi, enum port port) in vlv_dsi_wait_for_fifo_empty() argument
86 struct drm_encoder *encoder = &intel_dsi->base.base; in vlv_dsi_wait_for_fifo_empty()
133 struct drm_device *dev = intel_dsi_host->intel_dsi->base.base.dev; in intel_dsi_host_transfer()
224 static int dpi_send_cmd(struct intel_dsi *intel_dsi, u32 cmd, bool hs, in dpi_send_cmd() argument
227 struct drm_encoder *encoder = &intel_dsi->base.base; in dpi_send_cmd()
275 struct intel_dsi *intel_dsi = container_of(encoder, struct intel_dsi, in intel_dsi_compute_config() local
277 struct intel_connector *intel_connector = intel_dsi->attached_connector; in intel_dsi_compute_config()
298 if (intel_dsi->pixel_format == MIPI_DSI_FMT_RGB888) in intel_dsi_compute_config()
309 if (intel_dsi->ports == BIT(PORT_C)) in intel_dsi_compute_config()
331 struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder); in glk_dsi_enable_io() local
340 for_each_dsi_port(port, intel_dsi->ports) { in glk_dsi_enable_io()
352 for_each_dsi_port(port, intel_dsi->ports) { in glk_dsi_enable_io()
362 for_each_dsi_port(port, intel_dsi->ports) { in glk_dsi_enable_io()
369 for_each_dsi_port(port, intel_dsi->ports) { in glk_dsi_enable_io()
380 struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder); in glk_dsi_device_ready() local
385 for_each_dsi_port(port, intel_dsi->ports) { in glk_dsi_device_ready()
397 for_each_dsi_port(port, intel_dsi->ports) { in glk_dsi_device_ready()
435 for_each_dsi_port(port, intel_dsi->ports) { in glk_dsi_device_ready()
443 for_each_dsi_port(port, intel_dsi->ports) { in glk_dsi_device_ready()
454 struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder); in bxt_dsi_device_ready() local
461 for_each_dsi_port(port, intel_dsi->ports) { in bxt_dsi_device_ready()
469 for_each_dsi_port(port, intel_dsi->ports) { in bxt_dsi_device_ready()
482 struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder); in vlv_dsi_device_ready() local
497 for_each_dsi_port(port, intel_dsi->ports) { in vlv_dsi_device_ready()
537 struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder); in glk_dsi_enter_low_power_mode() local
542 for_each_dsi_port(port, intel_dsi->ports) { in glk_dsi_enter_low_power_mode()
550 for_each_dsi_port(port, intel_dsi->ports) { in glk_dsi_enter_low_power_mode()
557 for_each_dsi_port(port, intel_dsi->ports) { in glk_dsi_enter_low_power_mode()
568 struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder); in glk_dsi_disable_mipi_io() local
578 for_each_dsi_port(port, intel_dsi->ports) { in glk_dsi_disable_mipi_io()
585 for_each_dsi_port(port, intel_dsi->ports) { in glk_dsi_disable_mipi_io()
601 struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder); in vlv_dsi_clear_device_ready() local
605 for_each_dsi_port(port, intel_dsi->ports) { in vlv_dsi_clear_device_ready()
647 struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder); in intel_dsi_port_enable() local
650 if (intel_dsi->dual_link == DSI_DUAL_LINK_FRONT_BACK) { in intel_dsi_port_enable()
653 for_each_dsi_port(port, intel_dsi->ports) { in intel_dsi_port_enable()
657 intel_dsi->pixel_overlap << in intel_dsi_port_enable()
665 intel_dsi->pixel_overlap << in intel_dsi_port_enable()
671 for_each_dsi_port(port, intel_dsi->ports) { in intel_dsi_port_enable()
681 if (intel_dsi->ports == (BIT(PORT_A) | BIT(PORT_C))) { in intel_dsi_port_enable()
682 temp |= (intel_dsi->dual_link - 1) in intel_dsi_port_enable()
692 if (intel_dsi->pixel_format != MIPI_DSI_FMT_RGB888) in intel_dsi_port_enable()
705 struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder); in intel_dsi_port_disable() local
708 for_each_dsi_port(port, intel_dsi->ports) { in intel_dsi_port_disable()
720 static void intel_dsi_wait_panel_power_cycle(struct intel_dsi *intel_dsi) in intel_dsi_wait_panel_power_cycle() argument
727 intel_dsi->panel_power_off_time); in intel_dsi_wait_panel_power_cycle()
729 if (panel_power_off_duration < (s64)intel_dsi->panel_pwr_cycle_delay) in intel_dsi_wait_panel_power_cycle()
730 msleep(intel_dsi->panel_pwr_cycle_delay - panel_power_off_duration); in intel_dsi_wait_panel_power_cycle()
783 struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder); in intel_dsi_pre_enable() local
794 intel_dsi_wait_panel_power_cycle(intel_dsi); in intel_dsi_pre_enable()
833 intel_dsi_vbt_exec_sequence(intel_dsi, MIPI_SEQ_POWER_ON); in intel_dsi_pre_enable()
843 intel_dsi_msleep(intel_dsi, intel_dsi->panel_on_delay); in intel_dsi_pre_enable()
844 intel_dsi_vbt_exec_sequence(intel_dsi, MIPI_SEQ_DEASSERT_RESET); in intel_dsi_pre_enable()
846 msleep(intel_dsi->panel_on_delay); in intel_dsi_pre_enable()
865 intel_dsi_vbt_exec_sequence(intel_dsi, MIPI_SEQ_INIT_OTP); in intel_dsi_pre_enable()
871 if (is_cmd_mode(intel_dsi)) { in intel_dsi_pre_enable()
872 for_each_dsi_port(port, intel_dsi->ports) in intel_dsi_pre_enable()
875 intel_dsi_vbt_exec_sequence(intel_dsi, MIPI_SEQ_TEAR_ON); in intel_dsi_pre_enable()
876 intel_dsi_vbt_exec_sequence(intel_dsi, MIPI_SEQ_DISPLAY_ON); in intel_dsi_pre_enable()
879 for_each_dsi_port(port, intel_dsi->ports) in intel_dsi_pre_enable()
880 dpi_send_cmd(intel_dsi, TURN_ON, false, port); in intel_dsi_pre_enable()
881 intel_dsi_msleep(intel_dsi, 100); in intel_dsi_pre_enable()
883 intel_dsi_vbt_exec_sequence(intel_dsi, MIPI_SEQ_DISPLAY_ON); in intel_dsi_pre_enable()
889 intel_dsi_vbt_exec_sequence(intel_dsi, MIPI_SEQ_BACKLIGHT_ON); in intel_dsi_pre_enable()
912 struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder); in intel_dsi_disable() local
917 intel_dsi_vbt_exec_sequence(intel_dsi, MIPI_SEQ_BACKLIGHT_OFF); in intel_dsi_disable()
925 if (is_vid_mode(intel_dsi)) { in intel_dsi_disable()
927 for_each_dsi_port(port, intel_dsi->ports) in intel_dsi_disable()
928 dpi_send_cmd(intel_dsi, SHUTDOWN, false, port); in intel_dsi_disable()
949 struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder); in intel_dsi_post_disable() local
961 if (is_vid_mode(intel_dsi)) { in intel_dsi_post_disable()
962 for_each_dsi_port(port, intel_dsi->ports) in intel_dsi_post_disable()
963 vlv_dsi_wait_for_fifo_empty(intel_dsi, port); in intel_dsi_post_disable()
975 if (is_cmd_mode(intel_dsi)) in intel_dsi_post_disable()
976 intel_dsi_vbt_exec_sequence(intel_dsi, MIPI_SEQ_TEAR_OFF); in intel_dsi_post_disable()
977 intel_dsi_vbt_exec_sequence(intel_dsi, MIPI_SEQ_DISPLAY_OFF); in intel_dsi_post_disable()
1007 intel_dsi_vbt_exec_sequence(intel_dsi, MIPI_SEQ_ASSERT_RESET); in intel_dsi_post_disable()
1009 intel_dsi_msleep(intel_dsi, intel_dsi->panel_off_delay); in intel_dsi_post_disable()
1010 intel_dsi_vbt_exec_sequence(intel_dsi, MIPI_SEQ_POWER_OFF); in intel_dsi_post_disable()
1012 intel_dsi->panel_power_off_time = ktime_get_boottime(); in intel_dsi_post_disable()
1017 struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder); in intel_dsi_shutdown() local
1019 intel_dsi_wait_panel_power_cycle(intel_dsi); in intel_dsi_shutdown()
1026 struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder); in intel_dsi_get_hw_state() local
1048 for_each_dsi_port(port, intel_dsi->ports) { in intel_dsi_get_hw_state()
1107 struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder); in bxt_dsi_get_pipe_config() local
1108 unsigned int lane_count = intel_dsi->lane_count; in bxt_dsi_get_pipe_config()
1123 for_each_dsi_port(port, intel_dsi->ports) { in bxt_dsi_get_pipe_config()
1161 intel_dsi->burst_mode_ratio); in bxt_dsi_get_pipe_config()
1163 intel_dsi->burst_mode_ratio); in bxt_dsi_get_pipe_config()
1165 intel_dsi->burst_mode_ratio); in bxt_dsi_get_pipe_config()
1167 if (intel_dsi->dual_link) { in bxt_dsi_get_pipe_config()
1208 if (intel_dsi->dual_link) { in bxt_dsi_get_pipe_config()
1215 intel_dsi->burst_mode_ratio); in bxt_dsi_get_pipe_config()
1217 intel_dsi->burst_mode_ratio); in bxt_dsi_get_pipe_config()
1219 intel_dsi->burst_mode_ratio); in bxt_dsi_get_pipe_config()
1223 intel_dsi->burst_mode_ratio); in bxt_dsi_get_pipe_config()
1225 intel_dsi->burst_mode_ratio); in bxt_dsi_get_pipe_config()
1227 intel_dsi->burst_mode_ratio); in bxt_dsi_get_pipe_config()
1229 if (intel_dsi->dual_link) { in bxt_dsi_get_pipe_config()
1266 struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder); in intel_dsi_get_config() local
1284 if (intel_dsi->dual_link) in intel_dsi_get_config()
1307 struct intel_dsi *intel_dsi = enc_to_intel_dsi(to_intel_encoder(encoder)); in set_dsi_timings() local
1309 unsigned int bpp = mipi_dsi_pixel_format_to_bpp(intel_dsi->pixel_format); in set_dsi_timings()
1310 unsigned int lane_count = intel_dsi->lane_count; in set_dsi_timings()
1319 if (intel_dsi->dual_link) { in set_dsi_timings()
1321 if (intel_dsi->dual_link == DSI_DUAL_LINK_FRONT_BACK) in set_dsi_timings()
1322 hactive += intel_dsi->pixel_overlap; in set_dsi_timings()
1334 intel_dsi->burst_mode_ratio); in set_dsi_timings()
1335 hfp = txbyteclkhs(hfp, bpp, lane_count, intel_dsi->burst_mode_ratio); in set_dsi_timings()
1337 intel_dsi->burst_mode_ratio); in set_dsi_timings()
1338 hbp = txbyteclkhs(hbp, bpp, lane_count, intel_dsi->burst_mode_ratio); in set_dsi_timings()
1340 for_each_dsi_port(port, intel_dsi->ports) { in set_dsi_timings()
1398 struct intel_dsi *intel_dsi = enc_to_intel_dsi(to_intel_encoder(encoder)); in intel_dsi_prepare() local
1401 unsigned int bpp = mipi_dsi_pixel_format_to_bpp(intel_dsi->pixel_format); in intel_dsi_prepare()
1409 if (intel_dsi->dual_link) { in intel_dsi_prepare()
1411 if (intel_dsi->dual_link == DSI_DUAL_LINK_FRONT_BACK) in intel_dsi_prepare()
1412 mode_hdisplay += intel_dsi->pixel_overlap; in intel_dsi_prepare()
1415 for_each_dsi_port(port, intel_dsi->ports) { in intel_dsi_prepare()
1446 intel_dsi->dphy_reg); in intel_dsi_prepare()
1454 val = intel_dsi->lane_count << DATA_LANES_PRG_REG_SHIFT; in intel_dsi_prepare()
1455 if (is_cmd_mode(intel_dsi)) { in intel_dsi_prepare()
1456 val |= intel_dsi->channel << CMD_MODE_CHANNEL_NUMBER_SHIFT; in intel_dsi_prepare()
1459 val |= intel_dsi->channel << VID_MODE_CHANNEL_NUMBER_SHIFT; in intel_dsi_prepare()
1460 val |= pixel_format_to_reg(intel_dsi->pixel_format); in intel_dsi_prepare()
1464 if (intel_dsi->eotp_pkt == 0) in intel_dsi_prepare()
1466 if (intel_dsi->clock_stop) in intel_dsi_prepare()
1471 if (!is_cmd_mode(intel_dsi)) in intel_dsi_prepare()
1475 for_each_dsi_port(port, intel_dsi->ports) { in intel_dsi_prepare()
1495 if (is_vid_mode(intel_dsi) && in intel_dsi_prepare()
1496 intel_dsi->video_mode == BURST_MODE) { in intel_dsi_prepare()
1498 …txbyteclkhs(adjusted_mode->crtc_htotal, bpp, intel_dsi->lane_count, intel_dsi->burst_mode_ratio) +… in intel_dsi_prepare()
1501 …justed_mode->crtc_vtotal * adjusted_mode->crtc_htotal, bpp, intel_dsi->lane_count, intel_dsi->burs… in intel_dsi_prepare()
1504 intel_dsi->lp_rx_timeout); in intel_dsi_prepare()
1506 intel_dsi->turn_arnd_val); in intel_dsi_prepare()
1508 intel_dsi->rst_timer_val); in intel_dsi_prepare()
1514 txclkesc(intel_dsi->escape_clk_div, 100)); in intel_dsi_prepare()
1517 !intel_dsi->dual_link) { in intel_dsi_prepare()
1526 intel_dsi->init_count); in intel_dsi_prepare()
1534 intel_dsi->init_count); in intel_dsi_prepare()
1542 intel_dsi->hs_to_lp_count); in intel_dsi_prepare()
1551 intel_dsi->lp_byte_clk); in intel_dsi_prepare()
1555 intel_dsi->lp_byte_clk); in intel_dsi_prepare()
1558 intel_dsi->dphy_reg); in intel_dsi_prepare()
1567 intel_dsi->bw_timer); in intel_dsi_prepare()
1570 …intel_dsi->clk_lp_to_hs_count << LP_HS_SSW_CNT_SHIFT | intel_dsi->clk_hs_to_lp_count << HS_LP_PWR_… in intel_dsi_prepare()
1572 if (is_vid_mode(intel_dsi)) { in intel_dsi_prepare()
1573 u32 fmt = intel_dsi->video_frmt_cfg_bits | IP_TG_CONFIG; in intel_dsi_prepare()
1582 switch (intel_dsi->video_mode) { in intel_dsi_prepare()
1584 MISSING_CASE(intel_dsi->video_mode); in intel_dsi_prepare()
1605 struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder); in intel_dsi_unprepare() local
1612 for_each_dsi_port(port, intel_dsi->ports) { in intel_dsi_unprepare()
1632 struct intel_dsi *intel_dsi = enc_to_intel_dsi(to_intel_encoder(encoder)); in intel_dsi_encoder_destroy() local
1634 intel_dsi_vbt_gpio_cleanup(intel_dsi); in intel_dsi_encoder_destroy()
1689 static void vlv_dphy_param_init(struct intel_dsi *intel_dsi) in vlv_dphy_param_init() argument
1691 struct drm_device *dev = intel_dsi->base.base.dev; in vlv_dphy_param_init()
1693 struct intel_connector *connector = intel_dsi->attached_connector; in vlv_dphy_param_init()
1703 tlpx_ns = intel_dsi_tlpx_ns(intel_dsi); in vlv_dphy_param_init()
1705 switch (intel_dsi->lane_count) { in vlv_dphy_param_init()
1721 ui_den = intel_dsi_bitrate(intel_dsi); in vlv_dphy_param_init()
1730 intel_dsi->lp_byte_clk = DIV_ROUND_UP(tlpx_ns * ui_den, 8 * ui_num); in vlv_dphy_param_init()
1797 intel_dsi->dphy_reg = exit_zero_cnt << 24 | trail_cnt << 16 | in vlv_dphy_param_init()
1820 intel_dsi->hs_to_lp_count = max(lp_to_hs_switch, hs_to_lp_switch); in vlv_dphy_param_init()
1821 intel_dsi->hs_to_lp_count += extra_byte_count; in vlv_dphy_param_init()
1832 intel_dsi->clk_lp_to_hs_count = in vlv_dphy_param_init()
1838 intel_dsi->clk_lp_to_hs_count += extra_byte_count; in vlv_dphy_param_init()
1847 intel_dsi->clk_hs_to_lp_count = in vlv_dphy_param_init()
1850 intel_dsi->clk_hs_to_lp_count += extra_byte_count; in vlv_dphy_param_init()
1852 intel_dsi_log_params(intel_dsi); in vlv_dphy_param_init()
1858 struct intel_dsi *intel_dsi; in vlv_dsi_init() local
1878 intel_dsi = kzalloc(sizeof(*intel_dsi), GFP_KERNEL); in vlv_dsi_init()
1879 if (!intel_dsi) in vlv_dsi_init()
1884 kfree(intel_dsi); in vlv_dsi_init()
1888 intel_encoder = &intel_dsi->base; in vlv_dsi_init()
1890 intel_dsi->attached_connector = intel_connector; in vlv_dsi_init()
1926 intel_dsi->panel_power_off_time = ktime_get_boottime(); in vlv_dsi_init()
1931 intel_dsi->ports = BIT(PORT_A) | BIT(PORT_C); in vlv_dsi_init()
1933 intel_dsi->ports = BIT(port); in vlv_dsi_init()
1935 if (drm_WARN_ON(&dev_priv->drm, intel_connector->panel.vbt.dsi.bl_ports & ~intel_dsi->ports)) in vlv_dsi_init()
1936 intel_connector->panel.vbt.dsi.bl_ports &= intel_dsi->ports; in vlv_dsi_init()
1938 if (drm_WARN_ON(&dev_priv->drm, intel_connector->panel.vbt.dsi.cabc_ports & ~intel_dsi->ports)) in vlv_dsi_init()
1939 intel_connector->panel.vbt.dsi.cabc_ports &= intel_dsi->ports; in vlv_dsi_init()
1942 for_each_dsi_port(port, intel_dsi->ports) { in vlv_dsi_init()
1945 host = intel_dsi_host_init(intel_dsi, &intel_dsi_host_ops, in vlv_dsi_init()
1950 intel_dsi->dsi_hosts[port] = host; in vlv_dsi_init()
1953 if (!intel_dsi_vbt_init(intel_dsi, MIPI_DSI_GENERIC_PANEL_ID)) { in vlv_dsi_init()
1962 intel_dsi->pclk, current_mode->clock); in vlv_dsi_init()
1963 if (intel_fuzzy_clock_check(intel_dsi->pclk, in vlv_dsi_init()
1966 intel_dsi->pclk = current_mode->clock; in vlv_dsi_init()
1972 vlv_dphy_param_init(intel_dsi); in vlv_dsi_init()
1974 intel_dsi_vbt_gpio_init(intel_dsi, in vlv_dsi_init()
2009 kfree(intel_dsi); in vlv_dsi_init()