[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