@@ -292,6 +292,15 @@ static void generic_exec_sequence(struct intel_dsi *intel_dsi, const u8 *data)
}
}
+static void send_dsc_pps_block(struct intel_dsi *intel_dsi)
+{
+ u8 *data;
+
+ mipi_dsi_dsc_pps_write_buffer(dsi_device, NULL, 0);
+ data = (u8 *)&intel_dsi->pps_data;
+ mipi_dsi_dsc_pps_write_buffer(dsi_device, data, 128);
+}
+
static int vbt_panel_prepare(struct drm_panel *panel)
{
struct vbt_panel *vbt_panel = to_vbt_panel(panel);
@@ -306,6 +315,9 @@ static int vbt_panel_prepare(struct drm_panel *panel)
sequence = dev_priv->vbt.dsi.sequence[MIPI_SEQ_INIT_OTP];
generic_exec_sequence(intel_dsi, sequence);
+ if (intel_dsi->dsc_enable)
+ send_dsc_pps_block(intel_dsi);
+
return 0;
}