Re: [PATCH v11 1/2] mfd: bd71837: mfd driver for ROHM BD71837 PMIC

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

 



Hi Matti,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on ljones-mfd/for-mfd-next]
[also build test WARNING on v4.18-rc7 next-20180802]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url:    https://github.com/0day-ci/linux/commits/Matti-Vaittinen/mfd-bd71837-mfd-driver-for-ROHM-BD71837-PMIC/20180730-204810
base:   https://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd.git for-mfd-next

smatch warnings:
drivers/mfd/rohm-bd718x7.c:163 bd71837_i2c_probe() warn: unsigned 'button.irq' is never less than zero.

vim +163 drivers/mfd/rohm-bd718x7.c

    88	
    89	static int bd71837_i2c_probe(struct i2c_client *i2c,
    90				    const struct i2c_device_id *id)
    91	{
    92		struct bd71837 *bd71837;
    93		int ret, i;
    94		unsigned int val;
    95	
    96		bd71837 = devm_kzalloc(&i2c->dev, sizeof(struct bd71837), GFP_KERNEL);
    97	
    98		if (!bd71837)
    99			return -ENOMEM;
   100	
   101		bd71837->chip_irq = i2c->irq;
   102	
   103		if (!bd71837->chip_irq) {
   104			dev_err(&i2c->dev, "No IRQ configured\n");
   105			return -EINVAL;
   106		}
   107	
   108		bd71837->dev = &i2c->dev;
   109		dev_set_drvdata(&i2c->dev, bd71837);
   110	
   111		bd71837->regmap = devm_regmap_init_i2c(i2c, &bd71837_regmap_config);
   112		if (IS_ERR(bd71837->regmap)) {
   113			dev_err(&i2c->dev, "regmap initialization failed\n");
   114			return PTR_ERR(bd71837->regmap);
   115		}
   116	
   117		ret = regmap_read(bd71837->regmap, BD71837_REG_REV, &val);
   118		if (ret) {
   119			dev_err(&i2c->dev, "Read BD71837_REG_DEVICE failed\n");
   120			return ret;
   121		}
   122		for (i = 0; i < ARRAY_SIZE(supported_revisions); i++)
   123			if (supported_revisions[i] == val)
   124				break;
   125	
   126		if (i == ARRAY_SIZE(supported_revisions)) {
   127			dev_err(&i2c->dev, "Unsupported chip revision\n");
   128			return -ENODEV;
   129		}
   130	
   131		ret = devm_regmap_add_irq_chip(&i2c->dev, bd71837->regmap,
   132					       bd71837->chip_irq, IRQF_ONESHOT, 0,
   133					       &bd71837_irq_chip, &bd71837->irq_data);
   134		if (ret) {
   135			dev_err(&i2c->dev, "Failed to add irq_chip\n");
   136			return ret;
   137		}
   138	
   139		/* Configure short press to 10 milliseconds */
   140		ret = regmap_update_bits(bd71837->regmap,
   141					 BD71837_REG_PWRONCONFIG0,
   142					 BD718XX_PWRBTN_PRESS_DURATION_MASK,
   143					 BD718XX_PWRBTN_SHORT_PRESS_10MS);
   144		if (ret) {
   145			dev_err(&i2c->dev, "Failed to configure button short press timeout\n");
   146			return ret;
   147		}
   148	
   149		/* Configure long press to 10 seconds */
   150		ret = regmap_update_bits(bd71837->regmap,
   151					 BD71837_REG_PWRONCONFIG1,
   152					 BD718XX_PWRBTN_PRESS_DURATION_MASK,
   153					 BD718XX_PWRBTN_LONG_PRESS_10S);
   154	
   155		if (ret) {
   156			dev_err(&i2c->dev, "Failed to configure button long press timeout\n");
   157			return ret;
   158		}
   159	
   160		button.irq = regmap_irq_get_virq(bd71837->irq_data,
   161						  BD71837_INT_PWRBTN_S);
   162	
 > 163		if (button.irq < 0) {
   164			dev_err(&i2c->dev, "Failed to get the IRQ\n");
   165			return button.irq;
   166		}
   167	
   168		ret = devm_mfd_add_devices(bd71837->dev, PLATFORM_DEVID_AUTO,
   169					   bd71837_mfd_cells,
   170					   ARRAY_SIZE(bd71837_mfd_cells), NULL, 0,
   171					   regmap_irq_get_domain(bd71837->irq_data));
   172		if (ret)
   173			dev_err(&i2c->dev, "Failed to create subdevices\n");
   174	
   175		return ret;
   176	}
   177	

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[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