Lines Matching refs:link
262 static int has_ce2_string(struct pcmcia_device * link);
263 static int xirc2ps_config(struct pcmcia_device * link);
264 static void xirc2ps_release(struct pcmcia_device * link);
295 static int set_card_type(struct pcmcia_device *link);
475 xirc2ps_probe(struct pcmcia_device *link) in xirc2ps_probe() argument
480 dev_dbg(&link->dev, "attach()\n"); in xirc2ps_probe()
488 local->p_dev = link; in xirc2ps_probe()
489 link->priv = dev; in xirc2ps_probe()
492 link->config_index = 1; in xirc2ps_probe()
500 return xirc2ps_config(link); in xirc2ps_probe()
504 xirc2ps_detach(struct pcmcia_device *link) in xirc2ps_detach() argument
506 struct net_device *dev = link->priv; in xirc2ps_detach()
508 dev_dbg(&link->dev, "detach\n"); in xirc2ps_detach()
512 xirc2ps_release(link); in xirc2ps_detach()
536 set_card_type(struct pcmcia_device *link) in set_card_type() argument
538 struct net_device *dev = link->priv; in set_card_type()
544 len = pcmcia_get_tuple(link, CISTPL_MANFID, &buf); in set_card_type()
546 dev_err(&link->dev, "invalid CIS -- sorry\n"); in set_card_type()
554 dev_dbg(&link->dev, "cisrev=%02x mediaid=%02x prodid=%02x\n", in set_card_type()
588 case 1: local->card_type = has_ce2_string(link)? XIR_CE2 : XIR_CE ; in set_card_type()
690 xirc2ps_config(struct pcmcia_device * link) in xirc2ps_config() argument
692 struct net_device *dev = link->priv; in xirc2ps_config()
701 dev_dbg(&link->dev, "config\n"); in xirc2ps_config()
704 if (link->has_manf_id == 0) { in xirc2ps_config()
709 switch (link->manf_id) { in xirc2ps_config()
728 (unsigned)link->manf_id); in xirc2ps_config()
731 dev_dbg(&link->dev, "found %s card\n", local->manf_str); in xirc2ps_config()
733 if (!set_card_type(link)) { in xirc2ps_config()
739 err = pcmcia_get_mac_from_cis(link, dev); in xirc2ps_config()
743 len = pcmcia_get_tuple(link, 0x89, &buf); in xirc2ps_config()
757 err = pcmcia_loop_tuple(link, CISTPL_FUNCE, pcmcia_get_mac_ce, dev); in xirc2ps_config()
766 link->config_flags |= CONF_AUTO_SET_IO; in xirc2ps_config()
771 if (!pcmcia_loop_config(link, xirc2ps_config_modem, NULL)) in xirc2ps_config()
780 if (!pcmcia_loop_config(link, xirc2ps_config_check, in xirc2ps_config()
789 link->io_lines = 10; in xirc2ps_config()
790 link->resource[0]->end = 16; in xirc2ps_config()
791 link->resource[0]->flags |= IO_DATA_PATH_WIDTH_16; in xirc2ps_config()
793 link->resource[0]->start = ioaddr; in xirc2ps_config()
794 if (!(err = pcmcia_request_io(link))) in xirc2ps_config()
797 link->resource[0]->start = 0; /* let CS decide */ in xirc2ps_config()
798 if ((err = pcmcia_request_io(link))) in xirc2ps_config()
809 if ((err=pcmcia_request_irq(link, xirc2ps_interrupt))) in xirc2ps_config()
812 link->config_flags |= CONF_ENABLE_IRQ; in xirc2ps_config()
814 link->config_flags |= CONF_ENABLE_SPKR; in xirc2ps_config()
816 if ((err = pcmcia_enable_device(link))) in xirc2ps_config()
825 err = pcmcia_write_config_byte(link, CISREG_IOBASE_0, (u8) in xirc2ps_config()
826 link->resource[1]->start & 0xff); in xirc2ps_config()
830 err = pcmcia_write_config_byte(link, CISREG_IOBASE_1, in xirc2ps_config()
831 (link->resource[1]->start >> 8) & 0xff); in xirc2ps_config()
839 link->resource[2]->flags = WIN_DATA_WIDTH_8 | WIN_MEMORY_TYPE_AM | in xirc2ps_config()
841 link->resource[2]->start = link->resource[2]->end = 0; in xirc2ps_config()
842 if ((err = pcmcia_request_window(link, link->resource[2], 0))) in xirc2ps_config()
845 local->dingo_ccr = ioremap(link->resource[2]->start, 0x1000) + 0x0800; in xirc2ps_config()
846 if ((err = pcmcia_map_mem_page(link, link->resource[2], 0))) in xirc2ps_config()
853 ioaddr = link->resource[0]->start; in xirc2ps_config()
899 dev->irq = link->irq; in xirc2ps_config()
900 dev->base_addr = link->resource[0]->start; in xirc2ps_config()
905 SET_NETDEV_DEV(dev, &link->dev); in xirc2ps_config()
920 xirc2ps_release(link); in xirc2ps_config()
928 xirc2ps_release(struct pcmcia_device *link) in xirc2ps_release() argument
930 dev_dbg(&link->dev, "release\n"); in xirc2ps_release()
932 if (link->resource[2]->end) { in xirc2ps_release()
933 struct net_device *dev = link->priv; in xirc2ps_release()
938 pcmcia_disable_device(link); in xirc2ps_release()
944 static int xirc2ps_suspend(struct pcmcia_device *link) in xirc2ps_suspend() argument
946 struct net_device *dev = link->priv; in xirc2ps_suspend()
948 if (link->open) { in xirc2ps_suspend()
956 static int xirc2ps_resume(struct pcmcia_device *link) in xirc2ps_resume() argument
958 struct net_device *dev = link->priv; in xirc2ps_resume()
960 if (link->open) { in xirc2ps_resume()
1391 struct pcmcia_device *link = lp->p_dev; in do_open() local
1393 dev_dbg(&link->dev, "do_open(%p)\n", dev); in do_open()
1397 if (!pcmcia_dev_present(link)) in do_open()
1401 link->open++; in do_open()
1719 struct pcmcia_device *link = lp->p_dev; in do_stop() local
1721 dev_dbg(&link->dev, "do_stop(%p)\n", dev); in do_stop()
1723 if (!link) in do_stop()
1736 link->open--; in do_stop()