aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/pcmcia
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/pcmcia')
-rw-r--r--drivers/pcmcia/ds.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/drivers/pcmcia/ds.c b/drivers/pcmcia/ds.c
index 6572b3850e55..5b302e822ef5 100644
--- a/drivers/pcmcia/ds.c
+++ b/drivers/pcmcia/ds.c
@@ -313,6 +313,7 @@ static int pcmcia_device_probe(struct device * dev)
313 struct pcmcia_driver *p_drv; 313 struct pcmcia_driver *p_drv;
314 struct pcmcia_device_id *did; 314 struct pcmcia_device_id *did;
315 struct pcmcia_socket *s; 315 struct pcmcia_socket *s;
316 cistpl_config_t cis_config;
316 int ret = 0; 317 int ret = 0;
317 318
318 dev = get_device(dev); 319 dev = get_device(dev);
@@ -329,6 +330,18 @@ static int pcmcia_device_probe(struct device * dev)
329 goto put_dev; 330 goto put_dev;
330 } 331 }
331 332
333 /* set up some more device information */
334 ret = pccard_read_tuple(p_dev->socket, p_dev->func, CISTPL_CONFIG,
335 &cis_config);
336 if (!ret) {
337 p_dev->conf.ConfigBase = cis_config.base;
338 p_dev->conf.Present = cis_config.rmask[0];
339 } else {
340 printk(KERN_INFO "pcmcia: could not parse base and rmask0 of CIS\n");
341 p_dev->conf.ConfigBase = 0;
342 p_dev->conf.Present = 0;
343 }
344
332 ret = p_drv->probe(p_dev); 345 ret = p_drv->probe(p_dev);
333 if (ret) 346 if (ret)
334 goto put_module; 347 goto put_module;