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

Lines Matching refs:card

4  * scheduler routines for handling exchange card <-> pc.
25 /* available from the card. The routine has to handle the data and return */
27 /* no room to buffer the data is available a zero return tells the card */
31 hysdn_sched_rx(hysdn_card *card, unsigned char *buf, unsigned short len,
37 if (hynet_enable & (1 << card->myid)) {
39 hysdn_rx_netpkt(card, buf, len);
44 hysdn_card_errlog(card, (tErrLogEntry *) buf, len);
45 if (card->err_log_state == ERRLOG_STATE_ON)
46 card->err_log_state = ERRLOG_STATE_START; /* start new fetch */
51 if (hycapi_enable & (1 << card->myid)) {
52 hycapi_rx_capipkt(card, buf, len);
67 /* room in the tx-buffer to the card and data may be sent if needed. */
74 hysdn_sched_tx(hysdn_card *card, unsigned char *buf,
80 if (card->net_tx_busy) {
81 card->net_tx_busy = 0; /* reset flag */
82 hysdn_tx_netack(card); /* acknowledge packet send */
85 if (card->async_busy) {
86 if (card->async_len <= maxlen) {
87 memcpy(buf, card->async_data, card->async_len);
88 *len = card->async_len;
89 *chan = card->async_channel;
90 card->async_busy = 0; /* reset request */
93 card->async_busy = 0; /* in case of length error */
95 if ((card->err_log_state == ERRLOG_STATE_START) &&
100 card->err_log_state = ERRLOG_STATE_ON; /* new state is on */
103 if ((card->err_log_state == ERRLOG_STATE_STOP) &&
108 card->err_log_state = ERRLOG_STATE_OFF; /* new state is off */
112 if ((hynet_enable & (1 << card->myid)) &&
113 (skb = hysdn_tx_netget(card)) != NULL)
120 card->net_tx_busy = 1; /* we are busy sending network data */
123 hysdn_tx_netack(card); /* aknowledge packet -> throw away */
126 if( ((hycapi_enable & (1 << card->myid))) &&
127 ((skb = hycapi_tx_capiget(card)) != NULL) )
133 hycapi_tx_capiack(card);
143 /* send one config line to the card and return 0 if successful, otherwise a */
150 hysdn_tx_cfgline(hysdn_card *card, unsigned char *line, unsigned short chan)
155 if (card->debug_flags & LOG_SCHED_ASYN)
156 hysdn_addlog(card, "async tx-cfg chan=%d len=%d", chan, strlen(line) + 1);
158 while (card->async_busy) {
160 if (card->debug_flags & LOG_SCHED_ASYN)
161 hysdn_addlog(card, "async tx-cfg delayed");
168 spin_lock_irqsave(&card->hysdn_lock, flags);
169 strcpy(card->async_data, line);
170 card->async_len = strlen(line) + 1;
171 card->async_channel = chan;
172 card->async_busy = 1; /* request transfer */
175 schedule_work(&card->irq_queue);
176 spin_unlock_irqrestore(&card->hysdn_lock, flags);
178 if (card->debug_flags & LOG_SCHED_ASYN)
179 hysdn_addlog(card, "async tx-cfg data queued");
183 while (card->async_busy) {
185 if (card->debug_flags & LOG_SCHED_ASYN)
186 hysdn_addlog(card, "async tx-cfg waiting for tx-ready");
193 if (card->debug_flags & LOG_SCHED_ASYN)
194 hysdn_addlog(card, "async tx-cfg data send");