* [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.