Skip to content

Commit 765a263

Browse files
committed
drm/i915/dsi: Fill BLLPs with blanking packets if requested
TGL/ADL DSI can be configured to fill all BLLPs with blanking packets. Currently we enable that always, but the VBT actually tells us whether this is desired or not. Hook that up. Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Link: https://patch.msgid.link/20260326111814.9800-5-ville.syrjala@linux.intel.com Reviewed-by: Jani Nikula <jani.nikula@intel.com>
1 parent 81ec955 commit 765a263

4 files changed

Lines changed: 9 additions & 5 deletions

File tree

drivers/gpu/drm/i915/display/icl_dsi.c

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -765,10 +765,11 @@ gen11_dsi_configure_transcoder(struct intel_encoder *encoder,
765765
}
766766
}
767767

768-
if (DISPLAY_VER(display) >= 12) {
769-
if (is_vid_mode(intel_dsi))
770-
tmp |= BLANKING_PACKET_ENABLE;
771-
}
768+
if (DISPLAY_VER(display) >= 12 &&
769+
is_vid_mode(intel_dsi) && intel_dsi->blanking_pkt)
770+
tmp |= BLANKING_PACKET_ENABLE;
771+
else
772+
tmp &= ~BLANKING_PACKET_ENABLE;
772773

773774
/* program DSI operation mode */
774775
if (is_vid_mode(intel_dsi)) {

drivers/gpu/drm/i915/display/icl_dsi_regs.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -232,7 +232,7 @@
232232
#define CALIBRATION_DISABLED (0x0 << 4)
233233
#define CALIBRATION_ENABLED_INITIAL_ONLY (0x2 << 4)
234234
#define CALIBRATION_ENABLED_INITIAL_PERIODIC (0x3 << 4)
235-
#define BLANKING_PACKET_ENABLE (1 << 2)
235+
#define BLANKING_PACKET_ENABLE (1 << 2) /* tgl+ */
236236
#define S3D_ORIENTATION_LANDSCAPE (1 << 1)
237237
#define EOTP_DISABLED (1 << 0)
238238

drivers/gpu/drm/i915/display/intel_dsi.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,7 @@ struct intel_dsi {
8080
/* NON_BURST_SYNC_PULSE, NON_BURST_SYNC_EVENTS, or BURST_MODE */
8181
int video_mode;
8282

83+
bool blanking_pkt;
8384
bool eot_pkt;
8485
bool clock_stop;
8586

drivers/gpu/drm/i915/display/intel_dsi_vbt.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -718,6 +718,7 @@ void intel_dsi_log_params(struct intel_dsi *intel_dsi)
718718
"burst" : "<unknown>");
719719
drm_printf(&p, "Burst mode ratio %d\n", intel_dsi->burst_mode_ratio);
720720
drm_printf(&p, "Reset timer %d\n", intel_dsi->rst_timer_val);
721+
drm_printf(&p, "Blanking packets during BLLP %s\n", str_enabled_disabled(intel_dsi->blanking_pkt));
721722
drm_printf(&p, "EoT packet %s\n", str_enabled_disabled(intel_dsi->eot_pkt));
722723
drm_printf(&p, "Clock stop during BLLP %s\n", str_enabled_disabled(intel_dsi->clock_stop));
723724
drm_printf(&p, "Mode %s\n", intel_dsi->operation_mode ? "command" : "video");
@@ -770,6 +771,7 @@ bool intel_dsi_vbt_init(struct intel_dsi *intel_dsi, u16 panel_id)
770771

771772
drm_dbg_kms(display->drm, "\n");
772773

774+
intel_dsi->blanking_pkt = mipi_config->blanking_packets_during_bllp;
773775
intel_dsi->eot_pkt = !mipi_config->eot_pkt_disabled;
774776
intel_dsi->clock_stop = mipi_config->enable_clk_stop;
775777
intel_dsi->lane_count = mipi_config->lane_cnt + 1;

0 commit comments

Comments
 (0)