drivers/nfc/nxp-nci/i2c.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
This commit causes an infinite interrupt storm on Lenovo T14s (at least
the AMD Ryzen 7 variant) which requires blacklisting of this driver.
Neither firmware updates nor the proposed solution[1] seem to help. This
reverts the change due to an unfixed regression. The problem is present
since v6.19.6 stable kernel.
[1] https://lore.kernel.org/all/20260311-nfc-nxp-nci-i2c-restore-irq-trigger-fallback-v1-1-9e20714411d7@amd.com/
Cc: stable@vger.kernel.org # v6.19, v7.0
Fixes: 941270962861 ("nfc: nxp-nci: remove interrupt trigger type")
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>
---
drivers/nfc/nxp-nci/i2c.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/nfc/nxp-nci/i2c.c b/drivers/nfc/nxp-nci/i2c.c
index b3d34433bd14..e99e1f381028 100644
--- a/drivers/nfc/nxp-nci/i2c.c
+++ b/drivers/nfc/nxp-nci/i2c.c
@@ -305,7 +305,7 @@ static int nxp_nci_i2c_probe(struct i2c_client *client)
r = request_threaded_irq(client->irq, NULL,
nxp_nci_i2c_irq_thread_fn,
- IRQF_ONESHOT,
+ IRQF_TRIGGER_RISING | IRQF_ONESHOT,
NXP_NCI_I2C_DRIVER_NAME, phy);
if (r < 0)
nfc_err(&client->dev, "Unable to register IRQ handler\n");
--
2.47.3
Hello Carl,
do you see any better solution than just reverting it? In case no, I'll accept
the revert.
David
On 11/05/2026 10:26, Bartosz Golaszewski wrote:
> This commit causes an infinite interrupt storm on Lenovo T14s (at least
> the AMD Ryzen 7 variant) which requires blacklisting of this driver.
> Neither firmware updates nor the proposed solution[1] seem to help. This
> reverts the change due to an unfixed regression. The problem is present
> since v6.19.6 stable kernel.
>
> [1] https://lore.kernel.org/all/20260311-nfc-nxp-nci-i2c-restore-irq-trigger-fallback-v1-1-9e20714411d7@amd.com/
>
> Cc: stable@vger.kernel.org # v6.19, v7.0
> Fixes: 941270962861 ("nfc: nxp-nci: remove interrupt trigger type")
> Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>
> ---
> drivers/nfc/nxp-nci/i2c.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/nfc/nxp-nci/i2c.c b/drivers/nfc/nxp-nci/i2c.c
> index b3d34433bd14..e99e1f381028 100644
> --- a/drivers/nfc/nxp-nci/i2c.c
> +++ b/drivers/nfc/nxp-nci/i2c.c
> @@ -305,7 +305,7 @@ static int nxp_nci_i2c_probe(struct i2c_client *client)
>
> r = request_threaded_irq(client->irq, NULL,
> nxp_nci_i2c_irq_thread_fn,
> - IRQF_ONESHOT,
> + IRQF_TRIGGER_RISING | IRQF_ONESHOT,
> NXP_NCI_I2C_DRIVER_NAME, phy);
> if (r < 0)
> nfc_err(&client->dev, "Unable to register IRQ handler\n");
--
David Heidelberg
On 5/15/26 21:28, David Heidelberg wrote:
>
> do you see any better solution than just reverting it? In case no, I'll
> accept the revert.
FWIW, Mark hit the issue as well on a few Lenovo machines and prefers
reverting, too:
https://lore.kernel.org/all/c1f80da1-9bf8-41c3-b645-3ae95e116add@app.fastmail.com/
> On 11/05/2026 10:26, Bartosz Golaszewski wrote:
>> This commit causes an infinite interrupt storm on Lenovo T14s (at least
>> the AMD Ryzen 7 variant)
Side note: wondering if it would be wise to specific the generation of
the T14s, but I guess it won't make much of a difference. Adding a
link/closes tag to above thread would be nice, too.
Ciao, Thorsten
>> which requires blacklisting of this driver.
>> Neither firmware updates nor the proposed solution[1] seem to help. This
>> reverts the change due to an unfixed regression. The problem is present
>> since v6.19.6 stable kernel.
>>
>> [1] https://lore.kernel.org/all/20260311-nfc-nxp-nci-i2c-restore-irq-
>> trigger-fallback-v1-1-9e20714411d7@amd.com/
>>
>> Cc: stable@vger.kernel.org # v6.19, v7.0
>> Fixes: 941270962861 ("nfc: nxp-nci: remove interrupt trigger type")
>> Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>
>> ---
>> drivers/nfc/nxp-nci/i2c.c | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/drivers/nfc/nxp-nci/i2c.c b/drivers/nfc/nxp-nci/i2c.c
>> index b3d34433bd14..e99e1f381028 100644
>> --- a/drivers/nfc/nxp-nci/i2c.c
>> +++ b/drivers/nfc/nxp-nci/i2c.c
>> @@ -305,7 +305,7 @@ static int nxp_nci_i2c_probe(struct i2c_client
>> *client)
>> r = request_threaded_irq(client->irq, NULL,
>> nxp_nci_i2c_irq_thread_fn,
>> - IRQF_ONESHOT,
>> + IRQF_TRIGGER_RISING | IRQF_ONESHOT,
>> NXP_NCI_I2C_DRIVER_NAME, phy);
>> if (r < 0)
>> nfc_err(&client->dev, "Unable to register IRQ handler\n");
>
© 2016 - 2026 Red Hat, Inc.