From: Rene Herman <rene.herman@keyaccess.nl>
To: Bjorn Helgaas <bjorn.helgaas@hp.com>
Cc: Len Brown <lenb@kernel.org>,
linux-acpi@vger.kernel.org, linux-kernel@vger.kernel.org,
Adam Belay <ambx1@neo.rr.com>, Adam M Belay <abelay@mit.edu>,
Li Shaohua <shaohua.li@intel.com>,
Matthieu Castet <castet.matthieu@free.fr>,
Thomas Renninger <trenn@suse.de>,
Jaroslav Kysela <perex@perex.cz>,
Andrew Morton <akpm@linux-foundation.org>,
Takashi Iwai <tiwai@suse.de>
Subject: Re: [patch 14/15] PNP: support optional IRQ resources
Date: Tue, 03 Jun 2008 19:37:05 +0200 [thread overview]
Message-ID: <48458141.9020409@keyaccess.nl> (raw)
In-Reply-To: <20080530224934.156287156@ldl.fc.hp.com>
On 31-05-08 00:49, Bjorn Helgaas wrote:
> This patch adds an IORESOURCE_IRQ_OPTIONAL flag for use when
> assigning resources to a device. If the flag is set and we are
> unable to assign an IRQ to the device, we can leave the IRQ
> disabled but allow the overall resource allocation to succeed.
>
> Some devices request an IRQ, but can run without an IRQ
> (possibly with degraded performance). This flag lets us run
> the device without the IRQ instead of just leaving the
> device disabled.
>
> This is a reimplementation of this previous change by Rene
> Herman <rene.herman@gmail.com>:
> http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=3b73a223661ed137c5d3d2635f954382e94f5a43
>
> I reimplemented this for two reasons:
> - to prepare for converting all resource options into a single linked
> list, as opposed to the per-resource-type lists we have now, and
> - to preserve the order and number of resource options.
>
> In PNPBIOS and ACPI, we configure a device by giving firmware a
> list of resource assignments. It is important that this list
> has exactly the same number of resources, in the same order,
> as the "template" list we got from the firmware in the first
> place.
>
> The problem of a sound card being left disabled for want of an
> IRQ was reported by Uwe Bugla <uwe.bugla@gmx.de>.
Nit -- the soundcard itself isn't left disabled, just its MPU401. It's
only the fact that ALSA mentions this fact which triggered the report.
> Signed-off-by: Bjorn Helgaas <bjorn.helgaas@hp.com>
>
> Index: work10/include/linux/ioport.h
> ===================================================================
> --- work10.orig/include/linux/ioport.h 2008-05-20 13:34:58.000000000 -0600
> +++ work10/include/linux/ioport.h 2008-05-20 13:39:21.000000000 -0600
> @@ -59,6 +59,7 @@ struct resource_list {
> #define IORESOURCE_IRQ_HIGHLEVEL (1<<2)
> #define IORESOURCE_IRQ_LOWLEVEL (1<<3)
> #define IORESOURCE_IRQ_SHAREABLE (1<<4)
> +#define IORESOURCE_IRQ_OPTIONAL (1<<5)
>
> /* ISA PnP DMA specific bits (IORESOURCE_BITS) */
> #define IORESOURCE_DMA_TYPE_MASK (3<<0)
Andrew scooped up a patch from a previous reaction of mine that deleted
the "ISA " from these comments. I tend to use comments as a great way of
avoiding actually reading code (I'm silly like that) and so as to be
burned a _bit_ less by it, I think it's good if they're accurate. In
this case for example, one might be tempted to assume these bits were
specific to drivers/pnp/isapnp.
<snip>
> @@ -164,10 +176,6 @@ static void quirk_ad1815_mpu_resources(s
> struct pnp_option *res;
> struct pnp_irq *irq;
>
> - /*
> - * Distribute the independent IRQ over the dependent options
> - */
> -
> res = dev->independent;
> if (!res)
> return;
> @@ -176,33 +184,10 @@ static void quirk_ad1815_mpu_resources(s
> if (!irq || irq->next)
> return;
>
> - res = dev->dependent;
> - if (!res)
> - return;
> -
> - while (1) {
> - struct pnp_irq *copy;
> -
> - copy = pnp_alloc(sizeof *copy);
> - if (!copy)
> - break;
> -
> - bitmap_copy(copy->map.bits, irq->map.bits, PNP_IRQ_NR);
> - copy->flags = irq->flags;
> -
> - copy->next = res->irq; /* Yes, this is NULL */
> - res->irq = copy;
> -
> - if (!res->next)
> - break;
> - res = res->next;
> - }
> - kfree(irq);
> + irq->flags |= IORESOURCE_IRQ_OPTIONAL;
> + dev_info(&dev->dev, "made independent IRQ optional\n");
>
> res->next = quirk_isapnp_mpu_options(dev);
As commented yesterday, this line should just go. We don't need to clone
here (we do for the other two PNP IDs, so the cloning can't go entirely).
The actual (slight) problem with it not working is in 15/15...
> -
> - res = dev->independent;
> - res->irq = NULL;
> }
>
> static void quirk_isapnp_mpu_resources(struct pnp_dev *dev)
Rene.
next prev parent reply other threads:[~2008-06-03 17:37 UTC|newest]
Thread overview: 46+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-05-30 22:48 [patch 00/15] PNP: convert resource options to unified dynamic list, v1 Bjorn Helgaas
2008-05-30 22:48 ` [patch 01/15] serial: when guessing, check only active resources, not options Bjorn Helgaas
2008-06-01 19:42 ` Rene Herman
2008-06-02 15:21 ` Bjorn Helgaas
2008-05-30 22:48 ` [patch 02/15] PNP: whitespace/coding style fixes Bjorn Helgaas
2008-06-01 19:52 ` Rene Herman
2008-05-30 22:48 ` [patch 03/15] PNP: define PNP-specific IORESOURCE_IO_* flags alongside IRQ, DMA, MEM Bjorn Helgaas
2008-06-01 21:03 ` Rene Herman
2008-05-30 22:48 ` [patch 04/15] PNP: make resource option structures private to PNP subsystem Bjorn Helgaas
2008-06-01 21:06 ` Rene Herman
2008-05-30 22:48 ` [patch 05/15] PNP: introduce pnp_irq_mask_t typedef Bjorn Helgaas
2008-06-01 21:25 ` Rene Herman
2008-05-30 22:48 ` [patch 06/15] PNP: increase I/O port & memory option address sizes Bjorn Helgaas
2008-06-01 21:39 ` Rene Herman
2008-05-30 22:49 ` [patch 07/15] PNP: improve resource assignment debug Bjorn Helgaas
2008-06-01 21:41 ` Rene Herman
2008-05-30 22:49 ` [patch 08/15] PNP: in debug resource dump, make empty list obvious Bjorn Helgaas
2008-06-01 21:44 ` Rene Herman
2008-05-30 22:49 ` [patch 09/15] PNP: make resource assignment functions return 0 (success) or -EBUSY (failure) Bjorn Helgaas
2008-06-01 21:59 ` Rene Herman
2008-05-30 22:49 ` [patch 10/15] PNP: remove redundant pnp_can_configure() check Bjorn Helgaas
2008-06-01 22:00 ` Rene Herman
2008-05-30 22:49 ` [patch 11/15] PNP: centralize resource option allocations Bjorn Helgaas
2008-06-01 23:21 ` Rene Herman
2008-06-02 15:29 ` Bjorn Helgaas
2008-05-30 22:49 ` [patch 12/15] PNPACPI: ignore _PRS interrupt numbers larger than PNP_IRQ_NR Bjorn Helgaas
2008-06-01 23:23 ` Rene Herman
2008-05-30 22:49 ` [patch 13/15] PNP: rename pnp_register_*_resource() local variables Bjorn Helgaas
2008-06-01 23:25 ` Rene Herman
2008-05-30 22:49 ` [patch 14/15] PNP: support optional IRQ resources Bjorn Helgaas
2008-06-03 17:37 ` Rene Herman [this message]
2008-06-03 20:20 ` Bjorn Helgaas
2008-06-03 20:25 ` Rene Herman
2008-05-30 22:49 ` [patch 15/15] PNP: convert resource options to single linked list Bjorn Helgaas
2008-06-03 19:57 ` Rene Herman
2008-06-03 23:03 ` Bjorn Helgaas
2008-06-04 0:03 ` Rene Herman
2008-06-03 23:52 ` Rene Herman
2008-06-04 11:48 ` Rene Herman
2008-06-04 20:50 ` Bjorn Helgaas
2008-06-04 22:31 ` Rene Herman
2008-06-04 23:06 ` Bjorn Helgaas
2008-06-03 21:13 ` Rene Herman
2008-06-04 21:26 ` Bjorn Helgaas
2008-06-01 19:28 ` [patch 00/15] PNP: convert resource options to unified dynamic list, v1 Rene Herman
2008-06-02 15:56 ` Bjorn Helgaas
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=48458141.9020409@keyaccess.nl \
--to=rene.herman@keyaccess.nl \
--cc=abelay@mit.edu \
--cc=akpm@linux-foundation.org \
--cc=ambx1@neo.rr.com \
--cc=bjorn.helgaas@hp.com \
--cc=castet.matthieu@free.fr \
--cc=lenb@kernel.org \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=perex@perex.cz \
--cc=shaohua.li@intel.com \
--cc=tiwai@suse.de \
--cc=trenn@suse.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