Lines Matching refs:encoder

104 static void wait_for_cmds_dispatched_to_panel(struct intel_encoder *encoder)  in wait_for_cmds_dispatched_to_panel()  argument
106 struct intel_display *display = to_intel_display(encoder); in wait_for_cmds_dispatched_to_panel()
107 struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder); in wait_for_cmds_dispatched_to_panel()
237 static void dsi_program_swing_and_deemphasis(struct intel_encoder *encoder) in dsi_program_swing_and_deemphasis() argument
239 struct intel_display *display = to_intel_display(encoder); in dsi_program_swing_and_deemphasis()
240 struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder); in dsi_program_swing_and_deemphasis()
282 static void configure_dual_link_mode(struct intel_encoder *encoder, in configure_dual_link_mode() argument
285 struct intel_display *display = to_intel_display(encoder); in configure_dual_link_mode()
286 struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder); in configure_dual_link_mode()
332 static int afe_clk(struct intel_encoder *encoder, in afe_clk() argument
335 struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder); in afe_clk()
346 static void gen11_dsi_program_esc_clk_div(struct intel_encoder *encoder, in gen11_dsi_program_esc_clk_div() argument
349 struct intel_display *display = to_intel_display(encoder); in gen11_dsi_program_esc_clk_div()
350 struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder); in gen11_dsi_program_esc_clk_div()
356 afe_clk_khz = afe_clk(encoder, crtc_state); in gen11_dsi_program_esc_clk_div()
403 static void gen11_dsi_enable_io_power(struct intel_encoder *encoder) in gen11_dsi_enable_io_power() argument
405 struct intel_display *display = to_intel_display(encoder); in gen11_dsi_enable_io_power()
406 struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder); in gen11_dsi_enable_io_power()
416 static void gen11_dsi_power_up_lanes(struct intel_encoder *encoder) in gen11_dsi_power_up_lanes() argument
418 struct intel_display *display = to_intel_display(encoder); in gen11_dsi_power_up_lanes()
419 struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder); in gen11_dsi_power_up_lanes()
427 static void gen11_dsi_config_phy_lanes_sequence(struct intel_encoder *encoder) in gen11_dsi_config_phy_lanes_sequence() argument
429 struct intel_display *display = to_intel_display(encoder); in gen11_dsi_config_phy_lanes_sequence()
430 struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder); in gen11_dsi_config_phy_lanes_sequence()
470 static void gen11_dsi_voltage_swing_program_seq(struct intel_encoder *encoder) in gen11_dsi_voltage_swing_program_seq() argument
472 struct intel_display *display = to_intel_display(encoder); in gen11_dsi_voltage_swing_program_seq()
473 struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder); in gen11_dsi_voltage_swing_program_seq()
503 dsi_program_swing_and_deemphasis(encoder); in gen11_dsi_voltage_swing_program_seq()
514 static void gen11_dsi_enable_ddi_buffer(struct intel_encoder *encoder) in gen11_dsi_enable_ddi_buffer() argument
516 struct intel_display *display = to_intel_display(encoder); in gen11_dsi_enable_ddi_buffer()
517 struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder); in gen11_dsi_enable_ddi_buffer()
532 gen11_dsi_setup_dphy_timings(struct intel_encoder *encoder, in gen11_dsi_setup_dphy_timings() argument
535 struct intel_display *display = to_intel_display(encoder); in gen11_dsi_setup_dphy_timings()
536 struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder); in gen11_dsi_setup_dphy_timings()
557 if (afe_clk(encoder, crtc_state) <= 800000) { in gen11_dsi_setup_dphy_timings()
573 gen11_dsi_setup_timings(struct intel_encoder *encoder, in gen11_dsi_setup_timings() argument
576 struct intel_display *display = to_intel_display(encoder); in gen11_dsi_setup_timings()
577 struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder); in gen11_dsi_setup_timings()
597 if (afe_clk(encoder, crtc_state) <= 800000) { in gen11_dsi_setup_timings()
607 static void gen11_dsi_gate_clocks(struct intel_encoder *encoder) in gen11_dsi_gate_clocks() argument
609 struct intel_display *display = to_intel_display(encoder); in gen11_dsi_gate_clocks()
610 struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder); in gen11_dsi_gate_clocks()
623 static void gen11_dsi_ungate_clocks(struct intel_encoder *encoder) in gen11_dsi_ungate_clocks() argument
625 struct intel_display *display = to_intel_display(encoder); in gen11_dsi_ungate_clocks()
626 struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder); in gen11_dsi_ungate_clocks()
639 static bool gen11_dsi_is_clock_enabled(struct intel_encoder *encoder) in gen11_dsi_is_clock_enabled() argument
641 struct intel_display *display = to_intel_display(encoder); in gen11_dsi_is_clock_enabled()
642 struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder); in gen11_dsi_is_clock_enabled()
657 static void gen11_dsi_map_pll(struct intel_encoder *encoder, in gen11_dsi_map_pll() argument
660 struct intel_display *display = to_intel_display(encoder); in gen11_dsi_map_pll()
661 struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder); in gen11_dsi_map_pll()
686 gen11_dsi_configure_transcoder(struct intel_encoder *encoder, in gen11_dsi_configure_transcoder() argument
689 struct intel_display *display = to_intel_display(encoder); in gen11_dsi_configure_transcoder()
690 struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder); in gen11_dsi_configure_transcoder()
707 if (afe_clk(encoder, pipe_config) >= 1500 * 1000) { in gen11_dsi_configure_transcoder()
801 configure_dual_link_mode(encoder, pipe_config); in gen11_dsi_configure_transcoder()
849 gen11_dsi_set_transcoder_timings(struct intel_encoder *encoder, in gen11_dsi_set_transcoder_timings() argument
852 struct intel_display *display = to_intel_display(encoder); in gen11_dsi_set_transcoder_timings()
853 struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder); in gen11_dsi_set_transcoder_timings()
902 byte_clk_period_ns = 1000000 / afe_clk(encoder, crtc_state); in gen11_dsi_set_transcoder_timings()
1018 static void gen11_dsi_enable_transcoder(struct intel_encoder *encoder) in gen11_dsi_enable_transcoder() argument
1020 struct intel_display *display = to_intel_display(encoder); in gen11_dsi_enable_transcoder()
1021 struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder); in gen11_dsi_enable_transcoder()
1038 static void gen11_dsi_setup_timeouts(struct intel_encoder *encoder, in gen11_dsi_setup_timeouts() argument
1041 struct intel_display *display = to_intel_display(encoder); in gen11_dsi_setup_timeouts()
1042 struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder); in gen11_dsi_setup_timeouts()
1054 divisor = intel_dsi_tlpx_ns(intel_dsi) * afe_clk(encoder, crtc_state) * 1000; in gen11_dsi_setup_timeouts()
1085 static void gen11_dsi_config_util_pin(struct intel_encoder *encoder, in gen11_dsi_config_util_pin() argument
1088 struct intel_display *display = to_intel_display(encoder); in gen11_dsi_config_util_pin()
1089 struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder); in gen11_dsi_config_util_pin()
1112 gen11_dsi_enable_port_and_phy(struct intel_encoder *encoder, in gen11_dsi_enable_port_and_phy() argument
1116 gen11_dsi_power_up_lanes(encoder); in gen11_dsi_enable_port_and_phy()
1119 gen11_dsi_config_phy_lanes_sequence(encoder); in gen11_dsi_enable_port_and_phy()
1122 gen11_dsi_voltage_swing_program_seq(encoder); in gen11_dsi_enable_port_and_phy()
1125 gen11_dsi_setup_dphy_timings(encoder, crtc_state); in gen11_dsi_enable_port_and_phy()
1128 gen11_dsi_enable_ddi_buffer(encoder); in gen11_dsi_enable_port_and_phy()
1130 gen11_dsi_gate_clocks(encoder); in gen11_dsi_enable_port_and_phy()
1132 gen11_dsi_setup_timings(encoder, crtc_state); in gen11_dsi_enable_port_and_phy()
1135 gen11_dsi_config_util_pin(encoder, true); in gen11_dsi_enable_port_and_phy()
1138 gen11_dsi_setup_timeouts(encoder, crtc_state); in gen11_dsi_enable_port_and_phy()
1141 gen11_dsi_configure_transcoder(encoder, crtc_state); in gen11_dsi_enable_port_and_phy()
1144 static void gen11_dsi_powerup_panel(struct intel_encoder *encoder) in gen11_dsi_powerup_panel() argument
1146 struct intel_display *display = to_intel_display(encoder); in gen11_dsi_powerup_panel()
1147 struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder); in gen11_dsi_powerup_panel()
1176 wait_for_cmds_dispatched_to_panel(encoder); in gen11_dsi_powerup_panel()
1180 struct intel_encoder *encoder, in gen11_dsi_pre_pll_enable() argument
1184 struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder); in gen11_dsi_pre_pll_enable()
1193 gen11_dsi_enable_io_power(encoder); in gen11_dsi_pre_pll_enable()
1196 gen11_dsi_program_esc_clk_div(encoder, crtc_state); in gen11_dsi_pre_pll_enable()
1200 struct intel_encoder *encoder, in gen11_dsi_pre_enable() argument
1205 gen11_dsi_map_pll(encoder, pipe_config); in gen11_dsi_pre_enable()
1208 gen11_dsi_enable_port_and_phy(encoder, pipe_config); in gen11_dsi_pre_enable()
1211 gen11_dsi_powerup_panel(encoder); in gen11_dsi_pre_enable()
1213 intel_dsc_dsi_pps_write(encoder, pipe_config); in gen11_dsi_pre_enable()
1216 gen11_dsi_set_transcoder_timings(encoder, pipe_config); in gen11_dsi_pre_enable()
1226 static void icl_apply_kvmr_pipe_a_wa(struct intel_encoder *encoder, in icl_apply_kvmr_pipe_a_wa() argument
1229 struct intel_display *display = to_intel_display(encoder); in icl_apply_kvmr_pipe_a_wa()
1243 static void adlp_set_lp_hs_wakeup_gb(struct intel_encoder *encoder) in adlp_set_lp_hs_wakeup_gb() argument
1245 struct intel_display *display = to_intel_display(encoder); in adlp_set_lp_hs_wakeup_gb()
1246 struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder); in adlp_set_lp_hs_wakeup_gb()
1258 struct intel_encoder *encoder, in gen11_dsi_enable() argument
1262 struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder); in gen11_dsi_enable()
1266 icl_apply_kvmr_pipe_a_wa(encoder, crtc->pipe, true); in gen11_dsi_enable()
1269 adlp_set_lp_hs_wakeup_gb(encoder); in gen11_dsi_enable()
1272 gen11_dsi_enable_transcoder(encoder); in gen11_dsi_enable()
1285 static void gen11_dsi_disable_transcoder(struct intel_encoder *encoder) in gen11_dsi_disable_transcoder() argument
1287 struct intel_display *display = to_intel_display(encoder); in gen11_dsi_disable_transcoder()
1288 struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder); in gen11_dsi_disable_transcoder()
1307 static void gen11_dsi_powerdown_panel(struct intel_encoder *encoder) in gen11_dsi_powerdown_panel() argument
1309 struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder); in gen11_dsi_powerdown_panel()
1314 wait_for_cmds_dispatched_to_panel(encoder); in gen11_dsi_powerdown_panel()
1317 static void gen11_dsi_deconfigure_trancoder(struct intel_encoder *encoder) in gen11_dsi_deconfigure_trancoder() argument
1319 struct intel_display *display = to_intel_display(encoder); in gen11_dsi_deconfigure_trancoder()
1320 struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder); in gen11_dsi_deconfigure_trancoder()
1365 static void gen11_dsi_disable_port(struct intel_encoder *encoder) in gen11_dsi_disable_port() argument
1367 struct intel_display *display = to_intel_display(encoder); in gen11_dsi_disable_port()
1368 struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder); in gen11_dsi_disable_port()
1371 gen11_dsi_ungate_clocks(encoder); in gen11_dsi_disable_port()
1382 gen11_dsi_gate_clocks(encoder); in gen11_dsi_disable_port()
1385 static void gen11_dsi_disable_io_power(struct intel_encoder *encoder) in gen11_dsi_disable_io_power() argument
1387 struct intel_display *display = to_intel_display(encoder); in gen11_dsi_disable_io_power()
1388 struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder); in gen11_dsi_disable_io_power()
1409 struct intel_encoder *encoder, in gen11_dsi_disable() argument
1413 struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder); in gen11_dsi_disable()
1423 struct intel_encoder *encoder, in gen11_dsi_post_disable() argument
1427 struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder); in gen11_dsi_post_disable()
1433 gen11_dsi_disable_transcoder(encoder); in gen11_dsi_post_disable()
1436 icl_apply_kvmr_pipe_a_wa(encoder, crtc->pipe, false); in gen11_dsi_post_disable()
1439 gen11_dsi_powerdown_panel(encoder); in gen11_dsi_post_disable()
1442 gen11_dsi_deconfigure_trancoder(encoder); in gen11_dsi_post_disable()
1448 gen11_dsi_disable_port(encoder); in gen11_dsi_post_disable()
1450 gen11_dsi_config_util_pin(encoder, false); in gen11_dsi_post_disable()
1453 gen11_dsi_disable_io_power(encoder); in gen11_dsi_post_disable()
1477 static void gen11_dsi_get_timings(struct intel_encoder *encoder, in gen11_dsi_get_timings() argument
1480 struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder); in gen11_dsi_get_timings()
1543 static void gen11_dsi_get_config(struct intel_encoder *encoder, in gen11_dsi_get_config() argument
1547 struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder); in gen11_dsi_get_config()
1549 intel_ddi_get_clock(encoder, pipe_config, icl_ddi_combo_get_pll(encoder)); in gen11_dsi_get_config()
1555 gen11_dsi_get_timings(encoder, pipe_config); in gen11_dsi_get_config()
1567 static void gen11_dsi_sync_state(struct intel_encoder *encoder, in gen11_dsi_sync_state() argument
1570 struct intel_display *display = to_intel_display(encoder); in gen11_dsi_sync_state()
1585 encoder->base.base.id, in gen11_dsi_sync_state()
1586 encoder->base.name); in gen11_dsi_sync_state()
1589 static int gen11_dsi_dsc_compute_config(struct intel_encoder *encoder, in gen11_dsi_dsc_compute_config() argument
1592 struct intel_display *display = to_intel_display(encoder); in gen11_dsi_dsc_compute_config()
1598 use_dsc = intel_bios_get_dsc_params(encoder, crtc_state, dsc_max_bpc); in gen11_dsi_dsc_compute_config()
1638 static int gen11_dsi_compute_config(struct intel_encoder *encoder, in gen11_dsi_compute_config() argument
1642 struct intel_display *display = to_intel_display(encoder); in gen11_dsi_compute_config()
1643 struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder); in gen11_dsi_compute_config()
1675 if (gen11_dsi_dsc_compute_config(encoder, pipe_config)) in gen11_dsi_compute_config()
1678 pipe_config->port_clock = afe_clk(encoder, pipe_config) / 5; in gen11_dsi_compute_config()
1691 static void gen11_dsi_get_power_domains(struct intel_encoder *encoder, in gen11_dsi_get_power_domains() argument
1694 get_dsi_io_power_domains(enc_to_intel_dsi(encoder)); in gen11_dsi_get_power_domains()
1697 static bool gen11_dsi_get_hw_state(struct intel_encoder *encoder, in gen11_dsi_get_hw_state() argument
1700 struct intel_display *display = to_intel_display(encoder); in gen11_dsi_get_hw_state()
1701 struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder); in gen11_dsi_get_hw_state()
1709 encoder->power_domain); in gen11_dsi_get_hw_state()
1739 intel_display_power_put(display, encoder->power_domain, wakeref); in gen11_dsi_get_hw_state()
1743 static bool gen11_dsi_initial_fastset_check(struct intel_encoder *encoder, in gen11_dsi_initial_fastset_check() argument
1747 drm_dbg_kms(encoder->base.dev, "Forcing full modeset due to DSC being enabled\n"); in gen11_dsi_initial_fastset_check()
1756 static void gen11_dsi_encoder_destroy(struct drm_encoder *encoder) in gen11_dsi_encoder_destroy() argument
1758 intel_encoder_destroy(encoder); in gen11_dsi_encoder_destroy()
1906 struct intel_encoder *encoder; in icl_dsi_init() local
1925 encoder = &intel_dsi->base; in icl_dsi_init()
1929 encoder->devdata = devdata; in icl_dsi_init()
1932 drm_encoder_init(display->drm, &encoder->base, in icl_dsi_init()
1936 encoder->pre_pll_enable = gen11_dsi_pre_pll_enable; in icl_dsi_init()
1937 encoder->pre_enable = gen11_dsi_pre_enable; in icl_dsi_init()
1938 encoder->enable = gen11_dsi_enable; in icl_dsi_init()
1939 encoder->disable = gen11_dsi_disable; in icl_dsi_init()
1940 encoder->post_disable = gen11_dsi_post_disable; in icl_dsi_init()
1941 encoder->port = port; in icl_dsi_init()
1942 encoder->get_config = gen11_dsi_get_config; in icl_dsi_init()
1943 encoder->sync_state = gen11_dsi_sync_state; in icl_dsi_init()
1944 encoder->update_pipe = intel_backlight_update; in icl_dsi_init()
1945 encoder->compute_config = gen11_dsi_compute_config; in icl_dsi_init()
1946 encoder->get_hw_state = gen11_dsi_get_hw_state; in icl_dsi_init()
1947 encoder->initial_fastset_check = gen11_dsi_initial_fastset_check; in icl_dsi_init()
1948 encoder->type = INTEL_OUTPUT_DSI; in icl_dsi_init()
1949 encoder->cloneable = 0; in icl_dsi_init()
1950 encoder->pipe_mask = ~0; in icl_dsi_init()
1951 encoder->power_domain = POWER_DOMAIN_PORT_DSI; in icl_dsi_init()
1952 encoder->get_power_domains = gen11_dsi_get_power_domains; in icl_dsi_init()
1953 encoder->disable_clock = gen11_dsi_gate_clocks; in icl_dsi_init()
1954 encoder->is_clock_enabled = gen11_dsi_is_clock_enabled; in icl_dsi_init()
1955 encoder->shutdown = intel_dsi_shutdown; in icl_dsi_init()
1966 intel_connector_attach_encoder(intel_connector, encoder); in icl_dsi_init()
1970 intel_bios_init_panel_late(display, &intel_connector->panel, encoder->devdata, NULL); in icl_dsi_init()
2018 drm_encoder_cleanup(&encoder->base); in icl_dsi_init()