From: kernel test robot <lkp@intel.com>
To: oe-kbuild@lists.linux.dev
Cc: lkp@intel.com, Julia Lawall <julia.lawall@inria.fr>
Subject: [jic23-iio:testing 24/308] drivers/iio/accel/mma8452.c:1680:8-28: WARNING: Threaded IRQ with no primary handler requested without IRQF_ONESHOT (unless it is nested IRQ)
Date: Sun, 15 Nov 2026 09:43:44 +0100 [thread overview]
Message-ID: <202611150958.553wHmYA-lkp@intel.com> (raw)
BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
TO: Esben Haabendal <esben@geanix.com>
CC: Jonathan Cameron <jonathan.cameron@oss.qualcomm.com>
CC: Andy Shevchenko <andriy.shevchenko@intel.com>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio.git testing
head: 94921bc9eb214f838481faa847cda5c42e486013
commit: 5883de8ce9d5d7b29c8da7401e2e92de702ab441 [24/308] iio: accel: mma8452: Only apply trigger type when not set by firmware
:::::: branch date: 7 hours ago
:::::: commit date: 13 days ago
config: x86_64-randconfig-2104-20261115 (https://download.01.org/0day-ci/archive/20261115/202611150958.553wHmYA-lkp@intel.com/config)
compiler: gcc-14 (Debian 14.2.0-19) 14.2.0
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Reported-by: Julia Lawall <julia.lawall@inria.fr>
| Closes: https://lore.kernel.org/r/202611150958.553wHmYA-lkp@intel.com/
cocci warnings: (new ones prefixed by >>)
>> drivers/iio/accel/mma8452.c:1680:8-28: WARNING: Threaded IRQ with no primary handler requested without IRQF_ONESHOT (unless it is nested IRQ)
vim +1680 drivers/iio/accel/mma8452.c
c3cdd6e48e35b7 Martin Kepplinger 2015-09-01 1545
226d6dbac88336 Uwe Kleine-König 2022-11-18 1546 static int mma8452_probe(struct i2c_client *client)
c7eeea93ac60ab Peter Meerwald 2014-02-05 1547 {
32a5c04d457540 Sanjay Chitroda 2026-05-05 1548 struct device *dev = &client->dev;
c7eeea93ac60ab Peter Meerwald 2014-02-05 1549 struct mma8452_data *data;
c7eeea93ac60ab Peter Meerwald 2014-02-05 1550 struct iio_dev *indio_dev;
c7eeea93ac60ab Peter Meerwald 2014-02-05 1551 int ret;
c3cdd6e48e35b7 Martin Kepplinger 2015-09-01 1552
a47a45567852ad Sanjay Chitroda 2026-08-08 1553 indio_dev = devm_iio_device_alloc(dev, sizeof(*data));
c7eeea93ac60ab Peter Meerwald 2014-02-05 1554 if (!indio_dev)
c7eeea93ac60ab Peter Meerwald 2014-02-05 1555 return -ENOMEM;
c7eeea93ac60ab Peter Meerwald 2014-02-05 1556
c7eeea93ac60ab Peter Meerwald 2014-02-05 1557 data = iio_priv(indio_dev);
c7eeea93ac60ab Peter Meerwald 2014-02-05 1558 data->client = client;
c7eeea93ac60ab Peter Meerwald 2014-02-05 1559 mutex_init(&data->lock);
a47ac019e7e812 Hans de Goede 2022-02-08 1560
0f8eaeda7659d0 Biju Das 2023-08-18 1561 data->chip_info = i2c_get_match_data(client);
0f8eaeda7659d0 Biju Das 2023-08-18 1562 if (!data->chip_info)
a47a45567852ad Sanjay Chitroda 2026-08-08 1563 return dev_err_probe(dev, -ENODEV, "unknown device model\n");
c3cdd6e48e35b7 Martin Kepplinger 2015-09-01 1564
a47a45567852ad Sanjay Chitroda 2026-08-08 1565 ret = iio_read_mount_matrix(dev, &data->orientation);
b863f2e3a83f99 Hans de Goede 2022-02-08 1566 if (ret)
b863f2e3a83f99 Hans de Goede 2022-02-08 1567 return ret;
b863f2e3a83f99 Hans de Goede 2022-02-08 1568
37fbab78f94fce Sanjay Chitroda 2026-08-08 1569 data->regs[0].supply = "vdd";
37fbab78f94fce Sanjay Chitroda 2026-08-08 1570 data->regs[1].supply = "vddio";
37fbab78f94fce Sanjay Chitroda 2026-08-08 1571 ret = devm_regulator_bulk_get(dev, ARRAY_SIZE(data->regs), data->regs);
32a5c04d457540 Sanjay Chitroda 2026-05-05 1572 if (ret)
37fbab78f94fce Sanjay Chitroda 2026-08-08 1573 return dev_err_probe(dev, ret, "failed to get regulators\n");
f6ff49b8a3b6f7 Anson Huang 2019-01-08 1574
37fbab78f94fce Sanjay Chitroda 2026-08-08 1575 ret = regulator_bulk_enable(ARRAY_SIZE(data->regs), data->regs);
37fbab78f94fce Sanjay Chitroda 2026-08-08 1576 if (ret)
37fbab78f94fce Sanjay Chitroda 2026-08-08 1577 return dev_err_probe(dev, ret, "failed to enable regulators\n");
f6ff49b8a3b6f7 Anson Huang 2019-01-08 1578
417e008ba9db7c Martin Kepplinger 2015-09-01 1579 ret = i2c_smbus_read_byte_data(client, MMA8452_WHO_AM_I);
417e008ba9db7c Martin Kepplinger 2015-09-01 1580 if (ret < 0)
f6ff49b8a3b6f7 Anson Huang 2019-01-08 1581 goto disable_regulators;
417e008ba9db7c Martin Kepplinger 2015-09-01 1582
417e008ba9db7c Martin Kepplinger 2015-09-01 1583 switch (ret) {
244a93f651937a Martin Kepplinger 2016-01-16 1584 case MMA8451_DEVICE_ID:
417e008ba9db7c Martin Kepplinger 2015-09-01 1585 case MMA8452_DEVICE_ID:
417e008ba9db7c Martin Kepplinger 2015-09-01 1586 case MMA8453_DEVICE_ID:
417e008ba9db7c Martin Kepplinger 2015-09-01 1587 case MMA8652_DEVICE_ID:
417e008ba9db7c Martin Kepplinger 2015-09-01 1588 case MMA8653_DEVICE_ID:
e8731180fbf6fd Martin Kepplinger 2016-03-09 1589 case FXLS8471_DEVICE_ID:
417e008ba9db7c Martin Kepplinger 2015-09-01 1590 if (ret == data->chip_info->chip_id)
417e008ba9db7c Martin Kepplinger 2015-09-01 1591 break;
df561f6688fef7 Gustavo A. R. Silva 2020-08-23 1592 fallthrough;
417e008ba9db7c Martin Kepplinger 2015-09-01 1593 default:
f6ff49b8a3b6f7 Anson Huang 2019-01-08 1594 ret = -ENODEV;
f6ff49b8a3b6f7 Anson Huang 2019-01-08 1595 goto disable_regulators;
417e008ba9db7c Martin Kepplinger 2015-09-01 1596 }
417e008ba9db7c Martin Kepplinger 2015-09-01 1597
a47a45567852ad Sanjay Chitroda 2026-08-08 1598 dev_info(dev, "registering %s accelerometer; ID 0x%x\n",
a47ac019e7e812 Hans de Goede 2022-02-08 1599 data->chip_info->name, data->chip_info->chip_id);
c7eeea93ac60ab Peter Meerwald 2014-02-05 1600
c7eeea93ac60ab Peter Meerwald 2014-02-05 1601 i2c_set_clientdata(client, indio_dev);
c7eeea93ac60ab Peter Meerwald 2014-02-05 1602 indio_dev->info = &mma8452_info;
a47ac019e7e812 Hans de Goede 2022-02-08 1603 indio_dev->name = data->chip_info->name;
c7eeea93ac60ab Peter Meerwald 2014-02-05 1604 indio_dev->modes = INDIO_DIRECT_MODE;
c3cdd6e48e35b7 Martin Kepplinger 2015-09-01 1605 indio_dev->channels = data->chip_info->channels;
c3cdd6e48e35b7 Martin Kepplinger 2015-09-01 1606 indio_dev->num_channels = data->chip_info->num_channels;
c7eeea93ac60ab Peter Meerwald 2014-02-05 1607 indio_dev->available_scan_masks = mma8452_scan_masks;
c7eeea93ac60ab Peter Meerwald 2014-02-05 1608
ecabae71319695 Martin Fuzzey 2015-05-13 1609 ret = mma8452_reset(client);
c7eeea93ac60ab Peter Meerwald 2014-02-05 1610 if (ret < 0)
f6ff49b8a3b6f7 Anson Huang 2019-01-08 1611 goto disable_regulators;
c7eeea93ac60ab Peter Meerwald 2014-02-05 1612
c7eeea93ac60ab Peter Meerwald 2014-02-05 1613 data->data_cfg = MMA8452_DATA_CFG_FS_2G;
c7eeea93ac60ab Peter Meerwald 2014-02-05 1614 ret = i2c_smbus_write_byte_data(client, MMA8452_DATA_CFG,
c7eeea93ac60ab Peter Meerwald 2014-02-05 1615 data->data_cfg);
c7eeea93ac60ab Peter Meerwald 2014-02-05 1616 if (ret < 0)
f6ff49b8a3b6f7 Anson Huang 2019-01-08 1617 goto disable_regulators;
c7eeea93ac60ab Peter Meerwald 2014-02-05 1618
28e3427824ccc8 Martin Fuzzey 2015-06-01 1619 /*
28e3427824ccc8 Martin Fuzzey 2015-06-01 1620 * By default set transient threshold to max to avoid events if
28e3427824ccc8 Martin Fuzzey 2015-06-01 1621 * enabling without configuring threshold.
28e3427824ccc8 Martin Fuzzey 2015-06-01 1622 */
28e3427824ccc8 Martin Fuzzey 2015-06-01 1623 ret = i2c_smbus_write_byte_data(client, MMA8452_TRANSIENT_THS,
28e3427824ccc8 Martin Fuzzey 2015-06-01 1624 MMA8452_TRANSIENT_THS_MASK);
28e3427824ccc8 Martin Fuzzey 2015-06-01 1625 if (ret < 0)
f6ff49b8a3b6f7 Anson Huang 2019-01-08 1626 goto disable_regulators;
28e3427824ccc8 Martin Fuzzey 2015-06-01 1627
28e3427824ccc8 Martin Fuzzey 2015-06-01 1628 if (client->irq) {
d2a3e0931a8f3b Martin Kepplinger 2015-10-15 1629 int irq2;
28e3427824ccc8 Martin Fuzzey 2015-06-01 1630
a47a45567852ad Sanjay Chitroda 2026-08-08 1631 irq2 = fwnode_irq_get_byname(dev_fwnode(dev), "INT2");
d2a3e0931a8f3b Martin Kepplinger 2015-10-15 1632
d2a3e0931a8f3b Martin Kepplinger 2015-10-15 1633 if (irq2 == client->irq) {
a47a45567852ad Sanjay Chitroda 2026-08-08 1634 dev_dbg(dev, "using interrupt line INT2\n");
d2a3e0931a8f3b Martin Kepplinger 2015-10-15 1635 } else {
28e3427824ccc8 Martin Fuzzey 2015-06-01 1636 ret = i2c_smbus_write_byte_data(client,
28e3427824ccc8 Martin Fuzzey 2015-06-01 1637 MMA8452_CTRL_REG5,
605f72de137ad9 Harinath Nampally 2017-09-09 1638 data->chip_info->all_events);
28e3427824ccc8 Martin Fuzzey 2015-06-01 1639 if (ret < 0)
f6ff49b8a3b6f7 Anson Huang 2019-01-08 1640 goto disable_regulators;
28e3427824ccc8 Martin Fuzzey 2015-06-01 1641
a47a45567852ad Sanjay Chitroda 2026-08-08 1642 dev_dbg(dev, "using interrupt line INT1\n");
d2a3e0931a8f3b Martin Kepplinger 2015-10-15 1643 }
d2a3e0931a8f3b Martin Kepplinger 2015-10-15 1644
28e3427824ccc8 Martin Fuzzey 2015-06-01 1645 ret = i2c_smbus_write_byte_data(client,
28e3427824ccc8 Martin Fuzzey 2015-06-01 1646 MMA8452_CTRL_REG4,
605f72de137ad9 Harinath Nampally 2017-09-09 1647 data->chip_info->enabled_events);
ae6d9ce05691bf Martin Fuzzey 2015-06-01 1648 if (ret < 0)
f6ff49b8a3b6f7 Anson Huang 2019-01-08 1649 goto disable_regulators;
ae6d9ce05691bf Martin Fuzzey 2015-06-01 1650
ae6d9ce05691bf Martin Fuzzey 2015-06-01 1651 ret = mma8452_trigger_setup(indio_dev);
28e3427824ccc8 Martin Fuzzey 2015-06-01 1652 if (ret < 0)
f6ff49b8a3b6f7 Anson Huang 2019-01-08 1653 goto disable_regulators;
28e3427824ccc8 Martin Fuzzey 2015-06-01 1654 }
28e3427824ccc8 Martin Fuzzey 2015-06-01 1655
ecabae71319695 Martin Fuzzey 2015-05-13 1656 data->ctrl_reg1 = MMA8452_CTRL_ACTIVE |
ecabae71319695 Martin Fuzzey 2015-05-13 1657 (MMA8452_CTRL_DR_DEFAULT << MMA8452_CTRL_DR_SHIFT);
a45d1238870446 Richard Tresidder 2018-05-11 1658
a45d1238870446 Richard Tresidder 2018-05-11 1659 data->sleep_val = mma8452_calculate_sleep(data);
a45d1238870446 Richard Tresidder 2018-05-11 1660
ecabae71319695 Martin Fuzzey 2015-05-13 1661 ret = i2c_smbus_write_byte_data(client, MMA8452_CTRL_REG1,
ecabae71319695 Martin Fuzzey 2015-05-13 1662 data->ctrl_reg1);
ecabae71319695 Martin Fuzzey 2015-05-13 1663 if (ret < 0)
ae6d9ce05691bf Martin Fuzzey 2015-06-01 1664 goto trigger_cleanup;
ecabae71319695 Martin Fuzzey 2015-05-13 1665
c7eeea93ac60ab Peter Meerwald 2014-02-05 1666 ret = iio_triggered_buffer_setup(indio_dev, NULL,
c7eeea93ac60ab Peter Meerwald 2014-02-05 1667 mma8452_trigger_handler, NULL);
c7eeea93ac60ab Peter Meerwald 2014-02-05 1668 if (ret < 0)
ae6d9ce05691bf Martin Fuzzey 2015-06-01 1669 goto trigger_cleanup;
c7eeea93ac60ab Peter Meerwald 2014-02-05 1670
28e3427824ccc8 Martin Fuzzey 2015-06-01 1671 if (client->irq) {
5883de8ce9d5d7 Esben Haabendal 2026-09-28 1672 unsigned long irq_flags;
5883de8ce9d5d7 Esben Haabendal 2026-09-28 1673
5883de8ce9d5d7 Esben Haabendal 2026-09-28 1674 irq_flags = irq_get_trigger_type(client->irq);
5883de8ce9d5d7 Esben Haabendal 2026-09-28 1675 if (irq_flags == IRQ_TYPE_NONE) {
5883de8ce9d5d7 Esben Haabendal 2026-09-28 1676 dev_info(dev, "invalid irq type, setting default active low\n");
5883de8ce9d5d7 Esben Haabendal 2026-09-28 1677 irq_flags = IRQF_TRIGGER_LOW;
5883de8ce9d5d7 Esben Haabendal 2026-09-28 1678 }
5883de8ce9d5d7 Esben Haabendal 2026-09-28 1679 irq_flags |= IRQF_ONESHOT;
0a6726ec20cd4c Sanjay Chitroda 2026-05-05 @1680 ret = request_threaded_irq(client->irq, NULL, mma8452_interrupt,
5883de8ce9d5d7 Esben Haabendal 2026-09-28 1681 irq_flags, client->name, indio_dev);
28e3427824ccc8 Martin Fuzzey 2015-06-01 1682 if (ret)
28e3427824ccc8 Martin Fuzzey 2015-06-01 1683 goto buffer_cleanup;
28e3427824ccc8 Martin Fuzzey 2015-06-01 1684 }
28e3427824ccc8 Martin Fuzzey 2015-06-01 1685
a47a45567852ad Sanjay Chitroda 2026-08-08 1686 ret = pm_runtime_set_active(dev);
96c0cb2bbfe0a5 Martin Kepplinger 2016-03-03 1687 if (ret < 0)
0a6726ec20cd4c Sanjay Chitroda 2026-05-05 1688 goto free_irq;
96c0cb2bbfe0a5 Martin Kepplinger 2016-03-03 1689
a47a45567852ad Sanjay Chitroda 2026-08-08 1690 pm_runtime_enable(dev);
a47a45567852ad Sanjay Chitroda 2026-08-08 1691 pm_runtime_set_autosuspend_delay(dev, MMA8452_AUTO_SUSPEND_DELAY_MS);
a47a45567852ad Sanjay Chitroda 2026-08-08 1692 pm_runtime_use_autosuspend(dev);
96c0cb2bbfe0a5 Martin Kepplinger 2016-03-03 1693
c7eeea93ac60ab Peter Meerwald 2014-02-05 1694 ret = iio_device_register(indio_dev);
c7eeea93ac60ab Peter Meerwald 2014-02-05 1695 if (ret < 0)
49ff01e1519f86 Esben Haabendal 2026-09-28 1696 goto runtime_suspend;
28e3427824ccc8 Martin Fuzzey 2015-06-01 1697
4b04266abe3ea0 Martin Kepplinger 2016-01-16 1698 ret = mma8452_set_freefall_mode(data, false);
1a965d405fc6f6 Bijosh Thykkoottathil 2016-07-04 1699 if (ret < 0)
d7369ae1f4d7cf Chuhong Yuan 2020-05-28 1700 goto unregister_device;
4b04266abe3ea0 Martin Kepplinger 2016-01-16 1701
c7eeea93ac60ab Peter Meerwald 2014-02-05 1702 return 0;
c7eeea93ac60ab Peter Meerwald 2014-02-05 1703
d7369ae1f4d7cf Chuhong Yuan 2020-05-28 1704 unregister_device:
d7369ae1f4d7cf Chuhong Yuan 2020-05-28 1705 iio_device_unregister(indio_dev);
d7369ae1f4d7cf Chuhong Yuan 2020-05-28 1706
49ff01e1519f86 Esben Haabendal 2026-09-28 1707 runtime_suspend:
49ff01e1519f86 Esben Haabendal 2026-09-28 1708 pm_runtime_disable(dev);
49ff01e1519f86 Esben Haabendal 2026-09-28 1709 pm_runtime_set_suspended(dev);
49ff01e1519f86 Esben Haabendal 2026-09-28 1710
0a6726ec20cd4c Sanjay Chitroda 2026-05-05 1711 free_irq:
0a6726ec20cd4c Sanjay Chitroda 2026-05-05 1712 if (client->irq)
0a6726ec20cd4c Sanjay Chitroda 2026-05-05 1713 free_irq(client->irq, indio_dev);
0a6726ec20cd4c Sanjay Chitroda 2026-05-05 1714
c7eeea93ac60ab Peter Meerwald 2014-02-05 1715 buffer_cleanup:
c7eeea93ac60ab Peter Meerwald 2014-02-05 1716 iio_triggered_buffer_cleanup(indio_dev);
ae6d9ce05691bf Martin Fuzzey 2015-06-01 1717
ae6d9ce05691bf Martin Fuzzey 2015-06-01 1718 trigger_cleanup:
ae6d9ce05691bf Martin Fuzzey 2015-06-01 1719 mma8452_trigger_cleanup(indio_dev);
ae6d9ce05691bf Martin Fuzzey 2015-06-01 1720
f6ff49b8a3b6f7 Anson Huang 2019-01-08 1721 disable_regulators:
37fbab78f94fce Sanjay Chitroda 2026-08-08 1722 regulator_bulk_disable(ARRAY_SIZE(data->regs), data->regs);
f6ff49b8a3b6f7 Anson Huang 2019-01-08 1723
c7eeea93ac60ab Peter Meerwald 2014-02-05 1724 return ret;
c7eeea93ac60ab Peter Meerwald 2014-02-05 1725 }
c7eeea93ac60ab Peter Meerwald 2014-02-05 1726
:::::: The code at line 1680 was first introduced by commit
:::::: 0a6726ec20cd4c0101f2de0ca485a11676224dea iio: accel: mma8452: switch to non-devm request_threaded_irq()
:::::: TO: Sanjay Chitroda <sanjayembeddedse@gmail.com>
:::::: CC: Jonathan Cameron <jic23@kernel.org>
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
reply other threads:[~2026-11-15 8:44 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
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=202611150958.553wHmYA-lkp@intel.com \
--to=lkp@intel.com \
--cc=julia.lawall@inria.fr \
--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.