All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: Kumaravel Thiagarajan <kumaravel.thiagarajan@microchip.com>,
	gregkh@linuxfoundation.org, jirislaby@kernel.org,
	ilpo.jarvinen@linux.intel.com, andy.shevchenko@gmail.com,
	u.kleine-koenig@pengutronix.de, johan@kernel.org,
	wander@redhat.com, etremblay@distech-controls.com,
	macro@orcam.me.uk, geert+renesas@glider.be, jk@ozlabs.org,
	phil.edworthy@renesas.com, lukas@wunner.de
Cc: kbuild-all@lists.01.org, linux-kernel@vger.kernel.org,
	linux-serial@vger.kernel.org, UNGLinuxDriver@microchip.com
Subject: Re: [PATCH v1 tty-next 1/2] 8250: microchip: pci1xxxx: Add driver for the quad-uart function in the  multi-function endpoint of pci1xxxx device.
Date: Wed, 31 Aug 2022 06:18:59 +0800	[thread overview]
Message-ID: <202208310659.5tM9wAHE-lkp@intel.com> (raw)
In-Reply-To: <20220830180054.1998296-2-kumaravel.thiagarajan@microchip.com>

Hi Kumaravel,

I love your patch! Perhaps something to improve:

[auto build test WARNING on tty/tty-testing]
[also build test WARNING on linus/master v6.0-rc3 next-20220830]
[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/Kumaravel-Thiagarajan/8250-microchip-pci1xxxx-Add-driver-for-the-pci1xxxx-s-quad-uart-function/20220831-020314
base:   https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty.git tty-testing
config: m68k-allmodconfig (https://download.01.org/0day-ci/archive/20220831/202208310659.5tM9wAHE-lkp@intel.com/config)
compiler: m68k-linux-gcc (GCC) 12.1.0
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
        # https://github.com/intel-lab-lkp/linux/commit/075ee716bd7ce075396d0539dffa4ae59e6b985a
        git remote add linux-review https://github.com/intel-lab-lkp/linux
        git fetch --no-tags linux-review Kumaravel-Thiagarajan/8250-microchip-pci1xxxx-Add-driver-for-the-pci1xxxx-s-quad-uart-function/20220831-020314
        git checkout 075ee716bd7ce075396d0539dffa4ae59e6b985a
        # save the config file
        mkdir build_dir && cp config build_dir/.config
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross W=1 O=build_dir ARCH=m68k SHELL=/bin/bash drivers/tty/serial/8250/

If you fix the issue, kindly add following tag where applicable
Reported-by: kernel test robot <lkp@intel.com>

All warnings (new ones prefixed by >>):

   drivers/tty/serial/8250/8250_pci1xxxx.c: In function 'mchp_pci1xxxx_setup':
   drivers/tty/serial/8250/8250_pci1xxxx.c:289:32: error: assignment to 'void (*)(struct uart_port *, struct ktermios *, const struct ktermios *)' from incompatible pointer type 'void (*)(struct uart_port *, struct ktermios *, struct ktermios *)' [-Werror=incompatible-pointer-types]
     289 |         port->port.set_termios = mchp_pci1xxxx_set_termios;
         |                                ^
   drivers/tty/serial/8250/8250_pci1xxxx.c: At top level:
>> drivers/tty/serial/8250/8250_pci1xxxx.c:301:6: warning: no previous prototype for 'mchp_pci1xxxx_irq_assign' [-Wmissing-prototypes]
     301 | void mchp_pci1xxxx_irq_assign(struct pci1xxxx_8250 *priv,
         |      ^~~~~~~~~~~~~~~~~~~~~~~~
   drivers/tty/serial/8250/8250_pci1xxxx.c: In function 'pci1xxxx_serial_probe':
   drivers/tty/serial/8250/8250_pci1xxxx.c:395:57: error: 'PCI_IRQ_ALL_TYPES' undeclared (first use in this function)
     395 |         num_vectors  = pci_alloc_irq_vectors(dev, 1, 4, PCI_IRQ_ALL_TYPES);
         |                                                         ^~~~~~~~~~~~~~~~~
   drivers/tty/serial/8250/8250_pci1xxxx.c:395:57: note: each undeclared identifier is reported only once for each function it appears in
   drivers/tty/serial/8250/8250_pci1xxxx.c: At top level:
>> drivers/tty/serial/8250/8250_pci1xxxx.c:459:1: warning: data definition has no type or storage class
     459 | module_pci_driver(pci1xxxx_pci_driver);
         | ^~~~~~~~~~~~~~~~~
   drivers/tty/serial/8250/8250_pci1xxxx.c:459:1: error: type defaults to 'int' in declaration of 'module_pci_driver' [-Werror=implicit-int]
>> drivers/tty/serial/8250/8250_pci1xxxx.c:459:1: warning: parameter names (without types) in function declaration
   drivers/tty/serial/8250/8250_pci1xxxx.c:452:26: warning: 'pci1xxxx_pci_driver' defined but not used [-Wunused-variable]
     452 | static struct pci_driver pci1xxxx_pci_driver = {
         |                          ^~~~~~~~~~~~~~~~~~~
   cc1: some warnings being treated as errors


vim +/mchp_pci1xxxx_irq_assign +301 drivers/tty/serial/8250/8250_pci1xxxx.c

   300	
 > 301	void mchp_pci1xxxx_irq_assign(struct pci1xxxx_8250 *priv,
   302				      struct uart_8250_port *uart, int idx)
   303	{
   304		switch (priv->dev->subsystem_device) {
   305		case PCI_SUBDEVICE_ID_MCHP_PCI1XXXX_1p0:
   306		case PCI_SUBDEVICE_ID_MCHP_PCI12000:
   307		case PCI_SUBDEVICE_ID_MCHP_PCI11010:
   308		case PCI_SUBDEVICE_ID_MCHP_PCI11101:
   309		case PCI_SUBDEVICE_ID_MCHP_PCI11400:
   310			uart->port.irq = pci_irq_vector(priv->dev, 0);
   311			break;
   312		case PCI_SUBDEVICE_ID_MCHP_PCI1XXXX_1p1:
   313			uart->port.irq = pci_irq_vector(priv->dev, 1);
   314			break;
   315		case PCI_SUBDEVICE_ID_MCHP_PCI1XXXX_1p2:
   316			uart->port.irq = pci_irq_vector(priv->dev, 2);
   317			break;
   318		case PCI_SUBDEVICE_ID_MCHP_PCI1XXXX_1p3:
   319			uart->port.irq = pci_irq_vector(priv->dev, 3);
   320			break;
   321		case PCI_SUBDEVICE_ID_MCHP_PCI1XXXX_2p01:
   322			uart->port.irq = pci_irq_vector(priv->dev, idx);
   323			break;
   324		case PCI_SUBDEVICE_ID_MCHP_PCI1XXXX_2p02:
   325			if (idx > 0)
   326				idx++;
   327			uart->port.irq = pci_irq_vector(priv->dev, idx);
   328			break;
   329		case PCI_SUBDEVICE_ID_MCHP_PCI1XXXX_2p03:
   330			if (idx > 0)
   331				idx += 2;
   332			uart->port.irq = pci_irq_vector(priv->dev, idx);
   333			break;
   334		case PCI_SUBDEVICE_ID_MCHP_PCI1XXXX_2p12:
   335			uart->port.irq = pci_irq_vector(priv->dev, idx + 1);
   336			break;
   337		case PCI_SUBDEVICE_ID_MCHP_PCI1XXXX_2p13:
   338			if (idx > 0)
   339				idx += 1;
   340			uart->port.irq = pci_irq_vector(priv->dev, idx + 1);
   341			break;
   342		case PCI_SUBDEVICE_ID_MCHP_PCI1XXXX_2p23:
   343			uart->port.irq = pci_irq_vector(priv->dev, idx + 2);
   344			break;
   345		case PCI_SUBDEVICE_ID_MCHP_PCI1XXXX_3p012:
   346			uart->port.irq = pci_irq_vector(priv->dev, idx);
   347			break;
   348		case PCI_SUBDEVICE_ID_MCHP_PCI1XXXX_3p013:
   349			if (idx > 1)
   350				idx++;
   351			uart->port.irq = pci_irq_vector(priv->dev, idx);
   352			break;
   353		case PCI_SUBDEVICE_ID_MCHP_PCI1XXXX_3p023:
   354			if (idx > 0)
   355				idx++;
   356			uart->port.irq = pci_irq_vector(priv->dev, idx);
   357			break;
   358		case PCI_SUBDEVICE_ID_MCHP_PCI1XXXX_3p123:
   359			uart->port.irq = pci_irq_vector(priv->dev, idx + 1);
   360			break;
   361		case PCI_SUBDEVICE_ID_MCHP_PCI1XXXX_4p:
   362		case PCI_SUBDEVICE_ID_MCHP_PCI11414:
   363			uart->port.irq = pci_irq_vector(priv->dev, idx);
   364			break;
   365		}
   366	}
   367	
   368	static int pci1xxxx_serial_probe(struct pci_dev *dev,
   369					 const struct pci_device_id *ent)
   370	{
   371		struct pci1xxxx_8250 *priv;
   372		struct uart_8250_port uart;
   373		unsigned int nr_ports, i;
   374		int num_vectors = 0;
   375		int rc;
   376	
   377		rc = pcim_enable_device(dev);
   378		pci_save_state(dev);
   379		if (rc)
   380			return rc;
   381	
   382		nr_ports = pci1xxxx_get_num_ports(dev);
   383	
   384		priv = devm_kzalloc(&dev->dev, struct_size(priv, line, nr_ports), GFP_KERNEL);
   385	
   386		priv->membase = pcim_iomap(dev, 0, 0);
   387		priv->dev = dev;
   388		priv->nr =  nr_ports;
   389	
   390		if (!priv)
   391			return -ENOMEM;
   392	
   393		pci_set_master(dev);
   394	
   395		num_vectors  = pci_alloc_irq_vectors(dev, 1, 4, PCI_IRQ_ALL_TYPES);
   396		if (num_vectors < 0)
   397			return rc;
   398	
   399		memset(&uart, 0, sizeof(uart));
   400		uart.port.flags = UPF_SHARE_IRQ | UPF_FIXED_TYPE | UPF_FIXED_PORT;
   401		uart.port.uartclk = 48000000;
   402		uart.port.dev = &dev->dev;
   403	
   404		if (num_vectors == 4)
   405			writeb(UART_PCI_CTRL_SET_MULTIPLE_MSI, (priv->membase + UART_PCI_CTRL_REG));
   406		else
   407			uart.port.irq = pci_irq_vector(dev, 0);
   408	
   409		for (i = 0; i < nr_ports; i++) {
   410			if (num_vectors == 4)
   411				mchp_pci1xxxx_irq_assign(priv, &uart, i);
   412			rc = mchp_pci1xxxx_setup(priv, &uart, i);
   413			if (rc) {
   414				dev_err(&dev->dev, "Failed to setup port %u\n", i);
   415				break;
   416			}
   417			priv->line[i] = serial8250_register_8250_port(&uart);
   418	
   419			if (priv->line[i] < 0) {
   420				dev_err(&dev->dev,
   421					"Couldn't register serial port %lx, irq %d, type %d, error %d\n",
   422					uart.port.iobase, uart.port.irq,
   423					uart.port.iotype, priv->line[i]);
   424				break;
   425			}
   426		}
   427	
   428		pci_set_drvdata(dev, priv);
   429	
   430		return 0;
   431	}
   432	
   433	static void pci1xxxx_serial_remove(struct pci_dev *dev)
   434	{
   435		struct pci1xxxx_8250 *priv = pci_get_drvdata(dev);
   436		int i;
   437	
   438		for (i = 0; i < priv->nr; i++)
   439			serial8250_unregister_port(priv->line[i]);
   440	}
   441	
   442	static const struct pci_device_id pci1xxxx_pci_tbl[] = {
   443		{ PCI_DEVICE(PCI_VENDOR_ID_MCHP_PCI1XXXX, PCI_DEVICE_ID_MCHP_PCI11010) },
   444		{ PCI_DEVICE(PCI_VENDOR_ID_MCHP_PCI1XXXX, PCI_DEVICE_ID_MCHP_PCI11101) },
   445		{ PCI_DEVICE(PCI_VENDOR_ID_MCHP_PCI1XXXX, PCI_DEVICE_ID_MCHP_PCI11400) },
   446		{ PCI_DEVICE(PCI_VENDOR_ID_MCHP_PCI1XXXX, PCI_DEVICE_ID_MCHP_PCI11414) },
   447		{ PCI_DEVICE(PCI_VENDOR_ID_MCHP_PCI1XXXX, PCI_DEVICE_ID_MCHP_PCI12000) },
   448		{0,}
   449	};
   450	MODULE_DEVICE_TABLE(pci, pci1xxxx_pci_tbl);
   451	
   452	static struct pci_driver pci1xxxx_pci_driver = {
   453		.name		= "pci1xxxx serial",
   454		.probe		= pci1xxxx_serial_probe,
   455		.remove	= pci1xxxx_serial_remove,
   456		.id_table	= pci1xxxx_pci_tbl,
   457	};
   458	
 > 459	module_pci_driver(pci1xxxx_pci_driver);
   460	

-- 
0-DAY CI Kernel Test Service
https://01.org/lkp

  parent reply	other threads:[~2022-08-30 22:27 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-08-30 18:00 [PATCH v1 tty-next 0/2] 8250: microchip: pci1xxxx: Add driver for the pci1xxxx's quad-uart function Kumaravel Thiagarajan
2022-08-30 18:00 ` [PATCH v1 tty-next 1/2] 8250: microchip: pci1xxxx: Add driver for the quad-uart function in the multi-function endpoint of pci1xxxx device Kumaravel Thiagarajan
2022-08-30 19:53   ` Andy Shevchenko
2022-09-01 13:33     ` Kumaravel.Thiagarajan
2022-09-01 13:41       ` Ilpo Järvinen
2022-09-02 11:57         ` Kumaravel.Thiagarajan
2022-09-02 15:02           ` Andy Shevchenko
2022-09-05 12:01             ` Kumaravel.Thiagarajan
2022-08-30 19:58   ` Geert Uytterhoeven
2022-09-01 14:09     ` Kumaravel.Thiagarajan
2022-08-30 22:18   ` kernel test robot [this message]
2022-08-30 22:29   ` kernel test robot
2022-08-31  9:42   ` Ilpo Järvinen
2022-09-01 14:21     ` Kumaravel.Thiagarajan
2022-08-30 18:00 ` [PATCH v1 tty-next 2/2] 8250: microchip: pci1xxxx: Add power management functions to pci1xxxx's quad-uart driver Kumaravel Thiagarajan
2022-08-30 19:56   ` Andy Shevchenko
2022-09-01 13:49     ` Kumaravel.Thiagarajan
2022-09-29  9:34       ` Kumaravel.Thiagarajan
2022-08-30 23:00   ` kernel test robot
2022-08-31  9:53   ` Ilpo Järvinen
2022-09-02  2:20     ` Kumaravel.Thiagarajan

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=202208310659.5tM9wAHE-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=UNGLinuxDriver@microchip.com \
    --cc=andy.shevchenko@gmail.com \
    --cc=etremblay@distech-controls.com \
    --cc=geert+renesas@glider.be \
    --cc=gregkh@linuxfoundation.org \
    --cc=ilpo.jarvinen@linux.intel.com \
    --cc=jirislaby@kernel.org \
    --cc=jk@ozlabs.org \
    --cc=johan@kernel.org \
    --cc=kbuild-all@lists.01.org \
    --cc=kumaravel.thiagarajan@microchip.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-serial@vger.kernel.org \
    --cc=lukas@wunner.de \
    --cc=macro@orcam.me.uk \
    --cc=phil.edworthy@renesas.com \
    --cc=u.kleine-koenig@pengutronix.de \
    --cc=wander@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.