linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Marc Zyngier <maz@kernel.org>
To: John Garry <john.garry@huawei.com>
Cc: jejb@linux.ibm.com, martin.petersen@oracle.com, lenb@kernel.org,
	rjw@rjwysocki.net, gregkh@linuxfoundation.org,
	tglx@linutronix.de, linux-scsi@vger.kernel.org,
	linux-kernel@vger.kernel.org, linuxarm@huawei.com,
	linux-acpi@vger.kernel.org
Subject: Re: [PATCH v3 3/5] driver core: platform: Add platform_put_irq()
Date: Thu, 26 Nov 2020 09:28:50 +0000	[thread overview]
Message-ID: <f6fb9ff74c8b361a592a6a4ceebd032d@kernel.org> (raw)
In-Reply-To: <1606324841-217570-4-git-send-email-john.garry@huawei.com>

On 2020-11-25 17:20, John Garry wrote:
> Add a function to tear down the work which was done in 
> platform_get_irq()
> for when the device driver is done with the irq.
> 
> For ACPI companion devices the irq resource is set as disabled, as this
> resource is configured from platform_get_irq()->acpi_irq_get() and 
> requires
> resetting.
> 
> Signed-off-by: John Garry <john.garry@huawei.com>
> ---
>  drivers/base/platform.c | 14 ++++++++++++++
>  1 file changed, 14 insertions(+)
> 
> diff --git a/drivers/base/platform.c b/drivers/base/platform.c
> index 88aef93eb4dd..3eeda3746701 100644
> --- a/drivers/base/platform.c
> +++ b/drivers/base/platform.c
> @@ -289,6 +289,20 @@ int platform_irq_count(struct platform_device 
> *dev)
>  }
>  EXPORT_SYMBOL_GPL(platform_irq_count);
> 
> +void platform_put_irq(struct platform_device *dev, unsigned int num)
> +{
> +	unsigned int virq = platform_get_irq(dev, num);

I find it pretty odd to have to recompute the interrupt number,
which in turn results in a domain lookup. It things were refcounted
(they aren't yet), irq_dispose_mapping() would have no effect.

<pedant>
It also goes against the usual construct where if you obtain an object
based on some parameters, the release happens by specifying the object
itself, and not the parameters that lead to the object.
</pedant>

> +
> +	irq_dispose_mapping(virq);
> +	if (has_acpi_companion(&dev->dev)) {
> +		struct resource *r = platform_get_resource(dev, IORESOURCE_IRQ,
> +							   num);
> +
> +		if (r)
> +			acpi_dev_irqresource_disabled(r, 0);

It looks to me that the ACPI thing is what needs to be promoted to a
first class function, releasing all the resources that have used by
a given device.

Thanks,

         M.
-- 
Jazz is not dead. It just smells funny...

  reply	other threads:[~2020-11-26  9:28 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-11-25 17:20 [PATCH v3 0/5] Support managed interrupts for platform devices John Garry
2020-11-25 17:20 ` [PATCH v3 1/5] genirq/affinity: Add irq_update_affinity_desc() John Garry
2020-11-26  8:51   ` Daniel Wagner
2020-11-26  8:54     ` John Garry
2020-11-25 17:20 ` [PATCH v3 2/5] ACPI: Make acpi_dev_irqresource_disabled() public John Garry
2020-11-25 17:43   ` Rafael J. Wysocki
2020-11-26  8:49     ` John Garry
2020-11-26 14:24       ` Rafael J. Wysocki
2020-11-25 17:20 ` [PATCH v3 3/5] driver core: platform: Add platform_put_irq() John Garry
2020-11-26  9:28   ` Marc Zyngier [this message]
2020-11-26 11:23     ` John Garry
2020-11-25 17:20 ` [PATCH v3 4/5] Driver core: platform: Add devm_platform_get_irqs_affinity() John Garry
2020-11-25 17:20 ` [PATCH v3 5/5] scsi: hisi_sas: Expose HW queues for v2 hw John Garry

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=f6fb9ff74c8b361a592a6a4ceebd032d@kernel.org \
    --to=maz@kernel.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=jejb@linux.ibm.com \
    --cc=john.garry@huawei.com \
    --cc=lenb@kernel.org \
    --cc=linux-acpi@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-scsi@vger.kernel.org \
    --cc=linuxarm@huawei.com \
    --cc=martin.petersen@oracle.com \
    --cc=rjw@rjwysocki.net \
    --cc=tglx@linutronix.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).