[Intel-gfx] [PATCH v4] drm/i915/display/icl: HW state readout for transcoder port sync config
kbuild test robot
lkp at intel.com
Tue Sep 24 22:59:59 UTC 2019
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 at intel.com>
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
-------------- next part --------------
A non-text attachment was scrubbed...
Name: .config.gz
Type: application/gzip
Size: 28067 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/intel-gfx/attachments/20190925/8da996c0/attachment-0001.gz>
More information about the Intel-gfx
mailing list