[Intel-gfx] [bug report] drm/i915/dsb: Use DEwake to combat PkgC latency
Dan Carpenter
dan.carpenter at linaro.org
Wed Oct 4 11:09:32 UTC 2023
Hello Ville Syrjälä,
The patch f83b94d23770: "drm/i915/dsb: Use DEwake to combat PkgC
latency" from Jun 6, 2023 (linux-next), leads to the following Smatch
static checker warning:
drivers/gpu/drm/i915/display/intel_dsb.c:363 _intel_dsb_commit()
warn: always true condition '(dewake_scanline >= 0) => (0-u32max >= 0)'
drivers/gpu/drm/i915/display/intel_dsb.c
339 static void _intel_dsb_commit(struct intel_dsb *dsb, u32 ctrl,
340 unsigned int dewake_scanline)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
unsigned int
341 {
342 struct intel_crtc *crtc = dsb->crtc;
343 struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
344 enum pipe pipe = crtc->pipe;
345 u32 tail;
346
347 tail = dsb->free_pos * 4;
348 if (drm_WARN_ON(&dev_priv->drm, !IS_ALIGNED(tail, CACHELINE_BYTES)))
349 return;
350
351 if (is_dsb_busy(dev_priv, pipe, dsb->id)) {
352 drm_err(&dev_priv->drm, "[CRTC:%d:%s] DSB %d is busy\n",
353 crtc->base.base.id, crtc->base.name, dsb->id);
354 return;
355 }
356
357 intel_de_write_fw(dev_priv, DSB_CTRL(pipe, dsb->id),
358 ctrl | DSB_ENABLE);
359
360 intel_de_write_fw(dev_priv, DSB_HEAD(pipe, dsb->id),
361 i915_ggtt_offset(dsb->vma));
362
--> 363 if (dewake_scanline >= 0) {
^^^^^^^^^^^^^^^^^^^^
always true
364 int diff, hw_dewake_scanline;
365
366 hw_dewake_scanline = intel_crtc_scanline_to_hw(crtc, dewake_scanline);
367
368 intel_de_write_fw(dev_priv, DSB_PMCTRL(pipe, dsb->id),
369 DSB_ENABLE_DEWAKE |
370 DSB_SCANLINE_FOR_DEWAKE(hw_dewake_scanline));
371
372 /*
373 * Force DEwake immediately if we're already past
374 * or close to racing past the target scanline.
375 */
376 diff = dewake_scanline - intel_get_crtc_scanline(crtc);
377 intel_de_write_fw(dev_priv, DSB_PMCTRL_2(pipe, dsb->id),
378 (diff >= 0 && diff < 5 ? DSB_FORCE_DEWAKE : 0) |
379 DSB_BLOCK_DEWAKE_EXTENSION);
380 }
381
382 intel_de_write_fw(dev_priv, DSB_TAIL(pipe, dsb->id),
383 i915_ggtt_offset(dsb->vma) + tail);
384 }
regards,
dan carpenter
More information about the Intel-gfx
mailing list