From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-wm1-f41.google.com (mail-wm1-f41.google.com [209.85.128.41]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id BDDE4224AF1 for ; Sun, 17 May 2026 09:08:04 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.41 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779008886; cv=none; b=kONq0hC5vE/6iB5kDX9cBMQa6SAnsCBjowk2bUq6+uXYmgBQRsMgEc6uBc9CRIau3DEbQYH2WJOfjZaNShnB5AZpTcERVqHHfL58qQ2tkyy8tq2F3SAtpFmfl6/ZtAes3GspbijUv0vm1Rotl1nufL9NISOmQEPke6rg9qSOxrg= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779008886; c=relaxed/simple; bh=2/vC2gtAzqnqEhOGB3CBoJ5IBuX3tz/aPAJPNrNo7JQ=; h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From: In-Reply-To:Content-Type; b=H39RFg1duDVFRq2Uwog2QEixc58B5lh/CjOtJS74mpy4DhaCOYJDoIg2l7BAG3ns2YCDcuQCbOfOn/1fFy1hWzCx8RL2pdwL0m/4Svw0CBDBJh/Jf32YoxR+xqAAQ/G51Fn7itYY7HVK4YTnYdAXo9r4xD4acdEVwIOtPKLibQM= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=FYvVE8As; arc=none smtp.client-ip=209.85.128.41 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="FYvVE8As" Received: by mail-wm1-f41.google.com with SMTP id 5b1f17b1804b1-488a88aeec9so14274515e9.2 for ; Sun, 17 May 2026 02:08:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1779008883; x=1779613683; darn=vger.kernel.org; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=npiaD8R6F3ev+VubH9jg2956LfZJhVHUypFqUAHYPy8=; b=FYvVE8AsmqRBE4VAbMovCq6CYOx+0H+388vJWd8g+ugX6nIofcpjT95Rir3bp34J1g /gZAj8XPxdN6rb9jzVJ335ya+N7RKMq9C9itqr5mZJIgsdjPihvyfz5vDOPM2spbWTG8 bzWXkUaju4+KTfTvuOR/hxJ1CrCk6fAcTaifJRRIwMLYCLvVmMEEz+3/nJEUH3deHfiD lyP2C5DhDm9OcoMXPyZOCZqFRpUxAKPT6T4EJhImHQSvj5KsBEoAb9ljR/vm7/C8KnCh Y7flHIztOmQd4WrE/N3DT5UvbDG+LszSv7E9ZXSvccp5DRhWjEOA+HSQlFpehqbcSL4H MIGQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779008883; x=1779613683; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=npiaD8R6F3ev+VubH9jg2956LfZJhVHUypFqUAHYPy8=; b=dEHn0dct2n/SBE3ReG0OlpjhzxA+Vn/WUEPVQL3u2jDmiDAkRM6sXgAKH7JGSX5mOo 7/nfDHM7A9xYW1DCfxxRz9oiQ4GXjeMNyeJR2ZBcl//mNbtTlQcHC7xgJmTGVehW0UcZ J5v9iH30eFBOJHN6VMjFabbSzmygJHuziubS3jXTYyiNaL/rQnOxDakWg5Bp6/4uLUmz 5MdlUd5QHXmzGTp3yRe82JbsNT/gZbqU9Ey1O+ixpNS444pQmGkCsBQ94XPVQYZD2IEX L7ULo2ZO/l0tKcOBqhKROdNFb684kyI3IvbZKWA0J5FAg8IKcl4BsmoNXnPCHmewknqR kBRg== X-Forwarded-Encrypted: i=1; AFNElJ8tGLmrx47PJg1eqB79NzExbeBIJ1CPwqKQafgIGq7yBeCfXew6qKNeQV5PqLaGfbF1PkiMqu0k1Yye1wY=@vger.kernel.org X-Gm-Message-State: AOJu0YwBofaIo3boNXzISvA3r59KTpeZ3sN1YDkzzAVBW7x94KN7dTC8 IcWOLLCbpZbizrzmAme/8pas6AvPEXdg9ZJ0IV0Txh+AZBLrh8gn0oOk X-Gm-Gg: Acq92OG55Cccklkq+7FsySAZ2Qqdoh/KWPtI7NbTaOiMpOUkoy2wV92iMp5P0Sze3Dq fvTJR/PnprPq1unEZj1gXmxq6490IxnC/JNOURFy0rhWmVFnL4PJXisSqm7NZwWzchJjd4a4A4J 7i1z4LG/AFN7Bigymp2ATilWBf7mL29Yl//X8w6vCcvUBMcpjXaJ7PS7eoczrmJLcOV1edTE+PV nty1M6q9ToR3cjtQLqrNGy7PQv+oN3iwhB5xm27I7FLjFwTTPvPq6S7sbEapqSSRJKmUjPJIyQN 2MwQB4G6uEtGG+tNk3j21ZAU9At5xsuIAenet47AudEutma+abiMbhV4/7a69K9eSBLfJfWFIIl SpX1v00ORPDYQNAJjmrZlHogSQ66BM7RIfU4HJ9vmPueuhjrfaFpRpsqu/qp0/RmRO81wyNZZu+ 4cLU/wITNfBrYAZrDkz2DySZxfzR2gGN7jC2vJs6J5La1EKkjYHBpdlBvjODWuazbh4ZWx9aZ76 z8/PdsoC9eDanzaZb7+xg== X-Received: by 2002:a05:600c:8b47:b0:48f:dfe3:dae3 with SMTP id 5b1f17b1804b1-48fe63223edmr164540535e9.17.1779008882980; Sun, 17 May 2026 02:08:02 -0700 (PDT) Received: from [192.168.50.249] (host-82-48-74-166.retail.telecomitalia.it. [82.48.74.166]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-48feae166dasm64053345e9.9.2026.05.17.02.08.00 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 17 May 2026 02:08:01 -0700 (PDT) Message-ID: Date: Sun, 17 May 2026 11:07:59 +0200 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v3] nfc: nxp-nci: i2c: use rising-edge IRQ on ACPI systems To: carl.lee@amd.com, netdev@vger.kernel.org, linux-kernel@vger.kernel.org Cc: krzk@kernel.org, peter.shen@amd.com, colin.huang2@amd.com, kuba@kernel.org, david@ixit.cz, brgl@kernel.org, mpearson@squebb.ca References: <20260516-nfc-nxp-nci-i2c-restore-irq-trigger-fallback-v3-1-37ba4b6e9086@amd.com> Content-Language: en-US From: Luca Stefani In-Reply-To: <20260516-nfc-nxp-nci-i2c-restore-irq-trigger-fallback-v3-1-37ba4b6e9086@amd.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 16/05/2026 13:55, Carl Lee via B4 Relay wrote: > From: Carl Lee > > Some ACPI-based platforms report incorrect IRQ trigger types (e.g. > IRQF_TRIGGER_HIGH), which can lead to interrupt storms. > > Use the historically working rising-edge trigger on ACPI systems to > avoid this regression. > > Device Tree-based systems continue to use the firmware-provided > trigger type. > > Signed-off-by: Carl Lee Tested-by: Luca Stefani I wonder if all ACPI devices are reporting the wrong trigger type, but at least this goes back to the status quo. I'll gladly help/test if someone wants to delve deeper, but so far this seems lenovo specific as Mark mentioned. > --- > Some ACPI-based platforms report incorrect IRQ trigger types, > which can lead to interrupt storms. > > Use rising-edge IRQ on ACPI systems to avoid this regression, > while keeping firmware-provided trigger types on non-ACPI systems. > > Cc: netdev@vger.kernel.org > Cc: linux-kernel@vger.kernel.org > Cc: krzk@kernel.org > Cc: carl.lee@amd.com > Cc: peter.shen@amd.com > Cc: colin.huang2@amd.com > Cc: kuba@kernel.org > Cc: david@ixit.cz > Cc: luca.stefani.ge1@gmail.com > Cc: brgl@kernel.org > Cc: mpearson@squebb.ca > --- > Changes in v3: > - Use rising-edge IRQ on ACPI systems to avoid interrupt storms > - Keep using firmware-provided trigger type on non-ACPI systems > - Refine commit message to focus on regression on ACPI platforms > - Link to v2: https://lore.kernel.org/r/20260312-nfc-nxp-nci-i2c-restore-irq-trigger-fallback-v2-1-362348f7fa30@amd.com > > Changes in v2: > - Add missing include for irq_get_trigger_type(). > - Link to v1: https://lore.kernel.org/r/20260311-nfc-nxp-nci-i2c-restore-irq-trigger-fallback-v1-1-9e20714411d7@amd.com > --- > drivers/nfc/nxp-nci/i2c.c | 21 ++++++++++++++++++++- > 1 file changed, 20 insertions(+), 1 deletion(-) > > diff --git a/drivers/nfc/nxp-nci/i2c.c b/drivers/nfc/nxp-nci/i2c.c > index 6a5ce8ff91f0..266dc231c47d 100644 > --- a/drivers/nfc/nxp-nci/i2c.c > +++ b/drivers/nfc/nxp-nci/i2c.c > @@ -16,6 +16,7 @@ > #include > #include > #include > +#include > #include > #include > #include > @@ -267,6 +268,7 @@ static int nxp_nci_i2c_probe(struct i2c_client *client) > { > struct device *dev = &client->dev; > struct nxp_nci_i2c_phy *phy; > + unsigned long irqflags; > int r; > > if (!i2c_check_functionality(client->adapter, I2C_FUNC_I2C)) { > @@ -303,9 +305,26 @@ static int nxp_nci_i2c_probe(struct i2c_client *client) > if (r < 0) > return r; > > + /* > + * ACPI platforms may report incorrect IRQ trigger types > + * (e.g. level-high), which can lead to interrupt storms. > + * > + * Use the historically stable rising-edge trigger for ACPI devices. > + * > + * On non-ACPI systems (e.g. Device Tree), prefer the firmware- > + * provided trigger type, falling back to rising-edge if not set. > + */ > + if (ACPI_COMPANION(dev)) { > + irqflags = IRQF_TRIGGER_RISING; > + } else { > + irqflags = irq_get_trigger_type(client->irq); > + if (!irqflags) > + irqflags = IRQF_TRIGGER_RISING; > + } > + > r = request_threaded_irq(client->irq, NULL, > nxp_nci_i2c_irq_thread_fn, > - IRQF_ONESHOT, > + irqflags | IRQF_ONESHOT, > NXP_NCI_I2C_DRIVER_NAME, phy); > if (r < 0) > nfc_err(&client->dev, "Unable to register IRQ handler\n"); > > --- > base-commit: 7109a2155340cc7b21f27e832ece6df03592f2e8 > change-id: 20260311-nfc-nxp-nci-i2c-restore-irq-trigger-fallback-cda942530c60 > > Best regards,