[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <202311302343.3lXKkLxR-lkp@intel.com>
Date: Thu, 30 Nov 2023 23:43:51 +0800
From: kernel test robot <lkp@...el.com>
To: Kuogee Hsieh <quic_khsieh@...cinc.com>,
dri-devel@...ts.freedesktop.org, robdclark@...il.com,
sean@...rly.run, swboyd@...omium.org, dianders@...omium.org,
vkoul@...nel.org, daniel@...ll.ch, airlied@...il.com,
agross@...nel.org, dmitry.baryshkov@...aro.org,
andersson@...nel.org
Cc: llvm@...ts.linux.dev, oe-kbuild-all@...ts.linux.dev,
quic_sbillaka@...cinc.com, linux-arm-msm@...r.kernel.org,
quic_abhinavk@...cinc.com, Kuogee Hsieh <quic_khsieh@...cinc.com>,
marijn.suijten@...ainline.org, quic_jesszhan@...cinc.com,
freedreno@...ts.freedesktop.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH v1] drm/msm/dpu: improve DSC allocation
Hi Kuogee,
kernel test robot noticed the following build warnings:
[auto build test WARNING on drm-misc/drm-misc-next]
[also build test WARNING on drm/drm-next drm-exynos/exynos-drm-next drm-intel/for-linux-next drm-intel/for-linux-next-fixes drm-tip/drm-tip linus/master v6.7-rc3 next-20231130]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]
url: https://github.com/intel-lab-lkp/linux/commits/Kuogee-Hsieh/drm-msm-dpu-improve-DSC-allocation/20231130-064646
base: git://anongit.freedesktop.org/drm/drm-misc drm-misc-next
patch link: https://lore.kernel.org/r/1701289898-12235-1-git-send-email-quic_khsieh%40quicinc.com
patch subject: [PATCH v1] drm/msm/dpu: improve DSC allocation
config: arm-defconfig (https://download.01.org/0day-ci/archive/20231130/202311302343.3lXKkLxR-lkp@intel.com/config)
compiler: clang version 14.0.6 (https://github.com/llvm/llvm-project.git f28c006a5895fc0e329fe15fead81e37457cb1d1)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20231130/202311302343.3lXKkLxR-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@...el.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202311302343.3lXKkLxR-lkp@intel.com/
All warnings (new ones prefixed by >>):
>> drivers/gpu/drm/msm/disp/dpu1/dpu_rm.c:537:24: warning: incompatible pointer to integer conversion assigning to 'uint32_t' (aka 'unsigned int') from 'void *' [-Wint-conversion]
pp_to_enc_id[pp_idx] = NULL;
^ ~~~~
1 warning generated.
vim +537 drivers/gpu/drm/msm/disp/dpu1/dpu_rm.c
463
464 static int _dpu_rm_reserve_dsc(struct dpu_rm *rm,
465 struct dpu_global_state *global_state,
466 struct drm_encoder *enc,
467 const struct msm_display_topology *top)
468 {
469 int num_dsc = 0;
470 int i, pp_idx;
471 bool pair = false;
472 int dsc_idx[DSC_MAX - DSC_0];
473 uint32_t pp_to_enc_id[PINGPONG_MAX - PINGPONG_0];
474 int pp_max = PINGPONG_MAX - PINGPONG_0;
475
476 if (!top->num_dsc || !top->num_intf)
477 return 0;
478
479 /*
480 * Truth:
481 * 1) every layer mixer only connects to one pingpong
482 * 2) no pingpong split -- two layer mixers shared one pingpong
483 * 3) each DSC engine contains two dsc encoders
484 * -- index(0,1), index (2,3),... etc
485 * 4) dsc pair can only happens with same DSC engine except 4 dsc
486 * merge mode application (8k) which need two DSC engines
487 * 5) odd pingpong connect to odd dsc
488 * 6) even pingpong connect even dsc
489 */
490
491 /* num_dsc should be either 1, 2 or 4 */
492 if (top->num_dsc > top->num_intf) /* merge mode */
493 pair = true;
494
495 /* fill working copy with pingpong list */
496 memcpy(pp_to_enc_id, global_state->pingpong_to_enc_id, sizeof(pp_to_enc_id));
497
498 for (i = 0; i < ARRAY_SIZE(rm->dsc_blks); i++) {
499 if (!rm->dsc_blks[i]) /* end of dsc list */
500 break;
501
502 if (global_state->dsc_to_enc_id[i]) { /* used */
503 /* consective dsc index to be paired */
504 if (pair && num_dsc) { /* already start pairing, re start */
505 num_dsc = 0;
506 /* fill working copy with pingpong list */
507 memcpy(pp_to_enc_id, global_state->pingpong_to_enc_id,
508 sizeof(pp_to_enc_id));
509 }
510 continue;
511 }
512
513 /* odd index can not become start of pairing */
514 if (pair && (i & 0x01) && !num_dsc)
515 continue;
516
517 /*
518 * find the pingpong index which had been reserved
519 * previously at layer mixer allocation
520 */
521 for (pp_idx = 0; pp_idx < pp_max; pp_idx++) {
522 if (pp_to_enc_id[pp_idx] == enc->base.id)
523 break;
524 }
525
526 /*
527 * dsc even index must map to pingpong even index
528 * dsc odd index must map to pingpong odd index
529 */
530 if ((i & 0x01) != (pp_idx & 0x01))
531 continue;
532
533 /*
534 * delete pp_idx so that it can not be found at next search
535 * in the case of pairing
536 */
> 537 pp_to_enc_id[pp_idx] = NULL;
538
539 dsc_idx[num_dsc++] = i;
540 if (num_dsc >= top->num_dsc)
541 break;
542 }
543
544 if (num_dsc < top->num_dsc) {
545 DPU_ERROR("DSC allocation failed num_dsc=%d required=%d\n",
546 num_dsc, top->num_dsc );
547 return -ENAVAIL;
548 }
549
550 /* reserve dsc */
551 for (i = 0; i < top->num_dsc; i++) {
552 int j;
553
554 j = dsc_idx[i];
555 global_state->dsc_to_enc_id[j] = enc->base.id;
556 }
557
558 return 0;
559 }
560
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
Powered by blists - more mailing lists