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

Lines Matching refs:link

97     dev_link_t		link;
132 dev_link_t *link;
141 link = &info->link; link->priv = info;
142 link->release.function = &aha152x_release_cs;
143 link->release.data = (u_long)link;
145 link->io.NumPorts1 = 0x20;
146 link->io.Attributes1 = IO_DATA_PATH_WIDTH_AUTO;
147 link->io.IOAddrLines = 10;
148 link->irq.Attributes = IRQ_TYPE_EXCLUSIVE;
149 link->irq.IRQInfo1 = IRQ_INFO2_VALID|IRQ_LEVEL_ID;
151 link->irq.IRQInfo2 = irq_mask;
154 link->irq.IRQInfo2 |= 1 << irq_list[i];
155 link->conf.Attributes = CONF_ENABLE_IRQ;
156 link->conf.Vcc = 50;
157 link->conf.IntType = INT_MEMORY_AND_IO;
158 link->conf.Present = PRESENT_OPTION;
161 link->next = dev_list;
162 dev_list = link;
171 client_reg.event_callback_args.client_data = link;
172 ret = CardServices(RegisterClient, &link->handle, &client_reg);
174 cs_error(link->handle, RegisterClient, ret);
175 aha152x_detach(link);
179 return link;
184 static void aha152x_detach(dev_link_t *link)
188 DEBUG(0, "aha152x_detach(0x%p)\n", link);
192 if (*linkp == link) break;
196 del_timer(&link->release);
197 if (link->state & DEV_CONFIG) {
198 aha152x_release_cs((u_long)link);
199 if (link->state & DEV_STALE_CONFIG) {
200 link->state |= DEV_STALE_LINK;
205 if (link->handle)
206 CardServices(DeregisterClient, link->handle);
209 *linkp = link->next;
210 kfree(link->priv);
222 static void aha152x_config_cs(dev_link_t *link)
224 client_handle_t handle = link->handle;
225 scsi_info_t *info = link->priv;
234 DEBUG(0, "aha152x_config(0x%p)\n", link);
243 link->conf.ConfigBase = parse.config.base;
247 link->state |= DEV_CONFIG;
256 link->io.BasePort1 = parse.cftable_entry.io.win[0].base;
259 link->io.BasePort1 = parse.cftable_entry.io.win[1].base;
261 (link->io.BasePort1 < 0xffff)) {
262 link->conf.ConfigIndex = parse.cftable_entry.index;
263 i = CardServices(RequestIO, handle, &link->io);
270 CS_CHECK(RequestIRQ, handle, &link->irq);
271 CS_CHECK(RequestConfiguration, handle, &link->conf);
274 release_region(link->io.BasePort1, link->io.NumPorts1);
277 ints[1] = link->io.BasePort1;
278 ints[2] = link->irq.AssignedIRQ;
295 tail = &link->dev;
334 link->state &= ~DEV_CONFIG_PENDING;
338 cs_error(link->handle, last_fn, last_ret);
339 aha152x_release_cs((u_long)link);
348 dev_link_t *link = (dev_link_t *)arg;
350 DEBUG(0, "aha152x_release_cs(0x%p)\n", link);
355 link->state |= DEV_STALE_CONFIG;
360 link->dev = NULL;
362 CardServices(ReleaseConfiguration, link->handle);
363 CardServices(ReleaseIO, link->handle, &link->io);
364 CardServices(ReleaseIRQ, link->handle, &link->irq);
366 link->state &= ~DEV_CONFIG;
367 if (link->state & DEV_STALE_LINK)
368 aha152x_detach(link);
377 dev_link_t *link = args->client_data;
378 scsi_info_t *info = link->priv;
384 link->state &= ~DEV_PRESENT;
385 if (link->state & DEV_CONFIG)
386 mod_timer(&link->release, jiffies + HZ/20);
389 link->state |= DEV_PRESENT | DEV_CONFIG_PENDING;
390 aha152x_config_cs(link);
393 link->state |= DEV_SUSPEND;
396 if (link->state & DEV_CONFIG)
397 CardServices(ReleaseConfiguration, link->handle);
400 link->state &= ~DEV_SUSPEND;
403 if (link->state & DEV_CONFIG) {
405 CardServices(RequestConfiguration, link->handle, &link->conf);