• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-WNDR4500-V1.0.1.40_1.0.68/src/linux/linux-2.6/drivers/isdn/gigaset/

Lines Matching refs:ucs

346  *	ucs	hardware specific controller state structure
348 static void check_pending(struct bas_cardstate *ucs)
352 spin_lock_irqsave(&ucs->lock, flags);
353 switch (ucs->pending) {
357 if (atomic_read(&ucs->basstate) & BS_ATOPEN)
358 ucs->pending = 0;
361 if (atomic_read(&ucs->basstate) & BS_B1OPEN)
362 ucs->pending = 0;
365 if (atomic_read(&ucs->basstate) & BS_B2OPEN)
366 ucs->pending = 0;
369 if (!(atomic_read(&ucs->basstate) & BS_ATOPEN))
370 ucs->pending = 0;
373 if (!(atomic_read(&ucs->basstate) & BS_B1OPEN))
374 ucs->pending = 0;
377 if (!(atomic_read(&ucs->basstate) & BS_B2OPEN))
378 ucs->pending = 0;
381 ucs->pending = 0;
387 dev_warn(&ucs->interface->dev,
389 ucs->pending);
390 ucs->pending = 0;
393 if (!ucs->pending)
394 del_timer(&ucs->timer_ctrl);
396 spin_unlock_irqrestore(&ucs->lock, flags);
407 struct bas_cardstate *ucs = cs->hw.bas;
410 if (!ucs->rcvbuf_size) {
415 if (ucs->retry_cmd_in++ < BAS_RETRY) {
417 ucs->retry_cmd_in);
426 ucs->retry_cmd_in);
428 kfree(ucs->rcvbuf);
429 ucs->rcvbuf = NULL;
430 ucs->rcvbuf_size = 0;
436 inline static int update_basstate(struct bas_cardstate *ucs,
442 spin_lock_irqsave(&ucs->lock, flags);
443 state = atomic_read(&ucs->basstate);
444 atomic_set(&ucs->basstate, (state & ~clear) | set);
445 spin_unlock_irqrestore(&ucs->lock, flags);
460 struct bas_cardstate *ucs = cs->hw.bas;
465 update_basstate(ucs, 0, BS_ATRDPEND);
467 if (!ucs->rcvbuf_size) {
472 del_timer(&ucs->timer_cmd_in);
477 if (unlikely(numbytes != ucs->rcvbuf_size)) {
480 numbytes, ucs->rcvbuf_size);
481 if (numbytes > ucs->rcvbuf_size)
482 numbytes = ucs->rcvbuf_size;
486 have_data = gigaset_fill_inbuf(inbuf, ucs->rcvbuf, numbytes);
488 if (unlikely(numbytes < ucs->rcvbuf_size)) {
490 ucs->rcvbuf_size -= numbytes;
491 ucs->retry_cmd_in = 0;
514 if (ucs->retry_cmd_in++ < BAS_RETRY) {
516 ucs->retry_cmd_in);
525 ucs->retry_cmd_in);
530 kfree(ucs->rcvbuf);
531 ucs->rcvbuf = NULL;
532 ucs->rcvbuf_size = 0;
551 struct bas_cardstate *ucs = cs->hw.bas;
555 ucs->rcvbuf_size);
557 if (update_basstate(ucs, BS_ATRDPEND, 0) & BS_ATRDPEND) {
563 ucs->dr_cmd_in.bRequestType = IN_VENDOR_REQ;
564 ucs->dr_cmd_in.bRequest = HD_READ_ATMESSAGE;
565 ucs->dr_cmd_in.wValue = 0;
566 ucs->dr_cmd_in.wIndex = 0;
567 ucs->dr_cmd_in.wLength = cpu_to_le16(ucs->rcvbuf_size);
568 usb_fill_control_urb(ucs->urb_cmd_in, ucs->udev,
569 usb_rcvctrlpipe(ucs->udev, 0),
570 (unsigned char*) & ucs->dr_cmd_in,
571 ucs->rcvbuf, ucs->rcvbuf_size,
574 if ((ret = usb_submit_urb(ucs->urb_cmd_in, GFP_ATOMIC)) != 0) {
575 update_basstate(ucs, 0, BS_ATRDPEND);
583 ucs->timer_cmd_in.expires = jiffies + timeout * HZ / 10;
584 ucs->timer_cmd_in.data = (unsigned long) cs;
585 ucs->timer_cmd_in.function = cmd_in_timeout;
586 add_timer(&ucs->timer_cmd_in);
601 struct bas_cardstate *ucs = cs->hw.bas;
635 l = (unsigned) ucs->int_in_buf[1] +
636 (((unsigned) ucs->int_in_buf[2]) << 8);
639 urb->actual_length, (int)ucs->int_in_buf[0], l,
640 (int)ucs->int_in_buf[1], (int)ucs->int_in_buf[2]);
644 switch (ucs->int_in_buf[0]) {
646 update_basstate(ucs, BS_INIT, 0);
650 del_timer(&ucs->timer_atrdy);
651 update_basstate(ucs, BS_ATREADY, BS_ATTIMER);
659 update_basstate(ucs, BS_B1OPEN << channel, 0);
664 update_basstate(ucs, BS_ATOPEN, 0);
672 update_basstate(ucs, 0, BS_B1OPEN << channel);
678 update_basstate(ucs, 0, BS_ATOPEN);
700 if (ucs->rcvbuf_size) {
704 ucs->rcvbuf_size);
705 kfree(ucs->rcvbuf);
706 ucs->rcvbuf_size = 0;
708 if ((ucs->rcvbuf = kmalloc(l, GFP_ATOMIC)) == NULL) {
714 ucs->rcvbuf_size = l;
715 ucs->retry_cmd_in = 0;
717 kfree(ucs->rcvbuf);
718 ucs->rcvbuf = NULL;
719 ucs->rcvbuf_size = 0;
740 (int) ucs->int_in_buf[0], l);
743 check_pending(ucs);
1362 struct bas_cardstate *ucs = bcs->cs->hw.bas;
1366 check_pending(ucs);
1368 spin_lock_irqsave(&ucs->lock, flags);
1369 pending = ucs->pending;
1370 ucs->pending = 0;
1371 spin_unlock_irqrestore(&ucs->lock, flags);
1416 struct bas_cardstate *ucs = urb->context;
1423 spin_lock_irqsave(&ucs->lock, flags);
1424 switch (ucs->pending) {
1426 del_timer(&ucs->timer_ctrl);
1427 ucs->pending = 0;
1430 spin_unlock_irqrestore(&ucs->lock, flags);
1444 if (++ucs->retry_ctrl > BAS_RETRY) {
1445 dev_err(&ucs->interface->dev,
1447 ucs->dr_ctrl.bRequest,
1451 dev_notice(&ucs->interface->dev,
1453 ucs->dr_ctrl.bRequest, get_usb_statmsg(urb->status),
1454 ucs->retry_ctrl);
1456 urb->dev = ucs->udev;
1459 dev_err(&ucs->interface->dev,
1461 ucs->dr_ctrl.bRequest, get_usb_rcmsg(rc));
1469 spin_lock_irqsave(&ucs->lock, flags);
1470 del_timer(&ucs->timer_ctrl);
1471 ucs->pending = 0;
1472 spin_unlock_irqrestore(&ucs->lock, flags);
1490 struct bas_cardstate *ucs = bcs->cs->hw.bas;
1496 spin_lock_irqsave(&ucs->lock, flags);
1497 if (ucs->pending) {
1498 spin_unlock_irqrestore(&ucs->lock, flags);
1502 req, ucs->pending);
1506 ucs->dr_ctrl.bRequestType = OUT_VENDOR_REQ;
1507 ucs->dr_ctrl.bRequest = req;
1508 ucs->dr_ctrl.wValue = cpu_to_le16(val);
1509 ucs->dr_ctrl.wIndex = 0;
1510 ucs->dr_ctrl.wLength = 0;
1511 usb_fill_control_urb(ucs->urb_ctrl, ucs->udev,
1512 usb_sndctrlpipe(ucs->udev, 0),
1513 (unsigned char*) &ucs->dr_ctrl, NULL, 0,
1514 write_ctrl_callback, ucs);
1515 ucs->retry_ctrl = 0;
1516 ret = usb_submit_urb(ucs->urb_ctrl, GFP_ATOMIC);
1520 spin_unlock_irqrestore(&ucs->lock, flags);
1523 ucs->pending = req;
1527 ucs->timer_ctrl.expires = jiffies + timeout * HZ / 10;
1528 ucs->timer_ctrl.data = (unsigned long) bcs;
1529 ucs->timer_ctrl.function = req_timeout;
1530 add_timer(&ucs->timer_ctrl);
1533 spin_unlock_irqrestore(&ucs->lock, flags);
1663 struct bas_cardstate *ucs = cs->hw.bas;
1666 update_basstate(ucs, 0, BS_ATWRPEND);
1682 if (++ucs->retry_cmd_out > BAS_RETRY) {
1687 ucs->retry_cmd_out);
1698 get_usb_statmsg(urb->status), ucs->retry_cmd_out);
1703 update_basstate(ucs, BS_ATREADY, 0);
1720 struct bas_cardstate *ucs = cs->hw.bas;
1725 update_basstate(ucs, BS_ATREADY, BS_ATTIMER);
1742 struct bas_cardstate *ucs = cs->hw.bas;
1747 if (update_basstate(ucs, BS_ATWRPEND, 0) & BS_ATWRPEND) {
1753 ucs->dr_cmd_out.bRequestType = OUT_VENDOR_REQ;
1754 ucs->dr_cmd_out.bRequest = HD_WRITE_ATMESSAGE;
1755 ucs->dr_cmd_out.wValue = 0;
1756 ucs->dr_cmd_out.wIndex = 0;
1757 ucs->dr_cmd_out.wLength = cpu_to_le16(len);
1758 usb_fill_control_urb(ucs->urb_cmd_out, ucs->udev,
1759 usb_sndctrlpipe(ucs->udev, 0),
1760 (unsigned char*) &ucs->dr_cmd_out, buf, len,
1762 rc = usb_submit_urb(ucs->urb_cmd_out, GFP_ATOMIC);
1764 update_basstate(ucs, 0, BS_ATWRPEND);
1771 if (!(update_basstate(ucs, BS_ATTIMER, BS_ATREADY) & BS_ATTIMER)) {
1774 ucs->timer_atrdy.expires = jiffies + ATRDY_TIMEOUT * HZ / 10;
1775 ucs->timer_atrdy.data = (unsigned long) cs;
1776 ucs->timer_atrdy.function = atrdy_timeout;
1777 add_timer(&ucs->timer_atrdy);
1793 struct bas_cardstate *ucs = cs->hw.bas;
1799 if (!(atomic_read(&ucs->basstate) & BS_ATOPEN)) {
1816 atomic_read(&ucs->basstate) & BS_ATREADY) {
1817 ucs->retry_cmd_out = 0;
2073 struct bas_cardstate *ucs;
2075 cs->hw.bas = ucs = kmalloc(sizeof *ucs, GFP_KERNEL);
2076 if (!ucs)
2079 ucs->urb_cmd_in = NULL;
2080 ucs->urb_cmd_out = NULL;
2081 ucs->rcvbuf = NULL;
2082 ucs->rcvbuf_size = 0;
2084 spin_lock_init(&ucs->lock);
2085 ucs->pending = 0;
2087 atomic_set(&ucs->basstate, 0);
2088 init_timer(&ucs->timer_ctrl);
2089 init_timer(&ucs->timer_atrdy);
2090 init_timer(&ucs->timer_cmd_in);
2103 struct bas_cardstate *ucs = cs->hw.bas;
2121 usb_kill_urb(ucs->urb_int_in);
2122 usb_free_urb(ucs->urb_int_in);
2123 ucs->urb_int_in = NULL;
2124 usb_kill_urb(ucs->urb_cmd_out);
2125 usb_free_urb(ucs->urb_cmd_out);
2126 ucs->urb_cmd_out = NULL;
2127 usb_kill_urb(ucs->urb_cmd_in);
2128 usb_free_urb(ucs->urb_cmd_in);
2129 ucs->urb_cmd_in = NULL;
2130 usb_kill_urb(ucs->urb_ctrl);
2131 usb_free_urb(ucs->urb_ctrl);
2132 ucs->urb_ctrl = NULL;
2145 struct bas_cardstate *ucs = NULL;
2190 ucs = cs->hw.bas;
2194 ucs->udev = udev;
2195 ucs->interface = interface;
2203 if (!(ucs->urb_int_in = usb_alloc_urb(0, GFP_KERNEL)) ||
2204 !(ucs->urb_cmd_in = usb_alloc_urb(0, GFP_KERNEL)) ||
2205 !(ucs->urb_cmd_out = usb_alloc_urb(0, GFP_KERNEL)) ||
2206 !(ucs->urb_ctrl = usb_alloc_urb(0, GFP_KERNEL)))
2221 ucs->rcvbuf = NULL;
2222 ucs->rcvbuf_size = 0;
2226 usb_fill_int_urb(ucs->urb_int_in, udev,
2229 ucs->int_in_buf, 3, read_int_callback, cs,
2231 if ((rc = usb_submit_urb(ucs->urb_int_in, GFP_KERNEL)) != 0) {
2268 struct bas_cardstate *ucs;
2273 ucs = cs->hw.bas;
2278 atomic_set(&ucs->basstate, 0);
2288 del_timer_sync(&ucs->timer_ctrl);
2289 del_timer_sync(&ucs->timer_atrdy);
2290 del_timer_sync(&ucs->timer_cmd_in);
2293 kfree(ucs->rcvbuf);
2294 ucs->rcvbuf = NULL;
2295 ucs->rcvbuf_size = 0;
2296 usb_put_dev(ucs->udev);
2297 ucs->interface = NULL;
2298 ucs->udev = NULL;
2366 struct bas_cardstate *ucs = cardstate->hw.bas;
2376 if (atomic_read(&ucs->basstate) & BS_B1OPEN) {
2378 usb_control_msg(ucs->udev, usb_sndctrlpipe(ucs->udev, 0),
2382 if (atomic_read(&ucs->basstate) & BS_B2OPEN) {
2384 usb_control_msg(ucs->udev, usb_sndctrlpipe(ucs->udev, 0),
2388 if (atomic_read(&ucs->basstate) & BS_ATOPEN) {
2390 usb_control_msg(ucs->udev, usb_sndctrlpipe(ucs->udev, 0),
2394 atomic_set(&ucs->basstate, 0);