Hi Manasi, Thank you for the patch! Yet something to improve: [auto build test ERROR on drm-intel/for-linux-next] [cannot apply to v5.3 next-20190920] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system. BTW, we also suggest to use '--base' option to specify the base tree in git format-patch, please see https://stackoverflow.com/a/37406982] url: https://github.com/0day-ci/linux/commits/Manasi-Navare/drm-i915-display-icl-HW-state-readout-for-transcoder-port-sync-config/20190925-051250 base: git://anongit.freedesktop.org/drm-intel for-linux-next config: i386-defconfig (attached as .config) compiler: gcc-7 (Debian 7.4.0-13) 7.4.0 reproduce: # save the attached .config to linux build tree make ARCH=i386 If you fix the issue, kindly add following tag Reported-by: kbuild test robot <lkp@xxxxxxxxx> All error/warnings (new ones prefixed by >>): drivers/gpu/drm/i915/display/intel_display.c: In function 'transcoder_master': >> drivers/gpu/drm/i915/display/intel_display.c:10400:10: error: 'INVALID_TRANSCODER' undeclared (first use in this function); did you mean 'I915_MAX_TRANSCODERS'? return INVALID_TRANSCODER; ^~~~~~~~~~~~~~~~~~ I915_MAX_TRANSCODERS drivers/gpu/drm/i915/display/intel_display.c:10400:10: note: each undeclared identifier is reported only once for each function it appears in drivers/gpu/drm/i915/display/intel_display.c: In function 'icelake_get_trans_port_sync_config': >> drivers/gpu/drm/i915/display/intel_display.c:10427:15: error: 'struct intel_crtc_state' has no member named 'master_transcoder'; did you mean 'cpu_transcoder'? pipe_config->master_transcoder = transcoder_master(dev_priv, ^~~~~~~~~~~~~~~~~ cpu_transcoder drivers/gpu/drm/i915/display/intel_display.c:10429:19: error: 'struct intel_crtc_state' has no member named 'master_transcoder'; did you mean 'cpu_transcoder'? if (pipe_config->master_transcoder != INVALID_TRANSCODER) { ^~~~~~~~~~~~~~~~~ cpu_transcoder drivers/gpu/drm/i915/display/intel_display.c:10429:40: error: 'INVALID_TRANSCODER' undeclared (first use in this function); did you mean 'I915_MAX_TRANSCODERS'? if (pipe_config->master_transcoder != INVALID_TRANSCODER) { ^~~~~~~~~~~~~~~~~~ I915_MAX_TRANSCODERS >> drivers/gpu/drm/i915/display/intel_display.c:10430:14: error: 'struct intel_crtc_state' has no member named 'sync_mode_slaves_mask' pipe_config->sync_mode_slaves_mask = 0; ^~ drivers/gpu/drm/i915/display/intel_display.c:10451:15: error: 'struct intel_crtc_state' has no member named 'sync_mode_slaves_mask' pipe_config->sync_mode_slaves_mask |= BIT(cpu_transcoder); ^~ drivers/gpu/drm/i915/display/intel_display.c: In function 'transcoder_master': >> drivers/gpu/drm/i915/display/intel_display.c:10417:1: warning: control reaches end of non-void function [-Wreturn-type] } ^ vim +10400 drivers/gpu/drm/i915/display/intel_display.c 10391 10392 static enum transcoder transcoder_master(struct drm_i915_private *dev_priv, 10393 enum transcoder cpu_transcoder) 10394 { 10395 u32 trans_port_sync, master_select; 10396 10397 trans_port_sync = I915_READ(TRANS_DDI_FUNC_CTL2(cpu_transcoder)); 10398 10399 if ((trans_port_sync & PORT_SYNC_MODE_ENABLE) == 0) 10400 return INVALID_TRANSCODER; 10401 10402 master_select = trans_port_sync & 10403 PORT_SYNC_MODE_MASTER_SELECT_MASK; 10404 switch (master_select) { 10405 case 1: 10406 return TRANSCODER_A; 10407 case 2: 10408 return TRANSCODER_B; 10409 case 3: 10410 return TRANSCODER_C; 10411 case 4: 10412 return TRANSCODER_D; 10413 default: 10414 MISSING_CASE(master_select); 10415 return INVALID_TRANSCODER; 10416 } 10417 } 10418 10419 static void icelake_get_trans_port_sync_config(struct intel_crtc *crtc, 10420 struct intel_crtc_state *pipe_config) 10421 { 10422 struct drm_device *dev = crtc->base.dev; 10423 struct drm_i915_private *dev_priv = to_i915(dev); 10424 u32 transcoders; 10425 enum transcoder cpu_transcoder; 10426 10427 pipe_config->master_transcoder = transcoder_master(dev_priv, 10428 pipe_config->cpu_transcoder); 10429 if (pipe_config->master_transcoder != INVALID_TRANSCODER) { 10430 pipe_config->sync_mode_slaves_mask = 0; 10431 return; 10432 } 10433 10434 transcoders = BIT(TRANSCODER_A) | 10435 BIT(TRANSCODER_B) | 10436 BIT(TRANSCODER_C) | 10437 BIT(TRANSCODER_D); 10438 for_each_cpu_transcoder_masked(dev_priv, cpu_transcoder, transcoders) { 10439 enum intel_display_power_domain power_domain; 10440 intel_wakeref_t trans_wakeref; 10441 10442 power_domain = POWER_DOMAIN_TRANSCODER(cpu_transcoder); 10443 trans_wakeref = intel_display_power_get_if_enabled(dev_priv, 10444 power_domain); 10445 10446 if (!trans_wakeref) 10447 continue; 10448 10449 if (transcoder_master(dev_priv, cpu_transcoder) == 10450 pipe_config->cpu_transcoder) 10451 pipe_config->sync_mode_slaves_mask |= BIT(cpu_transcoder); 10452 10453 intel_display_power_put(dev_priv, power_domain, trans_wakeref); 10454 } 10455 } 10456 --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation
Attachment:
.config.gz
Description: application/gzip
_______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx