• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-WNDR4500v2-V1.0.0.60_1.0.38/src/linux/linux-2.6/drivers/ide/legacy/

Lines Matching refs:link

105 static int ide_probe(struct pcmcia_device *link)
116 info->p_dev = link;
117 link->priv = info;
119 link->io.Attributes1 = IO_DATA_PATH_WIDTH_AUTO;
120 link->io.Attributes2 = IO_DATA_PATH_WIDTH_8;
121 link->io.IOAddrLines = 3;
122 link->irq.Attributes = IRQ_TYPE_DYNAMIC_SHARING;
123 link->irq.IRQInfo1 = IRQ_LEVEL_ID;
124 link->conf.Attributes = CONF_ENABLE_IRQ;
125 link->conf.IntType = INT_MEMORY_AND_IO;
127 return ide_config(link);
139 static void ide_detach(struct pcmcia_device *link)
141 DEBUG(0, "ide_detach(0x%p)\n", link);
143 ide_release(link);
145 kfree(link->priv);
170 static int ide_config(struct pcmcia_device *link)
172 ide_info_t *info = link->priv;
184 DEBUG(0, "ide_config(0x%p)\n", link);
195 is_kme = ((link->manf_id == MANFID_KME) &&
196 ((link->card_id == PRODID_KME_KXLC005_A) ||
197 (link->card_id == PRODID_KME_KXLC005_B)));
200 CS_CHECK(GetConfigurationInfo, pcmcia_get_configuration_info(link, &stk->conf));
205 CS_CHECK(GetFirstTuple, pcmcia_get_first_tuple(link, &tuple));
207 if (pcmcia_get_tuple_data(link, &tuple) != 0) goto next_entry;
208 if (pcmcia_parse_tuple(link, &tuple, &stk->parse) != 0) goto next_entry;
222 link->conf.Vpp =
225 link->conf.Vpp =
230 link->conf.ConfigIndex = cfg->index;
231 link->io.BasePort1 = io->win[0].base;
232 link->io.IOAddrLines = io->flags & CISTPL_IO_LINES_MASK;
234 link->io.Attributes1 = IO_DATA_PATH_WIDTH_8;
236 link->io.NumPorts1 = 8;
237 link->io.BasePort2 = io->win[1].base;
238 link->io.NumPorts2 = (is_kme) ? 2 : 1;
239 if (pcmcia_request_io(link, &link->io) != 0)
241 io_base = link->io.BasePort1;
242 ctl_base = link->io.BasePort2;
244 link->io.NumPorts1 = io->win[0].len;
245 link->io.NumPorts2 = 0;
246 if (pcmcia_request_io(link, &link->io) != 0)
248 io_base = link->io.BasePort1;
249 ctl_base = link->io.BasePort1 + 0x0e;
259 CS_CHECK(GetNextTuple, pcmcia_get_next_tuple(link, &tuple));
260 } else if (pcmcia_get_next_tuple(link, &tuple) != 0) {
261 CS_CHECK(GetFirstTuple, pcmcia_get_first_tuple(link, &tuple));
267 CS_CHECK(RequestIRQ, pcmcia_request_irq(link, &link->irq));
268 CS_CHECK(RequestConfiguration, pcmcia_request_configuration(link, &link->conf));
279 hd = idecs_register(io_base, ctl_base, link->irq.AssignedIRQ, link);
281 if (link->io.NumPorts1 == 0x20) {
284 link->irq.AssignedIRQ, link);
297 link->irq.AssignedIRQ);
306 link->dev_node = &info->node;
308 info->node.dev_name, link->conf.Vpp / 10, link->conf.Vpp % 10);
318 cs_error(link, last_fn, last_ret);
321 ide_release(link);
333 void ide_release(struct pcmcia_device *link)
335 ide_info_t *info = link->priv;
337 DEBUG(0, "ide_release(0x%p)\n", link);
344 pcmcia_disable_device(link);