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

Lines Matching refs:card

36 MODULE_DESCRIPTION(       "ISDN4Linux: Driver for IBM Active 2000 ISDN card");
39 MODULE_PARM_DESC(act_bus, "BusType of first card, 1=ISA, 2=MCA, 3=PCMCIA, currently only ISA");
40 MODULE_PARM_DESC(membase, "Base port address of first card");
41 MODULE_PARM_DESC(act_irq, "IRQ of first card");
42 MODULE_PARM_DESC(act_id, "ID-String of first card");
51 find_channel(act2000_card *card, int channel)
54 return &(card->bch[channel]);
63 act2000_clear_msn(act2000_card *card)
65 struct msn_entry *p = card->msn_list;
69 spin_lock_irqsave(&card->lock, flags);
70 card->msn_list = NULL;
71 spin_unlock_irqrestore(&card->lock, flags);
85 act2000_find_msn(act2000_card *card, char *msn, int ia5)
87 struct msn_entry *p = card->msn_list;
108 act2000_find_eaz(act2000_card *card, char eaz)
110 struct msn_entry *p = card->msn_list;
127 act2000_set_msn(act2000_card *card, char *eazmsn)
129 struct msn_entry *p = card->msn_list;
145 spin_lock_irqsave(&card->lock, flags);
149 card->msn_list = p->next;
150 spin_unlock_irqrestore(&card->lock, flags);
166 spin_lock_irqsave(&card->lock, flags);
168 spin_unlock_irqrestore(&card->lock, flags);
183 p->next = card->msn_list;
184 spin_lock_irqsave(&card->lock, flags);
185 card->msn_list = p;
186 spin_unlock_irqrestore(&card->lock, flags);
197 struct act2000_card *card =
200 switch (card->bus) {
202 act2000_isa_send(card);
208 "act2000_transmit: Illegal bustype %d\n", card->bus);
215 struct act2000_card *card =
218 switch (card->bus) {
220 act2000_isa_receive(card);
226 "act2000_receive: Illegal bustype %d\n", card->bus);
233 act2000_card * card = (act2000_card *)data;
236 act2000_receive(&card->poll_tq);
237 spin_lock_irqsave(&card->lock, flags);
238 mod_timer(&card->ptimer, jiffies+3);
239 spin_unlock_irqrestore(&card->lock, flags);
243 act2000_command(act2000_card * card, isdn_ctrl * c)
260 switch (card->bus) {
262 ret = act2000_isa_download(card,
265 card->flags |= ACT2000_FLAGS_LOADED;
266 if (!(card->flags & ACT2000_FLAGS_IVALID)) {
267 card->ptimer.expires = jiffies + 3;
268 card->ptimer.function = act2000_poll;
269 card->ptimer.data = (unsigned long)card;
270 add_timer(&card->ptimer);
272 actcapi_manufacturer_req_errh(card);
278 card->bus);
283 card->ptype = a?ISDN_PTYPE_EURO:ISDN_PTYPE_1TR6;
284 if (!(card->flags & ACT2000_FLAGS_RUNNING))
286 actcapi_manufacturer_req_net(card);
292 if ((ret = act2000_set_msn(card, tmp)))
294 if (card->flags & ACT2000_FLAGS_RUNNING)
295 return(actcapi_manufacturer_req_msn(card));
305 if (!(card->flags & ACT2000_FLAGS_RUNNING))
313 if (!card->flags & ACT2000_FLAGS_RUNNING)
315 if (!(chan = find_channel(card, c->arg & 0x0f)))
317 spin_lock_irqsave(&card->lock, flags);
319 spin_unlock_irqrestore(&card->lock, flags);
324 if (card->ptype == ISDN_PTYPE_EURO)
325 tmp[0] = act2000_find_msn(card, c->parm.setup.eazmsn, 1);
330 spin_unlock_irqrestore(&card->lock, flags);
331 ret = actcapi_connect_req(card, chan, c->parm.setup.phone,
335 cmd.driver = card->myid;
338 card->interface.statcallb(&cmd);
342 if (!card->flags & ACT2000_FLAGS_RUNNING)
344 if (!(chan = find_channel(card, c->arg & 0x0f)))
347 actcapi_select_b2_protocol_req(card, chan);
350 if (!card->flags & ACT2000_FLAGS_RUNNING)
354 if (!card->flags & ACT2000_FLAGS_RUNNING)
356 if (!(chan = find_channel(card, c->arg & 0x0f)))
361 actcapi_connect_resp(card, chan, 0x15);
364 actcapi_disconnect_b3_req(card, chan);
369 if (!card->flags & ACT2000_FLAGS_RUNNING)
371 if (!(chan = find_channel(card, c->arg & 0x0f)))
374 if (card->ptype == ISDN_PTYPE_EURO) {
375 chan->eazmask = act2000_find_msn(card, c->parm.num, 0);
377 if (card->ptype == ISDN_PTYPE_1TR6) {
386 actcapi_listen_req(card);
389 if (!card->flags & ACT2000_FLAGS_RUNNING)
391 if (!(chan = find_channel(card, c->arg & 0x0f)))
394 actcapi_listen_req(card);
397 if (!card->flags & ACT2000_FLAGS_RUNNING)
399 if (!(chan = find_channel(card, c->arg & 0x0f)))
404 if (!card->flags & ACT2000_FLAGS_RUNNING)
410 if (!(chan = find_channel(card, c->arg & 0x0f)))
420 act2000_sendbuf(act2000_card *card, int channel, int ack, struct sk_buff *skb)
427 if (!(chan = find_channel(card, channel)))
459 msg->hdr.msgnum = actcapi_nextsmsg(card);
466 skb_queue_tail(&card->sndq, xmit_skb);
467 act2000_schedule_tx(card);
474 act2000_readstatus(u_char __user * buf, int len, act2000_card * card)
480 if (card->status_buf_read == card->status_buf_write)
482 put_user(*card->status_buf_read++, p);
483 if (card->status_buf_read > card->status_buf_end)
484 card->status_buf_read = card->status_buf;
490 * Find card with given driverId
511 act2000_card *card = act2000_findcard(c->driver);
513 if (card)
514 return (act2000_command(card, c));
524 act2000_card *card = act2000_findcard(id);
526 if (card) {
527 if (!card->flags & ACT2000_FLAGS_RUNNING)
539 act2000_card *card = act2000_findcard(id);
541 if (card) {
542 if (!card->flags & ACT2000_FLAGS_RUNNING)
544 return (act2000_readstatus(buf, len, card));
554 act2000_card *card = act2000_findcard(id);
556 if (card) {
557 if (!card->flags & ACT2000_FLAGS_RUNNING)
559 return (act2000_sendbuf(card, channel, ack, skb));
568 * Allocate a new card-struct, initialize it
575 act2000_card *card;
576 if (!(card = kzalloc(sizeof(act2000_card), GFP_KERNEL))) {
578 "act2000: (%s) Could not allocate card-struct.\n", id);
581 spin_lock_init(&card->lock);
582 spin_lock_init(&card->mnlock);
583 skb_queue_head_init(&card->sndq);
584 skb_queue_head_init(&card->rcvq);
585 skb_queue_head_init(&card->ackq);
586 INIT_WORK(&card->snd_tq, act2000_transmit);
587 INIT_WORK(&card->rcv_tq, actcapi_dispatch);
588 INIT_WORK(&card->poll_tq, act2000_receive);
589 init_timer(&card->ptimer);
590 card->interface.owner = THIS_MODULE;
591 card->interface.channels = ACT2000_BCH;
592 card->interface.maxbufsize = 4000;
593 card->interface.command = if_command;
594 card->interface.writebuf_skb = if_sendbuf;
595 card->interface.writecmd = if_writecmd;
596 card->interface.readstat = if_readstatus;
597 card->interface.features =
602 card->interface.hl_hdrlen = 20;
603 card->ptype = ISDN_PTYPE_EURO;
604 strlcpy(card->interface.id, id, sizeof(card->interface.id));
606 card->bch[i].plci = 0x8000;
607 card->bch[i].ncci = 0x8000;
608 card->bch[i].l2prot = ISDN_PROTO_L2_X75I;
609 card->bch[i].l3prot = ISDN_PROTO_L3_TRANS;
611 card->myid = -1;
612 card->bus = bus;
613 card->port = port;
614 card->irq = irq;
615 card->next = cards;
616 cards = card;
620 * register card at linklevel
623 act2000_registercard(act2000_card * card)
625 switch (card->bus) {
633 card->bus);
636 if (!register_isdn(&card->interface)) {
639 card->interface.id);
642 card->myid = card->interface.channels;
643 sprintf(card->regname, "act2000-isdn (%s)", card->interface.id);
648 unregister_card(act2000_card * card)
653 cmd.driver = card->myid;
654 card->interface.statcallb(&cmd);
655 switch (card->bus) {
657 act2000_isa_release(card);
664 card->bus);
686 * This may result in more than one card detected.
693 "act2000: Detected ISA card at port 0x%x\n",
737 "-type card at port "
758 /* Init OK, next card ... */
762 /* Init failed, remove card from list, free memory */
795 act2000_card *card = cards;
797 while (card) {
798 unregister_card(card);
799 del_timer(&card->ptimer);
800 card = card->next;
802 card = cards;
803 while (card) {
804 last = card;
805 card = card->next;