[PATCH v2 2/4] drm/msm/dsi: fetch DSC pps payload from struct mipi_dsi_device
Abhinav Kumar
quic_abhinavk at quicinc.com
Mon Jul 11 17:42:32 UTC 2022
On 7/11/2022 2:43 AM, Dmitry Baryshkov wrote:
> Now that struct mipi_dsi_device provides DSC data, fetch it from the
> mentioned struct rather than from the struct drm_panel itself. This
> would allow supporting MIPI DSI bridges handling DSC on their input
> side.
>
> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov at linaro.org>
Would prefer to have Vinod's Tested-by on this series once we get all
the R-bs but other than this change is,
Reviewed-by: Abhinav Kumar <quic_abhinavk at quicinc.com>
> ---
> drivers/gpu/drm/msm/dsi/dsi_host.c | 25 +++++++++++--------------
> 1 file changed, 11 insertions(+), 14 deletions(-)
>
> diff --git a/drivers/gpu/drm/msm/dsi/dsi_host.c b/drivers/gpu/drm/msm/dsi/dsi_host.c
> index a34078497af1..fb5ab6c718c8 100644
> --- a/drivers/gpu/drm/msm/dsi/dsi_host.c
> +++ b/drivers/gpu/drm/msm/dsi/dsi_host.c
> @@ -1686,6 +1686,17 @@ static int dsi_host_attach(struct mipi_dsi_host *host,
> msm_host->lanes = dsi->lanes;
> msm_host->format = dsi->format;
> msm_host->mode_flags = dsi->mode_flags;
> + if (dsi->dsc) {
> + struct msm_display_dsc_config *dsc = msm_host->dsc;
> +
> + if (!dsc) {
> + dsc = devm_kzalloc(&msm_host->pdev->dev, sizeof(*dsc), GFP_KERNEL);
> + if (!dsc)
> + return -ENOMEM;
> + dsc->drm = dsi->dsc;
> + msm_host->dsc = dsc;
> + }
> + }
>
> /* Some gpios defined in panel DT need to be controlled by host */
> ret = dsi_host_init_panel_gpios(msm_host, &dsi->dev);
> @@ -2159,23 +2170,9 @@ int msm_dsi_host_modeset_init(struct mipi_dsi_host *host,
> {
> struct msm_dsi_host *msm_host = to_msm_dsi_host(host);
> const struct msm_dsi_cfg_handler *cfg_hnd = msm_host->cfg_hnd;
> - struct drm_panel *panel;
> int ret;
>
> msm_host->dev = dev;
> - panel = msm_dsi_host_get_panel(&msm_host->base);
> -
> - if (!IS_ERR(panel) && panel->dsc) {
> - struct msm_display_dsc_config *dsc = msm_host->dsc;
> -
> - if (!dsc) {
> - dsc = devm_kzalloc(&msm_host->pdev->dev, sizeof(*dsc), GFP_KERNEL);
> - if (!dsc)
> - return -ENOMEM;
> - dsc->drm = panel->dsc;
> - msm_host->dsc = dsc;
> - }
> - }
>
> ret = cfg_hnd->ops->tx_buf_alloc(msm_host, SZ_4K);
> if (ret) {
More information about the dri-devel
mailing list