aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/isdn/hisax/sedlbauer_cs.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/isdn/hisax/sedlbauer_cs.c')
-rw-r--r--drivers/isdn/hisax/sedlbauer_cs.c28
1 files changed, 13 insertions, 15 deletions
diff --git a/drivers/isdn/hisax/sedlbauer_cs.c b/drivers/isdn/hisax/sedlbauer_cs.c
index cecb35ab9d3d..4755eb440f7e 100644
--- a/drivers/isdn/hisax/sedlbauer_cs.c
+++ b/drivers/isdn/hisax/sedlbauer_cs.c
@@ -129,9 +129,8 @@ static int __devinit sedlbauer_probe(struct pcmcia_device *link)
129 /* from old sedl_cs 129 /* from old sedl_cs
130 */ 130 */
131 /* The io structure describes IO port mapping */ 131 /* The io structure describes IO port mapping */
132 link->io.NumPorts1 = 8; 132 link->resource[0]->end = 8;
133 link->io.Attributes1 = IO_DATA_PATH_WIDTH_8; 133 link->resource[0]->flags |= IO_DATA_PATH_WIDTH_8;
134 link->io.IOAddrLines = 3;
135 134
136 link->conf.Attributes = 0; 135 link->conf.Attributes = 0;
137 link->conf.IntType = INT_MEMORY_AND_IO; 136 link->conf.IntType = INT_MEMORY_AND_IO;
@@ -201,23 +200,22 @@ static int sedlbauer_config_check(struct pcmcia_device *p_dev,
201 p_dev->conf.Attributes |= CONF_ENABLE_IRQ; 200 p_dev->conf.Attributes |= CONF_ENABLE_IRQ;
202 201
203 /* IO window settings */ 202 /* IO window settings */
204 p_dev->io.NumPorts1 = p_dev->io.NumPorts2 = 0; 203 p_dev->resource[0]->end = p_dev->resource[1]->end = 0;
205 if ((cfg->io.nwin > 0) || (dflt->io.nwin > 0)) { 204 if ((cfg->io.nwin > 0) || (dflt->io.nwin > 0)) {
206 cistpl_io_t *io = (cfg->io.nwin) ? &cfg->io : &dflt->io; 205 cistpl_io_t *io = (cfg->io.nwin) ? &cfg->io : &dflt->io;
207 p_dev->io.Attributes1 = IO_DATA_PATH_WIDTH_AUTO; 206 p_dev->resource[0]->start = io->win[0].base;
208 if (!(io->flags & CISTPL_IO_8BIT)) 207 p_dev->resource[0]->end = io->win[0].len;
209 p_dev->io.Attributes1 = IO_DATA_PATH_WIDTH_16; 208 p_dev->resource[0]->flags &= ~IO_DATA_PATH_WIDTH;
210 if (!(io->flags & CISTPL_IO_16BIT)) 209 p_dev->resource[0]->flags |=
211 p_dev->io.Attributes1 = IO_DATA_PATH_WIDTH_8; 210 pcmcia_io_cfg_data_width(io->flags);
212 p_dev->io.BasePort1 = io->win[0].base;
213 p_dev->io.NumPorts1 = io->win[0].len;
214 if (io->nwin > 1) { 211 if (io->nwin > 1) {
215 p_dev->io.Attributes2 = p_dev->io.Attributes1; 212 p_dev->resource[1]->flags = p_dev->resource[0]->flags;
216 p_dev->io.BasePort2 = io->win[1].base; 213 p_dev->resource[1]->start = io->win[1].base;
217 p_dev->io.NumPorts2 = io->win[1].len; 214 p_dev->resource[1]->end = io->win[1].len;
218 } 215 }
219 /* This reserves IO space but doesn't actually enable it */ 216 /* This reserves IO space but doesn't actually enable it */
220 if (pcmcia_request_io(p_dev, &p_dev->io) != 0) 217 p_dev->io_lines = 3;
218 if (pcmcia_request_io(p_dev) != 0)
221 return -ENODEV; 219 return -ENODEV;
222 } 220 }
223 221