Lines Matching refs:intel_dsi
72 void vlv_dsi_wait_for_fifo_empty(struct intel_dsi *intel_dsi, enum port port) in vlv_dsi_wait_for_fifo_empty() argument
74 struct drm_encoder *encoder = &intel_dsi->base.base; in vlv_dsi_wait_for_fifo_empty()
122 struct drm_device *dev = intel_dsi_host->intel_dsi->base.base.dev; in intel_dsi_host_transfer()
209 static struct intel_dsi_host *intel_dsi_host_init(struct intel_dsi *intel_dsi, in intel_dsi_host_init() argument
220 host->intel_dsi = intel_dsi; in intel_dsi_host_init()
247 static int dpi_send_cmd(struct intel_dsi *intel_dsi, u32 cmd, bool hs, in dpi_send_cmd() argument
250 struct drm_encoder *encoder = &intel_dsi->base.base; in dpi_send_cmd()
293 static inline bool is_vid_mode(struct intel_dsi *intel_dsi) in is_vid_mode() argument
295 return intel_dsi->operation_mode == INTEL_DSI_VIDEO_MODE; in is_vid_mode()
298 static inline bool is_cmd_mode(struct intel_dsi *intel_dsi) in is_cmd_mode() argument
300 return intel_dsi->operation_mode == INTEL_DSI_COMMAND_MODE; in is_cmd_mode()
308 struct intel_dsi *intel_dsi = container_of(encoder, struct intel_dsi, in intel_dsi_compute_config() local
310 struct intel_connector *intel_connector = intel_dsi->attached_connector; in intel_dsi_compute_config()
341 if (intel_dsi->ports == BIT(PORT_C)) in intel_dsi_compute_config()
363 struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base); in glk_dsi_enable_io() local
372 for_each_dsi_port(port, intel_dsi->ports) { in glk_dsi_enable_io()
383 for_each_dsi_port(port, intel_dsi->ports) { in glk_dsi_enable_io()
393 for_each_dsi_port(port, intel_dsi->ports) { in glk_dsi_enable_io()
401 for_each_dsi_port(port, intel_dsi->ports) { in glk_dsi_enable_io()
412 struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base); in glk_dsi_device_ready() local
417 for_each_dsi_port(port, intel_dsi->ports) { in glk_dsi_device_ready()
429 for_each_dsi_port(port, intel_dsi->ports) { in glk_dsi_device_ready()
467 for_each_dsi_port(port, intel_dsi->ports) { in glk_dsi_device_ready()
475 for_each_dsi_port(port, intel_dsi->ports) { in glk_dsi_device_ready()
486 struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base); in bxt_dsi_device_ready() local
493 for_each_dsi_port(port, intel_dsi->ports) { in bxt_dsi_device_ready()
500 for_each_dsi_port(port, intel_dsi->ports) { in bxt_dsi_device_ready()
513 struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base); in vlv_dsi_device_ready() local
528 for_each_dsi_port(port, intel_dsi->ports) { in vlv_dsi_device_ready()
564 struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base); in glk_dsi_enter_low_power_mode() local
569 for_each_dsi_port(port, intel_dsi->ports) { in glk_dsi_enter_low_power_mode()
577 for_each_dsi_port(port, intel_dsi->ports) { in glk_dsi_enter_low_power_mode()
585 for_each_dsi_port(port, intel_dsi->ports) { in glk_dsi_enter_low_power_mode()
596 struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base); in glk_dsi_disable_mipi_io() local
606 for_each_dsi_port(port, intel_dsi->ports) { in glk_dsi_disable_mipi_io()
614 for_each_dsi_port(port, intel_dsi->ports) { in glk_dsi_disable_mipi_io()
630 struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base); in vlv_dsi_clear_device_ready() local
634 for_each_dsi_port(port, intel_dsi->ports) { in vlv_dsi_clear_device_ready()
677 struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base); in intel_dsi_port_enable() local
680 if (intel_dsi->dual_link == DSI_DUAL_LINK_FRONT_BACK) { in intel_dsi_port_enable()
683 for_each_dsi_port(port, intel_dsi->ports) { in intel_dsi_port_enable()
686 intel_dsi->pixel_overlap << in intel_dsi_port_enable()
693 intel_dsi->pixel_overlap << in intel_dsi_port_enable()
699 for_each_dsi_port(port, intel_dsi->ports) { in intel_dsi_port_enable()
709 if (intel_dsi->ports == (BIT(PORT_A) | BIT(PORT_C))) { in intel_dsi_port_enable()
710 temp |= (intel_dsi->dual_link - 1) in intel_dsi_port_enable()
729 struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base); in intel_dsi_port_disable() local
732 for_each_dsi_port(port, intel_dsi->ports) { in intel_dsi_port_disable()
748 static void intel_dsi_msleep(struct intel_dsi *intel_dsi, int msec) in intel_dsi_msleep() argument
750 struct drm_i915_private *dev_priv = to_i915(intel_dsi->base.base.dev); in intel_dsi_msleep()
753 if (is_vid_mode(intel_dsi) && dev_priv->vbt.dsi.seq_version >= 3) in intel_dsi_msleep()
800 struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base); in intel_dsi_pre_enable() local
849 if (intel_dsi->gpio_panel) in intel_dsi_pre_enable()
850 gpiod_set_value_cansleep(intel_dsi->gpio_panel, 1); in intel_dsi_pre_enable()
851 intel_dsi_vbt_exec_sequence(intel_dsi, MIPI_SEQ_POWER_ON); in intel_dsi_pre_enable()
852 intel_dsi_msleep(intel_dsi, intel_dsi->panel_on_delay); in intel_dsi_pre_enable()
855 intel_dsi_vbt_exec_sequence(intel_dsi, MIPI_SEQ_DEASSERT_RESET); in intel_dsi_pre_enable()
873 intel_dsi_vbt_exec_sequence(intel_dsi, MIPI_SEQ_INIT_OTP); in intel_dsi_pre_enable()
877 if (is_cmd_mode(intel_dsi)) { in intel_dsi_pre_enable()
878 for_each_dsi_port(port, intel_dsi->ports) in intel_dsi_pre_enable()
880 intel_dsi_vbt_exec_sequence(intel_dsi, MIPI_SEQ_TEAR_ON); in intel_dsi_pre_enable()
881 intel_dsi_vbt_exec_sequence(intel_dsi, MIPI_SEQ_DISPLAY_ON); in intel_dsi_pre_enable()
884 for_each_dsi_port(port, intel_dsi->ports) in intel_dsi_pre_enable()
885 dpi_send_cmd(intel_dsi, TURN_ON, false, port); in intel_dsi_pre_enable()
886 intel_dsi_msleep(intel_dsi, 100); in intel_dsi_pre_enable()
888 intel_dsi_vbt_exec_sequence(intel_dsi, MIPI_SEQ_DISPLAY_ON); in intel_dsi_pre_enable()
894 intel_dsi_vbt_exec_sequence(intel_dsi, MIPI_SEQ_BACKLIGHT_ON); in intel_dsi_pre_enable()
916 struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base); in intel_dsi_disable() local
921 intel_dsi_vbt_exec_sequence(intel_dsi, MIPI_SEQ_BACKLIGHT_OFF); in intel_dsi_disable()
929 if (is_vid_mode(intel_dsi)) { in intel_dsi_disable()
931 for_each_dsi_port(port, intel_dsi->ports) in intel_dsi_disable()
932 dpi_send_cmd(intel_dsi, SHUTDOWN, false, port); in intel_dsi_disable()
952 struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base); in intel_dsi_post_disable() local
958 if (is_vid_mode(intel_dsi)) { in intel_dsi_post_disable()
959 for_each_dsi_port(port, intel_dsi->ports) in intel_dsi_post_disable()
960 vlv_dsi_wait_for_fifo_empty(intel_dsi, port); in intel_dsi_post_disable()
972 if (is_cmd_mode(intel_dsi)) in intel_dsi_post_disable()
973 intel_dsi_vbt_exec_sequence(intel_dsi, MIPI_SEQ_TEAR_OFF); in intel_dsi_post_disable()
974 intel_dsi_vbt_exec_sequence(intel_dsi, MIPI_SEQ_DISPLAY_OFF); in intel_dsi_post_disable()
1003 intel_dsi_vbt_exec_sequence(intel_dsi, MIPI_SEQ_ASSERT_RESET); in intel_dsi_post_disable()
1006 intel_dsi_msleep(intel_dsi, intel_dsi->panel_off_delay); in intel_dsi_post_disable()
1007 intel_dsi_vbt_exec_sequence(intel_dsi, MIPI_SEQ_POWER_OFF); in intel_dsi_post_disable()
1008 if (intel_dsi->gpio_panel) in intel_dsi_post_disable()
1009 gpiod_set_value_cansleep(intel_dsi->gpio_panel, 0); in intel_dsi_post_disable()
1015 intel_dsi_msleep(intel_dsi, intel_dsi->panel_pwr_cycle_delay); in intel_dsi_post_disable()
1022 struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base); in intel_dsi_get_hw_state() local
1041 for_each_dsi_port(port, intel_dsi->ports) { in intel_dsi_get_hw_state()
1099 struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base); in bxt_dsi_get_pipe_config() local
1100 unsigned int lane_count = intel_dsi->lane_count; in bxt_dsi_get_pipe_config()
1115 for_each_dsi_port(port, intel_dsi->ports) { in bxt_dsi_get_pipe_config()
1150 intel_dsi->burst_mode_ratio); in bxt_dsi_get_pipe_config()
1152 intel_dsi->burst_mode_ratio); in bxt_dsi_get_pipe_config()
1154 intel_dsi->burst_mode_ratio); in bxt_dsi_get_pipe_config()
1156 if (intel_dsi->dual_link) { in bxt_dsi_get_pipe_config()
1197 if (intel_dsi->dual_link) { in bxt_dsi_get_pipe_config()
1204 intel_dsi->burst_mode_ratio); in bxt_dsi_get_pipe_config()
1206 intel_dsi->burst_mode_ratio); in bxt_dsi_get_pipe_config()
1208 intel_dsi->burst_mode_ratio); in bxt_dsi_get_pipe_config()
1212 intel_dsi->burst_mode_ratio); in bxt_dsi_get_pipe_config()
1214 intel_dsi->burst_mode_ratio); in bxt_dsi_get_pipe_config()
1216 intel_dsi->burst_mode_ratio); in bxt_dsi_get_pipe_config()
1218 if (intel_dsi->dual_link) { in bxt_dsi_get_pipe_config()
1319 struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder); in set_dsi_timings() local
1321 unsigned int bpp = mipi_dsi_pixel_format_to_bpp(intel_dsi->pixel_format); in set_dsi_timings()
1322 unsigned int lane_count = intel_dsi->lane_count; in set_dsi_timings()
1331 if (intel_dsi->dual_link) { in set_dsi_timings()
1333 if (intel_dsi->dual_link == DSI_DUAL_LINK_FRONT_BACK) in set_dsi_timings()
1334 hactive += intel_dsi->pixel_overlap; in set_dsi_timings()
1346 intel_dsi->burst_mode_ratio); in set_dsi_timings()
1347 hfp = txbyteclkhs(hfp, bpp, lane_count, intel_dsi->burst_mode_ratio); in set_dsi_timings()
1349 intel_dsi->burst_mode_ratio); in set_dsi_timings()
1350 hbp = txbyteclkhs(hbp, bpp, lane_count, intel_dsi->burst_mode_ratio); in set_dsi_timings()
1352 for_each_dsi_port(port, intel_dsi->ports) { in set_dsi_timings()
1407 struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder); in intel_dsi_prepare() local
1410 unsigned int bpp = mipi_dsi_pixel_format_to_bpp(intel_dsi->pixel_format); in intel_dsi_prepare()
1418 if (intel_dsi->dual_link) { in intel_dsi_prepare()
1420 if (intel_dsi->dual_link == DSI_DUAL_LINK_FRONT_BACK) in intel_dsi_prepare()
1421 mode_hdisplay += intel_dsi->pixel_overlap; in intel_dsi_prepare()
1424 for_each_dsi_port(port, intel_dsi->ports) { in intel_dsi_prepare()
1454 I915_WRITE(MIPI_DPHY_PARAM(port), intel_dsi->dphy_reg); in intel_dsi_prepare()
1463 val = intel_dsi->lane_count << DATA_LANES_PRG_REG_SHIFT; in intel_dsi_prepare()
1464 if (is_cmd_mode(intel_dsi)) { in intel_dsi_prepare()
1465 val |= intel_dsi->channel << CMD_MODE_CHANNEL_NUMBER_SHIFT; in intel_dsi_prepare()
1468 val |= intel_dsi->channel << VID_MODE_CHANNEL_NUMBER_SHIFT; in intel_dsi_prepare()
1469 val |= pixel_format_to_reg(intel_dsi->pixel_format); in intel_dsi_prepare()
1473 if (intel_dsi->eotp_pkt == 0) in intel_dsi_prepare()
1475 if (intel_dsi->clock_stop) in intel_dsi_prepare()
1480 if (!is_cmd_mode(intel_dsi)) in intel_dsi_prepare()
1484 for_each_dsi_port(port, intel_dsi->ports) { in intel_dsi_prepare()
1504 if (is_vid_mode(intel_dsi) && in intel_dsi_prepare()
1505 intel_dsi->video_mode_format == VIDEO_MODE_BURST) { in intel_dsi_prepare()
1508 intel_dsi->lane_count, in intel_dsi_prepare()
1509 intel_dsi->burst_mode_ratio) + 1); in intel_dsi_prepare()
1514 bpp, intel_dsi->lane_count, in intel_dsi_prepare()
1515 intel_dsi->burst_mode_ratio) + 1); in intel_dsi_prepare()
1517 I915_WRITE(MIPI_LP_RX_TIMEOUT(port), intel_dsi->lp_rx_timeout); in intel_dsi_prepare()
1519 intel_dsi->turn_arnd_val); in intel_dsi_prepare()
1521 intel_dsi->rst_timer_val); in intel_dsi_prepare()
1527 txclkesc(intel_dsi->escape_clk_div, 100)); in intel_dsi_prepare()
1529 if (IS_GEN9_LP(dev_priv) && (!intel_dsi->dual_link)) { in intel_dsi_prepare()
1538 intel_dsi->init_count); in intel_dsi_prepare()
1545 I915_WRITE(MIPI_INIT_COUNT(port), intel_dsi->init_count); in intel_dsi_prepare()
1553 intel_dsi->hs_to_lp_count); in intel_dsi_prepare()
1561 I915_WRITE(MIPI_LP_BYTECLK(port), intel_dsi->lp_byte_clk); in intel_dsi_prepare()
1565 intel_dsi->lp_byte_clk); in intel_dsi_prepare()
1568 intel_dsi->dphy_reg); in intel_dsi_prepare()
1576 I915_WRITE(MIPI_DBI_BW_CTRL(port), intel_dsi->bw_timer); in intel_dsi_prepare()
1579 intel_dsi->clk_lp_to_hs_count << LP_HS_SSW_CNT_SHIFT | in intel_dsi_prepare()
1580 intel_dsi->clk_hs_to_lp_count << HS_LP_PWR_SW_CNT_SHIFT); in intel_dsi_prepare()
1582 if (is_vid_mode(intel_dsi)) in intel_dsi_prepare()
1587 intel_dsi->video_frmt_cfg_bits | in intel_dsi_prepare()
1588 intel_dsi->video_mode_format | in intel_dsi_prepare()
1597 struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base); in intel_dsi_unprepare() local
1604 for_each_dsi_port(port, intel_dsi->ports) { in intel_dsi_unprepare()
1657 struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder); in intel_dsi_encoder_destroy() local
1660 if (intel_dsi->gpio_panel) in intel_dsi_encoder_destroy()
1661 gpiod_put(intel_dsi->gpio_panel); in intel_dsi_encoder_destroy()
1736 struct intel_dsi *intel_dsi; in vlv_dsi_init() local
1755 intel_dsi = kzalloc(sizeof(*intel_dsi), GFP_KERNEL); in vlv_dsi_init()
1756 if (!intel_dsi) in vlv_dsi_init()
1761 kfree(intel_dsi); in vlv_dsi_init()
1765 intel_encoder = &intel_dsi->base; in vlv_dsi_init()
1767 intel_dsi->attached_connector = intel_connector; in vlv_dsi_init()
1798 intel_dsi->ports = BIT(PORT_A) | BIT(PORT_C); in vlv_dsi_init()
1800 intel_dsi->ports = BIT(port); in vlv_dsi_init()
1802 intel_dsi->dcs_backlight_ports = dev_priv->vbt.dsi.bl_ports; in vlv_dsi_init()
1803 intel_dsi->dcs_cabc_ports = dev_priv->vbt.dsi.cabc_ports; in vlv_dsi_init()
1806 for_each_dsi_port(port, intel_dsi->ports) { in vlv_dsi_init()
1809 host = intel_dsi_host_init(intel_dsi, port); in vlv_dsi_init()
1813 intel_dsi->dsi_hosts[port] = host; in vlv_dsi_init()
1816 if (!intel_dsi_vbt_init(intel_dsi, MIPI_DSI_GENERIC_PANEL_ID)) { in vlv_dsi_init()
1827 intel_dsi->gpio_panel = in vlv_dsi_init()
1830 if (IS_ERR(intel_dsi->gpio_panel)) { in vlv_dsi_init()
1832 intel_dsi->gpio_panel = NULL; in vlv_dsi_init()
1851 intel_dsi_vbt_get_modes(intel_dsi); in vlv_dsi_init()
1877 kfree(intel_dsi); in vlv_dsi_init()