Skip to content

Commit 7af2be6

Browse files
anushasrrodrigovivi
authored andcommitted
drm/i915/icl: Add VIDEO_DIP registers
The Picture Parameter Set metadata for DSC has to be sent to the panel through secondary data packets. Add the error correction registers, data registers and control registers for the same. The control registers for transcoders A and B are already defined and will be reused for Icelake purpose. This patch adds Control register for EDP and transcoder C apart from adding the PPS data and error registers. v2: reuse MMIO_TRANS2 for _PPS_DATA and _PPS_ECC. The _MMIO_TRANS2(pipe, reg) macro definition takes care of the eDp case Cc: Jani Nikula <jani.nikula@intel.com> Cc: Ville Syrjala <ville.syrjala@linux.intel.com> Cc: Manasi Navare <manasi.d.navare@intel.com> Signed-off-by: Anusha Srivatsa <anusha.srivatsa@intel.com> Reviewed-by: Manasi Navare <manasi.d.navare@intel.com> Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/1531861861-10950-1-git-send-email-anusha.srivatsa@intel.com
1 parent 5fd9df6 commit 7af2be6

File tree

1 file changed

+23
-0
lines changed

1 file changed

+23
-0
lines changed

drivers/gpu/drm/i915/i915_reg.h

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4605,6 +4605,16 @@ enum {
46054605
#define VIDEO_DIP_ENABLE_GMP_HSW (1 << 4)
46064606
#define VIDEO_DIP_ENABLE_SPD_HSW (1 << 0)
46074607

4608+
#define DRM_DIP_ENABLE (1 << 28)
4609+
#define PSR_VSC_BIT_7_SET (1 << 27)
4610+
#define VSC_SELECT_MASK (0x3 << 26)
4611+
#define VSC_SELECT_SHIFT 26
4612+
#define VSC_DIP_HW_HEA_DATA (0 << 26)
4613+
#define VSC_DIP_HW_HEA_SW_DATA (1 << 26)
4614+
#define VSC_DIP_HW_DATA_SW_HEA (2 << 26)
4615+
#define VSC_DIP_SW_HEA_DATA (3 << 26)
4616+
#define VDIP_ENABLE_PPS (1 << 24)
4617+
46084618
/* Panel power sequencing */
46094619
#define PPS_BASE 0x61200
46104620
#define VLV_PPS_BASE (VLV_DISPLAY_BASE + PPS_BASE)
@@ -7843,12 +7853,25 @@ enum {
78437853
#define _HSW_VIDEO_DIP_VSC_ECC_B 0x61344
78447854
#define _HSW_VIDEO_DIP_GCP_B 0x61210
78457855

7856+
/* Icelake PPS_DATA and _ECC DIP Registers.
7857+
* These are available for transcoders B,C and eDP.
7858+
* Adding the _A so as to reuse the _MMIO_TRANS2
7859+
* definition, with which it offsets to the right location.
7860+
*/
7861+
7862+
#define _ICL_VIDEO_DIP_PPS_DATA_A 0x60350
7863+
#define _ICL_VIDEO_DIP_PPS_DATA_B 0x61350
7864+
#define _ICL_VIDEO_DIP_PPS_ECC_A 0x603D4
7865+
#define _ICL_VIDEO_DIP_PPS_ECC_B 0x613D4
7866+
78467867
#define HSW_TVIDEO_DIP_CTL(trans) _MMIO_TRANS2(trans, _HSW_VIDEO_DIP_CTL_A)
78477868
#define HSW_TVIDEO_DIP_AVI_DATA(trans, i) _MMIO_TRANS2(trans, _HSW_VIDEO_DIP_AVI_DATA_A + (i) * 4)
78487869
#define HSW_TVIDEO_DIP_VS_DATA(trans, i) _MMIO_TRANS2(trans, _HSW_VIDEO_DIP_VS_DATA_A + (i) * 4)
78497870
#define HSW_TVIDEO_DIP_SPD_DATA(trans, i) _MMIO_TRANS2(trans, _HSW_VIDEO_DIP_SPD_DATA_A + (i) * 4)
78507871
#define HSW_TVIDEO_DIP_GCP(trans) _MMIO_TRANS2(trans, _HSW_VIDEO_DIP_GCP_A)
78517872
#define HSW_TVIDEO_DIP_VSC_DATA(trans, i) _MMIO_TRANS2(trans, _HSW_VIDEO_DIP_VSC_DATA_A + (i) * 4)
7873+
#define ICL_VIDEO_DIP_PPS_DATA(trans, i) _MMIO_TRANS2(trans, _ICL_VIDEO_DIP_PPS_DATA_A + (i) * 4)
7874+
#define ICL_VIDEO_DIP_PPS_ECC(trans, i) _MMIO_TRANS2(trans, _ICL_VIDEO_DIP_PPS_ECC_A + (i) * 4)
78527875

78537876
#define _HSW_STEREO_3D_CTL_A 0x70020
78547877
#define S3D_ENABLE (1 << 31)

0 commit comments

Comments
 (0)