All of lore.kernel.org
 help / color / mirror / Atom feed
* [linux-review:UPDATE-20200404-070344/Stanislav-Lisovskiy/SAGV-support-for-Gen12/20200327-065947 6/10] drivers/gpu/drm/i915/intel_pm.c:3869:18: error: implicit declaration of function 'intel_atomic_get_bw_old_state'; did you mean 'intel_atomic_get_bw_state'?
@ 2020-04-04  3:53 kbuild test robot
  0 siblings, 0 replies; only message in thread
From: kbuild test robot @ 2020-04-04  3:53 UTC (permalink / raw)
  To: kbuild-all

[-- Attachment #1: Type: text/plain, Size: 5040 bytes --]

tree:   https://github.com/0day-ci/linux/commits/UPDATE-20200404-070344/Stanislav-Lisovskiy/SAGV-support-for-Gen12/20200327-065947
head:   94b219a68e1cd7ab7a007d3dbd1d74cce2ce94f9
commit: b434b007ec22d5704e7b655d3d517269680431a0 [6/10] drm/i915: Add proper SAGV support for TGL+
config: i386-allyesconfig (attached as .config)
compiler: gcc-7 (Ubuntu 7.5.0-6ubuntu2) 7.5.0
reproduce:
        git checkout b434b007ec22d5704e7b655d3d517269680431a0
        # save the attached .config to linux build tree
        make ARCH=i386 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kbuild test robot <lkp@intel.com>

All error/warnings (new ones prefixed by >>):

   drivers/gpu/drm/i915/intel_pm.c: In function 'intel_compute_sagv_mask':
>> drivers/gpu/drm/i915/intel_pm.c:3869:18: error: implicit declaration of function 'intel_atomic_get_bw_old_state'; did you mean 'intel_atomic_get_bw_state'? [-Werror=implicit-function-declaration]
      old_bw_state = intel_atomic_get_bw_old_state(state);
                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                     intel_atomic_get_bw_state
>> drivers/gpu/drm/i915/intel_pm.c:3869:16: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
      old_bw_state = intel_atomic_get_bw_old_state(state);
                   ^
   cc1: some warnings being treated as errors

vim +3869 drivers/gpu/drm/i915/intel_pm.c

  3838	
  3839	static int intel_compute_sagv_mask(struct intel_atomic_state *state)
  3840	{
  3841		int ret;
  3842		struct drm_device *dev = state->base.dev;
  3843		struct drm_i915_private *dev_priv = to_i915(dev);
  3844		struct intel_crtc *crtc;
  3845		struct intel_crtc_state *new_crtc_state;
  3846		struct intel_bw_state *new_bw_state = NULL;
  3847		struct intel_bw_state *old_bw_state = NULL;
  3848		int i;
  3849		bool can_sagv;
  3850	
  3851		/*
  3852		 * If SAGV is not supported we just can't do anything
  3853		 * not even set or reject SAGV points - just bail out.
  3854		 * Thus avoid needless calculations.
  3855		 */
  3856		if (!intel_has_sagv(dev_priv))
  3857			return 0;
  3858	
  3859		for_each_new_intel_crtc_in_state(state, crtc,
  3860						 new_crtc_state, i) {
  3861			bool pipe_sagv_enable;
  3862	
  3863			new_bw_state = intel_atomic_get_bw_state(state);
  3864			if (IS_ERR(new_bw_state)) {
  3865				WARN(1, "Could not get bw_state\n");
  3866				return PTR_ERR(new_bw_state);
  3867			}
  3868	
> 3869			old_bw_state = intel_atomic_get_bw_old_state(state);
  3870	
  3871			if (!new_crtc_state->hw.active)
  3872				continue;
  3873	
  3874			if (INTEL_GEN(dev_priv) >= 12) {
  3875				pipe_sagv_enable = tgl_can_enable_sagv_on_pipe(new_crtc_state);
  3876			} else if (INTEL_GEN(dev_priv) >= 11) {
  3877				pipe_sagv_enable = icl_can_enable_sagv_on_pipe(new_crtc_state);
  3878			} else {
  3879				pipe_sagv_enable = skl_can_enable_sagv_on_pipe(new_crtc_state);
  3880			}
  3881	
  3882			if (pipe_sagv_enable)
  3883				new_bw_state->pipe_sagv_reject &= ~BIT(crtc->pipe);
  3884			else
  3885				new_bw_state->pipe_sagv_reject |= BIT(crtc->pipe);
  3886		}
  3887	
  3888		if (!new_bw_state || !old_bw_state)
  3889			return 0;
  3890	
  3891		can_sagv = new_bw_state->pipe_sagv_reject == 0;
  3892	
  3893		for_each_new_intel_crtc_in_state(state, crtc,
  3894						 new_crtc_state, i) {
  3895			struct skl_pipe_wm *pipe_wm = &new_crtc_state->wm.skl.optimal;
  3896	
  3897			/*
  3898			 * Due to drm limitation at commit state, when
  3899			 * changes are written the whole atomic state is
  3900			 * zeroed away => which prevents from using it,
  3901			 * so just sticking it into pipe wm state for
  3902			 * keeping it simple - anyway this is related to wm.
  3903			 * Proper way in ideal universe would be of course not
  3904			 * to lose parent atomic state object from child crtc_state,
  3905			 * and stick to OOP programming principles, which had been
  3906			 * scientifically proven to work.
  3907			 */
  3908			pipe_wm->can_sagv = can_sagv;
  3909		}
  3910	
  3911		/*
  3912		 * For SAGV we need to account all the pipes,
  3913		 * not only the ones which are in state currently.
  3914		 * Grab all locks if we detect that we are actually
  3915		 * going to do something.
  3916		 */
  3917		if (new_bw_state->pipe_sagv_reject != old_bw_state->pipe_sagv_reject) {
  3918			DRM_DEBUG_KMS("State %p: old sagv mask 0x%x, new sagv mask 0x%x\n",
  3919				      state,
  3920				      old_bw_state->pipe_sagv_reject,
  3921				      new_bw_state->pipe_sagv_reject);
  3922	
  3923			ret = intel_atomic_serialize_global_state(&new_bw_state->base);
  3924			if (ret) {
  3925				DRM_DEBUG_KMS("Could not serialize global state\n");
  3926				return ret;
  3927			}
  3928		}
  3929	
  3930		return 0;
  3931	}
  3932	

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 71683 bytes --]

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2020-04-04  3:53 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-04-04  3:53 [linux-review:UPDATE-20200404-070344/Stanislav-Lisovskiy/SAGV-support-for-Gen12/20200327-065947 6/10] drivers/gpu/drm/i915/intel_pm.c:3869:18: error: implicit declaration of function 'intel_atomic_get_bw_old_state'; did you mean 'intel_atomic_get_bw_state'? kbuild test robot

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.