Skip to content

PNP cleanup, v5

Bjorn Helgaas linux-acpi lkml 1 version In review

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest55 patches 1 replyIn review

Changes between v4 and v5 from the cover letter

- moved #ifdef DEBUG inside dbg_pnp_show_resources()
- removed cast of flags to int; print the long directly
- changed printk "0x%x" to "%#x"
- set "type" in pnp_clean_resource_table()
- fix return type of pnp_{port,mem,irq,dma}_flags()
- new patch converts pnp_assign_*() and /sys interfaces to pnp_get_resource()
- added Rene's acks

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/55PNP: turn on -DDEBUG when CONFIG_PNP_DEBUG is setdrivers/pnp/isapnp/Makefile drivers/pnp/pnpacpi/Makefile drivers/pnp/pnpbios/Makefile+12 -00 replies
2/55ISAPNP: move config register addresses out of isapnp.hdrivers/pnp/isapnp/core.c include/linux/isapnp.h+8 -100 replies
3/55PNPACPI: continue after _CRS and _PRS errorsdrivers/pnp/pnpacpi/core.c+2 -60 replies
4/55PNP: make pnp_add_id() internal to PNP coredrivers/pnp/base.h drivers/pnp/pnpacpi/core.c drivers/pnp/pnpbios/core.c +1 more+3 -20 replies
5/55PNP: change pnp_add_id() to allocate its own pnp_id structuresdrivers/pnp/base.h drivers/pnp/driver.c drivers/pnp/isapnp/core.c +3 more+36 -480 replies
6/55PNP: add pnp_eisa_id_to_string()drivers/pnp/base.h drivers/pnp/isapnp/core.c drivers/pnp/pnpbios/core.c +2 more+43 -450 replies
7/55PNP: add pnp_alloc_dev()drivers/pnp/base.h drivers/pnp/core.c drivers/pnp/isapnp/core.c +2 more+42 -400 replies
8/55PNP: make pnp_add_card_id() internal to PNP coredrivers/pnp/base.h include/linux/pnp.h+1 -20 replies
9/55PNP: change pnp_add_card_id() to allocate its own pnp_id structuresdrivers/pnp/base.h drivers/pnp/card.c drivers/pnp/isapnp/core.c+33 -170 replies
10/55ISAPNP: pull pnp_add_card_id() out of isapnp_parse_card_id()drivers/pnp/isapnp/core.c+6 -220 replies
11/55PNP: add pnp_alloc_card()drivers/pnp/base.h drivers/pnp/card.c drivers/pnp/isapnp/core.c+31 -110 replies
12/55PNPACPI: pnpacpi_encode_ext_irq() wrongly set "irq" instead of "extended_irq"drivers/pnp/pnpacpi/rsparser.c+2 -20 replies
13/55PNPACPI: use temporaries to reduce repetitiondrivers/pnp/pnpacpi/rsparser.c+103 -730 replies
14/55PNPACPI: hoist dma_flags() out of pnpacpi_parse_allocated_dmaresource()drivers/pnp/pnpacpi/rsparser.c+4 -70 replies
15/55PNPACPI: extend irq_flags() to set IORESOURCE_IRQ_SHAREABLE when appropriatedrivers/pnp/pnpacpi/rsparser.c+15 -110 replies
16/55PNPACPI: pass pnp_dev instead of acpi_handledrivers/pnp/pnpacpi/core.c drivers/pnp/pnpacpi/pnpacpi.h drivers/pnp/pnpacpi/rsparser.c+5 -40 replies
17/55PNP: add debug output to option registrationdrivers/pnp/isapnp/core.c drivers/pnp/pnpacpi/rsparser.c drivers/pnp/pnpbios/rsparser.c +2 more+141 -840 replies
18/55PNP: remove pnp_resource_table from internal get/set interfacesdrivers/pnp/interface.c drivers/pnp/isapnp/core.c drivers/pnp/manager.c +3 more+16 -210 replies
19/55PNP: remove more pnp_resource_table argumentsdrivers/pnp/isapnp/core.c drivers/pnp/pnpacpi/core.c drivers/pnp/pnpacpi/pnpacpi.h +4 more+73 -710 replies
20/55PNP: add debug output to encodersdrivers/pnp/isapnp/core.c drivers/pnp/pnpacpi/core.c drivers/pnp/pnpacpi/rsparser.c +2 more+127 -430 replies
21/55PNP: add debug when assigning PNP resourcesdrivers/pnp/base.h drivers/pnp/manager.c drivers/pnp/support.c+100 -200 replies
22/55PNP: add pnp_init_resources(struct pnp_dev *) interfacedrivers/pnp/interface.c drivers/pnp/isapnp/core.c drivers/pnp/manager.c +5 more+16 -110 replies
23/55PNP: remove pnp_resource_table from internal pnp_clean_resource_table interfacedrivers/pnp/manager.c+5 -40 replies
24/55PNP: remove unused interfaces using pnp_resource_tabledrivers/pnp/manager.c include/linux/pnp.h+2 -840 replies
25/55PNP: use dev_printk when possibledrivers/pnp/isapnp/core.c drivers/pnp/pnpacpi/rsparser.c drivers/pnp/pnpbios/rsparser.c+43 -500 replies
26/55PNP: factor pnp_init_resource_table() and pnp_clean_resource_table()drivers/pnp/base.h drivers/pnp/manager.c+54 -460 replies
27/55PNP: add pnp_get_resource() interfacedrivers/pnp/resource.c include/linux/pnp.h+28 -00 replies
28/55PNP: remove pnp_mem_flags() as an lvaluedrivers/pnp/quirks.c+3 -10 replies
29/55PNP: convert resource accessors to use pnp_get_resource(), not pnp_resource_tableinclude/linux/pnp.h+105 -400 replies
30/55PNP: use conventional "i" for loop indicesdrivers/pnp/resource.c+46 -460 replies
31/55PNP: reduce redundancy in pnp_assign_port() and othersdrivers/pnp/manager.c+56 -670 replies
32/55PNP: reduce redundancy in pnp_check_port() and othersdrivers/pnp/resource.c+54 -380 replies
33/55PNP: reduce redundancy in pnp_set_current_resources()drivers/pnp/interface.c+17 -240 replies
34/55PNP: check for conflicts with all resources, not just earlier onesdrivers/pnp/resource.c+8 -80 replies
35/55PNP: pass resources, not indexes, to pnp_check_port(), et aldrivers/pnp/base.h drivers/pnp/manager.c drivers/pnp/resource.c+16 -200 replies
36/55PNP: convert resource checks to use pnp_get_resource(), not pnp_resource_tabledrivers/pnp/resource.c+16 -160 replies
37/55PNP: convert encoders to use pnp_get_resource(), not pnp_resource_tabledrivers/pnp/pnpacpi/rsparser.c drivers/pnp/pnpbios/rsparser.c+22 -190 replies
38/55PNP: convert assign, interface to use pnp_get_resource(), not pnp_resource_tabledrivers/pnp/interface.c drivers/pnp/manager.c drivers/pnp/support.c+32 -320 replies
39/55PNP: remove PNP_MAX_* usesdrivers/pnp/interface.c drivers/pnp/quirks.c drivers/pnp/resource.c +1 more+60 -630 replies
40/55rtc: dont reference pnp_resource_table directlydrivers/rtc/rtc-cmos.c+4 -30 replies
41/55PNP: make pnp_resource_table private to PNP coredrivers/pnp/base.h drivers/pnp/core.c drivers/pnp/isapnp/core.c +5 more+43 -310 replies
42/55PNP: remove pnp_resource_table references from resource decodersdrivers/pnp/isapnp/core.c drivers/pnp/pnpacpi/rsparser.c drivers/pnp/pnpbios/rsparser.c+143 -1280 replies
43/55PNP: add struct pnp_resourcedrivers/pnp/base.h drivers/pnp/manager.c drivers/pnp/resource.c+20 -160 replies
44/55PNP: add pnp_get_pnp_resource()drivers/pnp/base.h drivers/pnp/resource.c+21 -60 replies
45/55PNP: add pnp_resource index for ISAPNPdrivers/pnp/base.h drivers/pnp/interface.c drivers/pnp/isapnp/core.c +1 more+92 -370 replies
46/55PNP: add pnp_new_resource() to find a new unset pnp_resourcedrivers/pnp/resource.c+38 -00 replies
47/55PNP: make generic pnp_add_irq_resource()drivers/pnp/base.h drivers/pnp/interface.c drivers/pnp/isapnp/core.c +3 more+51 -660 replies
48/55PNP: make generic pnp_add_dma_resource()drivers/pnp/base.h drivers/pnp/interface.c drivers/pnp/isapnp/core.c +3 more+47 -720 replies
49/55PNP: make generic pnp_add_io_resource()drivers/pnp/base.h drivers/pnp/interface.c drivers/pnp/isapnp/core.c +3 more+59 -590 replies
50/55PNP: make generic pnp_add_mem_resource()drivers/pnp/base.h drivers/pnp/interface.c drivers/pnp/isapnp/core.c +3 more+56 -600 replies
51/55ISAPNP: fold isapnp_read_resources() back into isapnp_get_resources()drivers/pnp/isapnp/core.c+29 -370 replies
52/55PNPACPI: move _CRS/_PRS warnings closer to the actiondrivers/pnp/pnpacpi/core.c drivers/pnp/pnpacpi/pnpacpi.h drivers/pnp/pnpacpi/rsparser.c+29 -290 replies
53/55PNP: make interfaces private to the PNP coredrivers/pnp/base.h include/linux/pnp.h+26 -370 replies
54/55ISAPNP: remove unused pnp_dev->regs fielddrivers/pnp/isapnp/core.c include/linux/pnp.h+0 -40 replies
55/55PNPBIOS: remove include/linux/pnpbios.hdrivers/pnp/pnpbios/bioscalls.c drivers/pnp/pnpbios/core.c drivers/pnp/pnpbios/pnpbios.h +3 more+137 -1550 replies

Reviews trailers per patch

37 of 55 patches have a Reviewed-by or Acked-by.

PatchRene Herman
1/55A-b
2/55A-b
3/55
4/55A-b
5/55A-b
6/55A-b
7/55A-b
8/55A-b
9/55A-b
10/55A-b
11/55A-b
12/55
13/55A-b
14/55A-b
15/55A-b
16/55A-b
17/55A-b
18/55A-b
19/55A-b
20/55A-b
21/55
22/55A-b
23/55A-b
24/55A-b
25/55A-b
26/55
27/55A-b
28/55A-b
29/55
30/55A-b
31/55A-b
32/55A-b
33/55A-b
34/55A-b
35/55A-b
36/55A-b
37/55A-b
38/55
39/55
40/55A-b
41/55
42/55
43/55
44/55
45/55
46/55
47/55
48/55
49/55
50/55
51/55
52/55A-b
53/55A-b
54/55A-b
55/55A-b

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.

Read the v1 thread

Cover letter [patch 00/55] PNP cleanup, v5

I'm trying to stabilize something so we can get it into -mm, so this only addresses Rene's comments on v4.

As a reminder, if anybody tests this and sees problems, the dmesg log with CONFIG_PNP_DEBUG enabled would be a great help to me.

Changes between v4 and v5:

- moved #ifdef DEBUG inside dbg_pnp_show_resources()
- removed cast of flags to int; print the long directly
- changed printk "0x%x" to "%#x"
- set "type" in pnp_clean_resource_table()
- fix return type of pnp_{port,mem,irq,dma}_flags()
- new patch converts pnp_assign_*() and /sys interfaces to pnp_get_resource()
- added Rene's acks

Changes between v3 and v4:

- changed pnp_check_port(), etc., to take resource instead of index
- added some decoder/encoder/assign debug output (under CONFIG_PNP_DEBUG)
- fixed some ISAPNP register index bisectability problems
- removed the list-based resource management (will work on that separately)

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() so 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