[PATCH] Revert "nfc: nxp-nci: remove interrupt trigger type"

Bartosz Golaszewski posted 1 patch 1 month ago
drivers/nfc/nxp-nci/i2c.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[PATCH] Revert "nfc: nxp-nci: remove interrupt trigger type"
Posted by Bartosz Golaszewski 1 month ago
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
Re: [PATCH] Revert "nfc: nxp-nci: remove interrupt trigger type"
Posted by David Heidelberg 4 weeks ago
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
Re: [PATCH] Revert "nfc: nxp-nci: remove interrupt trigger type"
Posted by Thorsten Leemhuis 3 weeks, 6 days ago
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");
>