Lines Matching defs:intel_dsi

44 #include "intel_dsi.h"
101 struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
108 for_each_dsi_port(port, intel_dsi->ports) {
115 for_each_dsi_port(port, intel_dsi->ports) {
116 dsi = intel_dsi->dsi_hosts[port]->device;
126 for_each_dsi_port(port, intel_dsi->ports) {
132 for_each_dsi_port(port, intel_dsi->ports) {
143 struct intel_dsi *intel_dsi = host->intel_dsi;
144 struct drm_i915_private *i915 = to_i915(intel_dsi->base.base.dev);
175 struct intel_dsi *intel_dsi = host->intel_dsi;
176 struct drm_i915_private *dev_priv = to_i915(intel_dsi->base.base.dev);
234 struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
239 for_each_dsi_phy(phy, intel_dsi->phys) {
280 struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
298 dss_ctl1 |= OVERLAP_PIXELS(intel_dsi->pixel_overlap);
300 if (intel_dsi->dual_link == DSI_DUAL_LINK_FRONT_BACK) {
307 dl_buffer_depth = hactive / 2 + intel_dsi->pixel_overlap;
329 struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
335 bpp = mipi_dsi_pixel_format_to_bpp(intel_dsi->pixel_format);
337 return DIV_ROUND_CLOSEST(intel_dsi->pclk * bpp, intel_dsi->lane_count);
344 struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
361 for_each_dsi_port(port, intel_dsi->ports) {
367 for_each_dsi_port(port, intel_dsi->ports) {
374 for_each_dsi_port(port, intel_dsi->ports) {
383 struct intel_dsi *intel_dsi)
387 for_each_dsi_port(port, intel_dsi->ports) {
388 drm_WARN_ON(&dev_priv->drm, intel_dsi->io_wakeref[port]);
389 intel_dsi->io_wakeref[port] =
400 struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
403 for_each_dsi_port(port, intel_dsi->ports)
407 get_dsi_io_power_domains(dev_priv, intel_dsi);
413 struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
416 for_each_dsi_phy(phy, intel_dsi->phys)
418 intel_dsi->lane_count, false);
424 struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
430 for_each_dsi_phy(phy, intel_dsi->phys) {
438 for_each_dsi_phy(phy, intel_dsi->phys) {
466 struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
471 for_each_dsi_phy(phy, intel_dsi->phys) {
483 for_each_dsi_phy(phy, intel_dsi->phys)
487 for_each_dsi_phy(phy, intel_dsi->phys) {
498 for_each_dsi_phy(phy, intel_dsi->phys) {
509 struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
512 for_each_dsi_port(port, intel_dsi->ports) {
528 struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
533 for_each_dsi_port(port, intel_dsi->ports)
535 intel_dsi->dphy_reg);
538 for_each_dsi_port(port, intel_dsi->ports)
540 intel_dsi->dphy_data_lane_reg);
550 for_each_dsi_port(port, intel_dsi->ports)
558 for_each_dsi_phy(phy, intel_dsi->phys)
569 struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
573 for_each_dsi_port(port, intel_dsi->ports)
575 DSI_T_INIT_MASTER_MASK, intel_dsi->init_count);
578 for_each_dsi_port(port, intel_dsi->ports)
580 intel_dsi->dphy_reg);
583 for_each_dsi_port(port, intel_dsi->ports)
585 intel_dsi->dphy_data_lane_reg);
590 for_each_dsi_port(port, intel_dsi->ports) {
602 struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
608 for_each_dsi_phy(phy, intel_dsi->phys)
618 struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
624 for_each_dsi_phy(phy, intel_dsi->phys)
634 struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
641 for_each_dsi_phy(phy, intel_dsi->phys) {
653 struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
661 for_each_dsi_phy(phy, intel_dsi->phys) {
667 for_each_dsi_phy(phy, intel_dsi->phys) {
682 struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
689 for_each_dsi_port(port, intel_dsi->ports) {
693 if (intel_dsi->eotp_pkt)
706 if (intel_dsi->clock_stop)
720 if (intel_dsi->bgr_enabled)
728 switch (intel_dsi->pixel_format) {
730 MISSING_CASE(intel_dsi->pixel_format);
748 if (is_vid_mode(intel_dsi))
753 if (is_vid_mode(intel_dsi)) {
755 switch (intel_dsi->video_mode) {
757 MISSING_CASE(intel_dsi->video_mode);
784 if (intel_dsi->dual_link) {
785 for_each_dsi_port(port, intel_dsi->ports) {
795 for_each_dsi_port(port, intel_dsi->ports) {
801 tmp |= DDI_PORT_WIDTH(intel_dsi->lane_count);
829 for_each_dsi_port(port, intel_dsi->ports) {
842 struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
864 div = mipi_dsi_pixel_format_to_bpp(intel_dsi->pixel_format);
869 if (is_vid_mode(intel_dsi))
881 if (is_vid_mode(intel_dsi)) {
889 bpp = mipi_dsi_pixel_format_to_bpp(intel_dsi->pixel_format);
892 line_time_us = (htotal * (bpp / 8) * byte_clk_period_ns) / (1000 * intel_dsi->lane_count);
899 if (intel_dsi->dual_link) {
901 if (intel_dsi->dual_link == DSI_DUAL_LINK_FRONT_BACK)
902 hactive += intel_dsi->pixel_overlap;
911 if (intel_dsi->pixel_format == MIPI_DSI_FMT_RGB666 && hactive % 4 != 0)
916 for_each_dsi_port(port, intel_dsi->ports) {
923 if (is_vid_mode(intel_dsi)) {
924 if (intel_dsi->video_mode == NON_BURST_SYNC_PULSE) {
934 if (intel_dsi->dual_link) {
939 for_each_dsi_port(port, intel_dsi->ports) {
947 for_each_dsi_port(port, intel_dsi->ports) {
966 if (is_vid_mode(intel_dsi)) {
967 for_each_dsi_port(port, intel_dsi->ports) {
980 if (is_vid_mode(intel_dsi)) {
981 for_each_dsi_port(port, intel_dsi->ports) {
995 for_each_dsi_port(port, intel_dsi->ports) {
1006 struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
1010 for_each_dsi_port(port, intel_dsi->ports) {
1026 struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
1038 divisor = intel_dsi_tlpx_ns(intel_dsi) * afe_clk(encoder, crtc_state) * 1000;
1040 hs_tx_timeout = DIV_ROUND_UP(intel_dsi->hs_tx_timeout * mul,
1042 lp_rx_timeout = DIV_ROUND_UP(intel_dsi->lp_rx_timeout * mul, divisor);
1043 ta_timeout = DIV_ROUND_UP(intel_dsi->turn_arnd_val * mul, divisor);
1045 for_each_dsi_port(port, intel_dsi->ports) {
1073 struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
1081 if (is_vid_mode(intel_dsi) || (intel_dsi->ports & BIT(PORT_B)))
1131 struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
1139 for_each_dsi_port(port, intel_dsi->ports) {
1150 dsi = intel_dsi->dsi_hosts[port]->device;
1157 intel_dsi_vbt_exec_sequence(intel_dsi, MIPI_SEQ_INIT_OTP);
1168 struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
1170 intel_dsi_wait_panel_power_cycle(intel_dsi);
1172 intel_dsi_vbt_exec_sequence(intel_dsi, MIPI_SEQ_POWER_ON);
1173 drm_msleep(intel_dsi->panel_on_delay);
1174 intel_dsi_vbt_exec_sequence(intel_dsi, MIPI_SEQ_DEASSERT_RESET);
1230 struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
1234 for_each_dsi_port(port, intel_dsi->ports)
1246 struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
1258 intel_dsi_vbt_exec_sequence(intel_dsi, MIPI_SEQ_DISPLAY_ON);
1262 intel_dsi_vbt_exec_sequence(intel_dsi, MIPI_SEQ_BACKLIGHT_ON);
1270 struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
1274 for_each_dsi_port(port, intel_dsi->ports) {
1290 struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
1292 intel_dsi_vbt_exec_sequence(intel_dsi, MIPI_SEQ_DISPLAY_OFF);
1301 struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
1307 if (is_cmd_mode(intel_dsi)) {
1308 for_each_dsi_port(port, intel_dsi->ports)
1314 for_each_dsi_port(port, intel_dsi->ports) {
1328 for_each_dsi_port(port, intel_dsi->ports) {
1335 if (intel_dsi->dual_link) {
1336 for_each_dsi_port(port, intel_dsi->ports) {
1347 struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
1351 for_each_dsi_port(port, intel_dsi->ports) {
1367 struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
1370 for_each_dsi_port(port, intel_dsi->ports) {
1373 wakeref = fetch_and_zero(&intel_dsi->io_wakeref[port]);
1382 for_each_dsi_port(port, intel_dsi->ports)
1392 struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
1395 intel_dsi_vbt_exec_sequence(intel_dsi, MIPI_SEQ_BACKLIGHT_OFF);
1404 struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
1432 intel_dsi_vbt_exec_sequence(intel_dsi, MIPI_SEQ_ASSERT_RESET);
1434 drm_msleep(intel_dsi->panel_off_delay);
1435 intel_dsi_vbt_exec_sequence(intel_dsi, MIPI_SEQ_POWER_OFF);
1437 intel_dsi->panel_power_off_time = ktime_get_boottime();
1457 struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
1463 int mul = mipi_dsi_pixel_format_to_bpp(intel_dsi->pixel_format);
1473 if (intel_dsi->dual_link) {
1475 if (intel_dsi->dual_link == DSI_DUAL_LINK_FRONT_BACK)
1477 intel_dsi->pixel_overlap;
1483 if (intel_dsi->operation_mode == INTEL_DSI_VIDEO_MODE) {
1484 if (intel_dsi->dual_link) {
1493 static bool gen11_dsi_is_periodic_cmd_mode(struct intel_dsi *intel_dsi)
1495 struct drm_device *dev = intel_dsi->base.base.dev;
1500 if (intel_dsi->ports == BIT(PORT_B))
1509 static void gen11_dsi_get_cmd_mode_config(struct intel_dsi *intel_dsi,
1512 if (intel_dsi->ports == (BIT(PORT_B) | BIT(PORT_A)))
1515 else if (intel_dsi->ports == BIT(PORT_B))
1525 struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
1529 pipe_config->hw.adjusted_mode.crtc_clock = intel_dsi->pclk;
1530 if (intel_dsi->dual_link)
1538 if (is_cmd_mode(intel_dsi))
1539 gen11_dsi_get_cmd_mode_config(intel_dsi, pipe_config);
1541 if (gen11_dsi_is_periodic_cmd_mode(intel_dsi))
1619 struct intel_dsi *intel_dsi = container_of(encoder, struct intel_dsi,
1621 struct intel_connector *intel_connector = intel_dsi->attached_connector;
1640 if (intel_dsi->ports == BIT(PORT_B))
1645 if (intel_dsi->pixel_format == MIPI_DSI_FMT_RGB888)
1662 if (is_cmd_mode(intel_dsi))
1663 gen11_dsi_get_cmd_mode_config(intel_dsi, pipe_config);
1681 struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
1693 for_each_dsi_port(port, intel_dsi->ports) {
1822 static void icl_dphy_param_init(struct intel_dsi *intel_dsi)
1824 struct drm_device *dev = intel_dsi->base.base.dev;
1826 struct intel_connector *connector = intel_dsi->attached_connector;
1834 tlpx_ns = intel_dsi_tlpx_ns(intel_dsi);
1907 intel_dsi->dphy_reg = (CLK_PREPARE_OVERRIDE |
1919 intel_dsi->dphy_data_lane_reg = (HS_PREPARE_OVERRIDE |
1928 intel_dsi_log_params(intel_dsi);
1947 struct intel_dsi *intel_dsi;
1957 intel_dsi = kzalloc(sizeof(*intel_dsi), GFP_KERNEL);
1958 if (!intel_dsi)
1963 kfree(intel_dsi);
1967 encoder = &intel_dsi->base;
1968 intel_dsi->attached_connector = intel_connector;
2008 intel_dsi->panel_power_off_time = ktime_get_boottime();
2026 intel_dsi->ports = BIT(PORT_A) | BIT(PORT_B);
2028 intel_dsi->ports = BIT(port);
2030 if (drm_WARN_ON(&dev_priv->drm, intel_connector->panel.vbt.dsi.bl_ports & ~intel_dsi->ports))
2031 intel_connector->panel.vbt.dsi.bl_ports &= intel_dsi->ports;
2033 if (drm_WARN_ON(&dev_priv->drm, intel_connector->panel.vbt.dsi.cabc_ports & ~intel_dsi->ports))
2034 intel_connector->panel.vbt.dsi.cabc_ports &= intel_dsi->ports;
2036 for_each_dsi_port(port, intel_dsi->ports) {
2039 host = intel_dsi_host_init(intel_dsi, &gen11_dsi_host_ops, port);
2043 intel_dsi->dsi_hosts[port] = host;
2046 if (!intel_dsi_vbt_init(intel_dsi, MIPI_DSI_GENERIC_PANEL_ID)) {
2051 icl_dphy_param_init(intel_dsi);
2059 kfree(intel_dsi);