diff options
Diffstat (limited to 'drivers/char/pcmcia/cm4000_cs.c')
-rw-r--r-- | drivers/char/pcmcia/cm4000_cs.c | 15 |
1 files changed, 3 insertions, 12 deletions
diff --git a/drivers/char/pcmcia/cm4000_cs.c b/drivers/char/pcmcia/cm4000_cs.c index 0b2f3b9d261a..79de9ccb8caf 100644 --- a/drivers/char/pcmcia/cm4000_cs.c +++ b/drivers/char/pcmcia/cm4000_cs.c | |||
@@ -1741,19 +1741,8 @@ static void cmm_cm4000_release(struct pcmcia_device * link) | |||
1741 | 1741 | ||
1742 | /*==== Interface to PCMCIA Layer =======================================*/ | 1742 | /*==== Interface to PCMCIA Layer =======================================*/ |
1743 | 1743 | ||
1744 | static int cm4000_config_check(struct pcmcia_device *p_dev, | 1744 | static int cm4000_config_check(struct pcmcia_device *p_dev, void *priv_data) |
1745 | cistpl_cftable_entry_t *cfg, | ||
1746 | cistpl_cftable_entry_t *dflt, | ||
1747 | void *priv_data) | ||
1748 | { | 1745 | { |
1749 | if (!cfg->io.nwin) | ||
1750 | return -ENODEV; | ||
1751 | |||
1752 | p_dev->resource[0]->start = cfg->io.win[0].base; | ||
1753 | p_dev->resource[0]->end = cfg->io.win[0].len; | ||
1754 | p_dev->resource[0]->flags |= pcmcia_io_cfg_data_width(cfg->io.flags); | ||
1755 | p_dev->io_lines = cfg->io.flags & CISTPL_IO_LINES_MASK; | ||
1756 | |||
1757 | return pcmcia_request_io(p_dev); | 1746 | return pcmcia_request_io(p_dev); |
1758 | } | 1747 | } |
1759 | 1748 | ||
@@ -1761,6 +1750,8 @@ static int cm4000_config(struct pcmcia_device * link, int devno) | |||
1761 | { | 1750 | { |
1762 | struct cm4000_dev *dev; | 1751 | struct cm4000_dev *dev; |
1763 | 1752 | ||
1753 | link->config_flags |= CONF_AUTO_SET_IO; | ||
1754 | |||
1764 | /* read the config-tuples */ | 1755 | /* read the config-tuples */ |
1765 | if (pcmcia_loop_config(link, cm4000_config_check, NULL)) | 1756 | if (pcmcia_loop_config(link, cm4000_config_check, NULL)) |
1766 | goto cs_release; | 1757 | goto cs_release; |