Re: [PATCH v3 2/2] display/drm/bridge: TC358775 DSI/LVDS driver

From: kernel test robot
Date: Fri Jun 19 2020 - 09:06:22 EST


Hi Vinay,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on linus/master]
[also build test WARNING on v5.8-rc1 next-20200618]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use as documented in
https://git-scm.com/docs/git-format-patch]

url: https://github.com/0day-ci/linux/commits/Vinay-Simha-BN/dt-binding-Add-DSI-LVDS-TC358775-bridge-bindings/20200618-202234
base: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 1b5044021070efa3259f3e9548dc35d1eb6aa844
config: x86_64-randconfig-r034-20200619 (attached as .config)
compiler: clang version 11.0.0 (https://github.com/llvm/llvm-project 487ca07fcc75d52755c9fe2ee05bcb3b6eeeec44)
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
# 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@xxxxxxxxx>

All warnings (new ones prefixed by >>, old ones prefixed by <<):

>> drivers/gpu/drm/bridge/tc358775.c:505:5: warning: no previous prototype for function 'tc358775_parse_dt' [-Wmissing-prototypes]
int tc358775_parse_dt(struct device_node *np, struct tc_data *tc)
^
drivers/gpu/drm/bridge/tc358775.c:505:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
int tc358775_parse_dt(struct device_node *np, struct tc_data *tc)
^
static
>> drivers/gpu/drm/bridge/tc358775.c:523:8: warning: variable 'len' is used uninitialized whenever 'if' condition is false [-Wsometimes-uninitialized]
if (endpoint) {
^~~~~~~~
drivers/gpu/drm/bridge/tc358775.c:536:22: note: uninitialized use occurs here
tc->num_dsi_lanes = len / sizeof(u32);
^~~
drivers/gpu/drm/bridge/tc358775.c:523:4: note: remove the 'if' if its condition is always true
if (endpoint) {
^~~~~~~~~~~~~~
drivers/gpu/drm/bridge/tc358775.c:519:7: warning: variable 'len' is used uninitialized whenever 'if' condition is false [-Wsometimes-uninitialized]
if (parent) {
^~~~~~
drivers/gpu/drm/bridge/tc358775.c:536:22: note: uninitialized use occurs here
tc->num_dsi_lanes = len / sizeof(u32);
^~~
drivers/gpu/drm/bridge/tc358775.c:519:3: note: remove the 'if' if its condition is always true
if (parent) {
^~~~~~~~~~~~
drivers/gpu/drm/bridge/tc358775.c:515:6: warning: variable 'len' is used uninitialized whenever 'if' condition is false [-Wsometimes-uninitialized]
if (endpoint) {
^~~~~~~~
drivers/gpu/drm/bridge/tc358775.c:536:22: note: uninitialized use occurs here
tc->num_dsi_lanes = len / sizeof(u32);
^~~
drivers/gpu/drm/bridge/tc358775.c:515:2: note: remove the 'if' if its condition is always true
if (endpoint) {
^~~~~~~~~~~~~~
drivers/gpu/drm/bridge/tc358775.c:511:9: note: initialize the variable 'len' to silence this warning
int len;
^
= 0
4 warnings generated.

vim +/tc358775_parse_dt +505 drivers/gpu/drm/bridge/tc358775.c

504
> 505 int tc358775_parse_dt(struct device_node *np, struct tc_data *tc)
506 {
507 struct device_node *endpoint;
508 struct device_node *parent;
509 struct device_node *remote;
510 struct property *prop;
511 int len;
512
513 endpoint = of_graph_get_endpoint_by_regs(tc->dev->of_node,
514 TC358775_DSI_IN, -1);
515 if (endpoint) {
516 /* dsi0_out node */
517 parent = of_graph_get_remote_port_parent(endpoint);
518 of_node_put(endpoint);
519 if (parent) {
520 /* dsi0 port 1 */
521 endpoint = of_graph_get_endpoint_by_regs(parent, 1, -1);
522 of_node_put(parent);
> 523 if (endpoint) {
524 prop = of_find_property(endpoint, "data-lanes",
525 &len);
526 of_node_put(endpoint);
527 if (!prop) {
528 dev_err(tc->dev,
529 "failed to find data lane\n");
530 return -EPROBE_DEFER;
531 }
532 }
533 }
534 }
535
536 tc->num_dsi_lanes = len / sizeof(u32);
537
538 if (tc->num_dsi_lanes < 1 || tc->num_dsi_lanes > 4)
539 return -EINVAL;
540
541 tc->host_node = of_graph_get_remote_node(np, 0, 0);
542 if (!tc->host_node)
543 return -ENODEV;
544
545 of_node_put(tc->host_node);
546
547 endpoint = of_graph_get_endpoint_by_regs(tc->dev->of_node,
548 TC358775_LVDS_OUT1, -1);
549 if (endpoint) {
550 remote = of_graph_get_remote_port_parent(endpoint);
551 of_node_put(endpoint);
552
553 if (remote) {
554 if (of_device_is_available(remote))
555 tc->dual_link = true;
556 of_node_put(remote);
557 }
558 }
559
560 dev_dbg(tc->dev, "no.of dsi lanes: %d\n", tc->num_dsi_lanes);
561 dev_dbg(tc->dev, "operating in %s-link mode\n",
562 tc->dual_link ? "dual" : "single");
563
564 return 0;
565 }
566

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx

Attachment: .config.gz
Description: application/gzip