* [jsarha:topic/cros-sof-v4.14-rebase 2219/9999] drivers/gpu/drm/i915/intel_pm.c:5103:25: error: variable 'crtc' set but not used
@ 2022-04-15 6:52 kernel test robot
0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2022-04-15 6:52 UTC (permalink / raw)
To: Mahesh Kumar
Cc: kbuild-all, linux-kernel, Juha-Pekka Heikkila, Shashank Sharma,
Vidya Srinivas, Maarten Lankhorst, Carlos Santa,
Stéphane Marchesin
Hi Mahesh,
FYI, the error/warning still remains.
tree: https://github.com/jsarha/linux topic/cros-sof-v4.14-rebase
head: 18a233f3f676a98dde00947535d99ab1a54da340
commit: f3f74d31fd569a167450cb3845589755aa39e989 [2219/9999] UPSTREAM: drm/i915/skl: split skl_compute_ddb function
config: i386-randconfig-a011-20220411 (https://download.01.org/0day-ci/archive/20220415/202204151416.NqZgp8Zo-lkp@intel.com/config)
compiler: gcc-7 (Ubuntu 7.5.0-6ubuntu2) 7.5.0
reproduce (this is a W=1 build):
# https://github.com/jsarha/linux/commit/f3f74d31fd569a167450cb3845589755aa39e989
git remote add jsarha https://github.com/jsarha/linux
git fetch --no-tags jsarha topic/cros-sof-v4.14-rebase
git checkout f3f74d31fd569a167450cb3845589755aa39e989
# save the config file to linux build tree
mkdir build_dir
make W=1 O=build_dir ARCH=i386 SHELL=/bin/bash drivers/gpu/drm/i915/
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
All errors (new ones prefixed by >>):
drivers/gpu/drm/i915/intel_pm.c: In function 'pipes_modified':
drivers/gpu/drm/i915/intel_pm.c:4982:25: error: variable 'cstate' set but not used [-Werror=unused-but-set-variable]
struct drm_crtc_state *cstate;
^~~~~~
drivers/gpu/drm/i915/intel_pm.c: In function 'skl_print_wm_changes':
drivers/gpu/drm/i915/intel_pm.c:5069:31: error: variable 'cstate' set but not used [-Werror=unused-but-set-variable]
const struct drm_crtc_state *cstate;
^~~~~~
drivers/gpu/drm/i915/intel_pm.c: In function 'skl_ddb_add_affected_pipes':
drivers/gpu/drm/i915/intel_pm.c:5104:31: error: variable 'cstate' set but not used [-Werror=unused-but-set-variable]
const struct drm_crtc_state *cstate;
^~~~~~
>> drivers/gpu/drm/i915/intel_pm.c:5103:25: error: variable 'crtc' set but not used [-Werror=unused-but-set-variable]
const struct drm_crtc *crtc;
^~~~
cc1: all warnings being treated as errors
vim +/crtc +5103 drivers/gpu/drm/i915/intel_pm.c
5097
5098 static int
5099 skl_ddb_add_affected_pipes(struct drm_atomic_state *state, bool *changed)
5100 {
5101 struct drm_device *dev = state->dev;
5102 const struct drm_i915_private *dev_priv = to_i915(dev);
> 5103 const struct drm_crtc *crtc;
5104 const struct drm_crtc_state *cstate;
5105 struct intel_crtc *intel_crtc;
5106 struct intel_atomic_state *intel_state = to_intel_atomic_state(state);
5107 uint32_t realloc_pipes = pipes_modified(state);
5108 int ret, i;
5109
5110 /*
5111 * When we distrust bios wm we always need to recompute to set the
5112 * expected DDB allocations for each CRTC.
5113 */
5114 if (dev_priv->wm.distrust_bios_wm)
5115 (*changed) = true;
5116
5117 /*
5118 * If this transaction isn't actually touching any CRTC's, don't
5119 * bother with watermark calculation. Note that if we pass this
5120 * test, we're guaranteed to hold at least one CRTC state mutex,
5121 * which means we can safely use values like dev_priv->active_crtcs
5122 * since any racing commits that want to update them would need to
5123 * hold _all_ CRTC state mutexes.
5124 */
5125 for_each_new_crtc_in_state(state, crtc, cstate, i)
5126 (*changed) = true;
5127
5128 if (!*changed)
5129 return 0;
5130
5131 /*
5132 * If this is our first atomic update following hardware readout,
5133 * we can't trust the DDB that the BIOS programmed for us. Let's
5134 * pretend that all pipes switched active status so that we'll
5135 * ensure a full DDB recompute.
5136 */
5137 if (dev_priv->wm.distrust_bios_wm) {
5138 ret = drm_modeset_lock(&dev->mode_config.connection_mutex,
5139 state->acquire_ctx);
5140 if (ret)
5141 return ret;
5142
5143 intel_state->active_pipe_changes = ~0;
5144
5145 /*
5146 * We usually only initialize intel_state->active_crtcs if we
5147 * we're doing a modeset; make sure this field is always
5148 * initialized during the sanitization process that happens
5149 * on the first commit too.
5150 */
5151 if (!intel_state->modeset)
5152 intel_state->active_crtcs = dev_priv->active_crtcs;
5153 }
5154
5155 /*
5156 * If the modeset changes which CRTC's are active, we need to
5157 * recompute the DDB allocation for *all* active pipes, even
5158 * those that weren't otherwise being modified in any way by this
5159 * atomic commit. Due to the shrinking of the per-pipe allocations
5160 * when new active CRTC's are added, it's possible for a pipe that
5161 * we were already using and aren't changing at all here to suddenly
5162 * become invalid if its DDB needs exceeds its new allocation.
5163 *
5164 * Note that if we wind up doing a full DDB recompute, we can't let
5165 * any other display updates race with this transaction, so we need
5166 * to grab the lock on *all* CRTC's.
5167 */
5168 if (intel_state->active_pipe_changes) {
5169 realloc_pipes = ~0;
5170 intel_state->wm_results.dirty_pipes = ~0;
5171 }
5172
5173 /*
5174 * We're not recomputing for the pipes not included in the commit, so
5175 * make sure we start with the current state.
5176 */
5177 for_each_intel_crtc_mask(dev, intel_crtc, realloc_pipes) {
5178 struct intel_crtc_state *cstate;
5179
5180 cstate = intel_atomic_get_crtc_state(state, intel_crtc);
5181 if (IS_ERR(cstate))
5182 return PTR_ERR(cstate);
5183 }
5184
5185 return 0;
5186 }
5187
--
0-DAY CI Kernel Test Service
https://01.org/lkp
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2022-04-15 6:53 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-04-15 6:52 [jsarha:topic/cros-sof-v4.14-rebase 2219/9999] drivers/gpu/drm/i915/intel_pm.c:5103:25: error: variable 'crtc' set but not used kernel 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.