Some DSI panels require multiple DSC slices to be transmitted within a single DSC packet. The DSI host will only correctly program its registers and avoid display corruption if the dsc_slice_per_pkt parameter is provided.
Since dsc_slice_per_pkt is not part of the VESA DSC standard, it should not be added to struct drm_dsc_config. Instead, introduce a new field in struct mipi_dsi_device so that panel drivers can specify the required number of slices per packet, and DSI host drivers can retrieve it accordingly. Originally, this change was part of a single patch that also included the DSI host modification. This patch splits out the mipi_dsi_device changes. The corresponding DSI host patch for Qualcomm MSM, along with a panel driver that makes use of this field, will be submitted separately. Co-developed-by: Jonathan Marek <[email protected]> Signed-off-by: Jonathan Marek <[email protected]> Signed-off-by: Jun Nie <[email protected]> Signed-off-by: Junjie Cao <[email protected]> --- include/drm/drm_mipi_dsi.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/include/drm/drm_mipi_dsi.h b/include/drm/drm_mipi_dsi.h index 3aba7b380..a6357e8c2 100644 --- a/include/drm/drm_mipi_dsi.h +++ b/include/drm/drm_mipi_dsi.h @@ -180,6 +180,7 @@ struct mipi_dsi_device_info { * be set to the real limits of the hardware, zero is only accepted for * legacy drivers * @dsc: panel/bridge DSC pps payload to be sent + * @dsc_slice_per_pkt: number of DSC slices to be sent in a single packet */ struct mipi_dsi_device { struct mipi_dsi_host *host; @@ -194,6 +195,7 @@ struct mipi_dsi_device { unsigned long hs_rate; unsigned long lp_rate; struct drm_dsc_config *dsc; + unsigned int dsc_slice_per_pkt; }; /** -- 2.51.0
