[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <9b2dca55-1207-48a3-94b0-3efad1462d0f@kernel.org>
Date: Wed, 26 Nov 2025 13:28:55 +0100
From: Hans de Goede <hansg@...nel.org>
To: Baojun Xu <baojun.xu@...com>, tiwai@...e.de
Cc: ilpo.jarvinen@...ux.intel.com, broonie@...nel.org,
andriy.shevchenko@...ux.intel.com, alsa-devel@...a-project.org,
shenghao-ding@...com, 13916275206@....com,
platform-driver-x86@...r.kernel.org, linux-sound@...r.kernel.org,
linux-kernel@...r.kernel.org, letitia.tsai@...com
Subject: Re: [PATCH v4 1/1] platform/x86: serial-multi-instantiate: Add
IRQ_RESOURCE_OPT for IRQ missing projects
Hi,
On 26-Nov-25 1:19 PM, Baojun Xu wrote:
> The tas2781-hda supports multi-projects. In some projects,
> GpioInt() was dropped due to no IRQ connection.
> See the example code in the cover letter.
Please don't do this, the example code is not that big, people
should not need to go and hunt down the example code, please just
add it to the commit message.
Also please use longer lines (wrap at 75 chars) for the commit msg
and please use empty lines between paragraphs to clearly separate
the paragraphs.
Regards,
Hans
> But in smi_i2c_probe(), smi_spi_probe() (serial-multi-instantiate.c),
> if looking for IRQ by smi_get_irq() fails, it will return an error,
> will not add new device, and cause smi_probe() to fail.
> So, we need to add an exception case for these situations.
> BTW, this patch will take effect on both I2C and SPI devices.
>
> Signed-off-by: Baojun Xu <baojun.xu@...com>
> ---
> v4:
> - Change the description for this patch.
> v3:
> - Add IRQ_RESOURCE_OPT for IRQ missing cases.
> v2:
> - Remove error ignore, change to AUTO compatible with NONE.
> ---
> drivers/platform/x86/serial-multi-instantiate.c | 13 +++++++++----
> 1 file changed, 9 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/platform/x86/serial-multi-instantiate.c b/drivers/platform/x86/serial-multi-instantiate.c
> index db030b0f176a..1a369334f9cb 100644
> --- a/drivers/platform/x86/serial-multi-instantiate.c
> +++ b/drivers/platform/x86/serial-multi-instantiate.c
> @@ -22,6 +22,7 @@
> #define IRQ_RESOURCE_GPIO 1
> #define IRQ_RESOURCE_APIC 2
> #define IRQ_RESOURCE_AUTO 3
> +#define IRQ_RESOURCE_OPT BIT(2)
>
> enum smi_bus_type {
> SMI_I2C,
> @@ -64,6 +65,10 @@ static int smi_get_irq(struct platform_device *pdev, struct acpi_device *adev,
> dev_dbg(&pdev->dev, "Using platform irq\n");
> break;
> }
> + if (inst->flags & IRQ_RESOURCE_OPT) {
> + dev_dbg(&pdev->dev, "No irq\n");
> + return 0;
> + }
> break;
> case IRQ_RESOURCE_GPIO:
> ret = acpi_dev_gpio_irq_get(adev, inst->irq_idx);
> @@ -386,10 +391,10 @@ static const struct smi_node cs35l57_hda = {
>
> static const struct smi_node tas2781_hda = {
> .instances = {
> - { "tas2781-hda", IRQ_RESOURCE_AUTO, 0 },
> - { "tas2781-hda", IRQ_RESOURCE_AUTO, 0 },
> - { "tas2781-hda", IRQ_RESOURCE_AUTO, 0 },
> - { "tas2781-hda", IRQ_RESOURCE_AUTO, 0 },
> + { "tas2781-hda", IRQ_RESOURCE_AUTO | IRQ_RESOURCE_OPT, 0 },
> + { "tas2781-hda", IRQ_RESOURCE_AUTO | IRQ_RESOURCE_OPT, 0 },
> + { "tas2781-hda", IRQ_RESOURCE_AUTO | IRQ_RESOURCE_OPT, 0 },
> + { "tas2781-hda", IRQ_RESOURCE_AUTO | IRQ_RESOURCE_OPT, 0 },
> {}
> },
> .bus_type = SMI_AUTO_DETECT,
Powered by blists - more mailing lists