summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVinod Koul <vkoul@kernel.org>2020-02-11 15:13:44 +0530
committerVinod Koul <vkoul@kernel.org>2021-05-20 14:19:18 +0530
commit52fc51013bdd4461c91f1fb95fddff8ea138b969 (patch)
tree48cadb2f6f18e2b0f71d03760f77b9a34e0fb62b
parenta34d5cc19a258499ec4c5967595082c5d238517f (diff)
drm/msm: Add dsc config to msm_drm_private
To support DSC, add msm_display_dsc_config which uses drm_dsc_config to store the DSC parameters. Drivers should set this pointer when DSC is enabled Signed-off-by: Vinod Koul <vkoul@kernel.org>
-rw-r--r--drivers/gpu/drm/msm/msm_drv.h22
1 files changed, 22 insertions, 0 deletions
diff --git a/drivers/gpu/drm/msm/msm_drv.h b/drivers/gpu/drm/msm/msm_drv.h
index 80ef545efbe5..26661dd43936 100644
--- a/drivers/gpu/drm/msm/msm_drv.h
+++ b/drivers/gpu/drm/msm/msm_drv.h
@@ -30,6 +30,7 @@
#include <drm/drm_plane_helper.h>
#include <drm/drm_probe_helper.h>
#include <drm/drm_fb_helper.h>
+#include <drm/drm_dsc.h>
#include <drm/msm_drm.h>
#include <drm/drm_gem.h>
@@ -144,6 +145,24 @@ struct msm_drm_thread {
struct kthread_worker *worker;
};
+/* DSC config */
+struct msm_display_dsc_config {
+ struct drm_dsc_config drm;
+ u8 scr_rev;
+
+ u32 initial_lines;
+ u32 pkt_per_line;
+ u32 bytes_in_slice;
+ u32 bytes_per_pkt;
+ u32 eol_byte_num;
+ u32 pclk_per_line;
+ u32 slice_last_group_size;
+ u32 slice_per_pkt;
+ u32 det_thresh_flatness;
+ u32 extra_width;
+ u32 pps_delay_ms;
+};
+
struct msm_drm_private {
struct drm_device *dev;
@@ -237,6 +256,9 @@ struct msm_drm_private {
/* Properties */
struct drm_property *plane_property[PLANE_PROP_MAX_NUM];
+ /* DSC configuration */
+ struct msm_display_dsc_config *dsc;
+
/* VRAM carveout, used when no IOMMU: */
struct {
unsigned long size;