• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /asus-wl-520gu-7.0.1.45/src/linux/linux/drivers/parport/

Lines Matching refs:link

91     dev_link_t		link;
99 static void parport_config(dev_link_t *link);
126 dev_link_t *link;
136 link = &info->link; link->priv = info;
138 link->release.function = &parport_cs_release;
139 link->release.data = (u_long)link;
140 link->io.Attributes1 = IO_DATA_PATH_WIDTH_8;
141 link->io.Attributes2 = IO_DATA_PATH_WIDTH_8;
142 link->irq.Attributes = IRQ_TYPE_EXCLUSIVE;
143 link->irq.IRQInfo1 = IRQ_INFO2_VALID|IRQ_LEVEL_ID;
145 link->irq.IRQInfo2 = irq_mask;
148 link->irq.IRQInfo2 |= 1 << irq_list[i];
149 link->conf.Attributes = CONF_ENABLE_IRQ;
150 link->conf.Vcc = 50;
151 link->conf.IntType = INT_MEMORY_AND_IO;
154 link->next = dev_list;
155 dev_list = link;
164 client_reg.event_callback_args.client_data = link;
165 ret = CardServices(RegisterClient, &link->handle, &client_reg);
167 cs_error(link->handle, RegisterClient, ret);
168 parport_detach(link);
172 return link;
184 static void parport_detach(dev_link_t *link)
189 DEBUG(0, "parport_detach(0x%p)\n", link);
193 if (*linkp == link) break;
197 del_timer(&link->release);
198 if (link->state & DEV_CONFIG)
199 parport_cs_release((u_long)link);
201 if (link->handle) {
202 ret = CardServices(DeregisterClient, link->handle);
204 cs_error(link->handle, DeregisterClient, ret);
208 *linkp = link->next;
209 kfree(link->priv);
233 void parport_config(dev_link_t *link)
235 client_handle_t handle = link->handle;
236 parport_info_t *info = link->priv;
246 DEBUG(0, "parport_config(0x%p)\n", link);
255 link->conf.ConfigBase = parse.config.base;
256 link->conf.Present = parse.config.rmask[0];
259 link->state |= DEV_CONFIG;
273 link->conf.ConfigIndex = cfg->index;
275 link->conf.ConfigIndex |= FORCE_EPP_MODE;
276 link->io.BasePort1 = io->win[0].base;
277 link->io.NumPorts1 = io->win[0].len;
278 link->io.IOAddrLines = io->flags & CISTPL_IO_LINES_MASK;
280 link->io.BasePort2 = io->win[1].base;
281 link->io.NumPorts2 = io->win[1].len;
283 CFG_CHECK(RequestIO, link->handle, &link->io);
293 CS_CHECK(RequestIRQ, handle, &link->irq);
294 CS_CHECK(RequestConfiguration, handle, &link->conf);
296 p = parport_pc_probe_port(link->io.BasePort1, link->io.BasePort2,
297 link->irq.AssignedIRQ, PARPORT_DMA_NONE,
301 "0x%3x, irq %u failed\n", link->io.BasePort1,
302 link->irq.AssignedIRQ);
314 link->dev = &info->node;
316 link->io.BasePort1);
317 if (link->io.NumPorts2)
318 printk(" & %#x", link->io.BasePort2);
319 printk(", irq %u [SPP", link->irq.AssignedIRQ);
324 link->state &= ~DEV_CONFIG_PENDING;
328 cs_error(link->handle, last_fn, last_ret);
330 parport_cs_release((u_long)link);
344 dev_link_t *link = (dev_link_t *)arg;
345 parport_info_t *info = link->priv;
347 DEBUG(0, "parport_release(0x%p)\n", link);
356 link->dev = NULL;
358 CardServices(ReleaseConfiguration, link->handle);
359 CardServices(ReleaseIO, link->handle, &link->io);
360 CardServices(ReleaseIRQ, link->handle, &link->irq);
362 link->state &= ~DEV_CONFIG;
376 dev_link_t *link = args->client_data;
382 link->state &= ~DEV_PRESENT;
383 if (link->state & DEV_CONFIG)
384 mod_timer(&link->release, jiffies + HZ/20);
387 link->state |= DEV_PRESENT | DEV_CONFIG_PENDING;
388 parport_config(link);
391 link->state |= DEV_SUSPEND;
394 if (link->state & DEV_CONFIG)
395 CardServices(ReleaseConfiguration, link->handle);
398 link->state &= ~DEV_SUSPEND;
401 if (DEV_OK(link))
402 CardServices(RequestConfiguration, link->handle, &link->conf);