[patch 00/53] PNP cleanup and convert to dynamic resources, v3

Bjorn Helgaas
2008-04-18T20:49:55Z

This finally replaces the fixed-size pnp_resource_table
with something more dynamic so we can quit worrying about
table overflows.

Most of the patches here just lead up to the dynamic
resources patch by incrementally cleaning things up
and reducing the amount of code that knows about the
pnp_resource_table.

There are a *lot* of changes from v2, mostly to fix the
ISAPNP problem Rene pointed out (we need to track the
config register index so we write things back to the
same register we read them from).

Rene, you acked many of these patches previously, and
I noted those in the patches. But where I made more than
trivial changes, I removed your ack.

Changes between v2 and v3:

- several updates from Rene Herman's review:
- tweak EISA ID conversion and keep high-order bit for ISAPNP
- fix pnp_add_card_id() to bisection works better
- fix some "x <= 0" tests when x is unsigned
- make resource accessors inlines, not #defines
- fix pnp_{port,mem,irq,dma}_valid() return int, not resource_size_t
- fold isapnp_read_resources() back into isapnp_get_resources()
- factored out pnp_init_resource() from pnp_{init,clean}_resource_table()
- initialize generic pnp_dev fields earlier, to help dev_printk
- add pnp_resource to hold ISAPNP register index
- convert to resource management from table to list (finally)
- remove pnp_dev->regs (only set by ISAPNP, never used)
- in /sys/.../resources, don't sort resources by type

Changes between first post and v2:

- export pnp_get_resource()
- fix EISA ID conversion and make a common function for ISAPNP/PNPBIOS
- fix typos in pnp_check_{port,mem,etc} that made resource assign fail

- the following fixes should precede this series (they're in -mm already):
- parport_pc: wrap PNP probe code in CONFIG_PNP
- radio-cadet: wrap PNP probe code in CONFIG_PNP
- smsc-ircc2: wrap PNP probe code in CONFIG_PNP
- nsc-ircc: wrap PNP probe code in CONFIG_PNP

Bjorn

--