diff options
-rw-r--r-- | drivers/isdn/hisax/sedlbauer_cs.c | 37 | ||||
-rw-r--r-- | drivers/net/wireless/airo_cs.c | 37 | ||||
-rw-r--r-- | drivers/staging/comedi/drivers/ni_daq_700.c | 23 | ||||
-rw-r--r-- | drivers/staging/comedi/drivers/ni_daq_dio24.c | 24 | ||||
-rw-r--r-- | drivers/staging/comedi/drivers/ni_labpc_cs.c | 24 |
5 files changed, 5 insertions, 140 deletions
diff --git a/drivers/isdn/hisax/sedlbauer_cs.c b/drivers/isdn/hisax/sedlbauer_cs.c index 0b06dbb2d52d..a024192b672a 100644 --- a/drivers/isdn/hisax/sedlbauer_cs.c +++ b/drivers/isdn/hisax/sedlbauer_cs.c | |||
@@ -171,8 +171,6 @@ static int sedlbauer_config_check(struct pcmcia_device *p_dev, | |||
171 | unsigned int vcc, | 171 | unsigned int vcc, |
172 | void *priv_data) | 172 | void *priv_data) |
173 | { | 173 | { |
174 | win_req_t *req = priv_data; | ||
175 | |||
176 | if (cfg->index == 0) | 174 | if (cfg->index == 0) |
177 | return -ENODEV; | 175 | return -ENODEV; |
178 | 176 | ||
@@ -219,31 +217,6 @@ static int sedlbauer_config_check(struct pcmcia_device *p_dev, | |||
219 | return -ENODEV; | 217 | return -ENODEV; |
220 | } | 218 | } |
221 | 219 | ||
222 | /* | ||
223 | Now set up a common memory window, if needed. There is room | ||
224 | in the struct pcmcia_device structure for one memory window handle, | ||
225 | but if the base addresses need to be saved, or if multiple | ||
226 | windows are needed, the info should go in the private data | ||
227 | structure for this device. | ||
228 | |||
229 | Note that the memory window base is a physical address, and | ||
230 | needs to be mapped to virtual space with ioremap() before it | ||
231 | is used. | ||
232 | */ | ||
233 | if ((cfg->mem.nwin > 0) || (dflt->mem.nwin > 0)) { | ||
234 | cistpl_mem_t *mem = (cfg->mem.nwin) ? &cfg->mem : &dflt->mem; | ||
235 | req->Attributes = WIN_DATA_WIDTH_16|WIN_MEMORY_TYPE_CM; | ||
236 | req->Attributes |= WIN_ENABLE; | ||
237 | req->Base = mem->win[0].host_addr; | ||
238 | req->Size = mem->win[0].len; | ||
239 | req->AccessSpeed = 0; | ||
240 | if (pcmcia_request_window(p_dev, req, &p_dev->win) != 0) | ||
241 | return -ENODEV; | ||
242 | |||
243 | if (pcmcia_map_mem_page(p_dev, p_dev->win, | ||
244 | mem->win[0].card_addr) != 0) | ||
245 | return -ENODEV; | ||
246 | } | ||
247 | return 0; | 220 | return 0; |
248 | } | 221 | } |
249 | 222 | ||
@@ -251,16 +224,11 @@ static int sedlbauer_config_check(struct pcmcia_device *p_dev, | |||
251 | 224 | ||
252 | static int __devinit sedlbauer_config(struct pcmcia_device *link) | 225 | static int __devinit sedlbauer_config(struct pcmcia_device *link) |
253 | { | 226 | { |
254 | win_req_t *req; | ||
255 | int ret; | 227 | int ret; |
256 | IsdnCard_t icard; | 228 | IsdnCard_t icard; |
257 | 229 | ||
258 | dev_dbg(&link->dev, "sedlbauer_config(0x%p)\n", link); | 230 | dev_dbg(&link->dev, "sedlbauer_config(0x%p)\n", link); |
259 | 231 | ||
260 | req = kzalloc(sizeof(win_req_t), GFP_KERNEL); | ||
261 | if (!req) | ||
262 | return -ENOMEM; | ||
263 | |||
264 | /* | 232 | /* |
265 | In this loop, we scan the CIS for configuration table entries, | 233 | In this loop, we scan the CIS for configuration table entries, |
266 | each of which describes a valid card configuration, including | 234 | each of which describes a valid card configuration, including |
@@ -273,7 +241,7 @@ static int __devinit sedlbauer_config(struct pcmcia_device *link) | |||
273 | these things without consulting the CIS, and most client drivers | 241 | these things without consulting the CIS, and most client drivers |
274 | will only use the CIS to fill in implementation-defined details. | 242 | will only use the CIS to fill in implementation-defined details. |
275 | */ | 243 | */ |
276 | ret = pcmcia_loop_config(link, sedlbauer_config_check, req); | 244 | ret = pcmcia_loop_config(link, sedlbauer_config_check, NULL); |
277 | if (ret) | 245 | if (ret) |
278 | goto failed; | 246 | goto failed; |
279 | 247 | ||
@@ -297,9 +265,6 @@ static int __devinit sedlbauer_config(struct pcmcia_device *link) | |||
297 | printk(" & %pR", link->resource[0]); | 265 | printk(" & %pR", link->resource[0]); |
298 | if (link->resource[1]) | 266 | if (link->resource[1]) |
299 | printk(" & %pR", link->resource[1]); | 267 | printk(" & %pR", link->resource[1]); |
300 | if (link->win) | ||
301 | printk(", mem 0x%06lx-0x%06lx", req->Base, | ||
302 | req->Base+req->Size-1); | ||
303 | printk("\n"); | 268 | printk("\n"); |
304 | 269 | ||
305 | icard.para[0] = link->irq; | 270 | icard.para[0] = link->irq; |
diff --git a/drivers/net/wireless/airo_cs.c b/drivers/net/wireless/airo_cs.c index d47672cb4196..9a121a5b787c 100644 --- a/drivers/net/wireless/airo_cs.c +++ b/drivers/net/wireless/airo_cs.c | |||
@@ -154,8 +154,6 @@ static int airo_cs_config_check(struct pcmcia_device *p_dev, | |||
154 | unsigned int vcc, | 154 | unsigned int vcc, |
155 | void *priv_data) | 155 | void *priv_data) |
156 | { | 156 | { |
157 | win_req_t *req = priv_data; | ||
158 | |||
159 | if (cfg->index == 0) | 157 | if (cfg->index == 0) |
160 | return -ENODEV; | 158 | return -ENODEV; |
161 | 159 | ||
@@ -194,29 +192,6 @@ static int airo_cs_config_check(struct pcmcia_device *p_dev, | |||
194 | if (pcmcia_request_io(p_dev) != 0) | 192 | if (pcmcia_request_io(p_dev) != 0) |
195 | return -ENODEV; | 193 | return -ENODEV; |
196 | 194 | ||
197 | /* | ||
198 | Now set up a common memory window, if needed. There is room | ||
199 | in the struct pcmcia_device structure for one memory window handle, | ||
200 | but if the base addresses need to be saved, or if multiple | ||
201 | windows are needed, the info should go in the private data | ||
202 | structure for this device. | ||
203 | |||
204 | Note that the memory window base is a physical address, and | ||
205 | needs to be mapped to virtual space with ioremap() before it | ||
206 | is used. | ||
207 | */ | ||
208 | if ((cfg->mem.nwin > 0) || (dflt->mem.nwin > 0)) { | ||
209 | cistpl_mem_t *mem = (cfg->mem.nwin) ? &cfg->mem : &dflt->mem; | ||
210 | req->Attributes = WIN_DATA_WIDTH_16|WIN_MEMORY_TYPE_CM; | ||
211 | req->Base = mem->win[0].host_addr; | ||
212 | req->Size = mem->win[0].len; | ||
213 | req->AccessSpeed = 0; | ||
214 | if (pcmcia_request_window(p_dev, req, &p_dev->win) != 0) | ||
215 | return -ENODEV; | ||
216 | if (pcmcia_map_mem_page(p_dev, p_dev->win, | ||
217 | mem->win[0].card_addr) != 0) | ||
218 | return -ENODEV; | ||
219 | } | ||
220 | /* If we got this far, we're cool! */ | 195 | /* If we got this far, we're cool! */ |
221 | return 0; | 196 | return 0; |
222 | } | 197 | } |
@@ -225,17 +200,12 @@ static int airo_cs_config_check(struct pcmcia_device *p_dev, | |||
225 | static int airo_config(struct pcmcia_device *link) | 200 | static int airo_config(struct pcmcia_device *link) |
226 | { | 201 | { |
227 | local_info_t *dev; | 202 | local_info_t *dev; |
228 | win_req_t *req; | ||
229 | int ret; | 203 | int ret; |
230 | 204 | ||
231 | dev = link->priv; | 205 | dev = link->priv; |
232 | 206 | ||
233 | dev_dbg(&link->dev, "airo_config\n"); | 207 | dev_dbg(&link->dev, "airo_config\n"); |
234 | 208 | ||
235 | req = kzalloc(sizeof(win_req_t), GFP_KERNEL); | ||
236 | if (!req) | ||
237 | return -ENOMEM; | ||
238 | |||
239 | /* | 209 | /* |
240 | * In this loop, we scan the CIS for configuration table | 210 | * In this loop, we scan the CIS for configuration table |
241 | * entries, each of which describes a valid card | 211 | * entries, each of which describes a valid card |
@@ -250,7 +220,7 @@ static int airo_config(struct pcmcia_device *link) | |||
250 | * and most client drivers will only use the CIS to fill in | 220 | * and most client drivers will only use the CIS to fill in |
251 | * implementation-defined details. | 221 | * implementation-defined details. |
252 | */ | 222 | */ |
253 | ret = pcmcia_loop_config(link, airo_cs_config_check, req); | 223 | ret = pcmcia_loop_config(link, airo_cs_config_check, NULL); |
254 | if (ret) | 224 | if (ret) |
255 | goto failed; | 225 | goto failed; |
256 | 226 | ||
@@ -281,16 +251,11 @@ static int airo_config(struct pcmcia_device *link) | |||
281 | printk(" & %pR", link->resource[0]); | 251 | printk(" & %pR", link->resource[0]); |
282 | if (link->resource[1]) | 252 | if (link->resource[1]) |
283 | printk(" & %pR", link->resource[1]); | 253 | printk(" & %pR", link->resource[1]); |
284 | if (link->win) | ||
285 | printk(", mem 0x%06lx-0x%06lx", req->Base, | ||
286 | req->Base+req->Size-1); | ||
287 | printk("\n"); | 254 | printk("\n"); |
288 | kfree(req); | ||
289 | return 0; | 255 | return 0; |
290 | 256 | ||
291 | failed: | 257 | failed: |
292 | airo_release(link); | 258 | airo_release(link); |
293 | kfree(req); | ||
294 | return -ENODEV; | 259 | return -ENODEV; |
295 | } /* airo_config */ | 260 | } /* airo_config */ |
296 | 261 | ||
diff --git a/drivers/staging/comedi/drivers/ni_daq_700.c b/drivers/staging/comedi/drivers/ni_daq_700.c index abaa40b8be7e..bf2e84aa03ea 100644 --- a/drivers/staging/comedi/drivers/ni_daq_700.c +++ b/drivers/staging/comedi/drivers/ni_daq_700.c | |||
@@ -555,8 +555,6 @@ static int dio700_pcmcia_config_loop(struct pcmcia_device *p_dev, | |||
555 | unsigned int vcc, | 555 | unsigned int vcc, |
556 | void *priv_data) | 556 | void *priv_data) |
557 | { | 557 | { |
558 | win_req_t *req = priv_data; | ||
559 | |||
560 | if (cfg->index == 0) | 558 | if (cfg->index == 0) |
561 | return -ENODEV; | 559 | return -ENODEV; |
562 | 560 | ||
@@ -589,22 +587,6 @@ static int dio700_pcmcia_config_loop(struct pcmcia_device *p_dev, | |||
589 | return -ENODEV; | 587 | return -ENODEV; |
590 | } | 588 | } |
591 | 589 | ||
592 | if ((cfg->mem.nwin > 0) || (dflt->mem.nwin > 0)) { | ||
593 | cistpl_mem_t *mem = | ||
594 | (cfg->mem.nwin) ? &cfg->mem : &dflt->mem; | ||
595 | req->Attributes = WIN_DATA_WIDTH_16 | WIN_MEMORY_TYPE_CM; | ||
596 | req->Attributes |= WIN_ENABLE; | ||
597 | req->Base = mem->win[0].host_addr; | ||
598 | req->Size = mem->win[0].len; | ||
599 | if (req->Size < 0x1000) | ||
600 | req->Size = 0x1000; | ||
601 | req->AccessSpeed = 0; | ||
602 | if (pcmcia_request_window(p_dev, req, &p_dev->win)) | ||
603 | return -ENODEV; | ||
604 | if (pcmcia_map_mem_page(p_dev, p_dev->win, | ||
605 | mem->win[0].card_addr)) | ||
606 | return -ENODEV; | ||
607 | } | ||
608 | /* If we got this far, we're cool! */ | 590 | /* If we got this far, we're cool! */ |
609 | return 0; | 591 | return 0; |
610 | } | 592 | } |
@@ -618,7 +600,7 @@ static void dio700_config(struct pcmcia_device *link) | |||
618 | 600 | ||
619 | dev_dbg(&link->dev, "dio700_config\n"); | 601 | dev_dbg(&link->dev, "dio700_config\n"); |
620 | 602 | ||
621 | ret = pcmcia_loop_config(link, dio700_pcmcia_config_loop, &req); | 603 | ret = pcmcia_loop_config(link, dio700_pcmcia_config_loop, NULL); |
622 | if (ret) { | 604 | if (ret) { |
623 | dev_warn(&link->dev, "no configuration found\n"); | 605 | dev_warn(&link->dev, "no configuration found\n"); |
624 | goto failed; | 606 | goto failed; |
@@ -644,9 +626,6 @@ static void dio700_config(struct pcmcia_device *link) | |||
644 | printk(", io %pR", link->resource[0]); | 626 | printk(", io %pR", link->resource[0]); |
645 | if (link->resource[1]) | 627 | if (link->resource[1]) |
646 | printk(" & %pR", link->resource[1]); | 628 | printk(" & %pR", link->resource[1]); |
647 | if (link->win) | ||
648 | printk(", mem 0x%06lx-0x%06lx", req.Base, | ||
649 | req.Base + req.Size - 1); | ||
650 | printk("\n"); | 629 | printk("\n"); |
651 | 630 | ||
652 | return; | 631 | return; |
diff --git a/drivers/staging/comedi/drivers/ni_daq_dio24.c b/drivers/staging/comedi/drivers/ni_daq_dio24.c index caccece20855..9112e70cc856 100644 --- a/drivers/staging/comedi/drivers/ni_daq_dio24.c +++ b/drivers/staging/comedi/drivers/ni_daq_dio24.c | |||
@@ -307,8 +307,6 @@ static int dio24_pcmcia_config_loop(struct pcmcia_device *p_dev, | |||
307 | unsigned int vcc, | 307 | unsigned int vcc, |
308 | void *priv_data) | 308 | void *priv_data) |
309 | { | 309 | { |
310 | win_req_t *req = priv_data; | ||
311 | |||
312 | if (cfg->index == 0) | 310 | if (cfg->index == 0) |
313 | return -ENODEV; | 311 | return -ENODEV; |
314 | 312 | ||
@@ -341,22 +339,6 @@ static int dio24_pcmcia_config_loop(struct pcmcia_device *p_dev, | |||
341 | return -ENODEV; | 339 | return -ENODEV; |
342 | } | 340 | } |
343 | 341 | ||
344 | if ((cfg->mem.nwin > 0) || (dflt->mem.nwin > 0)) { | ||
345 | cistpl_mem_t *mem = | ||
346 | (cfg->mem.nwin) ? &cfg->mem : &dflt->mem; | ||
347 | req->Attributes = WIN_DATA_WIDTH_16 | WIN_MEMORY_TYPE_CM; | ||
348 | req->Attributes |= WIN_ENABLE; | ||
349 | req->Base = mem->win[0].host_addr; | ||
350 | req->Size = mem->win[0].len; | ||
351 | if (req->Size < 0x1000) | ||
352 | req->Size = 0x1000; | ||
353 | req->AccessSpeed = 0; | ||
354 | if (pcmcia_request_window(p_dev, req, &p_dev->win)) | ||
355 | return -ENODEV; | ||
356 | if (pcmcia_map_mem_page(p_dev, p_dev->win, | ||
357 | mem->win[0].card_addr)) | ||
358 | return -ENODEV; | ||
359 | } | ||
360 | /* If we got this far, we're cool! */ | 342 | /* If we got this far, we're cool! */ |
361 | return 0; | 343 | return 0; |
362 | } | 344 | } |
@@ -364,13 +346,12 @@ static int dio24_pcmcia_config_loop(struct pcmcia_device *p_dev, | |||
364 | static void dio24_config(struct pcmcia_device *link) | 346 | static void dio24_config(struct pcmcia_device *link) |
365 | { | 347 | { |
366 | int ret; | 348 | int ret; |
367 | win_req_t req; | ||
368 | 349 | ||
369 | printk(KERN_INFO "ni_daq_dio24: HOLA SOY YO! - config\n"); | 350 | printk(KERN_INFO "ni_daq_dio24: HOLA SOY YO! - config\n"); |
370 | 351 | ||
371 | dev_dbg(&link->dev, "dio24_config\n"); | 352 | dev_dbg(&link->dev, "dio24_config\n"); |
372 | 353 | ||
373 | ret = pcmcia_loop_config(link, dio24_pcmcia_config_loop, &req); | 354 | ret = pcmcia_loop_config(link, dio24_pcmcia_config_loop, NULL); |
374 | if (ret) { | 355 | if (ret) { |
375 | dev_warn(&link->dev, "no configuration found\n"); | 356 | dev_warn(&link->dev, "no configuration found\n"); |
376 | goto failed; | 357 | goto failed; |
@@ -396,9 +377,6 @@ static void dio24_config(struct pcmcia_device *link) | |||
396 | printk(" & %pR", link->resource[0]); | 377 | printk(" & %pR", link->resource[0]); |
397 | if (link->resource[1]) | 378 | if (link->resource[1]) |
398 | printk(" & %pR", link->resource[1]); | 379 | printk(" & %pR", link->resource[1]); |
399 | if (link->win) | ||
400 | printk(", mem 0x%06lx-0x%06lx", req.Base, | ||
401 | req.Base + req.Size - 1); | ||
402 | printk("\n"); | 380 | printk("\n"); |
403 | 381 | ||
404 | return; | 382 | return; |
diff --git a/drivers/staging/comedi/drivers/ni_labpc_cs.c b/drivers/staging/comedi/drivers/ni_labpc_cs.c index 94d9f7fe6f2c..f204961e0786 100644 --- a/drivers/staging/comedi/drivers/ni_labpc_cs.c +++ b/drivers/staging/comedi/drivers/ni_labpc_cs.c | |||
@@ -285,8 +285,6 @@ static int labpc_pcmcia_config_loop(struct pcmcia_device *p_dev, | |||
285 | unsigned int vcc, | 285 | unsigned int vcc, |
286 | void *priv_data) | 286 | void *priv_data) |
287 | { | 287 | { |
288 | win_req_t *req = priv_data; | ||
289 | |||
290 | if (cfg->index == 0) | 288 | if (cfg->index == 0) |
291 | return -ENODEV; | 289 | return -ENODEV; |
292 | 290 | ||
@@ -319,22 +317,6 @@ static int labpc_pcmcia_config_loop(struct pcmcia_device *p_dev, | |||
319 | return -ENODEV; | 317 | return -ENODEV; |
320 | } | 318 | } |
321 | 319 | ||
322 | if ((cfg->mem.nwin > 0) || (dflt->mem.nwin > 0)) { | ||
323 | cistpl_mem_t *mem = | ||
324 | (cfg->mem.nwin) ? &cfg->mem : &dflt->mem; | ||
325 | req->Attributes = WIN_DATA_WIDTH_16 | WIN_MEMORY_TYPE_CM; | ||
326 | req->Attributes |= WIN_ENABLE; | ||
327 | req->Base = mem->win[0].host_addr; | ||
328 | req->Size = mem->win[0].len; | ||
329 | if (req->Size < 0x1000) | ||
330 | req->Size = 0x1000; | ||
331 | req->AccessSpeed = 0; | ||
332 | if (pcmcia_request_window(p_dev, req, &p_dev->win)) | ||
333 | return -ENODEV; | ||
334 | if (pcmcia_map_mem_page(p_dev, p_dev->win, | ||
335 | mem->win[0].card_addr)) | ||
336 | return -ENODEV; | ||
337 | } | ||
338 | /* If we got this far, we're cool! */ | 320 | /* If we got this far, we're cool! */ |
339 | return 0; | 321 | return 0; |
340 | } | 322 | } |
@@ -343,11 +325,10 @@ static int labpc_pcmcia_config_loop(struct pcmcia_device *p_dev, | |||
343 | static void labpc_config(struct pcmcia_device *link) | 325 | static void labpc_config(struct pcmcia_device *link) |
344 | { | 326 | { |
345 | int ret; | 327 | int ret; |
346 | win_req_t req; | ||
347 | 328 | ||
348 | dev_dbg(&link->dev, "labpc_config\n"); | 329 | dev_dbg(&link->dev, "labpc_config\n"); |
349 | 330 | ||
350 | ret = pcmcia_loop_config(link, labpc_pcmcia_config_loop, &req); | 331 | ret = pcmcia_loop_config(link, labpc_pcmcia_config_loop, NULL); |
351 | if (ret) { | 332 | if (ret) { |
352 | dev_warn(&link->dev, "no configuration found\n"); | 333 | dev_warn(&link->dev, "no configuration found\n"); |
353 | goto failed; | 334 | goto failed; |
@@ -373,9 +354,6 @@ static void labpc_config(struct pcmcia_device *link) | |||
373 | printk(" & %pR", link->resource[0]); | 354 | printk(" & %pR", link->resource[0]); |
374 | if (link->resource[1]) | 355 | if (link->resource[1]) |
375 | printk(" & %pR", link->resource[1]); | 356 | printk(" & %pR", link->resource[1]); |
376 | if (link->win) | ||
377 | printk(", mem 0x%06lx-0x%06lx", req.Base, | ||
378 | req.Base + req.Size - 1); | ||
379 | printk("\n"); | 357 | printk("\n"); |
380 | 358 | ||
381 | return; | 359 | return; |