There is one option which is keep current
1) keep struct drm_dsc_config *msm_dsi_get_dsc_config(struct msm_dsi
*msm_dsi) at dsi.c
2) use struct msm_display_info *disp_info saved at dpu_enc to locate
struct msm_dsi from priv->dsi[] list (see item #3)
3) info.dsc = msm_dsi_get_dsc_config(priv->dsi[info.h_tile_instance[0]]);
4) ballistically, keep original code but move info.dsc =
msm_dsi_get_dsc_config(priv->dsi[i]); to other place sush as
atomic_check() and atomic_enable().
5) leave drm_dsc_config handling as is, update the dsc config from the
DP driver as suitable. If DSC is not supported, set
dsc->dsc_version_major = 0 and dsc->dsc_version_minor = 0 on the DP
side. In DPU driver verify that dsc->dsc_version_major/_minor != 0.
I am confusing with item 5)
Currently, msm_dsi_get_dsc_config() of dsi side return dsc pointer if
dsc enabled and NULL if dsc not enabled.
Should checking dsc == NULL is good enough to differentiate between dsc
is supported and not supported?
Why need to set both dsc->dsc_version_major = 0 and
dsc->dsc_version_minor = 0 for dsc is not supported?