2 25-akpm/drivers/pnp/pnpbios/bioscalls.c | 4 ++--
3 1 files changed, 2 insertions(+), 2 deletions(-)
5 diff -puN drivers/pnp/pnpbios/bioscalls.c~pnp-bios-fix drivers/pnp/pnpbios/bioscalls.c
6 --- 25/drivers/pnp/pnpbios/bioscalls.c~pnp-bios-fix Tue Dec 23 15:52:55 2003
7 +++ 25-akpm/drivers/pnp/pnpbios/bioscalls.c Tue Dec 23 15:52:55 2003
8 @@ -493,7 +493,7 @@ static int __pnp_bios_read_escd(char *da
9 if (!pnp_bios_present())
10 return ESCD_FUNCTION_NOT_SUPPORTED;
11 status = call_pnp_bios(PNP_READ_ESCD, 0, PNP_TS1, PNP_TS2, PNP_DS, 0, 0, 0,
12 - data, 65536, __va(nvram_base), 65536);
13 + data, 65536, __va((void *)nvram_base), 65536);
17 @@ -516,7 +516,7 @@ static int pnp_bios_write_escd(char *dat
18 if (!pnp_bios_present())
19 return ESCD_FUNCTION_NOT_SUPPORTED;
20 status = call_pnp_bios(PNP_WRITE_ESCD, 0, PNP_TS1, PNP_TS2, PNP_DS, 0, 0, 0,
21 - data, 65536, __va(nvram_base), 65536);
22 + data, 65536, __va((void *)nvram_base), 65536);
27 drivers/pnp/Kconfig | 28 ++--------------------------
28 drivers/pnp/isapnp/Kconfig | 11 +++++++++++
29 drivers/pnp/pnpbios/Kconfig | 41 +++++++++++++++++++++++++++++++++++++++++
30 drivers/pnp/pnpbios/Makefile | 2 +-
31 drivers/pnp/pnpbios/pnpbios.h | 4 ++--
32 5 files changed, 57 insertions(+), 29 deletions(-)
34 diff -puN /dev/null drivers/pnp/isapnp/Kconfig
35 --- /dev/null 2002-08-30 16:31:37.000000000 -0700
36 +++ 25-akpm/drivers/pnp/isapnp/Kconfig 2003-11-15 23:03:06.000000000 -0800
39 +# ISA Plug and Play configuration
42 + bool "ISA Plug and Play support (EXPERIMENTAL)"
43 + depends on PNP && EXPERIMENTAL
45 + Say Y here if you would like support for ISA Plug and Play devices.
46 + Some information is in <file:Documentation/isapnp.txt>.
49 diff -puN drivers/pnp/Kconfig~pnp-fix-2 drivers/pnp/Kconfig
50 --- 25/drivers/pnp/Kconfig~pnp-fix-2 2003-11-15 23:03:06.000000000 -0800
51 +++ 25-akpm/drivers/pnp/Kconfig 2003-11-15 23:03:06.000000000 -0800
52 @@ -30,33 +30,9 @@ config PNP_DEBUG
57 - bool "ISA Plug and Play support (EXPERIMENTAL)"
58 - depends on PNP && EXPERIMENTAL
60 - Say Y here if you would like support for ISA Plug and Play devices.
61 - Some information is in <file:Documentation/isapnp.txt>.
62 +source "drivers/pnp/isapnp/Kconfig"
67 - bool "Plug and Play BIOS support (EXPERIMENTAL)"
68 - depends on PNP && EXPERIMENTAL
70 - Linux uses the PNPBIOS as defined in "Plug and Play BIOS
71 - Specification Version 1.0A May 5, 1994" to autodetect built-in
72 - mainboard resources (e.g. parallel port resources).
74 - Some features (e.g. event notification, docking station information,
75 - ISAPNP services) are not used.
77 - Note: ACPI is expected to supersede PNPBIOS some day, currently it
80 - See latest pcmcia-cs (stand-alone package) for a nice "lspnp" tools,
81 - or have a look at /proc/bus/pnp.
84 +source "drivers/pnp/pnpbios/Kconfig"
88 diff -puN /dev/null drivers/pnp/pnpbios/Kconfig
89 --- /dev/null 2002-08-30 16:31:37.000000000 -0700
90 +++ 25-akpm/drivers/pnp/pnpbios/Kconfig 2003-11-15 23:03:06.000000000 -0800
93 +# Plug and Play BIOS configuration
96 + bool "Plug and Play BIOS support (EXPERIMENTAL)"
97 + depends on PNP && EXPERIMENTAL
99 + Linux uses the PNPBIOS as defined in "Plug and Play BIOS
100 + Specification Version 1.0A May 5, 1994" to autodetect built-in
101 + mainboard resources (e.g. parallel port resources).
103 + Some features (e.g. event notification, docking station information,
104 + ISAPNP services) are not currently implemented.
106 + If you would like the kernel to detect and allocate resources to
107 + your mainboard devices (on some systems they are disabled by the
108 + BIOS) say Y here. Also the PNPBIOS can help prevent resource
109 + conflicts between mainboard devices and other bus devices.
111 + Note: ACPI is expected to supersede PNPBIOS some day, currently it
112 + co-exists nicely. If you have a non-ISA system that supports ACPI,
113 + you probably don't need PNPBIOS support.
115 +config PNPBIOS_PROC_FS
116 + bool "Plug and Play BIOS /proc interface"
117 + depends on PNPBIOS && PROC_FS
119 + If you say Y here and to "/proc file system support", you will be
120 + able to directly access the PNPBIOS. This includes resource
121 + allocation, ESCD, and other PNPBIOS services. Using this
122 + interface is potentially dangerous because the PNPBIOS driver will
123 + not be notified of any resource changes made by writting directly.
124 + Also some buggy systems will fault when accessing certain features
125 + in the PNPBIOS /proc interface (e.g. ESCD).
127 + See the latest pcmcia-cs (stand-alone package) for a nice set of
128 + PNPBIOS /proc interface tools (lspnp and setpnp).
130 + Unless you are debugging or have other specific reasons, it is
131 + recommended that you say N here.
133 diff -puN drivers/pnp/pnpbios/Makefile~pnp-fix-2 drivers/pnp/pnpbios/Makefile
134 --- 25/drivers/pnp/pnpbios/Makefile~pnp-fix-2 2003-11-15 23:03:06.000000000 -0800
135 +++ 25-akpm/drivers/pnp/pnpbios/Makefile 2003-11-15 23:03:06.000000000 -0800
137 # Makefile for the kernel PNPBIOS driver.
140 -pnpbios-proc-$(CONFIG_PROC_FS) = proc.o
141 +pnpbios-proc-$(CONFIG_PNPBIOS_PROC_FS) = proc.o
143 obj-y := core.o bioscalls.o rsparser.o $(pnpbios-proc-y)
144 diff -puN drivers/pnp/pnpbios/pnpbios.h~pnp-fix-2 drivers/pnp/pnpbios/pnpbios.h
145 --- 25/drivers/pnp/pnpbios/pnpbios.h~pnp-fix-2 2003-11-15 23:03:06.000000000 -0800
146 +++ 25-akpm/drivers/pnp/pnpbios/pnpbios.h 2003-11-15 23:03:06.000000000 -0800
147 @@ -36,7 +36,7 @@ extern void pnpid32_to_pnpid(u32 id, cha
148 extern void pnpbios_print_status(const char * module, u16 status);
149 extern void pnpbios_calls_init(union pnp_bios_install_struct * header);
151 -#ifdef CONFIG_PROC_FS
152 +#ifdef CONFIG_PNPBIOS_PROC_FS
153 extern int pnpbios_interface_attach_device(struct pnp_bios_node * node);
154 extern int pnpbios_proc_init (void);
155 extern void pnpbios_proc_exit (void);
156 @@ -44,4 +44,4 @@ extern void pnpbios_proc_exit (void);
157 static inline int pnpbios_interface_attach_device(struct pnp_bios_node * node) { return 0; }
158 static inline int pnpbios_proc_init (void) { return 0; }
159 static inline void pnpbios_proc_exit (void) { ; }
160 -#endif /* CONFIG_PROC */
161 +#endif /* CONFIG_PNPBIOS_PROC_FS */
162 drivers/pnp/isapnp/core.c | 8 +++-----
163 1 files changed, 3 insertions(+), 5 deletions(-)
165 diff -puN drivers/pnp/isapnp/core.c~pnp-fix-3 drivers/pnp/isapnp/core.c
166 --- 25/drivers/pnp/isapnp/core.c~pnp-fix-3 2003-11-15 23:03:07.000000000 -0800
167 +++ 25-akpm/drivers/pnp/isapnp/core.c 2003-11-15 23:03:07.000000000 -0800
168 @@ -890,11 +890,9 @@ static int __init isapnp_build_device_li
169 header[4], header[5], header[6], header[7], header[8]);
170 printk(KERN_DEBUG "checksum = 0x%x\n", checksum);
172 - /* Don't be strict on the checksum, here !
173 - e.g. 'SCM SwapBox Plug and Play' has header[8]==0 (should be: b7)*/
174 - if (header[8] == 0)
176 - else if (checksum == 0x00 || checksum != header[8]) /* not valid CSN */
177 + /* Per Section 6.1 of the Plug and Play ISA Specification (Version 1.0a), */
178 + /* Bit[7] of Vendor ID Byte 0 must be 0 */
179 + if (header[0] & 0x80) /* not valid CSN */
181 if ((card = isapnp_alloc(sizeof(struct pnp_card))) == NULL)