Re: [PATCH v6 11/12] tty: serial: Add Nuvoton ma35d1 serial driver support

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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



[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]


  Powered by Linux