Re: [PATCH] - Increase PNP_MAX_PORT. ACPI devices can have a lot IO resource declarations

Bjorn Helgaas
2007-07-18T21:35:50Z

On Wednesday 18 July 2007 02:21:14 am Thomas Renninger wrote:
> On Tue, 2007-07-17 at 09:49 -0600, Bjorn Helgaas wrote:
> > On Monday 16 July 2007 08:21:07 am Thomas Renninger wrote:
> > > PNP0C02 devices normally have a lot more IO port declarations than
> > > currently defined in PNP_MAX_PORT
> >
> > Yes.
> >
> > > I also wonder whether other limits like:
> > > #define PNP_MAX_MEM 4
> > > #define PNP_MAX_IRQ 2
> > > #define PNP_MAX_DMA 2
> > > could get exceeded with pnpacpi?
> >
> > Definitely. I think the current limits come from the PNP ISA spec
> > (sec 4.6). I don't see similar limits in the PNPBIOS or ACPI specs,
> > so ideally I think they should be dynamically allocated as you suggest.
> >
> I wanted to implement the dynamic approach and used a dynamically
> allocated array, filled up from beginning. While this is close to the
> current implementation I thought this is the easiest sufficient way...
> (I also only did this for io ports where most mem is wasted).
> Now I am thinking about hotplug (e.g. if a SSDT with resources gets
> hot-added, removed)... If a device can vanish, the array must get
> reordered, not a really well fitting structure, a list (a pnp specific
> set up, or from include/linux/list.h?) should be better?

I don't understand the array reordering problem. Either a device exists
or it doesn't. Loading or unloading an SSDT should not change the number
of resources for devices (except that it might add or remove an entire
device).

I think for now, it would be sufficient to increase PNP_MAX_IRQ to 8
and PNP_MAX_PORT to 32 and be done with it. I don't think it's worth
getting more complicated unless we dynamically allocate everything.

Bjorn