[PATCH v2] platform/x86: serial-multi-instantiate: IRQ_RESOURCE_AUTO should be compatible with IRQ_RESOURCE_NONE

Baojun Xu posted 1 patch 6 days, 14 hours ago
drivers/platform/x86/serial-multi-instantiate.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
[PATCH v2] platform/x86: serial-multi-instantiate: IRQ_RESOURCE_AUTO should be compatible with IRQ_RESOURCE_NONE
Posted by Baojun Xu 6 days, 14 hours ago
The tas2781-hda supports multi-projects, in some projects,
no irq is required, so the IRQ_RESOURCE_AUTO should be compatible
with IRQ_RESOURCE_NONE.

Signed-off-by: Baojun Xu <baojun.xu@ti.com>
---
v2:
 - Remove error ignore, change to AUTO compatible with NONE.
---
 drivers/platform/x86/serial-multi-instantiate.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/platform/x86/serial-multi-instantiate.c b/drivers/platform/x86/serial-multi-instantiate.c
index db030b0f176a..eb3fffbc29ad 100644
--- a/drivers/platform/x86/serial-multi-instantiate.c
+++ b/drivers/platform/x86/serial-multi-instantiate.c
@@ -64,7 +64,8 @@ static int smi_get_irq(struct platform_device *pdev, struct acpi_device *adev,
 			dev_dbg(&pdev->dev, "Using platform irq\n");
 			break;
 		}
-		break;
+		dev_dbg(&pdev->dev, "No irq\n");
+		return 0;
 	case IRQ_RESOURCE_GPIO:
 		ret = acpi_dev_gpio_irq_get(adev, inst->irq_idx);
 		break;
-- 
2.25.1
Re: [PATCH v2] platform/x86: serial-multi-instantiate: IRQ_RESOURCE_AUTO should be compatible with IRQ_RESOURCE_NONE
Posted by Andy Shevchenko 6 days, 14 hours ago
On Tue, Nov 25, 2025 at 04:44:36PM +0800, Baojun Xu wrote:
> The tas2781-hda supports multi-projects, in some projects,
> no irq is required, so the IRQ_RESOURCE_AUTO should be compatible
> with IRQ_RESOURCE_NONE.

TL;DR: NAK.

It will relax the conditions for the devices where IRQ is required.
Probably you need to consider DMI quirks or so.

Also you failed to provide the ACPI DSDT excerpts to show the real use case.
And what the board is that that uses polling mode?

You can also consider this approach (as a compromise between two:

#define IRQ_RESOURCE_OPTIONAL	BIT(2)
...
	switch (inst->flags & IRQ_RESOURCE_TYPE) {
	case IRQ_RESOURCE_AUTO:
		...
		if (inst->flags & IRQ_RESOURCE_OPTIONAL)
			ret = 0;
	break;
	...
	}
...
		{ "tas2781-hda", IRQ_RESOURCE_AUTO | IRQ_RESOURCE_OPTIONAL, 0 },


-- 
With Best Regards,
Andy Shevchenko