From: Manasi Navare <manasi.d.navare@intel.com>
To: Julia Lawall <julia.lawall@lip6.fr>
Cc: intel-gfx@lists.freedesktop.org, kbuild-all@01.org
Subject: Re: [CI v12 10/23] drm/i915/dsc: Define & Compute VESA DSC params (fwd)
Date: Wed, 28 Nov 2018 10:50:58 -0800 [thread overview]
Message-ID: <20181128185056.GA7834@intel.com> (raw)
In-Reply-To: <alpine.DEB.2.21.1811281145000.2394@hadrien>
On Wed, Nov 28, 2018 at 11:46:26AM +0000, Julia Lawall wrote:
> Hello,
>
> row_index and column_index are unsigned, so in the last line shown
> they will not be less than 0.
>
Row_index and column_index are assigned to 0 at the beginning of the function and so
if thre is no valid index found the get_column_index /row_index will return -EINVAL
and hence they can have values < 0.
Does this make sense?
Manasi
> julia
>
> ---------- Forwarded message ----------
> Date: Wed, 28 Nov 2018 19:43:30 +0800
> From: kbuild test robot <lkp@intel.com>
> To: kbuild@01.org
> Cc: Julia Lawall <julia.lawall@lip6.fr>
> Subject: Re: [Intel-gfx] [CI v12 10/23] drm/i915/dsc: Define & Compute VESA DSC
> params
>
> CC: kbuild-all@01.org
> In-Reply-To: <20181127214125.17658-10-manasi.d.navare@intel.com>
> References: <20181127214125.17658-10-manasi.d.navare@intel.com>
> TO: Manasi Navare <manasi.d.navare@intel.com>
> CC: intel-gfx@lists.freedesktop.org
> CC:
>
> Hi Gaurav,
>
> Thank you for the patch! Perhaps something to improve:
>
> [auto build test WARNING on drm-intel/for-linux-next]
> [also build test WARNING on next-20181127]
> [cannot apply to v4.20-rc4]
> [if your patch is applied to the wrong git tree, please drop us a note to help improve the system]
>
> url: https://github.com/0day-ci/linux/commits/Manasi-Navare/drm-dsc-Modify-DRM-helper-to-return-complete-DSC-color-depth-capabilities/20181128-095026
> base: git://anongit.freedesktop.org/drm-intel for-linux-next
> :::::: branch date: 10 hours ago
> :::::: commit date: 10 hours ago
>
> >> drivers/gpu/drm/i915/intel_vdsc.c:404:22-34: WARNING: Unsigned expression compared with zero: column_index < 0
> >> drivers/gpu/drm/i915/intel_vdsc.c:404:5-14: WARNING: Unsigned expression compared with zero: row_index < 0
>
> # https://github.com/0day-ci/linux/commit/5b6895999d5a84b154fcd49dc3a91d71897d03ec
> git remote add linux-review https://github.com/0day-ci/linux
> git remote update linux-review
> git checkout 5b6895999d5a84b154fcd49dc3a91d71897d03ec
> vim +404 drivers/gpu/drm/i915/intel_vdsc.c
>
> 5b689599 Gaurav K Singh 2018-11-27 319
> 5b689599 Gaurav K Singh 2018-11-27 320 int intel_dp_compute_dsc_params(struct intel_dp *intel_dp,
> 5b689599 Gaurav K Singh 2018-11-27 321 struct intel_crtc_state *pipe_config)
> 5b689599 Gaurav K Singh 2018-11-27 322 {
> 5b689599 Gaurav K Singh 2018-11-27 323 struct drm_dsc_config *vdsc_cfg = &pipe_config->dp_dsc_cfg;
> 5b689599 Gaurav K Singh 2018-11-27 324 u16 compressed_bpp = pipe_config->dsc_params.compressed_bpp;
> 5b689599 Gaurav K Singh 2018-11-27 325 u8 i = 0;
> 5b689599 Gaurav K Singh 2018-11-27 326 u8 row_index = 0;
> 5b689599 Gaurav K Singh 2018-11-27 327 u8 column_index = 0;
> 5b689599 Gaurav K Singh 2018-11-27 328 u8 line_buf_depth = 0;
> 5b689599 Gaurav K Singh 2018-11-27 329
> 5b689599 Gaurav K Singh 2018-11-27 330 vdsc_cfg->pic_width = pipe_config->base.adjusted_mode.crtc_hdisplay;
> 5b689599 Gaurav K Singh 2018-11-27 331 vdsc_cfg->pic_height = pipe_config->base.adjusted_mode.crtc_vdisplay;
> 5b689599 Gaurav K Singh 2018-11-27 332 vdsc_cfg->slice_width = DIV_ROUND_UP(vdsc_cfg->pic_width,
> 5b689599 Gaurav K Singh 2018-11-27 333 pipe_config->dsc_params.slice_count);
> 5b689599 Gaurav K Singh 2018-11-27 334 /*
> 5b689599 Gaurav K Singh 2018-11-27 335 * Slice Height of 8 works for all currently available panels. So start
> 5b689599 Gaurav K Singh 2018-11-27 336 * with that if pic_height is an integral multiple of 8.
> 5b689599 Gaurav K Singh 2018-11-27 337 * Eventually add logic to try multiple slice heights.
> 5b689599 Gaurav K Singh 2018-11-27 338 */
> 5b689599 Gaurav K Singh 2018-11-27 339 if (vdsc_cfg->pic_height % 8 == 0)
> 5b689599 Gaurav K Singh 2018-11-27 340 vdsc_cfg->slice_height = 8;
> 5b689599 Gaurav K Singh 2018-11-27 341 else if (vdsc_cfg->pic_height % 4 == 0)
> 5b689599 Gaurav K Singh 2018-11-27 342 vdsc_cfg->slice_height = 4;
> 5b689599 Gaurav K Singh 2018-11-27 343 else
> 5b689599 Gaurav K Singh 2018-11-27 344 vdsc_cfg->slice_height = 2;
> 5b689599 Gaurav K Singh 2018-11-27 345
> 5b689599 Gaurav K Singh 2018-11-27 346 /* Values filled from DSC Sink DPCD */
> 5b689599 Gaurav K Singh 2018-11-27 347 vdsc_cfg->dsc_version_major =
> 5b689599 Gaurav K Singh 2018-11-27 348 (intel_dp->dsc_dpcd[DP_DSC_REV - DP_DSC_SUPPORT] &
> 5b689599 Gaurav K Singh 2018-11-27 349 DP_DSC_MAJOR_MASK) >> DP_DSC_MAJOR_SHIFT;
> 5b689599 Gaurav K Singh 2018-11-27 350 vdsc_cfg->dsc_version_minor =
> 5b689599 Gaurav K Singh 2018-11-27 351 min(DSC_SUPPORTED_VERSION_MIN,
> 5b689599 Gaurav K Singh 2018-11-27 352 (intel_dp->dsc_dpcd[DP_DSC_REV - DP_DSC_SUPPORT] &
> 5b689599 Gaurav K Singh 2018-11-27 353 DP_DSC_MINOR_MASK) >> DP_DSC_MINOR_SHIFT);
> 5b689599 Gaurav K Singh 2018-11-27 354
> 5b689599 Gaurav K Singh 2018-11-27 355 vdsc_cfg->convert_rgb = intel_dp->dsc_dpcd[DP_DSC_DEC_COLOR_FORMAT_CAP - DP_DSC_SUPPORT] &
> 5b689599 Gaurav K Singh 2018-11-27 356 DP_DSC_RGB;
> 5b689599 Gaurav K Singh 2018-11-27 357
> 5b689599 Gaurav K Singh 2018-11-27 358 line_buf_depth = drm_dp_dsc_sink_line_buf_depth(intel_dp->dsc_dpcd);
> 5b689599 Gaurav K Singh 2018-11-27 359 if (!line_buf_depth) {
> 5b689599 Gaurav K Singh 2018-11-27 360 DRM_DEBUG_KMS("DSC Sink Line Buffer Depth invalid\n");
> 5b689599 Gaurav K Singh 2018-11-27 361 return -EINVAL;
> 5b689599 Gaurav K Singh 2018-11-27 362 }
> 5b689599 Gaurav K Singh 2018-11-27 363 if (vdsc_cfg->dsc_version_minor == 2)
> 5b689599 Gaurav K Singh 2018-11-27 364 vdsc_cfg->line_buf_depth = (line_buf_depth == DSC_1_2_MAX_LINEBUF_DEPTH_BITS) ?
> 5b689599 Gaurav K Singh 2018-11-27 365 DSC_1_2_MAX_LINEBUF_DEPTH_VAL : line_buf_depth;
> 5b689599 Gaurav K Singh 2018-11-27 366 else
> 5b689599 Gaurav K Singh 2018-11-27 367 vdsc_cfg->line_buf_depth = (line_buf_depth > DSC_1_1_MAX_LINEBUF_DEPTH_BITS) ?
> 5b689599 Gaurav K Singh 2018-11-27 368 DSC_1_1_MAX_LINEBUF_DEPTH_BITS : line_buf_depth;
> 5b689599 Gaurav K Singh 2018-11-27 369
> 5b689599 Gaurav K Singh 2018-11-27 370 /* Gen 11 does not support YCbCr */
> 5b689599 Gaurav K Singh 2018-11-27 371 vdsc_cfg->enable422 = false;
> 5b689599 Gaurav K Singh 2018-11-27 372 /* Gen 11 does not support VBR */
> 5b689599 Gaurav K Singh 2018-11-27 373 vdsc_cfg->vbr_enable = false;
> 5b689599 Gaurav K Singh 2018-11-27 374 vdsc_cfg->block_pred_enable =
> 5b689599 Gaurav K Singh 2018-11-27 375 intel_dp->dsc_dpcd[DP_DSC_BLK_PREDICTION_SUPPORT - DP_DSC_SUPPORT] &
> 5b689599 Gaurav K Singh 2018-11-27 376 DP_DSC_BLK_PREDICTION_IS_SUPPORTED;
> 5b689599 Gaurav K Singh 2018-11-27 377
> 5b689599 Gaurav K Singh 2018-11-27 378 /* Gen 11 only supports integral values of bpp */
> 5b689599 Gaurav K Singh 2018-11-27 379 vdsc_cfg->bits_per_pixel = compressed_bpp << 4;
> 5b689599 Gaurav K Singh 2018-11-27 380 vdsc_cfg->bits_per_component = pipe_config->pipe_bpp / 3;
> 5b689599 Gaurav K Singh 2018-11-27 381
> 5b689599 Gaurav K Singh 2018-11-27 382 for (i = 0; i < DSC_NUM_BUF_RANGES - 1; i++) {
> 5b689599 Gaurav K Singh 2018-11-27 383 /*
> 5b689599 Gaurav K Singh 2018-11-27 384 * six 0s are appended to the lsb of each threshold value
> 5b689599 Gaurav K Singh 2018-11-27 385 * internally in h/w.
> 5b689599 Gaurav K Singh 2018-11-27 386 * Only 8 bits are allowed for programming RcBufThreshold
> 5b689599 Gaurav K Singh 2018-11-27 387 */
> 5b689599 Gaurav K Singh 2018-11-27 388 vdsc_cfg->rc_buf_thresh[i] = rc_buf_thresh[i] >> 6;
> 5b689599 Gaurav K Singh 2018-11-27 389 }
> 5b689599 Gaurav K Singh 2018-11-27 390
> 5b689599 Gaurav K Singh 2018-11-27 391 /*
> 5b689599 Gaurav K Singh 2018-11-27 392 * For 6bpp, RC Buffer threshold 12 and 13 need a different value
> 5b689599 Gaurav K Singh 2018-11-27 393 * as per C Model
> 5b689599 Gaurav K Singh 2018-11-27 394 */
> 5b689599 Gaurav K Singh 2018-11-27 395 if (compressed_bpp == 6) {
> 5b689599 Gaurav K Singh 2018-11-27 396 vdsc_cfg->rc_buf_thresh[12] = 0x7C;
> 5b689599 Gaurav K Singh 2018-11-27 397 vdsc_cfg->rc_buf_thresh[13] = 0x7D;
> 5b689599 Gaurav K Singh 2018-11-27 398 }
> 5b689599 Gaurav K Singh 2018-11-27 399
> 5b689599 Gaurav K Singh 2018-11-27 400 row_index = get_row_index_for_rc_params(compressed_bpp);
> 5b689599 Gaurav K Singh 2018-11-27 401 column_index =
> 5b689599 Gaurav K Singh 2018-11-27 402 get_column_index_for_rc_params(vdsc_cfg->bits_per_component);
> 5b689599 Gaurav K Singh 2018-11-27 403
> 5b689599 Gaurav K Singh 2018-11-27 @404 if (row_index < 0 || column_index < 0)
>
> ---
> 0-DAY kernel test infrastructure Open Source Technology Center
> https://lists.01.org/pipermail/kbuild-all Intel Corporation
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
next prev parent reply other threads:[~2018-11-28 18:47 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-11-28 11:46 [CI v12 10/23] drm/i915/dsc: Define & Compute VESA DSC params (fwd) Julia Lawall
2018-11-28 18:50 ` Manasi Navare [this message]
2018-11-28 18:50 ` Julia Lawall
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20181128185056.GA7834@intel.com \
--to=manasi.d.navare@intel.com \
--cc=intel-gfx@lists.freedesktop.org \
--cc=julia.lawall@lip6.fr \
--cc=kbuild-all@01.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.