• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/drivers/net/pcmcia/

Lines Matching defs:link

98 static int pcnet_config(struct pcmcia_device *link);
99 static void pcnet_release(struct pcmcia_device *link);
108 static int setup_shmem_window(struct pcmcia_device *link, int start_pg,
110 static int setup_dma_config(struct pcmcia_device *link, int start_pg,
249 static int pcnet_probe(struct pcmcia_device *link)
254 dev_dbg(&link->dev, "pcnet_attach()\n");
260 info->p_dev = link;
261 link->priv = dev;
263 link->conf.Attributes = CONF_ENABLE_IRQ;
264 link->conf.IntType = INT_MEMORY_AND_IO;
268 return pcnet_config(link);
280 static void pcnet_detach(struct pcmcia_device *link)
282 struct net_device *dev = link->priv;
284 dev_dbg(&link->dev, "pcnet_detach\n");
288 pcnet_release(link);
300 static hw_info_t *get_hwinfo(struct pcmcia_device *link)
302 struct net_device *dev = link->priv;
311 i = pcmcia_request_window(link, &req, &link->win);
317 pcmcia_map_mem_page(link, link->win, hw_info[i].offset & ~(req.Size-1));
329 j = pcmcia_release_window(link, link->win);
341 static hw_info_t *get_prom(struct pcmcia_device *link)
343 struct net_device *dev = link->priv;
395 static hw_info_t *get_dl10019(struct pcmcia_device *link)
397 struct net_device *dev = link->priv;
417 static hw_info_t *get_ax88190(struct pcmcia_device *link)
419 struct net_device *dev = link->priv;
424 if (link->conf.ConfigBase != 0x03c0)
450 static hw_info_t *get_hwired(struct pcmcia_device *link)
452 struct net_device *dev = link->priv;
474 static int try_io_port(struct pcmcia_device *link)
477 link->resource[0]->flags &= ~IO_DATA_PATH_WIDTH;
478 link->resource[1]->flags &= ~IO_DATA_PATH_WIDTH;
479 if (link->resource[0]->end == 32) {
480 link->resource[0]->flags |= IO_DATA_PATH_WIDTH_AUTO;
481 if (link->resource[1]->end > 0) {
483 link->resource[1]->flags |= IO_DATA_PATH_WIDTH_8;
487 link->resource[0]->flags |= IO_DATA_PATH_WIDTH_8;
488 link->resource[1]->flags |= IO_DATA_PATH_WIDTH_16;
490 if (link->resource[0]->start == 0) {
492 link->resource[0]->start = j ^ 0x300;
493 link->resource[1]->start = (j ^ 0x300) + 0x10;
494 link->io_lines = 16;
495 ret = pcmcia_request_io(link);
501 return pcmcia_request_io(link);
544 static hw_info_t *pcnet_try_config(struct pcmcia_device *link,
547 struct net_device *dev = link->priv;
553 ret = pcmcia_loop_config(link, pcnet_confcheck, &priv);
555 dev_warn(&link->dev, "no useable port range found\n");
560 if (!link->irq)
563 if (resource_size(link->resource[1]) == 8) {
564 link->conf.Attributes |= CONF_ENABLE_SPKR;
565 link->conf.Status = CCSR_AUDIO_ENA;
567 if ((link->manf_id == MANFID_IBM) &&
568 (link->card_id == PRODID_IBM_HOME_AND_AWAY))
569 link->conf.ConfigIndex |= 0x10;
571 ret = pcmcia_request_configuration(link, &link->conf);
575 dev->irq = link->irq;
576 dev->base_addr = link->resource[0]->start;
582 dev_notice(&link->dev, "invalid if_port requested\n");
586 if ((link->conf.ConfigBase == 0x03c0) &&
587 (link->manf_id == 0x149) && (link->card_id == 0xc1ab)) {
588 dev_info(&link->dev,
593 local_hw_info = get_hwinfo(link);
595 local_hw_info = get_prom(link);
597 local_hw_info = get_dl10019(link);
599 local_hw_info = get_ax88190(link);
601 local_hw_info = get_hwired(link);
606 static int pcnet_config(struct pcmcia_device *link)
608 struct net_device *dev = link->priv;
614 dev_dbg(&link->dev, "pcnet_config\n");
616 local_hw_info = pcnet_try_config(link, &has_shmem, 0);
619 pcmcia_disable_device(link);
620 local_hw_info = pcnet_try_config(link, &has_shmem, 1);
622 dev_notice(&link->dev, "unable to read hardware net"
631 if ((link->manf_id == MANFID_SOCKET) &&
632 ((link->card_id == PRODID_SOCKET_LPE) ||
633 (link->card_id == PRODID_SOCKET_LPE_CF) ||
634 (link->card_id == PRODID_SOCKET_EIO)))
651 (setup_shmem_window(link, start_pg, stop_pg, cm_offset) != 0))
652 setup_dma_config(link, start_pg, stop_pg);
663 SET_NETDEV_DEV(dev, &link->dev);
688 pcnet_release(link);
700 static void pcnet_release(struct pcmcia_device *link)
702 pcnet_dev_t *info = PRIV(link->priv);
704 dev_dbg(&link->dev, "pcnet_release\n");
709 pcmcia_disable_device(link);
721 static int pcnet_suspend(struct pcmcia_device *link)
723 struct net_device *dev = link->priv;
725 if (link->open)
731 static int pcnet_resume(struct pcmcia_device *link)
733 struct net_device *dev = link->priv;
735 if (link->open) {
971 struct pcmcia_device *link = info->p_dev;
974 dev_dbg(&link->dev, "pcnet_open('%s')\n", dev->name);
976 if (!pcmcia_dev_present(link))
986 link->open++;
1004 struct pcmcia_device *link = info->p_dev;
1006 dev_dbg(&link->dev, "pcnet_close('%s')\n", dev->name);
1011 link->open--;
1089 u_short link;
1112 link = mdio_read(mii_addr, info->phy_id, 1);
1113 if (!link || (link == 0xffff)) {
1123 link &= 0x0004;
1124 if (link != info->link_status) {
1126 printk(KERN_INFO "%s: %s link beat\n", dev->name,
1127 (link) ? "found" : "lost");
1128 if (link && (info->flags & IS_DL10022)) {
1131 } else if (link && (info->flags & IS_DL10019)) {
1135 if (link) {
1143 printk(KERN_INFO "%s: link partner did not "
1148 info->link_status = link;
1151 link = mdio_read(mii_addr, info->eth_phy, 1) & 0x0004;
1152 if (((info->phy_id == info->pna_phy) && link) ||
1153 ((info->phy_id != info->pna_phy) && !link)) {
1381 static int setup_dma_config(struct pcmcia_device *link, int start_pg,
1384 struct net_device *dev = link->priv;
1484 static int setup_shmem_window(struct pcmcia_device *link, int start_pg,
1487 struct net_device *dev = link->priv;
1504 ret = pcmcia_request_window(link, &req, &link->win);
1510 ret = pcmcia_map_mem_page(link, link->win, offset);
1524 pcmcia_release_window(link, link->win);
1525 info->base = NULL; link->win = 0;