]>
Commit | Line | Data |
---|---|---|
c7515dba | 1 | |
2 | 25-akpm/drivers/pnp/pnpbios/bioscalls.c | 4 ++-- | |
3 | 1 files changed, 2 insertions(+), 2 deletions(-) | |
4 | ||
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, (void *)nvram_base, 65536); | |
13 | + data, 65536, __va((void *)nvram_base), 65536); | |
14 | return status; | |
15 | } | |
16 | ||
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, nvram_base, 65536); | |
22 | + data, 65536, __va((void *)nvram_base), 65536); | |
23 | return status; | |
24 | } | |
25 | #endif | |
26 | ||
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(-) | |
33 | ||
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 | |
37 | @@ -0,0 +1,11 @@ | |
38 | +# | |
39 | +# ISA Plug and Play configuration | |
40 | +# | |
41 | +config ISAPNP | |
42 | + bool "ISA Plug and Play support (EXPERIMENTAL)" | |
43 | + depends on PNP && EXPERIMENTAL | |
44 | + help | |
45 | + Say Y here if you would like support for ISA Plug and Play devices. | |
46 | + Some information is in <file:Documentation/isapnp.txt>. | |
47 | + | |
48 | + If unsure, say Y. | |
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 | |
53 | comment "Protocols" | |
54 | depends on PNP | |
55 | ||
56 | -config ISAPNP | |
57 | - bool "ISA Plug and Play support (EXPERIMENTAL)" | |
58 | - depends on PNP && EXPERIMENTAL | |
59 | - help | |
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" | |
63 | ||
64 | - If unsure, say Y. | |
65 | - | |
66 | -config PNPBIOS | |
67 | - bool "Plug and Play BIOS support (EXPERIMENTAL)" | |
68 | - depends on PNP && EXPERIMENTAL | |
69 | - ---help--- | |
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). | |
73 | - | |
74 | - Some features (e.g. event notification, docking station information, | |
75 | - ISAPNP services) are not used. | |
76 | - | |
77 | - Note: ACPI is expected to supersede PNPBIOS some day, currently it | |
78 | - co-exists nicely. | |
79 | - | |
80 | - See latest pcmcia-cs (stand-alone package) for a nice "lspnp" tools, | |
81 | - or have a look at /proc/bus/pnp. | |
82 | - | |
83 | - If unsure, say Y. | |
84 | +source "drivers/pnp/pnpbios/Kconfig" | |
85 | ||
86 | endmenu | |
87 | ||
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 | |
91 | @@ -0,0 +1,41 @@ | |
92 | +# | |
93 | +# Plug and Play BIOS configuration | |
94 | +# | |
95 | +config PNPBIOS | |
96 | + bool "Plug and Play BIOS support (EXPERIMENTAL)" | |
97 | + depends on PNP && EXPERIMENTAL | |
98 | + ---help--- | |
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). | |
102 | + | |
103 | + Some features (e.g. event notification, docking station information, | |
104 | + ISAPNP services) are not currently implemented. | |
105 | + | |
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. | |
110 | + | |
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. | |
114 | + | |
115 | +config PNPBIOS_PROC_FS | |
116 | + bool "Plug and Play BIOS /proc interface" | |
117 | + depends on PNPBIOS && PROC_FS | |
118 | + ---help--- | |
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). | |
126 | + | |
127 | + See the latest pcmcia-cs (stand-alone package) for a nice set of | |
128 | + PNPBIOS /proc interface tools (lspnp and setpnp). | |
129 | + | |
130 | + Unless you are debugging or have other specific reasons, it is | |
131 | + recommended that you say N here. | |
132 | + | |
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 | |
136 | @@ -2,6 +2,6 @@ | |
137 | # Makefile for the kernel PNPBIOS driver. | |
138 | # | |
139 | ||
140 | -pnpbios-proc-$(CONFIG_PROC_FS) = proc.o | |
141 | +pnpbios-proc-$(CONFIG_PNPBIOS_PROC_FS) = proc.o | |
142 | ||
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); | |
150 | ||
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(-) | |
164 | ||
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); | |
171 | #endif | |
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) | |
175 | - ; | |
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 */ | |
180 | continue; | |
181 | if ((card = isapnp_alloc(sizeof(struct pnp_card))) == NULL) | |
182 | continue; |