tree:
git://linuxtv.org/pinchartl/media.git drm/du/next
head: c43bcd64c7c703ff7196f74cb6bfc67e35b562d9
commit: e94bb2bf88e2e410a5ae9a0fdd161134e6ac59a0 [14/17] drm/bridge: lvds-codec: Add
"lvds-decoder" support
config: x86_64-randconfig-r005-20201111 (attached as .config)
compiler: clang version 12.0.0 (
https://github.com/llvm/llvm-project
874b0a0b9db93f5d3350ffe6b5efda2d908415d0)
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 x86_64 cross compiling tool for clang build
# apt-get install binutils-x86-64-linux-gnu
git remote add pinchartl-media
git://linuxtv.org/pinchartl/media.git
git fetch --no-tags pinchartl-media drm/du/next
git checkout e94bb2bf88e2e410a5ae9a0fdd161134e6ac59a0
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=x86_64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>):
> drivers/gpu/drm/bridge/lvds-codec.c:70:31: warning: cast to
smaller integer type 'u32' (aka 'unsigned int') from 'const void
*' [-Wvoid-pointer-to-int-cast]
lvds_codec->connector_type =
(u32)of_device_get_match_data(&pdev->dev);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 warning generated.
vim +70 drivers/gpu/drm/bridge/lvds-codec.c
56
57 static int lvds_codec_probe(struct platform_device *pdev)
58 {
59 struct device *dev = &pdev->dev;
60 struct device_node *port;
61 struct device_node *endpoint;
62 struct device_node *panel_node;
63 struct drm_panel *panel;
64 struct lvds_codec *lvds_codec;
65
66 lvds_codec = devm_kzalloc(dev, sizeof(*lvds_codec), GFP_KERNEL);
67 if (!lvds_codec)
68 return -ENOMEM;
69
70 lvds_codec->connector_type =
(u32)of_device_get_match_data(&pdev->dev);
71 lvds_codec->powerdown_gpio = devm_gpiod_get_optional(dev, "powerdown",
72 GPIOD_OUT_HIGH);
73 if (IS_ERR(lvds_codec->powerdown_gpio)) {
74 int err = PTR_ERR(lvds_codec->powerdown_gpio);
75
76 if (err != -EPROBE_DEFER)
77 dev_err(dev, "powerdown GPIO failure: %d\n", err);
78 return err;
79 }
80
81 /* Locate the panel DT node. */
82 port = of_graph_get_port_by_id(dev->of_node, 1);
83 if (!port) {
84 dev_dbg(dev, "port 1 not found\n");
85 return -ENXIO;
86 }
87
88 endpoint = of_get_child_by_name(port, "endpoint");
89 of_node_put(port);
90 if (!endpoint) {
91 dev_dbg(dev, "no endpoint for port 1\n");
92 return -ENXIO;
93 }
94
95 panel_node = of_graph_get_remote_port_parent(endpoint);
96 of_node_put(endpoint);
97 if (!panel_node) {
98 dev_dbg(dev, "no remote endpoint for port 1\n");
99 return -ENXIO;
100 }
101
102 panel = of_drm_find_panel(panel_node);
103 of_node_put(panel_node);
104 if (IS_ERR(panel)) {
105 dev_dbg(dev, "panel not found, deferring probe\n");
106 return PTR_ERR(panel);
107 }
108
109 lvds_codec->panel_bridge =
110 devm_drm_panel_bridge_add_typed(dev, panel,
111 lvds_codec->connector_type);
112 if (IS_ERR(lvds_codec->panel_bridge))
113 return PTR_ERR(lvds_codec->panel_bridge);
114
115 /*
116 * The panel_bridge bridge is attached to the panel's of_node,
117 * but we need a bridge attached to our of_node for our user
118 * to look up.
119 */
120 lvds_codec->bridge.of_node = dev->of_node;
121 lvds_codec->bridge.funcs = &funcs;
122 drm_bridge_add(&lvds_codec->bridge);
123
124 platform_set_drvdata(pdev, lvds_codec);
125
126 return 0;
127 }
128
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org