[PATCH 06/10] drm/i915/display: Add DSC pixel replication

kernel test robot lkp at intel.com
Thu Oct 24 22:18:47 UTC 2024


Hi Ankit,

kernel test robot noticed the following build errors:

[auto build test ERROR on drm-intel/for-linux-next]
[also build test ERROR on next-20241024]
[cannot apply to drm-intel/for-linux-next-fixes drm-tip/drm-tip linus/master v6.12-rc4]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/Ankit-Nautiyal/drm-i915-display-Prepare-for-dsc-3-stream-splitter/20241017-162821
base:   git://anongit.freedesktop.org/drm-intel for-linux-next
patch link:    https://lore.kernel.org/r/20241017082348.3413727-7-ankit.k.nautiyal%40intel.com
patch subject: [PATCH 06/10] drm/i915/display: Add DSC pixel replication
config: i386-randconfig-006-20241024 (https://download.01.org/0day-ci/archive/20241025/202410250632.xdHuHbQW-lkp@intel.com/config)
compiler: clang version 19.1.2 (https://github.com/llvm/llvm-project 7ba7d8e2f7b6445b60679da826210cdde29eaf8b)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20241025/202410250632.xdHuHbQW-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp at intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202410250632.xdHuHbQW-lkp@intel.com/

All errors (new ones prefixed by >>):

   In file included from drivers/gpu/drm/i915/display/intel_vdsc.c:13:
   In file included from drivers/gpu/drm/i915/i915_drv.h:40:
   In file included from drivers/gpu/drm/i915/display/intel_display_core.h:16:
   In file included from include/drm/drm_connector.h:32:
   In file included from include/drm/drm_util.h:36:
   In file included from include/linux/kgdb.h:19:
   In file included from include/linux/kprobes.h:28:
   In file included from include/linux/ftrace.h:13:
   In file included from include/linux/kallsyms.h:13:
   In file included from include/linux/mm.h:2213:
   include/linux/vmstat.h:518:36: error: arithmetic between different enumeration types ('enum node_stat_item' and 'enum lru_list') [-Werror,-Wenum-enum-conversion]
     518 |         return node_stat_name(NR_LRU_BASE + lru) + 3; // skip "nr_"
         |                               ~~~~~~~~~~~ ^ ~~~
   drivers/gpu/drm/i915/display/intel_vdsc.c:375:10: error: arithmetic between different enumeration types ('enum pipe' and 'enum intel_display_power_domain') [-Werror,-Wenum-enum-conversion]
     375 |                 return POWER_DOMAIN_PIPE(pipe);
         |                        ^~~~~~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/i915/display/intel_display_power.h:120:41: note: expanded from macro 'POWER_DOMAIN_PIPE'
     120 | #define POWER_DOMAIN_PIPE(pipe) ((pipe) + POWER_DOMAIN_PIPE_A)
         |                                  ~~~~~~ ^ ~~~~~~~~~~~~~~~~~~~
>> drivers/gpu/drm/i915/display/intel_vdsc.c:817:11: error: arithmetic between different enumeration types ('const enum transcoder' and 'enum pipe') [-Werror,-Wenum-enum-conversion]
     816 |                 intel_de_write(dev_priv,
         |                 ~~~~~~~~~~~~~~~~~~~~~~~~
     817 |                                BMG_PIPE_DSS_CTL3(crtc_state->cpu_transcoder), dss_ctl3_val);
         |                                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/i915/display/intel_vdsc_regs.h:57:53: note: expanded from macro 'BMG_PIPE_DSS_CTL3'
      57 | #define BMG_PIPE_DSS_CTL3(pipe)                 _MMIO_PIPE((pipe) - PIPE_B, \
         |                                                                   ^ ~~~~~~
   drivers/gpu/drm/i915/display/intel_display_reg_defs.h:25:45: note: expanded from macro '_MMIO_PIPE'
      25 | #define _MMIO_PIPE(pipe, a, b)          _MMIO(_PIPE(pipe, a, b))
         |                                                     ^~~~
   drivers/gpu/drm/i915/display/intel_display_reg_defs.h:18:39: note: expanded from macro '_PIPE'
      18 | #define _PIPE(pipe, a, b)               _PICK_EVEN(pipe, a, b)
         |                                                    ^~~~
   drivers/gpu/drm/i915/i915_reg_defs.h:213:49: note: expanded from macro '_PICK_EVEN'
     213 | #define _PICK_EVEN(__index, __a, __b) ((__a) + (__index) * ((__b) - (__a)))
         |                                                 ^~~~~~~
   drivers/gpu/drm/i915/i915_reg_defs.h:267:47: note: expanded from macro '_MMIO'
     267 | #define _MMIO(r) ((const i915_reg_t){ .reg = (r) })
         |                                               ^
   drivers/gpu/drm/i915/display/intel_de.h:88:71: note: expanded from macro 'intel_de_write'
      88 | #define intel_de_write(p,...) __intel_de_write(__to_intel_display(p), __VA_ARGS__)
         |                                                                       ^~~~~~~~~~~
   drivers/gpu/drm/i915/display/intel_vdsc.c:833:12: error: arithmetic between different enumeration types ('const enum transcoder' and 'enum pipe') [-Werror,-Wenum-enum-conversion]
     832 |                         intel_de_write(dev_priv,
         |                         ~~~~~~~~~~~~~~~~~~~~~~~~
     833 |                                        BMG_PIPE_DSS_CTL3(old_crtc_state->cpu_transcoder), 0);
         |                                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/i915/display/intel_vdsc_regs.h:57:53: note: expanded from macro 'BMG_PIPE_DSS_CTL3'
      57 | #define BMG_PIPE_DSS_CTL3(pipe)                 _MMIO_PIPE((pipe) - PIPE_B, \
         |                                                                   ^ ~~~~~~
   drivers/gpu/drm/i915/display/intel_display_reg_defs.h:25:45: note: expanded from macro '_MMIO_PIPE'
      25 | #define _MMIO_PIPE(pipe, a, b)          _MMIO(_PIPE(pipe, a, b))
         |                                                     ^~~~
   drivers/gpu/drm/i915/display/intel_display_reg_defs.h:18:39: note: expanded from macro '_PIPE'
      18 | #define _PIPE(pipe, a, b)               _PICK_EVEN(pipe, a, b)
         |                                                    ^~~~
   drivers/gpu/drm/i915/i915_reg_defs.h:213:49: note: expanded from macro '_PICK_EVEN'
     213 | #define _PICK_EVEN(__index, __a, __b) ((__a) + (__index) * ((__b) - (__a)))
         |                                                 ^~~~~~~
   drivers/gpu/drm/i915/i915_reg_defs.h:267:47: note: expanded from macro '_MMIO'
     267 | #define _MMIO(r) ((const i915_reg_t){ .reg = (r) })
         |                                               ^
   drivers/gpu/drm/i915/display/intel_de.h:88:71: note: expanded from macro 'intel_de_write'
      88 | #define intel_de_write(p,...) __intel_de_write(__to_intel_display(p), __VA_ARGS__)
         |                                                                       ^~~~~~~~~~~
>> drivers/gpu/drm/i915/display/intel_vdsc.c:1006:38: error: arithmetic between different enumeration types ('enum transcoder' and 'enum pipe') [-Werror,-Wenum-enum-conversion]
    1006 |                 dss_ctl3 = intel_de_read(dev_priv, BMG_PIPE_DSS_CTL3(crtc_state->cpu_transcoder));
         |                            ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/i915/display/intel_vdsc_regs.h:57:53: note: expanded from macro 'BMG_PIPE_DSS_CTL3'
      57 | #define BMG_PIPE_DSS_CTL3(pipe)                 _MMIO_PIPE((pipe) - PIPE_B, \
         |                                                                   ^ ~~~~~~
   drivers/gpu/drm/i915/display/intel_display_reg_defs.h:25:45: note: expanded from macro '_MMIO_PIPE'
      25 | #define _MMIO_PIPE(pipe, a, b)          _MMIO(_PIPE(pipe, a, b))
         |                                                     ^~~~
   drivers/gpu/drm/i915/display/intel_display_reg_defs.h:18:39: note: expanded from macro '_PIPE'
      18 | #define _PIPE(pipe, a, b)               _PICK_EVEN(pipe, a, b)
         |                                                    ^~~~
   drivers/gpu/drm/i915/i915_reg_defs.h:213:49: note: expanded from macro '_PICK_EVEN'
     213 | #define _PICK_EVEN(__index, __a, __b) ((__a) + (__index) * ((__b) - (__a)))
         |                                                 ^~~~~~~
   drivers/gpu/drm/i915/i915_reg_defs.h:267:47: note: expanded from macro '_MMIO'
     267 | #define _MMIO(r) ((const i915_reg_t){ .reg = (r) })
         |                                               ^
   drivers/gpu/drm/i915/display/intel_de.h:32:69: note: expanded from macro 'intel_de_read'
      32 | #define intel_de_read(p,...) __intel_de_read(__to_intel_display(p), __VA_ARGS__)
         |                                                                     ^~~~~~~~~~~
   5 errors generated.


vim +817 drivers/gpu/drm/i915/display/intel_vdsc.c

   770	
   771	void intel_dsc_enable(const struct intel_crtc_state *crtc_state)
   772	{
   773		struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
   774		struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
   775		u32 dss_ctl1_val = 0;
   776		u32 dss_ctl2_val = 0;
   777		u32 dss_ctl3_val = 0;
   778		int vdsc_instances_per_pipe = intel_dsc_get_vdsc_per_pipe(crtc_state);
   779	
   780		if (!crtc_state->dsc.compression_enable)
   781			return;
   782	
   783		intel_dsc_pps_configure(crtc_state);
   784	
   785		dss_ctl2_val |= VDSC0_ENABLE;
   786		if (vdsc_instances_per_pipe > 1) {
   787			dss_ctl2_val |= VDSC1_ENABLE;
   788			dss_ctl1_val |= JOINER_ENABLE;
   789		}
   790	
   791		if (vdsc_instances_per_pipe > 2) {
   792			dss_ctl2_val |= VDSC2_ENABLE;
   793			dss_ctl2_val |= SMALL_JOINER_CONFIG_3_ENGINES;
   794		}
   795	
   796		if (crtc_state->joiner_pipes) {
   797			if (intel_crtc_ultrajoiner_enable_needed(crtc_state))
   798				dss_ctl1_val |= ULTRA_JOINER_ENABLE;
   799	
   800			if (intel_crtc_is_ultrajoiner_primary(crtc_state))
   801				dss_ctl1_val |= PRIMARY_ULTRA_JOINER_ENABLE;
   802	
   803			dss_ctl1_val |= BIG_JOINER_ENABLE;
   804	
   805			if (intel_crtc_is_bigjoiner_primary(crtc_state))
   806				dss_ctl1_val |= PRIMARY_BIG_JOINER_ENABLE;
   807		}
   808	
   809		if (crtc_state->dsc.pixel_replication_count)
   810			dss_ctl3_val = DSC_PIXEL_REPLICATION(crtc_state->dsc.pixel_replication_count);
   811	
   812		intel_de_write(dev_priv, dss_ctl1_reg(crtc, crtc_state->cpu_transcoder), dss_ctl1_val);
   813		intel_de_write(dev_priv, dss_ctl2_reg(crtc, crtc_state->cpu_transcoder), dss_ctl2_val);
   814	
   815		if (IS_BATTLEMAGE(dev_priv) && dss_ctl3_val)
   816			intel_de_write(dev_priv,
 > 817				       BMG_PIPE_DSS_CTL3(crtc_state->cpu_transcoder), dss_ctl3_val);
   818	}
   819	
   820	void intel_dsc_disable(const struct intel_crtc_state *old_crtc_state)
   821	{
   822		struct intel_crtc *crtc = to_intel_crtc(old_crtc_state->uapi.crtc);
   823		struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
   824	
   825		/* Disable only if either of them is enabled */
   826		if (old_crtc_state->dsc.compression_enable ||
   827		    old_crtc_state->joiner_pipes) {
   828			intel_de_write(dev_priv, dss_ctl1_reg(crtc, old_crtc_state->cpu_transcoder), 0);
   829			intel_de_write(dev_priv, dss_ctl2_reg(crtc, old_crtc_state->cpu_transcoder), 0);
   830	
   831			if (IS_BATTLEMAGE(dev_priv))
   832				intel_de_write(dev_priv,
   833					       BMG_PIPE_DSS_CTL3(old_crtc_state->cpu_transcoder), 0);
   834		}
   835	}
   836	
   837	static u32 intel_dsc_pps_read(struct intel_crtc_state *crtc_state, int pps,
   838				      bool *all_equal)
   839	{
   840		struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
   841		struct drm_i915_private *i915 = to_i915(crtc->base.dev);
   842		i915_reg_t dsc_reg[3];
   843		int i, vdsc_per_pipe, dsc_reg_num;
   844		u32 val;
   845	
   846		vdsc_per_pipe = intel_dsc_get_vdsc_per_pipe(crtc_state);
   847		dsc_reg_num = min_t(int, ARRAY_SIZE(dsc_reg), vdsc_per_pipe);
   848	
   849		drm_WARN_ON_ONCE(&i915->drm, dsc_reg_num < vdsc_per_pipe);
   850	
   851		intel_dsc_get_pps_reg(crtc_state, pps, dsc_reg, dsc_reg_num);
   852	
   853		*all_equal = true;
   854	
   855		val = intel_de_read(i915, dsc_reg[0]);
   856	
   857		for (i = 1; i < dsc_reg_num; i++) {
   858			if (intel_de_read(i915, dsc_reg[i]) != val) {
   859				*all_equal = false;
   860				break;
   861			}
   862		}
   863	
   864		return val;
   865	}
   866	
   867	static u32 intel_dsc_pps_read_and_verify(struct intel_crtc_state *crtc_state, int pps)
   868	{
   869		struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
   870		struct drm_i915_private *i915 = to_i915(crtc->base.dev);
   871		u32 val;
   872		bool all_equal;
   873	
   874		val = intel_dsc_pps_read(crtc_state, pps, &all_equal);
   875		drm_WARN_ON(&i915->drm, !all_equal);
   876	
   877		return val;
   878	}
   879	
   880	static void intel_dsc_get_pps_config(struct intel_crtc_state *crtc_state)
   881	{
   882		struct drm_dsc_config *vdsc_cfg = &crtc_state->dsc.config;
   883		struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
   884		struct drm_i915_private *i915 = to_i915(crtc->base.dev);
   885		int num_vdsc_instances = intel_dsc_get_num_vdsc_instances(crtc_state);
   886		u32 pps_temp;
   887	
   888		/* PPS 0 */
   889		pps_temp = intel_dsc_pps_read_and_verify(crtc_state, 0);
   890	
   891		vdsc_cfg->bits_per_component = REG_FIELD_GET(DSC_PPS0_BPC_MASK, pps_temp);
   892		vdsc_cfg->line_buf_depth = REG_FIELD_GET(DSC_PPS0_LINE_BUF_DEPTH_MASK, pps_temp);
   893		vdsc_cfg->block_pred_enable = pps_temp & DSC_PPS0_BLOCK_PREDICTION;
   894		vdsc_cfg->convert_rgb = pps_temp & DSC_PPS0_COLOR_SPACE_CONVERSION;
   895		vdsc_cfg->simple_422 = pps_temp & DSC_PPS0_422_ENABLE;
   896		vdsc_cfg->native_422 = pps_temp & DSC_PPS0_NATIVE_422_ENABLE;
   897		vdsc_cfg->native_420 = pps_temp & DSC_PPS0_NATIVE_420_ENABLE;
   898		vdsc_cfg->vbr_enable = pps_temp & DSC_PPS0_VBR_ENABLE;
   899	
   900		/* PPS 1 */
   901		pps_temp = intel_dsc_pps_read_and_verify(crtc_state, 1);
   902	
   903		vdsc_cfg->bits_per_pixel = REG_FIELD_GET(DSC_PPS1_BPP_MASK, pps_temp);
   904	
   905		if (vdsc_cfg->native_420)
   906			vdsc_cfg->bits_per_pixel >>= 1;
   907	
   908		crtc_state->dsc.compressed_bpp_x16 = vdsc_cfg->bits_per_pixel;
   909	
   910		/* PPS 2 */
   911		pps_temp = intel_dsc_pps_read_and_verify(crtc_state, 2);
   912	
   913		vdsc_cfg->pic_width = REG_FIELD_GET(DSC_PPS2_PIC_WIDTH_MASK, pps_temp) * num_vdsc_instances;
   914		vdsc_cfg->pic_height = REG_FIELD_GET(DSC_PPS2_PIC_HEIGHT_MASK, pps_temp);
   915	
   916		/* PPS 3 */
   917		pps_temp = intel_dsc_pps_read_and_verify(crtc_state, 3);
   918	
   919		vdsc_cfg->slice_width = REG_FIELD_GET(DSC_PPS3_SLICE_WIDTH_MASK, pps_temp);
   920		vdsc_cfg->slice_height = REG_FIELD_GET(DSC_PPS3_SLICE_HEIGHT_MASK, pps_temp);
   921	
   922		/* PPS 4 */
   923		pps_temp = intel_dsc_pps_read_and_verify(crtc_state, 4);
   924	
   925		vdsc_cfg->initial_dec_delay = REG_FIELD_GET(DSC_PPS4_INITIAL_DEC_DELAY_MASK, pps_temp);
   926		vdsc_cfg->initial_xmit_delay = REG_FIELD_GET(DSC_PPS4_INITIAL_XMIT_DELAY_MASK, pps_temp);
   927	
   928		/* PPS 5 */
   929		pps_temp = intel_dsc_pps_read_and_verify(crtc_state, 5);
   930	
   931		vdsc_cfg->scale_decrement_interval = REG_FIELD_GET(DSC_PPS5_SCALE_DEC_INT_MASK, pps_temp);
   932		vdsc_cfg->scale_increment_interval = REG_FIELD_GET(DSC_PPS5_SCALE_INC_INT_MASK, pps_temp);
   933	
   934		/* PPS 6 */
   935		pps_temp = intel_dsc_pps_read_and_verify(crtc_state, 6);
   936	
   937		vdsc_cfg->initial_scale_value = REG_FIELD_GET(DSC_PPS6_INITIAL_SCALE_VALUE_MASK, pps_temp);
   938		vdsc_cfg->first_line_bpg_offset = REG_FIELD_GET(DSC_PPS6_FIRST_LINE_BPG_OFFSET_MASK, pps_temp);
   939		vdsc_cfg->flatness_min_qp = REG_FIELD_GET(DSC_PPS6_FLATNESS_MIN_QP_MASK, pps_temp);
   940		vdsc_cfg->flatness_max_qp = REG_FIELD_GET(DSC_PPS6_FLATNESS_MAX_QP_MASK, pps_temp);
   941	
   942		/* PPS 7 */
   943		pps_temp = intel_dsc_pps_read_and_verify(crtc_state, 7);
   944	
   945		vdsc_cfg->nfl_bpg_offset = REG_FIELD_GET(DSC_PPS7_NFL_BPG_OFFSET_MASK, pps_temp);
   946		vdsc_cfg->slice_bpg_offset = REG_FIELD_GET(DSC_PPS7_SLICE_BPG_OFFSET_MASK, pps_temp);
   947	
   948		/* PPS 8 */
   949		pps_temp = intel_dsc_pps_read_and_verify(crtc_state, 8);
   950	
   951		vdsc_cfg->initial_offset = REG_FIELD_GET(DSC_PPS8_INITIAL_OFFSET_MASK, pps_temp);
   952		vdsc_cfg->final_offset = REG_FIELD_GET(DSC_PPS8_FINAL_OFFSET_MASK, pps_temp);
   953	
   954		/* PPS 9 */
   955		pps_temp = intel_dsc_pps_read_and_verify(crtc_state, 9);
   956	
   957		vdsc_cfg->rc_model_size = REG_FIELD_GET(DSC_PPS9_RC_MODEL_SIZE_MASK, pps_temp);
   958	
   959		/* PPS 10 */
   960		pps_temp = intel_dsc_pps_read_and_verify(crtc_state, 10);
   961	
   962		vdsc_cfg->rc_quant_incr_limit0 = REG_FIELD_GET(DSC_PPS10_RC_QUANT_INC_LIMIT0_MASK, pps_temp);
   963		vdsc_cfg->rc_quant_incr_limit1 = REG_FIELD_GET(DSC_PPS10_RC_QUANT_INC_LIMIT1_MASK, pps_temp);
   964	
   965		/* PPS 16 */
   966		pps_temp = intel_dsc_pps_read_and_verify(crtc_state, 16);
   967	
   968		vdsc_cfg->slice_chunk_size = REG_FIELD_GET(DSC_PPS16_SLICE_CHUNK_SIZE_MASK, pps_temp);
   969	
   970		if (DISPLAY_VER(i915) >= 14) {
   971			/* PPS 17 */
   972			pps_temp = intel_dsc_pps_read_and_verify(crtc_state, 17);
   973	
   974			vdsc_cfg->second_line_bpg_offset = REG_FIELD_GET(DSC_PPS17_SL_BPG_OFFSET_MASK, pps_temp);
   975	
   976			/* PPS 18 */
   977			pps_temp = intel_dsc_pps_read_and_verify(crtc_state, 18);
   978	
   979			vdsc_cfg->nsl_bpg_offset = REG_FIELD_GET(DSC_PPS18_NSL_BPG_OFFSET_MASK, pps_temp);
   980			vdsc_cfg->second_line_offset_adj = REG_FIELD_GET(DSC_PPS18_SL_OFFSET_ADJ_MASK, pps_temp);
   981		}
   982	}
   983	
   984	void intel_dsc_get_config(struct intel_crtc_state *crtc_state)
   985	{
   986		struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
   987		struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
   988		enum transcoder cpu_transcoder = crtc_state->cpu_transcoder;
   989		enum intel_display_power_domain power_domain;
   990		intel_wakeref_t wakeref;
   991		u32 dss_ctl1, dss_ctl2, dss_ctl3 = 0;
   992	
   993		if (!intel_dsc_source_support(crtc_state))
   994			return;
   995	
   996		power_domain = intel_dsc_power_domain(crtc, cpu_transcoder);
   997	
   998		wakeref = intel_display_power_get_if_enabled(dev_priv, power_domain);
   999		if (!wakeref)
  1000			return;
  1001	
  1002		dss_ctl1 = intel_de_read(dev_priv, dss_ctl1_reg(crtc, cpu_transcoder));
  1003		dss_ctl2 = intel_de_read(dev_priv, dss_ctl2_reg(crtc, cpu_transcoder));
  1004	
  1005		if (IS_BATTLEMAGE(dev_priv))
> 1006			dss_ctl3 = intel_de_read(dev_priv, BMG_PIPE_DSS_CTL3(crtc_state->cpu_transcoder));
  1007	
  1008		crtc_state->dsc.compression_enable = dss_ctl2 & VDSC0_ENABLE;
  1009		if (!crtc_state->dsc.compression_enable)
  1010			goto out;
  1011	
  1012		if (dss_ctl1 & JOINER_ENABLE) {
  1013			if (dss_ctl2 & (VDSC2_ENABLE | SMALL_JOINER_CONFIG_3_ENGINES))
  1014				crtc_state->dsc.dsc_split = INTEL_DSC_SPLIT_3_STREAMS;
  1015	
  1016			else if (dss_ctl2 & VDSC1_ENABLE)
  1017				crtc_state->dsc.dsc_split = INTEL_DSC_SPLIT_2_STREAMS;
  1018		} else {
  1019			crtc_state->dsc.dsc_split = INTEL_DSC_SPLIT_DISABLED;
  1020		}
  1021	
  1022		if (dss_ctl3 & DSC_PIXEL_REPLICATION_MASK)
  1023			crtc_state->dsc.pixel_replication_count =
  1024				dss_ctl3 & DSC_PIXEL_REPLICATION_MASK;
  1025	
  1026		intel_dsc_get_pps_config(crtc_state);
  1027	out:
  1028		intel_display_power_put(dev_priv, power_domain, wakeref);
  1029	}
  1030	

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki


More information about the Intel-xe mailing list