[RFC PATCH 13/13] drm/msm/dsi: Pass DSC params to drm_panel

Vinod Koul
2021-05-21T12:54:00Z

When DSC is enabled, we need to pass the DSC parameters to panel driver
as well, so add a dsc parameter in panel and set it when DSC is enabled

Signed-off-by: Vinod Koul <vkoul@kernel.org>
---
drivers/gpu/drm/msm/dsi/dsi_host.c | 5 +++++
include/drm/drm_panel.h | 7 +++++++
2 files changed, 12 insertions(+)

diff --git a/drivers/gpu/drm/msm/dsi/dsi_host.c b/drivers/gpu/drm/msm/dsi/dsi_host.c
index e26545fc82e0..7fc7002eda78 100644
--- a/drivers/gpu/drm/msm/dsi/dsi_host.c
+++ b/drivers/gpu/drm/msm/dsi/dsi_host.c
@@ -1700,6 +1700,7 @@ static int dsi_host_attach(struct mipi_dsi_host *host,
struct mipi_dsi_device *dsi)
{
struct msm_dsi_host *msm_host = to_msm_dsi_host(host);
+ struct drm_panel *panel;
int ret;

if (dsi->lanes > msm_host->num_data_lanes)
@@ -1719,6 +1720,10 @@ static int dsi_host_attach(struct mipi_dsi_host *host,
if (msm_host->dev)
queue_work(msm_host->workqueue, &msm_host->hpd_work);

+ panel = msm_dsi_host_get_panel(host);
+ if (panel)
+ panel->dsc = &msm_host->dsc->drm;
+
return 0;
}

diff --git a/include/drm/drm_panel.h b/include/drm/drm_panel.h
index 33605c3f0eba..27a7808a29f2 100644
--- a/include/drm/drm_panel.h
+++ b/include/drm/drm_panel.h
@@ -171,6 +171,13 @@ struct drm_panel {
* Panel entry in registry.
*/
struct list_head list;
+
+ /**
+ * @dsc:
+ *
+ * Panel DSC pps payload to be sent
+ */
+ struct drm_dsc_config *dsc;
};

void drm_panel_init(struct drm_panel *panel, struct device *dev,
--
2.26.3