Re: [PATCH v2 12/16] drm/msm/dpu: add an API to setup the CDM block for writeback

From: kernel test robot
Date: Sun Dec 10 2023 - 09:07:42 EST


Hi Abhinav,

kernel test robot noticed the following build warnings:

[auto build test WARNING on next-20231207]
[also build test WARNING on v6.7-rc4]
[cannot apply to drm-misc/drm-misc-next linus/master v6.7-rc4 v6.7-rc3 v6.7-rc2]
[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/Abhinav-Kumar/drm-msm-dpu-add-formats-check-for-writeback-encoder/20231208-130820
base: next-20231207
patch link: https://lore.kernel.org/r/20231208050641.32582-13-quic_abhinavk%40quicinc.com
patch subject: [PATCH v2 12/16] drm/msm/dpu: add an API to setup the CDM block for writeback
config: x86_64-allyesconfig (https://download.01.org/0day-ci/archive/20231210/202312102149.qmbCdsg2-lkp@xxxxxxxxx/config)
compiler: clang version 16.0.4 (https://github.com/llvm/llvm-project.git ae42196bc493ffe877a7e3dff8be32035dea4d07)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20231210/202312102149.qmbCdsg2-lkp@xxxxxxxxx/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@xxxxxxxxx>
| Closes: https://lore.kernel.org/oe-kbuild-all/202312102149.qmbCdsg2-lkp@xxxxxxxxx/

All warnings (new ones prefixed by >>):

>> drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys_wb.c:267: warning: expecting prototype for dpu_encoder_phys_wb_setup_cdp(). Prototype was for dpu_encoder_helper_phys_setup_cdm() instead


vim +267 drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys_wb.c

261
262 /**
263 * dpu_encoder_phys_wb_setup_cdp - setup chroma down sampling block
264 * @phys_enc:Pointer to physical encoder
265 */
266 static void dpu_encoder_helper_phys_setup_cdm(struct dpu_encoder_phys *phys_enc)
> 267 {
268 struct dpu_hw_cdm *hw_cdm;
269 struct dpu_hw_cdm_cfg *cdm_cfg;
270 struct dpu_hw_pingpong *hw_pp;
271 struct dpu_encoder_phys_wb *wb_enc;
272 const struct msm_format *format;
273 const struct dpu_format *dpu_fmt;
274 struct drm_writeback_job *wb_job;
275 int ret;
276
277 if (!phys_enc)
278 return;
279
280 wb_enc = to_dpu_encoder_phys_wb(phys_enc);
281 cdm_cfg = &wb_enc->cdm_cfg;
282 hw_pp = phys_enc->hw_pp;
283 hw_cdm = phys_enc->hw_cdm;
284 wb_job = wb_enc->wb_job;
285
286 format = msm_framebuffer_format(wb_enc->wb_job->fb);
287 dpu_fmt = dpu_get_dpu_format_ext(format->pixel_format, wb_job->fb->modifier);
288
289 if (!hw_cdm)
290 return;
291
292 if (!DPU_FORMAT_IS_YUV(dpu_fmt)) {
293 DPU_DEBUG("[enc:%d] cdm_disable fmt:%x\n", DRMID(phys_enc->parent),
294 dpu_fmt->base.pixel_format);
295 if (hw_cdm->ops.disable)
296 hw_cdm->ops.disable(hw_cdm);
297
298 return;
299 }
300
301 memset(cdm_cfg, 0, sizeof(struct dpu_hw_cdm_cfg));
302
303 cdm_cfg->output_width = wb_job->fb->width;
304 cdm_cfg->output_height = wb_job->fb->height;
305 cdm_cfg->output_fmt = dpu_fmt;
306 cdm_cfg->output_type = CDM_CDWN_OUTPUT_WB;
307 cdm_cfg->output_bit_depth = DPU_FORMAT_IS_DX(dpu_fmt) ?
308 CDM_CDWN_OUTPUT_10BIT : CDM_CDWN_OUTPUT_8BIT;
309 cdm_cfg->csc_cfg = dpu_hw_get_csc_cfg(DPU_HW_RGB2YUV_601L_10BIT);
310 if (!cdm_cfg->csc_cfg) {
311 DPU_ERROR("valid csc not found\n");
312 return;
313 }
314
315 /* enable 10 bit logic */
316 switch (cdm_cfg->output_fmt->chroma_sample) {
317 case DPU_CHROMA_RGB:
318 cdm_cfg->h_cdwn_type = CDM_CDWN_DISABLE;
319 cdm_cfg->v_cdwn_type = CDM_CDWN_DISABLE;
320 break;
321 case DPU_CHROMA_H2V1:
322 cdm_cfg->h_cdwn_type = CDM_CDWN_COSITE;
323 cdm_cfg->v_cdwn_type = CDM_CDWN_DISABLE;
324 break;
325 case DPU_CHROMA_420:
326 cdm_cfg->h_cdwn_type = CDM_CDWN_COSITE;
327 cdm_cfg->v_cdwn_type = CDM_CDWN_OFFSITE;
328 break;
329 case DPU_CHROMA_H1V2:
330 default:
331 DPU_ERROR("[enc:%d] unsupported chroma sampling type\n",
332 DRMID(phys_enc->parent));
333 cdm_cfg->h_cdwn_type = CDM_CDWN_DISABLE;
334 cdm_cfg->v_cdwn_type = CDM_CDWN_DISABLE;
335 break;
336 }
337
338 DPU_DEBUG("[enc:%d] cdm_enable:%d,%d,%X,%d,%d,%d,%d]\n",
339 DRMID(phys_enc->parent), cdm_cfg->output_width,
340 cdm_cfg->output_height, cdm_cfg->output_fmt->base.pixel_format,
341 cdm_cfg->output_type, cdm_cfg->output_bit_depth,
342 cdm_cfg->h_cdwn_type, cdm_cfg->v_cdwn_type);
343
344 if (hw_cdm->ops.enable) {
345 cdm_cfg->pp_id = hw_pp->idx;
346 ret = hw_cdm->ops.enable(hw_cdm, cdm_cfg);
347 if (ret < 0) {
348 DPU_ERROR("[enc:%d] failed to enable CDM; ret:%d\n",
349 DRMID(phys_enc->parent), ret);
350 return;
351 }
352 }
353 }
354

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki