Lines Matching refs:link

161 static int tc589_config(struct pcmcia_device *link);
162 static void tc589_release(struct pcmcia_device *link);
196 static int tc589_probe(struct pcmcia_device *link) in tc589_probe() argument
201 dev_dbg(&link->dev, "3c589_attach()\n"); in tc589_probe()
208 link->priv = dev; in tc589_probe()
209 lp->p_dev = link; in tc589_probe()
212 link->resource[0]->end = 16; in tc589_probe()
213 link->resource[0]->flags |= IO_DATA_PATH_WIDTH_16; in tc589_probe()
215 link->config_flags |= CONF_ENABLE_IRQ; in tc589_probe()
216 link->config_index = 1; in tc589_probe()
223 return tc589_config(link); in tc589_probe()
226 static void tc589_detach(struct pcmcia_device *link) in tc589_detach() argument
228 struct net_device *dev = link->priv; in tc589_detach()
230 dev_dbg(&link->dev, "3c589_detach\n"); in tc589_detach()
234 tc589_release(link); in tc589_detach()
239 static int tc589_config(struct pcmcia_device *link) in tc589_config() argument
241 struct net_device *dev = link->priv; in tc589_config()
249 dev_dbg(&link->dev, "3c589_config\n"); in tc589_config()
253 if (link->manf_id != MANFID_3COM) in tc589_config()
254 dev_info(&link->dev, "hmmm, is this really a 3Com card??\n"); in tc589_config()
255 multi = (link->card_id == PRODID_3COM_3C562); in tc589_config()
257 link->io_lines = 16; in tc589_config()
263 link->resource[0]->start = j ^ 0x300; in tc589_config()
264 i = pcmcia_request_io(link); in tc589_config()
271 ret = pcmcia_request_irq(link, el3_interrupt); in tc589_config()
275 ret = pcmcia_enable_device(link); in tc589_config()
279 dev->irq = link->irq; in tc589_config()
280 dev->base_addr = link->resource[0]->start; in tc589_config()
287 len = pcmcia_get_tuple(link, 0x88, &buf); in tc589_config()
297 dev_err(&link->dev, "IO port conflict at 0x%03lx-0x%03lx\n", in tc589_config()
314 dev_err(&link->dev, "invalid if_port requested\n"); in tc589_config()
316 SET_NETDEV_DEV(dev, &link->dev); in tc589_config()
319 dev_err(&link->dev, "register_netdev() failed\n"); in tc589_config()
332 tc589_release(link); in tc589_config()
336 static void tc589_release(struct pcmcia_device *link) in tc589_release() argument
338 pcmcia_disable_device(link); in tc589_release()
341 static int tc589_suspend(struct pcmcia_device *link) in tc589_suspend() argument
343 struct net_device *dev = link->priv; in tc589_suspend()
345 if (link->open) in tc589_suspend()
351 static int tc589_resume(struct pcmcia_device *link) in tc589_resume() argument
353 struct net_device *dev = link->priv; in tc589_resume()
355 if (link->open) { in tc589_resume()
512 struct pcmcia_device *link = lp->p_dev; in el3_open() local
514 if (!pcmcia_dev_present(link)) in el3_open()
517 link->open++; in el3_open()
524 dev_dbg(&link->dev, "%s: opened, status %4.4x.\n", in el3_open()
771 struct pcmcia_device *link = lp->p_dev; in el3_get_stats() local
773 if (pcmcia_dev_present(link)) { in el3_get_stats()
909 struct pcmcia_device *link = lp->p_dev; in el3_close() local
912 dev_dbg(&link->dev, "%s: shutting down ethercard.\n", dev->name); in el3_close()
914 if (pcmcia_dev_present(link)) { in el3_close()
941 link->open--; in el3_close()