All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: oe-kbuild@lists.linux.dev
Cc: lkp@intel.com, Dan Carpenter <error27@gmail.com>
Subject: Re: [PATCH v3 2/3] gpio: pcie-idio-24: Migrate to the regmap API
Date: Mon, 6 Mar 2023 06:58:09 +0800	[thread overview]
Message-ID: <202303060606.ooBzB3pr-lkp@intel.com> (raw)

BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
In-Reply-To: <278e328cd1689a4e331e7515050c12c29f2a4785.1678034378.git.william.gray@linaro.org>
References: <278e328cd1689a4e331e7515050c12c29f2a4785.1678034378.git.william.gray@linaro.org>
TO: William Breathitt Gray <william.gray@linaro.org>
TO: linus.walleij@linaro.org
TO: brgl@bgdev.pl
CC: linux-gpio@vger.kernel.org
CC: linux-kernel@vger.kernel.org
CC: broonie@kernel.org
CC: William Breathitt Gray <william.gray@linaro.org>
CC: Arnaud de Turckheim <quarium@gmail.com>
CC: John Hentges <jhentges@accesio.com>
CC: Jay Dolan <jay.dolan@accesio.com>

Hi William,

I love your patch! Perhaps something to improve:

[auto build test WARNING on 4827aae061337251bb91801b316157a78b845ec7]

url:    https://github.com/intel-lab-lkp/linux/commits/William-Breathitt-Gray/regmap-Pass-irq_drv_data-as-a-parameter-for-set_type_config/20230306-010313
base:   4827aae061337251bb91801b316157a78b845ec7
patch link:    https://lore.kernel.org/r/278e328cd1689a4e331e7515050c12c29f2a4785.1678034378.git.william.gray%40linaro.org
patch subject: [PATCH v3 2/3] gpio: pcie-idio-24: Migrate to the regmap API
:::::: branch date: 6 hours ago
:::::: commit date: 6 hours ago
config: loongarch-randconfig-m041-20230305 (https://download.01.org/0day-ci/archive/20230306/202303060606.ooBzB3pr-lkp@intel.com/config)
compiler: loongarch64-linux-gcc (GCC) 12.1.0

If you fix the issue, kindly add following tag where applicable
| Reported-by: kernel test robot <lkp@intel.com>
| Reported-by: Dan Carpenter <error27@gmail.com>
| Link: https://lore.kernel.org/r/202303060606.ooBzB3pr-lkp@intel.com/

smatch warnings:
drivers/gpio/gpio-pcie-idio-24.c:365 idio_24_probe() error: potentially dereferencing uninitialized 'idio24gpio'.

vim +/idio24gpio +365 drivers/gpio/gpio-pcie-idio-24.c

58556204662812 William Breathitt Gray 2018-01-09  329  
58556204662812 William Breathitt Gray 2018-01-09  330  static int idio_24_probe(struct pci_dev *pdev, const struct pci_device_id *id)
58556204662812 William Breathitt Gray 2018-01-09  331  {
58556204662812 William Breathitt Gray 2018-01-09  332  	struct device *const dev = &pdev->dev;
58556204662812 William Breathitt Gray 2018-01-09  333  	struct idio_24_gpio *idio24gpio;
58556204662812 William Breathitt Gray 2018-01-09  334  	int err;
10a2f11d3c9e48 Arnaud de Turckheim    2020-11-04  335  	const size_t pci_plx_bar_index = 1;
58556204662812 William Breathitt Gray 2018-01-09  336  	const size_t pci_bar_index = 2;
58556204662812 William Breathitt Gray 2018-01-09  337  	const char *const name = pci_name(pdev);
e60d5c32ff098c William Breathitt Gray 2023-03-05  338  	struct gpio_regmap_config gpio_config = {};
e60d5c32ff098c William Breathitt Gray 2023-03-05  339  	void __iomem *pex8311_intcsr;
e60d5c32ff098c William Breathitt Gray 2023-03-05  340  	void __iomem *idio_24_regs;
e60d5c32ff098c William Breathitt Gray 2023-03-05  341  	struct regmap *pex8311_intcsr_map;
e60d5c32ff098c William Breathitt Gray 2023-03-05  342  	struct regmap_irq_chip *chip;
e60d5c32ff098c William Breathitt Gray 2023-03-05  343  	struct regmap_irq_chip_data *chip_data;
58556204662812 William Breathitt Gray 2018-01-09  344  
58556204662812 William Breathitt Gray 2018-01-09  345  	err = pcim_enable_device(pdev);
58556204662812 William Breathitt Gray 2018-01-09  346  	if (err) {
58556204662812 William Breathitt Gray 2018-01-09  347  		dev_err(dev, "Failed to enable PCI device (%d)\n", err);
58556204662812 William Breathitt Gray 2018-01-09  348  		return err;
58556204662812 William Breathitt Gray 2018-01-09  349  	}
58556204662812 William Breathitt Gray 2018-01-09  350  
10a2f11d3c9e48 Arnaud de Turckheim    2020-11-04  351  	err = pcim_iomap_regions(pdev, BIT(pci_plx_bar_index) | BIT(pci_bar_index), name);
58556204662812 William Breathitt Gray 2018-01-09  352  	if (err) {
58556204662812 William Breathitt Gray 2018-01-09  353  		dev_err(dev, "Unable to map PCI I/O addresses (%d)\n", err);
58556204662812 William Breathitt Gray 2018-01-09  354  		return err;
58556204662812 William Breathitt Gray 2018-01-09  355  	}
58556204662812 William Breathitt Gray 2018-01-09  356  
e60d5c32ff098c William Breathitt Gray 2023-03-05  357  	pex8311_intcsr = pcim_iomap_table(pdev)[pci_plx_bar_index] + PLX_PEX8311_PCI_LCS_INTCSR;
e60d5c32ff098c William Breathitt Gray 2023-03-05  358  	idio_24_regs = pcim_iomap_table(pdev)[pci_bar_index];
e60d5c32ff098c William Breathitt Gray 2023-03-05  359  
e60d5c32ff098c William Breathitt Gray 2023-03-05  360  	pex8311_intcsr_map = devm_regmap_init_mmio(dev, pex8311_intcsr,
e60d5c32ff098c William Breathitt Gray 2023-03-05  361  						   &pex8311_intcsr_regmap_config);
e60d5c32ff098c William Breathitt Gray 2023-03-05  362  	if (IS_ERR(pex8311_intcsr_map))
e60d5c32ff098c William Breathitt Gray 2023-03-05  363  		return dev_err_probe(dev, PTR_ERR(pex8311_intcsr_map),
e60d5c32ff098c William Breathitt Gray 2023-03-05  364  				     "Unable to initialize PEX8311 register map\n");
e60d5c32ff098c William Breathitt Gray 2023-03-05 @365  	idio24gpio->map = devm_regmap_init_mmio(dev, idio_24_regs,
e60d5c32ff098c William Breathitt Gray 2023-03-05  366  					    &idio_24_regmap_config);
e60d5c32ff098c William Breathitt Gray 2023-03-05  367  	if (IS_ERR(idio24gpio->map))
e60d5c32ff098c William Breathitt Gray 2023-03-05  368  		return dev_err_probe(dev, PTR_ERR(idio24gpio->map),
e60d5c32ff098c William Breathitt Gray 2023-03-05  369  				     "Unable to initialize register map\n");
e60d5c32ff098c William Breathitt Gray 2023-03-05  370  
e60d5c32ff098c William Breathitt Gray 2023-03-05  371  	idio24gpio = devm_kzalloc(dev, sizeof(*idio24gpio), GFP_KERNEL);
e60d5c32ff098c William Breathitt Gray 2023-03-05  372  	if (!idio24gpio)
e60d5c32ff098c William Breathitt Gray 2023-03-05  373  		return -ENOMEM;
e60d5c32ff098c William Breathitt Gray 2023-03-05  374  
e60d5c32ff098c William Breathitt Gray 2023-03-05  375  	mutex_init(&idio24gpio->lock);
e60d5c32ff098c William Breathitt Gray 2023-03-05  376  
e60d5c32ff098c William Breathitt Gray 2023-03-05  377  	/* Initialize all IRQ type configuration to IRQ_TYPE_EDGE_BOTH */
e60d5c32ff098c William Breathitt Gray 2023-03-05  378  	idio24gpio->irq_type = GENMASK(7, 0);
e60d5c32ff098c William Breathitt Gray 2023-03-05  379  
e60d5c32ff098c William Breathitt Gray 2023-03-05  380  	chip = devm_kzalloc(dev, sizeof(*chip), GFP_KERNEL);
e60d5c32ff098c William Breathitt Gray 2023-03-05  381  	if (!chip)
e60d5c32ff098c William Breathitt Gray 2023-03-05  382  		return -ENOMEM;
e60d5c32ff098c William Breathitt Gray 2023-03-05  383  
e60d5c32ff098c William Breathitt Gray 2023-03-05  384  	chip->name = name;
e60d5c32ff098c William Breathitt Gray 2023-03-05  385  	chip->status_base = IDIO_24_COS_STATUS_BASE;
e60d5c32ff098c William Breathitt Gray 2023-03-05  386  	chip->mask_base = IDIO_24_COS_ENABLE;
e60d5c32ff098c William Breathitt Gray 2023-03-05  387  	chip->ack_base = IDIO_24_COS_STATUS_BASE;
e60d5c32ff098c William Breathitt Gray 2023-03-05  388  	chip->num_regs = 4;
e60d5c32ff098c William Breathitt Gray 2023-03-05  389  	chip->irqs = idio_24_regmap_irqs;
e60d5c32ff098c William Breathitt Gray 2023-03-05  390  	chip->num_irqs = ARRAY_SIZE(idio_24_regmap_irqs);
e60d5c32ff098c William Breathitt Gray 2023-03-05  391  	chip->handle_mask_sync = idio_24_handle_mask_sync;
e60d5c32ff098c William Breathitt Gray 2023-03-05  392  	chip->set_type_config = idio_24_set_type_config;
e60d5c32ff098c William Breathitt Gray 2023-03-05  393  	chip->irq_drv_data = idio24gpio;
58556204662812 William Breathitt Gray 2018-01-09  394  
58556204662812 William Breathitt Gray 2018-01-09  395  	/* Software board reset */
e60d5c32ff098c William Breathitt Gray 2023-03-05  396  	err = regmap_write(idio24gpio->map, IDIO_24_SOFT_RESET, 0);
e60d5c32ff098c William Breathitt Gray 2023-03-05  397  	if (err)
e60d5c32ff098c William Breathitt Gray 2023-03-05  398  		return err;
10a2f11d3c9e48 Arnaud de Turckheim    2020-11-04  399  	/*
10a2f11d3c9e48 Arnaud de Turckheim    2020-11-04  400  	 * enable PLX PEX8311 internal PCI wire interrupt and local interrupt
10a2f11d3c9e48 Arnaud de Turckheim    2020-11-04  401  	 * input
10a2f11d3c9e48 Arnaud de Turckheim    2020-11-04  402  	 */
e60d5c32ff098c William Breathitt Gray 2023-03-05  403  	err = regmap_update_bits(pex8311_intcsr_map, 0x0, IDIO_24_ENABLE_IRQ,
e60d5c32ff098c William Breathitt Gray 2023-03-05  404  				 IDIO_24_ENABLE_IRQ);
e60d5c32ff098c William Breathitt Gray 2023-03-05  405  	if (err)
58556204662812 William Breathitt Gray 2018-01-09  406  		return err;
58556204662812 William Breathitt Gray 2018-01-09  407  
e60d5c32ff098c William Breathitt Gray 2023-03-05  408  	err = devm_regmap_add_irq_chip(dev, idio24gpio->map, pdev->irq, 0, 0,
e60d5c32ff098c William Breathitt Gray 2023-03-05  409  				       chip, &chip_data);
e60d5c32ff098c William Breathitt Gray 2023-03-05  410  	if (err)
e60d5c32ff098c William Breathitt Gray 2023-03-05  411  		return dev_err_probe(dev, err, "IRQ registration failed\n");
e60d5c32ff098c William Breathitt Gray 2023-03-05  412  
e60d5c32ff098c William Breathitt Gray 2023-03-05  413  	gpio_config.parent = dev;
e60d5c32ff098c William Breathitt Gray 2023-03-05  414  	gpio_config.regmap = idio24gpio->map;
e60d5c32ff098c William Breathitt Gray 2023-03-05  415  	gpio_config.ngpio = IDIO_24_NGPIO;
e60d5c32ff098c William Breathitt Gray 2023-03-05  416  	gpio_config.names = idio_24_names;
e60d5c32ff098c William Breathitt Gray 2023-03-05  417  	gpio_config.reg_dat_base = GPIO_REGMAP_ADDR(IDIO_24_OUT_BASE);
e60d5c32ff098c William Breathitt Gray 2023-03-05  418  	gpio_config.reg_set_base = GPIO_REGMAP_ADDR(IDIO_24_OUT_BASE);
e60d5c32ff098c William Breathitt Gray 2023-03-05  419  	gpio_config.reg_dir_out_base = GPIO_REGMAP_ADDR(IDIO_24_CONTROL_REG);
e60d5c32ff098c William Breathitt Gray 2023-03-05  420  	gpio_config.ngpio_per_reg = IDIO_24_NGPIO_PER_REG;
e60d5c32ff098c William Breathitt Gray 2023-03-05  421  	gpio_config.irq_domain = regmap_irq_get_domain(chip_data);
e60d5c32ff098c William Breathitt Gray 2023-03-05  422  	gpio_config.reg_mask_xlate = idio_24_reg_mask_xlate;
e60d5c32ff098c William Breathitt Gray 2023-03-05  423  	gpio_config.drvdata = idio24gpio->map;
e60d5c32ff098c William Breathitt Gray 2023-03-05  424  
e60d5c32ff098c William Breathitt Gray 2023-03-05  425  	return PTR_ERR_OR_ZERO(devm_gpio_regmap_register(dev, &gpio_config));
58556204662812 William Breathitt Gray 2018-01-09  426  }
58556204662812 William Breathitt Gray 2018-01-09  427  

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests

             reply	other threads:[~2023-03-05 22:58 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-03-05 22:58 kernel test robot [this message]
  -- strict thread matches above, loose matches on Subject: below --
2023-03-05 17:01 [PATCH v3 0/3] Migrate the PCIe-IDIO-24 and WS16C48 GPIO drivers to the regmap API William Breathitt Gray
2023-03-05 17:01 ` [PATCH v3 2/3] gpio: pcie-idio-24: Migrate " William Breathitt Gray
2023-03-05 20:03   ` kernel test robot
2023-03-06  8:31   ` Dan Carpenter

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=202303060606.ooBzB3pr-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=error27@gmail.com \
    --cc=oe-kbuild@lists.linux.dev \
    /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.