Lines Matching refs:cs

306 static int gigaset_set_modem_ctrl(struct cardstate *cs, unsigned old_state,  in gigaset_set_modem_ctrl()  argument
312 static int gigaset_baud_rate(struct cardstate *cs, unsigned cflag) in gigaset_baud_rate() argument
317 static int gigaset_set_line_ctrl(struct cardstate *cs, unsigned cflag) in gigaset_set_line_ctrl() argument
347 struct cardstate *cs = bcs->cs; in error_hangup() local
349 gigaset_add_event(cs, &bcs->at_state, EV_HUP, NULL, 0, NULL); in error_hangup()
350 gigaset_schedule_event(cs); in error_hangup()
361 static inline void error_reset(struct cardstate *cs) in error_reset() argument
364 update_basstate(cs->hw.bas, BS_RESETTING, 0); in error_reset()
365 if (req_submit(cs->bcs, HD_RESET_INTERRUPT_PIPE, 0, BAS_TIMEOUT)) in error_reset()
367 usb_queue_reset_device(cs->hw.bas->interface); in error_reset()
438 struct cardstate *cs = (struct cardstate *) data; in cmd_in_timeout() local
439 struct bas_cardstate *ucs = cs->hw.bas; in cmd_in_timeout()
448 dev_err(cs->dev, in cmd_in_timeout()
454 error_reset(cs); in cmd_in_timeout()
460 rc = atread_submit(cs, BAS_TIMEOUT); in cmd_in_timeout()
466 error_reset(cs); in cmd_in_timeout()
480 struct cardstate *cs = inbuf->cs; in read_ctrl_callback() local
481 struct bas_cardstate *ucs = cs->hw.bas; in read_ctrl_callback()
494 dev_warn(cs->dev, in read_ctrl_callback()
504 gigaset_schedule_event(cs); in read_ctrl_callback()
522 rc = atread_submit(cs, BAS_TIMEOUT); in read_ctrl_callback()
530 dev_err(cs->dev, "control read: %s, giving up after %d tries\n", in read_ctrl_callback()
532 error_reset(cs); in read_ctrl_callback()
551 static int atread_submit(struct cardstate *cs, int timeout) in atread_submit() argument
553 struct bas_cardstate *ucs = cs->hw.bas; in atread_submit()
562 dev_err(cs->dev, in atread_submit()
568 dev_notice(cs->dev, in atread_submit()
585 read_ctrl_callback, cs->inbuf); in atread_submit()
590 dev_err(cs->dev, "could not submit HD_READ_ATMESSAGE: %s\n", in atread_submit()
611 struct cardstate *cs = urb->context; in int_in_work() local
627 dev_err(cs->dev, "clear halt failed: %s\n", get_usb_rcmsg(rc)); in int_in_work()
644 struct cardstate *cs = (struct cardstate *) data; in int_in_resubmit() local
645 struct bas_cardstate *ucs = cs->hw.bas; in int_in_resubmit()
649 dev_err(cs->dev, "interrupt read: giving up after %d tries\n", in int_in_resubmit()
658 dev_err(cs->dev, "could not resubmit interrupt URB: %s\n", in int_in_resubmit()
673 struct cardstate *cs = urb->context; in read_int_callback() local
674 struct bas_cardstate *ucs = cs->hw.bas; in read_int_callback()
707 dev_warn(cs->dev, "interrupt read: %s\n", in read_int_callback()
714 dev_warn(cs->dev, "incomplete interrupt packet (%d bytes)\n", in read_int_callback()
736 start_cbsend(cs); in read_int_callback()
742 bcs = cs->bcs + channel; in read_int_callback()
749 start_cbsend(cs); in read_int_callback()
755 bcs = cs->bcs + channel; in read_int_callback()
768 bcs = cs->bcs + channel; in read_int_callback()
779 dev_warn(cs->dev, in read_int_callback()
783 spin_lock_irqsave(&cs->lock, flags); in read_int_callback()
785 spin_unlock_irqrestore(&cs->lock, flags); in read_int_callback()
786 dev_warn(cs->dev, in read_int_callback()
793 dev_err(cs->dev, in read_int_callback()
801 spin_unlock_irqrestore(&cs->lock, flags); in read_int_callback()
802 dev_err(cs->dev, "out of memory receiving AT data\n"); in read_int_callback()
807 rc = atread_submit(cs, BAS_TIMEOUT); in read_int_callback()
813 spin_unlock_irqrestore(&cs->lock, flags); in read_int_callback()
815 error_reset(cs); in read_int_callback()
820 dev_notice(cs->dev, "interrupt pipe reset\n"); in read_int_callback()
828 dev_warn(cs->dev, in read_int_callback()
839 dev_err(cs->dev, "could not resubmit interrupt URB: %s\n", in read_int_callback()
841 error_reset(cs); in read_int_callback()
894 urb->dev = bcs->cs->hw.bas->udev; in read_iso_callback()
899 dev_err(bcs->cs->dev, in read_iso_callback()
975 urb->dev = bcs->cs->hw.bas->udev; in starturbs()
1007 urb->dev = bcs->cs->hw.bas->udev; in starturbs()
1088 urb->dev = ucx->bcs->cs->hw.bas->udev; in submit_iso_write_urb()
1120 dev_err(ucx->bcs->cs->dev, in submit_iso_write_urb()
1142 dev_err(ucx->bcs->cs->dev, in submit_iso_write_urb()
1161 struct cardstate *cs = bcs->cs; in write_iso_tasklet() local
1187 dev_err(cs->dev, "isoc write underrun\n"); in write_iso_tasklet()
1211 dev_err(cs->dev, in write_iso_tasklet()
1237 dev_warn(cs->dev, in write_iso_tasklet()
1247 dev_err(cs->dev, "isoc write: stalled\n"); in write_iso_tasklet()
1251 dev_warn(cs->dev, "isoc write: %s\n", in write_iso_tasklet()
1304 struct cardstate *cs = bcs->cs; in read_iso_tasklet() local
1324 dev_warn(cs->dev, in read_iso_tasklet()
1355 dev_err(cs->dev, "isoc read: stalled\n"); in read_iso_tasklet()
1359 dev_warn(cs->dev, "isoc read: %s\n", in read_iso_tasklet()
1383 dev_warn(cs->dev, in read_iso_tasklet()
1389 dev_warn(cs->dev, in read_iso_tasklet()
1394 dev_warn(cs->dev, in read_iso_tasklet()
1402 dev_warn(cs->dev, in read_iso_tasklet()
1412 dev_warn(cs->dev, "isoc read: %d data bytes missing\n", in read_iso_tasklet()
1422 urb->dev = bcs->cs->hw.bas->udev; in read_iso_tasklet()
1427 dev_err(cs->dev, in read_iso_tasklet()
1446 struct cardstate *cs = (struct cardstate *) data; in req_timeout() local
1447 struct bas_cardstate *ucs = cs->hw.bas; in req_timeout()
1464 dev_err(cs->dev, "timeout opening AT channel\n"); in req_timeout()
1465 error_reset(cs); in req_timeout()
1469 dev_err(cs->dev, "timeout opening channel 1\n"); in req_timeout()
1470 error_hangup(&cs->bcs[0]); in req_timeout()
1474 dev_err(cs->dev, "timeout opening channel 2\n"); in req_timeout()
1475 error_hangup(&cs->bcs[1]); in req_timeout()
1479 dev_err(cs->dev, "timeout closing AT channel\n"); in req_timeout()
1480 error_reset(cs); in req_timeout()
1484 dev_err(cs->dev, "timeout closing channel 1\n"); in req_timeout()
1485 error_reset(cs); in req_timeout()
1489 dev_err(cs->dev, "timeout closing channel 2\n"); in req_timeout()
1490 error_reset(cs); in req_timeout()
1495 dev_err(cs->dev, in req_timeout()
1501 dev_warn(cs->dev, "request 0x%02x timed out, clearing\n", in req_timeout()
1595 struct bas_cardstate *ucs = bcs->cs->hw.bas; in req_submit()
1604 dev_err(bcs->cs->dev, in req_submit()
1623 dev_err(bcs->cs->dev, "could not submit request 0x%02x: %s\n", in req_submit()
1649 struct cardstate *cs = bcs->cs; in gigaset_init_bchannel() local
1653 spin_lock_irqsave(&cs->lock, flags); in gigaset_init_bchannel()
1654 if (unlikely(!cs->connected)) { in gigaset_init_bchannel()
1656 spin_unlock_irqrestore(&cs->lock, flags); in gigaset_init_bchannel()
1660 if (cs->hw.bas->basstate & BS_SUSPEND) { in gigaset_init_bchannel()
1661 dev_notice(cs->dev, in gigaset_init_bchannel()
1663 spin_unlock_irqrestore(&cs->lock, flags); in gigaset_init_bchannel()
1669 spin_unlock_irqrestore(&cs->lock, flags); in gigaset_init_bchannel()
1670 dev_err(cs->dev, in gigaset_init_bchannel()
1682 dev_err(cs->dev, "could not open channel B%d\n", in gigaset_init_bchannel()
1687 spin_unlock_irqrestore(&cs->lock, flags); in gigaset_init_bchannel()
1705 struct cardstate *cs = bcs->cs; in gigaset_close_bchannel() local
1709 spin_lock_irqsave(&cs->lock, flags); in gigaset_close_bchannel()
1710 if (unlikely(!cs->connected)) { in gigaset_close_bchannel()
1711 spin_unlock_irqrestore(&cs->lock, flags); in gigaset_close_bchannel()
1716 if (!(cs->hw.bas->basstate & (bcs->channel ? BS_B2OPEN : BS_B1OPEN))) { in gigaset_close_bchannel()
1718 spin_unlock_irqrestore(&cs->lock, flags); in gigaset_close_bchannel()
1727 dev_err(cs->dev, "closing channel B%d failed\n", in gigaset_close_bchannel()
1730 spin_unlock_irqrestore(&cs->lock, flags); in gigaset_close_bchannel()
1743 static void complete_cb(struct cardstate *cs) in complete_cb() argument
1745 struct cmdbuf_t *cb = cs->cmdbuf; in complete_cb()
1748 cs->cmdbytes -= cs->curlen; in complete_cb()
1750 cs->curlen, cs->cmdbytes); in complete_cb()
1752 cs->cmdbuf = cb->next; in complete_cb()
1753 cs->cmdbuf->prev = NULL; in complete_cb()
1754 cs->curlen = cs->cmdbuf->len; in complete_cb()
1756 cs->cmdbuf = NULL; in complete_cb()
1757 cs->lastcmdbuf = NULL; in complete_cb()
1758 cs->curlen = 0; in complete_cb()
1776 struct cardstate *cs = urb->context; in write_command_callback() local
1777 struct bas_cardstate *ucs = cs->hw.bas; in write_command_callback()
1799 dev_warn(cs->dev, in write_command_callback()
1807 dev_warn(cs->dev, in write_command_callback()
1813 if (cs->cmdbuf == NULL) { in write_command_callback()
1814 dev_warn(cs->dev, in write_command_callback()
1820 dev_notice(cs->dev, "command write: %s, retry %d\n", in write_command_callback()
1822 if (atwrite_submit(cs, cs->cmdbuf->buf, cs->cmdbuf->len) >= 0) in write_command_callback()
1829 spin_lock_irqsave(&cs->cmdlock, flags); in write_command_callback()
1830 if (cs->cmdbuf != NULL) in write_command_callback()
1831 complete_cb(cs); in write_command_callback()
1832 spin_unlock_irqrestore(&cs->cmdlock, flags); in write_command_callback()
1842 struct cardstate *cs = (struct cardstate *) data; in atrdy_timeout() local
1843 struct bas_cardstate *ucs = cs->hw.bas; in atrdy_timeout()
1845 dev_warn(cs->dev, "timeout waiting for HD_READY_SEND_ATDATA\n"); in atrdy_timeout()
1849 start_cbsend(cs); in atrdy_timeout()
1863 static int atwrite_submit(struct cardstate *cs, unsigned char *buf, int len) in atwrite_submit() argument
1865 struct bas_cardstate *ucs = cs->hw.bas; in atwrite_submit()
1871 dev_err(cs->dev, in atwrite_submit()
1884 write_command_callback, cs); in atwrite_submit()
1888 dev_err(cs->dev, "could not submit HD_WRITE_ATMESSAGE: %s\n", in atwrite_submit()
1910 static int start_cbsend(struct cardstate *cs) in start_cbsend() argument
1913 struct bas_cardstate *ucs = cs->hw.bas; in start_cbsend()
1927 rc = req_submit(cs->bcs, HD_OPEN_ATCHANNEL, 0, BAS_TIMEOUT); in start_cbsend()
1930 spin_lock_irqsave(&cs->cmdlock, flags); in start_cbsend()
1931 while (cs->cmdbuf != NULL) in start_cbsend()
1932 complete_cb(cs); in start_cbsend()
1933 spin_unlock_irqrestore(&cs->cmdlock, flags); in start_cbsend()
1939 spin_lock_irqsave(&cs->cmdlock, flags); in start_cbsend()
1941 while ((cb = cs->cmdbuf) != NULL && (ucs->basstate & BS_ATREADY)) { in start_cbsend()
1943 rc = atwrite_submit(cs, cb->buf, cb->len); in start_cbsend()
1946 complete_cb(cs); in start_cbsend()
1950 spin_unlock_irqrestore(&cs->cmdlock, flags); in start_cbsend()
1968 static int gigaset_write_cmd(struct cardstate *cs, struct cmdbuf_t *cb) in gigaset_write_cmd() argument
1973 gigaset_dbg_buffer(cs->mstate != MS_LOCKED ? in gigaset_write_cmd()
1994 spin_lock_irqsave(&cs->lock, flags); in gigaset_write_cmd()
1995 if (!(cs->hw.bas->basstate & BS_ATRDPEND)) { in gigaset_write_cmd()
1996 kfree(cs->hw.bas->rcvbuf); in gigaset_write_cmd()
1997 cs->hw.bas->rcvbuf = NULL; in gigaset_write_cmd()
1998 cs->hw.bas->rcvbuf_size = 0; in gigaset_write_cmd()
1999 cs->hw.bas->retry_cmd_in = 0; in gigaset_write_cmd()
2000 atread_submit(cs, 0); in gigaset_write_cmd()
2002 spin_unlock_irqrestore(&cs->lock, flags); in gigaset_write_cmd()
2004 rc = req_submit(cs->bcs, HD_CLOSE_ATCHANNEL, 0, BAS_TIMEOUT); in gigaset_write_cmd()
2013 spin_lock_irqsave(&cs->cmdlock, flags); in gigaset_write_cmd()
2014 cb->prev = cs->lastcmdbuf; in gigaset_write_cmd()
2015 if (cs->lastcmdbuf) in gigaset_write_cmd()
2016 cs->lastcmdbuf->next = cb; in gigaset_write_cmd()
2018 cs->cmdbuf = cb; in gigaset_write_cmd()
2019 cs->curlen = cb->len; in gigaset_write_cmd()
2021 cs->cmdbytes += cb->len; in gigaset_write_cmd()
2022 cs->lastcmdbuf = cb; in gigaset_write_cmd()
2023 spin_unlock_irqrestore(&cs->cmdlock, flags); in gigaset_write_cmd()
2025 spin_lock_irqsave(&cs->lock, flags); in gigaset_write_cmd()
2026 if (unlikely(!cs->connected)) { in gigaset_write_cmd()
2027 spin_unlock_irqrestore(&cs->lock, flags); in gigaset_write_cmd()
2030 spin_lock_irqsave(&cs->cmdlock, flags); in gigaset_write_cmd()
2031 while (cs->cmdbuf != NULL) in gigaset_write_cmd()
2032 complete_cb(cs); in gigaset_write_cmd()
2033 spin_unlock_irqrestore(&cs->cmdlock, flags); in gigaset_write_cmd()
2036 rc = start_cbsend(cs); in gigaset_write_cmd()
2037 spin_unlock_irqrestore(&cs->lock, flags); in gigaset_write_cmd()
2050 static int gigaset_write_room(struct cardstate *cs) in gigaset_write_room() argument
2063 static int gigaset_chars_in_buffer(struct cardstate *cs) in gigaset_chars_in_buffer() argument
2065 return cs->cmdbytes; in gigaset_chars_in_buffer()
2075 static int gigaset_brkchars(struct cardstate *cs, const unsigned char buf[6]) in gigaset_brkchars() argument
2185 static void gigaset_freecshw(struct cardstate *cs) in gigaset_freecshw() argument
2188 kfree(cs->hw.bas->int_in_buf); in gigaset_freecshw()
2189 kfree(cs->hw.bas); in gigaset_freecshw()
2190 cs->hw.bas = NULL; in gigaset_freecshw()
2199 static int gigaset_initcshw(struct cardstate *cs) in gigaset_initcshw() argument
2203 cs->hw.bas = ucs = kmalloc(sizeof *ucs, GFP_KERNEL); in gigaset_initcshw()
2224 setup_timer(&ucs->timer_ctrl, req_timeout, (unsigned long) cs); in gigaset_initcshw()
2225 setup_timer(&ucs->timer_atrdy, atrdy_timeout, (unsigned long) cs); in gigaset_initcshw()
2226 setup_timer(&ucs->timer_cmd_in, cmd_in_timeout, (unsigned long) cs); in gigaset_initcshw()
2227 setup_timer(&ucs->timer_int_in, int_in_resubmit, (unsigned long) cs); in gigaset_initcshw()
2240 static void freeurbs(struct cardstate *cs) in freeurbs() argument
2242 struct bas_cardstate *ucs = cs->hw.bas; in freeurbs()
2248 ubc = cs->bcs[j].hw.bas; in freeurbs()
2283 struct cardstate *cs = NULL; in gigaset_probe() local
2326 cs = gigaset_initcs(driver, BAS_CHANNELS, 0, 0, cidmode, in gigaset_probe()
2328 if (!cs) in gigaset_probe()
2330 ucs = cs->hw.bas; in gigaset_probe()
2336 cs->dev = &interface->dev; in gigaset_probe()
2350 ubc = cs->bcs[j].hw.bas; in gigaset_probe()
2369 ucs->int_in_buf, IP_MSGSIZE, read_int_callback, cs, in gigaset_probe()
2373 dev_err(cs->dev, "could not submit interrupt URB: %s\n", in gigaset_probe()
2380 rc = req_submit(cs->bcs, HD_DEVICE_INIT_ACK, 0, 0); in gigaset_probe()
2386 cs->mstate = MS_LOCKED; in gigaset_probe()
2389 usb_set_intfdata(interface, cs); in gigaset_probe()
2391 rc = gigaset_start(cs); in gigaset_probe()
2398 dev_err(cs->dev, "could not allocate URBs\n"); in gigaset_probe()
2401 freeurbs(cs); in gigaset_probe()
2404 gigaset_freecs(cs); in gigaset_probe()
2413 struct cardstate *cs; in gigaset_disconnect() local
2417 cs = usb_get_intfdata(interface); in gigaset_disconnect()
2419 ucs = cs->hw.bas; in gigaset_disconnect()
2421 dev_info(cs->dev, "disconnecting Gigaset base\n"); in gigaset_disconnect()
2428 gigaset_bchannel_down(cs->bcs + j); in gigaset_disconnect()
2431 gigaset_stop(cs); in gigaset_disconnect()
2439 freeurbs(cs); in gigaset_disconnect()
2447 cs->dev = NULL; in gigaset_disconnect()
2448 gigaset_freecs(cs); in gigaset_disconnect()
2458 struct cardstate *cs = usb_get_intfdata(intf); in gigaset_suspend() local
2459 struct bas_cardstate *ucs = cs->hw.bas; in gigaset_suspend()
2477 dev_warn(cs->dev, "cannot suspend:\n"); in gigaset_suspend()
2479 dev_warn(cs->dev, " B channel 1 open\n"); in gigaset_suspend()
2481 dev_warn(cs->dev, " B channel 2 open\n"); in gigaset_suspend()
2483 dev_warn(cs->dev, " receiving AT reply\n"); in gigaset_suspend()
2485 dev_warn(cs->dev, " sending AT command\n"); in gigaset_suspend()
2493 rc = req_submit(cs->bcs, HD_CLOSE_ATCHANNEL, 0, 0); in gigaset_suspend()
2526 struct cardstate *cs = usb_get_intfdata(intf); in gigaset_resume() local
2527 struct bas_cardstate *ucs = cs->hw.bas; in gigaset_resume()
2533 dev_err(cs->dev, "could not resubmit interrupt URB: %s\n", in gigaset_resume()
2631 if (gigaset_shutdown(driver->cs + i) < 0) in bas_gigaset_exit()
2636 ucs = driver->cs[i].hw.bas; in bas_gigaset_exit()