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: Wed Apr 26 2023 - 15:06:17 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: 0cfd8703e7da687924371e9bc77a025bdeba9637
commit: 453c3364632a1f305db7d425dc9f8d6711cd3491 drm/mediatek: Add ovl_adaptor support for MT8195
date: 5 weeks ago
config: arm64-buildonly-randconfig-r005-20230426 (https://download.01.org/0day-ci/archive/20230427/202304270202.860mmUdY-lkp@xxxxxxxxx/config)
compiler: clang version 17.0.0 (https://github.com/llvm/llvm-project 437b7602e4a998220871de78afcb020b9c14a661)
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# install arm64 cross compiling tool for clang build
# apt-get install binutils-aarch64-linux-gnu
# https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=453c3364632a1f305db7d425dc9f8d6711cd3491
git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout 453c3364632a1f305db7d425dc9f8d6711cd3491
# save the config file
mkdir build_dir && cp config build_dir/.config
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=arm64 olddefconfig
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=arm64 SHELL=/bin/bash drivers/gpu/drm/mediatek/

If you fix the issue, kindly add following tag where applicable
| Reported-by: kernel test robot <lkp@xxxxxxxxx>
| Link: https://lore.kernel.org/oe-kbuild-all/202304270202.860mmUdY-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]
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