Hi Jacky, Thank you for the patch! Perhaps something to improve: [auto build test WARNING on robh/for-next] [also build test WARNING on clk/clk-next linus/master] [cannot apply to pza/reset/next pza/imx-drm/next] [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/Jacky-Huang/arm64-Kconfig-platforms-Add-config-for-Nuvoton-MA35-platform/20230328-102245 base: https://git.kernel.org/pub/scm/linux/kernel/git/robh/linux.git for-next patch link: https://lore.kernel.org/r/20230328021912.177301-12-ychuang570808%40gmail.com patch subject: [PATCH v6 11/12] tty: serial: Add Nuvoton ma35d1 serial driver support config: powerpc-allyesconfig (https://download.01.org/0day-ci/archive/20230331/202303310829.6uVozWbB-lkp@xxxxxxxxx/config) compiler: clang version 17.0.0 (https://github.com/llvm/llvm-project 67409911353323ca5edf2049ef0df54132fa1ca7) 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 powerpc cross compiling tool for clang build # apt-get install binutils-powerpc-linux-gnu # https://github.com/intel-lab-lkp/linux/commit/380d83a62e873855024ca4c660865c654a62748a git remote add linux-review https://github.com/intel-lab-lkp/linux git fetch --no-tags linux-review Jacky-Huang/arm64-Kconfig-platforms-Add-config-for-Nuvoton-MA35-platform/20230328-102245 git checkout 380d83a62e873855024ca4c660865c654a62748a # 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=powerpc olddefconfig COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=powerpc SHELL=/bin/bash drivers/tty/serial/ 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/202303310829.6uVozWbB-lkp@xxxxxxxxx/ All warnings (new ones prefixed by >>): >> drivers/tty/serial/ma35d1_serial.c:672:6: warning: variable 'ret' is used uninitialized whenever 'if' condition is false [-Wsometimes-uninitialized] if (pdev->dev.of_node) { ^~~~~~~~~~~~~~~~~ drivers/tty/serial/ma35d1_serial.c:679:27: note: uninitialized use occurs here up = &ma35d1serial_ports[ret]; ^~~ drivers/tty/serial/ma35d1_serial.c:672:2: note: remove the 'if' if its condition is always true if (pdev->dev.of_node) { ^~~~~~~~~~~~~~~~~~~~~~~ drivers/tty/serial/ma35d1_serial.c:668:9: note: initialize the variable 'ret' to silence this warning int ret; ^ = 0 >> drivers/tty/serial/ma35d1_serial.c:730:6: warning: variable 'i' is used uninitialized whenever 'if' condition is false [-Wsometimes-uninitialized] if (dev->dev.of_node) ^~~~~~~~~~~~~~~~ drivers/tty/serial/ma35d1_serial.c:732:6: note: uninitialized use occurs here if (i < 0) { ^ drivers/tty/serial/ma35d1_serial.c:730:2: note: remove the 'if' if its condition is always true if (dev->dev.of_node) ^~~~~~~~~~~~~~~~~~~~~ drivers/tty/serial/ma35d1_serial.c:727:7: note: initialize the variable 'i' to silence this warning int i; ^ = 0 drivers/tty/serial/ma35d1_serial.c:750:6: warning: variable 'i' is used uninitialized whenever 'if' condition is false [-Wsometimes-uninitialized] if (dev->dev.of_node) ^~~~~~~~~~~~~~~~ drivers/tty/serial/ma35d1_serial.c:752:6: note: uninitialized use occurs here if (i < 0) { ^ drivers/tty/serial/ma35d1_serial.c:750:2: note: remove the 'if' if its condition is always true if (dev->dev.of_node) ^~~~~~~~~~~~~~~~~~~~~ drivers/tty/serial/ma35d1_serial.c:747:7: note: initialize the variable 'i' to silence this warning int i; ^ = 0 3 warnings generated. vim +672 drivers/tty/serial/ma35d1_serial.c 658 659 /* 660 * Register a set of serial devices attached to a platform device. 661 * The list is terminated with a zero flags entry, which means we expect 662 * all entries to have at least UPF_BOOT_AUTOCONF set. 663 */ 664 static int ma35d1serial_probe(struct platform_device *pdev) 665 { 666 struct resource *res_mem; 667 struct uart_ma35d1_port *up; 668 int ret; 669 struct clk *clk; 670 int err; 671 > 672 if (pdev->dev.of_node) { 673 ret = of_alias_get_id(pdev->dev.of_node, "serial"); 674 if (ret < 0) { 675 dev_err(&pdev->dev, "failed to get alias/pdev id, errno %d\n", ret); 676 return ret; 677 } 678 } 679 up = &ma35d1serial_ports[ret]; 680 up->port.line = ret; 681 res_mem = platform_get_resource(pdev, IORESOURCE_MEM, 0); 682 if (!res_mem) 683 return -ENODEV; 684 685 up->port.iobase = res_mem->start; 686 up->port.membase = ioremap(up->port.iobase, UART_REG_SIZE); 687 up->port.ops = &ma35d1serial_ops; 688 689 spin_lock_init(&up->port.lock); 690 691 clk = of_clk_get(pdev->dev.of_node, 0); 692 if (IS_ERR(clk)) { 693 err = PTR_ERR(clk); 694 dev_err(&pdev->dev, "failed to get core clk: %d\n", err); 695 return -ENOENT; 696 } 697 err = clk_prepare_enable(clk); 698 if (err) 699 return -ENOENT; 700 701 if (up->port.line != 0) 702 up->port.uartclk = clk_get_rate(clk); 703 up->port.irq = platform_get_irq(pdev, 0); 704 up->port.dev = &pdev->dev; 705 up->port.flags = UPF_BOOT_AUTOCONF; 706 ret = uart_add_one_port(&ma35d1serial_reg, &up->port); 707 platform_set_drvdata(pdev, up); 708 return 0; 709 } 710 711 /* 712 * Remove serial ports registered against a platform device. 713 */ 714 static int ma35d1serial_remove(struct platform_device *dev) 715 { 716 struct uart_port *port = platform_get_drvdata(dev); 717 718 if (port) { 719 uart_remove_one_port(&ma35d1serial_reg, port); 720 free_irq(port->irq, port); 721 } 722 return 0; 723 } 724 725 static int ma35d1serial_suspend(struct platform_device *dev, pm_message_t state) 726 { 727 int i; 728 struct uart_ma35d1_port *up; 729 > 730 if (dev->dev.of_node) 731 i = of_alias_get_id(dev->dev.of_node, "serial"); 732 if (i < 0) { 733 dev_err(&dev->dev, "failed to get alias/pdev id, errno %d\n", i); 734 return i; 735 } 736 up = &ma35d1serial_ports[i]; 737 if (i == 0) { 738 up->console_baud_rate = serial_in(up, UART_REG_BAUD); 739 up->console_line = serial_in(up, UART_REG_LCR); 740 up->console_int = serial_in(up, UART_REG_IER); 741 } 742 return 0; 743 } 744 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests