PNP cleanup and convert to dynamic resources, v3
Get series with b4
b4 am [email protected]Versions newest first
- v1 Latest53 patches 11 repliesIn review
Changes between v2 and v3 from the cover letter
- 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
Patches in v1 No applies recorded yet
| # | Subject and files | Size | Replies | Applied |
|---|---|---|---|---|
| 1/53 | ISAPNP: move config register addresses out of isapnp.hdrivers/ include/ | +8 | 0 replies | |
| 2/53 | PNPACPI: continue after _CRS and _PRS errorsdrivers/ | +2 | 0 replies | |
| 3/53 | PNP: make pnp_add_id() internal to PNP coredrivers/ drivers/ drivers/ +1 more | +3 | 0 replies | |
| 4/53 | PNP: change pnp_add_id() to allocate its own pnp_id structuresdrivers/ drivers/ drivers/ +3 more | +36 | 0 replies | |
| 5/53 | PNP: add pnp_eisa_id_to_string()drivers/ drivers/ drivers/ +2 more | +43 | 0 replies | |
| 6/53 | PNP: add pnp_alloc_dev()drivers/ drivers/ drivers/ +2 more | +36 | 0 replies | |
| 7/53 | PNP: make pnp_add_card_id() internal to PNP coredrivers/ include/ | +1 | 0 replies | |
| 8/53 | PNP: change pnp_add_card_id() to allocate its own pnp_id structuresdrivers/ drivers/ drivers/ | +33 | 0 replies | |
| 9/53 | ISAPNP: pull pnp_add_card_id() out of isapnp_parse_card_id()drivers/ | +6 | 0 replies | |
| 10/53 | PNP: add pnp_alloc_card()drivers/ drivers/ drivers/ | +31 | 0 replies | |
| 11/53 | PNPACPI: pnpacpi_encode_ext_irq() wrongly set "irq" instead of "extended_irq"drivers/ | +2 | 0 replies | |
| 12/53 | PNPACPI: use temporaries to reduce repetitiondrivers/ | +103 | 0 replies | |
| 13/53 | PNPACPI: hoist dma_flags() out of pnpacpi_parse_allocated_dmaresource()drivers/ | +4 | 0 replies | |
| 14/53 | PNPACPI: extend irq_flags() to set IORESOURCE_IRQ_SHAREABLE when appropriatedrivers/ | +15 | 0 replies | |
| 15/53 | PNPACPI: pass pnp_dev instead of acpi_handledrivers/ drivers/ drivers/ | +5 | 0 replies | |
| 16/53 | PNP: remove pnp_resource_table from internal get/set interfacesdrivers/ drivers/ drivers/ +3 more | +16 | 0 replies | |
| 17/53 | PNP: remove more pnp_resource_table argumentsdrivers/ drivers/ drivers/ +4 more | +73 | 0 replies | |
| 18/53 | PNP: add pnp_init_resources(struct pnp_dev *) interfacedrivers/ drivers/ drivers/ +5 more | +16 | 0 replies | |
| 19/53 | PNP: remove pnp_resource_table from internal pnp_clean_resource_table interfacedrivers/ | +5 | 0 replies | |
| 20/53 | PNP: remove unused interfaces using pnp_resource_tabledrivers/ include/ | +3 | 0 replies | |
| 21/53 | PNP: use dev_printk when possibledrivers/ drivers/ drivers/ | +43 | 0 replies | |
| 22/53 | PNP: factor pnp_init_resource_table() and pnp_clean_resource_table()drivers/ drivers/ | +37 | 11 replies | |
| 23/53 | PNP: add pnp_get_resource() interfacedrivers/ include/ | +28 | 0 replies | |
| 24/53 | PNP: remove pnp_mem_flags() as an lvaluedrivers/ | +3 | 0 replies | |
| 25/53 | PNP: convert resource accessors to use pnp_get_resource(), not pnp_resource_tableinclude/ | +108 | 0 replies | |
| 26/53 | PNP: use conventional "i" for loop indicesdrivers/ | +46 | 0 replies | |
| 27/53 | PNP: convert resource checks to use pnp_get_resource(), not pnp_resource_tabledrivers/ | +58 | 0 replies | |
| 28/53 | PNP: convert resource assign functions to use pnp_get_resource(), not pnp_resource_tabledrivers/ | +28 | 0 replies | |
| 29/53 | PNP: convert sysfs interface to use pnp_get_resource(), not pnp_resource_tabledrivers/ | +29 | 0 replies | |
| 30/53 | PNP: convert resource initializers to use pnp_get_resource(), not pnp_resource_tabledrivers/ | +27 | 0 replies | |
| 31/53 | PNP: convert encoders to use pnp_get_resource(), not pnp_resource_tabledrivers/ drivers/ | +22 | 0 replies | |
| 32/53 | PNP: remove PNP_MAX_* usesdrivers/ drivers/ drivers/ +1 more | +70 | 0 replies | |
| 33/53 | rtc: dont reference pnp_resource_table directlydrivers/ | +4 | 0 replies | |
| 34/53 | PNP: make pnp_resource_table private to PNP coredrivers/ drivers/ drivers/ +4 more | +35 | 0 replies | |
| 35/53 | PNP: remove pnp_resource_table references from resource decodersdrivers/ drivers/ drivers/ | +138 | 0 replies | |
| 36/53 | PNP: add struct pnp_resourcedrivers/ drivers/ drivers/ +2 more | +38 | 0 replies | |
| 37/53 | PNP: add pnp_resource index for ISAPNPdrivers/ drivers/ | +14 | 0 replies | |
| 38/53 | PNP: add pnp_new_resource() to find a new unset pnp_resourcedrivers/ | +43 | 0 replies | |
| 39/53 | PNP: make generic pnp_add_irq_resource()drivers/ drivers/ drivers/ +3 more | +50 | 0 replies | |
| 40/53 | PNP: make generic pnp_add_dma_resource()drivers/ drivers/ drivers/ +3 more | +45 | 0 replies | |
| 41/53 | PNP: make generic pnp_add_io_resource()drivers/ drivers/ drivers/ +3 more | +56 | 0 replies | |
| 42/53 | PNP: make generic pnp_add_mem_resource()drivers/ drivers/ drivers/ +3 more | +53 | 0 replies | |
| 43/53 | ISAPNP: fold isapnp_read_resources() back into isapnp_get_resources()drivers/ | +28 | 0 replies | |
| 44/53 | PNP: add pnp_resource_type() internal interfacedrivers/ drivers/ | +7 | 0 replies | |
| 45/53 | PNP: replace pnp_resource_table with dynamically allocated resourcesdrivers/ drivers/ drivers/ +3 more | +68 | 0 replies | |
| 46/53 | PNP: remove ratelimit on add resource failuresdrivers/ | +6 | 0 replies | |
| 47/53 | PNPACPI: move _CRS/_PRS warnings closer to the actiondrivers/ drivers/ drivers/ | +28 | 0 replies | |
| 48/53 | PNPACPI: remove some pnp_dbg callsdrivers/ | +0 | 0 replies | |
| 49/53 | PNP: make interfaces private to the PNP coredrivers/ include/ | +23 | 0 replies | |
| 50/53 | ISAPNP: remove unused pnp_dev->regs fielddrivers/ include/ | +0 | 0 replies | |
| 51/53 | PNPBIOS: remove include/linux/pnpbios.hdrivers/ drivers/ drivers/ +3 more | +137 | 0 replies | |
| 52/53 | PNP: fill in generic pnp_dev fields earlierdrivers/ | +5 | 0 replies | |
| 53/53 | PNP: dont sort by type in /sys/.../resourcesdrivers/ | +43 | 0 replies |
Reviews trailers per patch
25 of 53 patches have a Reviewed-by or Acked-by.
Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.
Cover letter [patch 00/53] PNP cleanup and convert to dynamic resources, v3
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