drivers/gpu/drm/mediatek/mtk_disp_ovl_adaptor.c:415:10: warning: cast to smaller integer type 'enum mtk_ovl_adaptor_comp_type' from 'const void *'

From: kernel test robot
Date: Sun Jul 09 2023 - 13:44:59 EST


Hi Nancy.Lin,

FYI, the error/warning still remains.

tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 1c7873e3364570ec89343ff4877e0f27a7b21a61
commit: 453c3364632a1f305db7d425dc9f8d6711cd3491 drm/mediatek: Add ovl_adaptor support for MT8195
date: 4 months ago
config: arm64-randconfig-r021-20230709 (https://download.01.org/0day-ci/archive/20230710/202307100103.5TXiJnCm-lkp@xxxxxxxxx/config)
compiler: clang version 17.0.0 (https://github.com/llvm/llvm-project.git 4a5ac14ee968ff0ad5d2cc1ffa0299048db4c88a)
reproduce: (https://download.01.org/0day-ci/archive/20230710/202307100103.5TXiJnCm-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/202307100103.5TXiJnCm-lkp@xxxxxxxxx/

All warnings (new ones prefixed by >>):

>> drivers/gpu/drm/mediatek/mtk_disp_ovl_adaptor.c:415:10: warning: cast to smaller integer type 'enum mtk_ovl_adaptor_comp_type' from 'const void *' [-Wvoid-pointer-to-enum-cast]
415 | type = (enum mtk_ovl_adaptor_comp_type)of_id->data;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 warning generated.


vim +415 drivers/gpu/drm/mediatek/mtk_disp_ovl_adaptor.c

391
392 static int ovl_adaptor_comp_init(struct device *dev, struct component_match **match)
393 {
394 struct mtk_disp_ovl_adaptor *priv = dev_get_drvdata(dev);
395 struct device_node *node, *parent;
396 struct platform_device *comp_pdev;
397
398 parent = dev->parent->parent->of_node->parent;
399
400 for_each_child_of_node(parent, node) {
401 const struct of_device_id *of_id;
402 enum mtk_ovl_adaptor_comp_type type;
403 int id;
404
405 of_id = of_match_node(mtk_ovl_adaptor_comp_dt_ids, node);
406 if (!of_id)
407 continue;
408
409 if (!of_device_is_available(node)) {
410 dev_dbg(dev, "Skipping disabled component %pOF\n",
411 node);
412 continue;
413 }
414
> 415 type = (enum mtk_ovl_adaptor_comp_type)of_id->data;
416 id = ovl_adaptor_comp_get_id(dev, node, type);
417 if (id < 0) {
418 dev_warn(dev, "Skipping unknown component %pOF\n",
419 node);
420 continue;
421 }
422
423 comp_pdev = of_find_device_by_node(node);
424 if (!comp_pdev)
425 return -EPROBE_DEFER;
426
427 priv->ovl_adaptor_comp[id] = &comp_pdev->dev;
428
429 drm_of_component_match_add(dev, match, compare_of, node);
430 dev_dbg(dev, "Adding component match for %pOF\n", node);
431 }
432
433 if (!*match) {
434 dev_err(dev, "No match device for ovl_adaptor\n");
435 return -ENODEV;
436 }
437
438 return 0;
439 }
440

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