From: kernel test robot <lkp@intel.com>
To: oe-kbuild@lists.linux.dev
Cc: lkp@intel.com, Julia Lawall <julia.lawall@inria.fr>
Subject: drivers/regulator/pf0900-regulator.c:891:7-32: WARNING: Threaded IRQ with no primary handler requested without IRQF_ONESHOT (unless it is nested IRQ)
Date: Fri, 10 Jul 2026 22:04:51 +0800 [thread overview]
Message-ID: <202607102135.ba4qDt1l-lkp@intel.com> (raw)
BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
CC: linux-kernel@vger.kernel.org
TO: Joy Zou <joy.zou@nxp.com>
CC: Mark Brown <broonie@kernel.org>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: a635d6748234582ea287c5ffeae28b9b23f91c7e
commit: 162e23657e5379f07c6404dbfbf4367cb438ea7d regulator: pf0900: Add PMIC PF0900 support
date: 11 months ago
:::::: branch date: 14 hours ago
:::::: commit date: 11 months ago
config: hexagon-randconfig-r051-20260709 (https://download.01.org/0day-ci/archive/20260710/202607102135.ba4qDt1l-lkp@intel.com/config)
compiler: clang version 23.0.0git (https://github.com/llvm/llvm-project c279890c85da307abe34f10333442bbf72a60644)
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
| Fixes: 162e23657e53 ("regulator: pf0900: Add PMIC PF0900 support")
| Reported-by: kernel test robot <lkp@intel.com>
| Reported-by: Julia Lawall <julia.lawall@inria.fr>
| Closes: https://lore.kernel.org/r/202607102135.ba4qDt1l-lkp@intel.com/
cocci warnings: (new ones prefixed by >>)
>> drivers/regulator/pf0900-regulator.c:891:7-32: WARNING: Threaded IRQ with no primary handler requested without IRQF_ONESHOT (unless it is nested IRQ)
vim +891 drivers/regulator/pf0900-regulator.c
162e23657e5379 Joy Zou 2025-07-31 826
162e23657e5379 Joy Zou 2025-07-31 827 static int pf0900_i2c_probe(struct i2c_client *i2c)
162e23657e5379 Joy Zou 2025-07-31 828 {
162e23657e5379 Joy Zou 2025-07-31 829 const struct pf0900_regulator_desc *regulator_desc;
162e23657e5379 Joy Zou 2025-07-31 830 const struct pf0900_drvdata *drvdata = NULL;
162e23657e5379 Joy Zou 2025-07-31 831 struct device_node *np = i2c->dev.of_node;
162e23657e5379 Joy Zou 2025-07-31 832 unsigned int device_id, device_fam, i;
162e23657e5379 Joy Zou 2025-07-31 833 struct regulator_config config = { };
162e23657e5379 Joy Zou 2025-07-31 834 struct pf0900 *pf0900;
162e23657e5379 Joy Zou 2025-07-31 835 int ret;
162e23657e5379 Joy Zou 2025-07-31 836
162e23657e5379 Joy Zou 2025-07-31 837 if (!i2c->irq)
162e23657e5379 Joy Zou 2025-07-31 838 return dev_err_probe(&i2c->dev, -EINVAL, "No IRQ configured?\n");
162e23657e5379 Joy Zou 2025-07-31 839
162e23657e5379 Joy Zou 2025-07-31 840 pf0900 = devm_kzalloc(&i2c->dev, sizeof(struct pf0900), GFP_KERNEL);
162e23657e5379 Joy Zou 2025-07-31 841 if (!pf0900)
162e23657e5379 Joy Zou 2025-07-31 842 return -ENOMEM;
162e23657e5379 Joy Zou 2025-07-31 843
162e23657e5379 Joy Zou 2025-07-31 844 drvdata = device_get_match_data(&i2c->dev);
162e23657e5379 Joy Zou 2025-07-31 845 if (!drvdata)
162e23657e5379 Joy Zou 2025-07-31 846 return dev_err_probe(&i2c->dev, -EINVAL, "unable to find driver data\n");
162e23657e5379 Joy Zou 2025-07-31 847
162e23657e5379 Joy Zou 2025-07-31 848 regulator_desc = drvdata->desc;
162e23657e5379 Joy Zou 2025-07-31 849 pf0900->drvdata = drvdata;
162e23657e5379 Joy Zou 2025-07-31 850 pf0900->crc_en = of_property_read_bool(np, "nxp,i2c-crc-enable");
162e23657e5379 Joy Zou 2025-07-31 851 pf0900->irq = i2c->irq;
162e23657e5379 Joy Zou 2025-07-31 852 pf0900->dev = &i2c->dev;
162e23657e5379 Joy Zou 2025-07-31 853 pf0900->addr = i2c->addr;
162e23657e5379 Joy Zou 2025-07-31 854
162e23657e5379 Joy Zou 2025-07-31 855 dev_set_drvdata(&i2c->dev, pf0900);
162e23657e5379 Joy Zou 2025-07-31 856
162e23657e5379 Joy Zou 2025-07-31 857 pf0900->regmap = devm_regmap_init(&i2c->dev, &pf0900_regmap_bus, &i2c->dev,
162e23657e5379 Joy Zou 2025-07-31 858 &pf0900_regmap_config);
162e23657e5379 Joy Zou 2025-07-31 859 if (IS_ERR(pf0900->regmap))
162e23657e5379 Joy Zou 2025-07-31 860 return dev_err_probe(&i2c->dev, PTR_ERR(pf0900->regmap),
162e23657e5379 Joy Zou 2025-07-31 861 "regmap initialization failed\n");
162e23657e5379 Joy Zou 2025-07-31 862 ret = regmap_read(pf0900->regmap, PF0900_REG_DEV_ID, &device_id);
162e23657e5379 Joy Zou 2025-07-31 863 if (ret)
162e23657e5379 Joy Zou 2025-07-31 864 return dev_err_probe(&i2c->dev, ret, "Read device id error\n");
162e23657e5379 Joy Zou 2025-07-31 865
162e23657e5379 Joy Zou 2025-07-31 866 ret = regmap_read(pf0900->regmap, PF0900_REG_DEV_FAM, &device_fam);
162e23657e5379 Joy Zou 2025-07-31 867 if (ret)
162e23657e5379 Joy Zou 2025-07-31 868 return dev_err_probe(&i2c->dev, ret, "Read device fam error\n");
162e23657e5379 Joy Zou 2025-07-31 869
162e23657e5379 Joy Zou 2025-07-31 870 /* Check your board and dts for match the right pmic */
162e23657e5379 Joy Zou 2025-07-31 871 if (device_fam == 0x09 && (device_id & 0x1F) != 0x0)
162e23657e5379 Joy Zou 2025-07-31 872 return dev_err_probe(&i2c->dev, -EINVAL, "Device id(%x) mismatched\n",
162e23657e5379 Joy Zou 2025-07-31 873 device_id >> 4);
162e23657e5379 Joy Zou 2025-07-31 874
162e23657e5379 Joy Zou 2025-07-31 875 for (i = 0; i < drvdata->rcnt; i++) {
162e23657e5379 Joy Zou 2025-07-31 876 const struct regulator_desc *desc;
162e23657e5379 Joy Zou 2025-07-31 877 const struct pf0900_regulator_desc *r;
162e23657e5379 Joy Zou 2025-07-31 878
162e23657e5379 Joy Zou 2025-07-31 879 r = ®ulator_desc[i];
162e23657e5379 Joy Zou 2025-07-31 880 desc = &r->desc;
162e23657e5379 Joy Zou 2025-07-31 881 config.regmap = pf0900->regmap;
162e23657e5379 Joy Zou 2025-07-31 882 config.driver_data = (void *)r;
162e23657e5379 Joy Zou 2025-07-31 883 config.dev = pf0900->dev;
162e23657e5379 Joy Zou 2025-07-31 884
162e23657e5379 Joy Zou 2025-07-31 885 pf0900->rdevs[i] = devm_regulator_register(pf0900->dev, desc, &config);
162e23657e5379 Joy Zou 2025-07-31 886 if (IS_ERR(pf0900->rdevs[i]))
162e23657e5379 Joy Zou 2025-07-31 887 return dev_err_probe(pf0900->dev, PTR_ERR(pf0900->rdevs[i]),
162e23657e5379 Joy Zou 2025-07-31 888 "Failed to register regulator(%s)\n", desc->name);
162e23657e5379 Joy Zou 2025-07-31 889 }
162e23657e5379 Joy Zou 2025-07-31 890
162e23657e5379 Joy Zou 2025-07-31 @891 ret = devm_request_threaded_irq(pf0900->dev, pf0900->irq, NULL,
162e23657e5379 Joy Zou 2025-07-31 892 pf0900_irq_handler,
162e23657e5379 Joy Zou 2025-07-31 893 (IRQF_TRIGGER_FALLING | IRQF_ONESHOT),
162e23657e5379 Joy Zou 2025-07-31 894 "pf0900-irq", pf0900);
162e23657e5379 Joy Zou 2025-07-31 895
162e23657e5379 Joy Zou 2025-07-31 896 if (ret != 0)
162e23657e5379 Joy Zou 2025-07-31 897 return dev_err_probe(pf0900->dev, ret, "Failed to request IRQ: %d\n",
162e23657e5379 Joy Zou 2025-07-31 898 pf0900->irq);
162e23657e5379 Joy Zou 2025-07-31 899 /*
162e23657e5379 Joy Zou 2025-07-31 900 * The PWRUP_M is unmasked by default. When the device enter in RUN state,
162e23657e5379 Joy Zou 2025-07-31 901 * it will assert the PWRUP_I interrupt and assert the INTB pin to inform
162e23657e5379 Joy Zou 2025-07-31 902 * the MCU that it has finished the power up sequence properly.
162e23657e5379 Joy Zou 2025-07-31 903 */
162e23657e5379 Joy Zou 2025-07-31 904 ret = regmap_write_bits(pf0900->regmap, PF0900_REG_STATUS1_INT, PF0900_IRQ_PWRUP,
162e23657e5379 Joy Zou 2025-07-31 905 PF0900_IRQ_PWRUP);
162e23657e5379 Joy Zou 2025-07-31 906 if (ret)
162e23657e5379 Joy Zou 2025-07-31 907 return dev_err_probe(&i2c->dev, ret, "Clean PWRUP_I error\n");
162e23657e5379 Joy Zou 2025-07-31 908
162e23657e5379 Joy Zou 2025-07-31 909 /* mask interrupt PWRUP */
162e23657e5379 Joy Zou 2025-07-31 910 ret = regmap_update_bits(pf0900->regmap, PF0900_REG_STATUS1_MSK, PF0900_IRQ_PWRUP,
162e23657e5379 Joy Zou 2025-07-31 911 PF0900_IRQ_PWRUP);
162e23657e5379 Joy Zou 2025-07-31 912 if (ret)
162e23657e5379 Joy Zou 2025-07-31 913 return dev_err_probe(&i2c->dev, ret, "Unmask irq error\n");
162e23657e5379 Joy Zou 2025-07-31 914
162e23657e5379 Joy Zou 2025-07-31 915 ret = regmap_update_bits(pf0900->regmap, PF0900_REG_SW_ILIM_MSK, PF0900_IRQ_SW1_IL |
162e23657e5379 Joy Zou 2025-07-31 916 PF0900_IRQ_SW2_IL | PF0900_IRQ_SW3_IL | PF0900_IRQ_SW4_IL |
162e23657e5379 Joy Zou 2025-07-31 917 PF0900_IRQ_SW5_IL, 0);
162e23657e5379 Joy Zou 2025-07-31 918 if (ret)
162e23657e5379 Joy Zou 2025-07-31 919 return dev_err_probe(&i2c->dev, ret, "Unmask irq error\n");
162e23657e5379 Joy Zou 2025-07-31 920
162e23657e5379 Joy Zou 2025-07-31 921 ret = regmap_update_bits(pf0900->regmap, PF0900_REG_SW_UV_MSK, PF0900_IRQ_SW1_UV |
162e23657e5379 Joy Zou 2025-07-31 922 PF0900_IRQ_SW2_UV | PF0900_IRQ_SW3_UV | PF0900_IRQ_SW4_UV |
162e23657e5379 Joy Zou 2025-07-31 923 PF0900_IRQ_SW5_UV, 0);
162e23657e5379 Joy Zou 2025-07-31 924 if (ret)
162e23657e5379 Joy Zou 2025-07-31 925 return dev_err_probe(&i2c->dev, ret, "Unmask irq error\n");
162e23657e5379 Joy Zou 2025-07-31 926
162e23657e5379 Joy Zou 2025-07-31 927 ret = regmap_update_bits(pf0900->regmap, PF0900_REG_SW_OV_MSK, PF0900_IRQ_SW1_OV |
162e23657e5379 Joy Zou 2025-07-31 928 PF0900_IRQ_SW2_OV | PF0900_IRQ_SW3_OV | PF0900_IRQ_SW4_OV |
162e23657e5379 Joy Zou 2025-07-31 929 PF0900_IRQ_SW5_OV, 0);
162e23657e5379 Joy Zou 2025-07-31 930 if (ret)
162e23657e5379 Joy Zou 2025-07-31 931 return dev_err_probe(&i2c->dev, ret, "Unmask irq error\n");
162e23657e5379 Joy Zou 2025-07-31 932
162e23657e5379 Joy Zou 2025-07-31 933 ret = regmap_update_bits(pf0900->regmap, PF0900_REG_LDO_ILIM_MSK, PF0900_IRQ_LDO1_IL |
162e23657e5379 Joy Zou 2025-07-31 934 PF0900_IRQ_LDO2_IL | PF0900_IRQ_LDO3_IL, 0);
162e23657e5379 Joy Zou 2025-07-31 935 if (ret)
162e23657e5379 Joy Zou 2025-07-31 936 return dev_err_probe(&i2c->dev, ret, "Unmask irq error\n");
162e23657e5379 Joy Zou 2025-07-31 937
162e23657e5379 Joy Zou 2025-07-31 938 ret = regmap_update_bits(pf0900->regmap, PF0900_REG_LDO_UV_MSK, PF0900_IRQ_LDO1_UV |
162e23657e5379 Joy Zou 2025-07-31 939 PF0900_IRQ_LDO2_UV | PF0900_IRQ_LDO3_UV | PF0900_IRQ_VAON_UV, 0);
162e23657e5379 Joy Zou 2025-07-31 940 if (ret)
162e23657e5379 Joy Zou 2025-07-31 941 return dev_err_probe(&i2c->dev, ret, "Unmask irq error\n");
162e23657e5379 Joy Zou 2025-07-31 942
162e23657e5379 Joy Zou 2025-07-31 943 ret = regmap_update_bits(pf0900->regmap, PF0900_REG_LDO_OV_MSK, PF0900_IRQ_LDO1_OV |
162e23657e5379 Joy Zou 2025-07-31 944 PF0900_IRQ_LDO2_OV | PF0900_IRQ_LDO3_OV | PF0900_IRQ_VAON_OV, 0);
162e23657e5379 Joy Zou 2025-07-31 945 if (ret)
162e23657e5379 Joy Zou 2025-07-31 946 return dev_err_probe(&i2c->dev, ret, "Unmask irq error\n");
162e23657e5379 Joy Zou 2025-07-31 947
162e23657e5379 Joy Zou 2025-07-31 948 return 0;
162e23657e5379 Joy Zou 2025-07-31 949 }
162e23657e5379 Joy Zou 2025-07-31 950
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
next reply other threads:[~2026-07-10 14:05 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-07-10 14:04 kernel test robot [this message]
-- strict thread matches above, loose matches on Subject: below --
2026-08-14 15:30 drivers/regulator/pf0900-regulator.c:891:7-32: WARNING: Threaded IRQ with no primary handler requested without IRQF_ONESHOT (unless it is nested IRQ) kernel test robot
2026-03-25 3:43 kernel test robot
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=202607102135.ba4qDt1l-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.