Lines Matching refs:link
77 static int axnet_config(struct pcmcia_device *link);
78 static void axnet_release(struct pcmcia_device *link);
142 static int axnet_probe(struct pcmcia_device *link) in axnet_probe() argument
148 dev_dbg(&link->dev, "axnet_attach()\n"); in axnet_probe()
159 info->p_dev = link; in axnet_probe()
160 link->priv = dev; in axnet_probe()
161 link->config_flags |= CONF_ENABLE_IRQ; in axnet_probe()
167 return axnet_config(link); in axnet_probe()
170 static void axnet_detach(struct pcmcia_device *link) in axnet_detach() argument
172 struct net_device *dev = link->priv; in axnet_detach()
174 dev_dbg(&link->dev, "axnet_detach(0x%p)\n", link); in axnet_detach()
178 axnet_release(link); in axnet_detach()
189 static int get_prom(struct pcmcia_device *link) in get_prom() argument
191 struct net_device *dev = link->priv; in get_prom()
215 if (link->config_base != 0x03c0) in get_prom()
232 static int try_io_port(struct pcmcia_device *link) in try_io_port() argument
235 link->resource[0]->flags &= ~IO_DATA_PATH_WIDTH; in try_io_port()
236 link->resource[1]->flags &= ~IO_DATA_PATH_WIDTH; in try_io_port()
237 if (link->resource[0]->end == 32) { in try_io_port()
238 link->resource[0]->flags |= IO_DATA_PATH_WIDTH_AUTO; in try_io_port()
240 if (link->resource[1]->end > 0) in try_io_port()
241 link->resource[1]->flags |= IO_DATA_PATH_WIDTH_8; in try_io_port()
244 link->resource[0]->flags |= IO_DATA_PATH_WIDTH_8; in try_io_port()
245 link->resource[1]->flags |= IO_DATA_PATH_WIDTH_16; in try_io_port()
247 if (link->resource[0]->start == 0) { in try_io_port()
249 link->resource[0]->start = j ^ 0x300; in try_io_port()
250 link->resource[1]->start = (j ^ 0x300) + 0x10; in try_io_port()
251 link->io_lines = 16; in try_io_port()
252 ret = pcmcia_request_io(link); in try_io_port()
258 return pcmcia_request_io(link); in try_io_port()
274 static int axnet_config(struct pcmcia_device *link) in axnet_config() argument
276 struct net_device *dev = link->priv; in axnet_config()
280 dev_dbg(&link->dev, "axnet_config(0x%p)\n", link); in axnet_config()
283 link->config_regs = 0x63; in axnet_config()
284 link->config_flags |= CONF_ENABLE_IRQ | CONF_AUTO_SET_IO; in axnet_config()
285 ret = pcmcia_loop_config(link, axnet_configcheck, NULL); in axnet_config()
289 if (!link->irq) in axnet_config()
292 if (resource_size(link->resource[1]) == 8) in axnet_config()
293 link->config_flags |= CONF_ENABLE_SPKR; in axnet_config()
295 ret = pcmcia_enable_device(link); in axnet_config()
299 dev->irq = link->irq; in axnet_config()
300 dev->base_addr = link->resource[0]->start; in axnet_config()
302 if (!get_prom(link)) { in axnet_config()
338 pcmcia_write_config_byte(link, CISREG_CCSR, 0x04); in axnet_config()
351 SET_NETDEV_DEV(dev, &link->dev); in axnet_config()
370 axnet_release(link); in axnet_config()
374 static void axnet_release(struct pcmcia_device *link) in axnet_release() argument
376 pcmcia_disable_device(link); in axnet_release()
379 static int axnet_suspend(struct pcmcia_device *link) in axnet_suspend() argument
381 struct net_device *dev = link->priv; in axnet_suspend()
383 if (link->open) in axnet_suspend()
389 static int axnet_resume(struct pcmcia_device *link) in axnet_resume() argument
391 struct net_device *dev = link->priv; in axnet_resume()
394 if (link->open) { in axnet_resume()
396 pcmcia_write_config_byte(link, CISREG_CCSR, 0x04); in axnet_resume()
471 struct pcmcia_device *link = info->p_dev; in axnet_open() local
474 dev_dbg(&link->dev, "axnet_open('%s')\n", dev->name); in axnet_open()
476 if (!pcmcia_dev_present(link)) in axnet_open()
484 link->open++; in axnet_open()
498 struct pcmcia_device *link = info->p_dev; in axnet_close() local
500 dev_dbg(&link->dev, "axnet_close('%s')\n", dev->name); in axnet_close()
505 link->open--; in axnet_close()
557 u_short link; in ei_watchdog() local
578 link = mdio_read(mii_addr, info->phy_id, 1); in ei_watchdog()
579 if (!link || (link == 0xffff)) { in ei_watchdog()
585 link &= 0x0004; in ei_watchdog()
586 if (link != info->link_status) { in ei_watchdog()
588 netdev_info(dev, "%s link beat\n", link ? "found" : "lost"); in ei_watchdog()
589 if (link) { in ei_watchdog()
598 info->link_status = link; in ei_watchdog()