/linux-4.4.14/drivers/isdn/gigaset/ |
H A D | ev-layer.c | 49 /* responses with values to store in at_state */ 430 event->at_state = NULL; add_cid_event() 460 if (cs->at_state.getstring) { gigaset_handle_modem_response() 462 cs->at_state.getstring = 0; gigaset_handle_modem_response() 646 cs->at_state.pending_commands |= PC_UMMODE; disconnect_nobc() 665 static void disconnect_bc(struct at_state_t *at_state, disconnect_bc() argument 671 ++at_state->seq_index; disconnect_bc() 675 cs->at_state.pending_commands |= PC_UMMODE; disconnect_bc() 710 ret = &cs->bcs[i].at_state; get_free_channel() 728 struct at_state_t *at_state; init_failed() local 730 cs->at_state.pending_commands &= ~PC_INIT; init_failed() 735 at_state = &cs->bcs[i].at_state; init_failed() 736 if (at_state->pending_commands & PC_CID) { init_failed() 737 at_state->pending_commands &= ~PC_CID; init_failed() 738 at_state->pending_commands |= PC_NOCID; init_failed() 746 if (cs->at_state.pending_commands & PC_INIT) { schedule_init() 753 cs->at_state.pending_commands |= PC_INIT; schedule_init() 762 struct at_state_t *at_state) send_command() 764 int cid = at_state->cid; send_command() 790 struct at_state_t *at_state; at_state_from_cid() local 795 return &cs->at_state; at_state_from_cid() 798 if (cid == cs->bcs[i].at_state.cid) at_state_from_cid() 799 return &cs->bcs[i].at_state; at_state_from_cid() 803 list_for_each_entry(at_state, &cs->temp_at_states, list) at_state_from_cid() 804 if (cid == at_state->cid) { at_state_from_cid() 806 return at_state; at_state_from_cid() 843 static void start_dial(struct at_state_t *at_state, void *data, start_dial() argument 846 struct bc_state *bcs = at_state->bcs; start_dial() 847 struct cardstate *cs = at_state->cs; start_dial() 855 if (at_state->seq_index != seq_index) { start_dial() 866 at_state->pending_commands |= PC_CID; start_dial() 876 at_state->pending_commands |= PC_NOCID; start_dial() 882 static void start_accept(struct at_state_t *at_state) start_accept() argument 884 struct cardstate *cs = at_state->cs; start_accept() 885 struct bc_state *bcs = at_state->bcs; start_accept() 896 dev_err(at_state->cs->dev, "out of memory\n"); start_accept() 898 at_state->pending_commands |= PC_HUP; start_accept() 907 at_state->pending_commands |= PC_ACCEPT; start_accept() 952 cs->at_state.pending_commands |= PC_SHUTDOWN; do_shutdown() 986 if (cs->bcs[i].at_state.cid > 0) reinit_and_retry() 995 cs->bcs[channel].at_state.pending_commands |= PC_CID; reinit_and_retry() 1006 struct at_state_t *at_state; at_state_invalid() local 1011 if (test_ptr == &cs->at_state) at_state_invalid() 1014 list_for_each_entry(at_state, &cs->temp_at_states, list) at_state_invalid() 1015 if (at_state == test_ptr) at_state_invalid() 1019 if (&cs->bcs[channel].at_state == test_ptr) at_state_invalid() 1029 struct at_state_t *at_state) handle_icall() 1033 retval = gigaset_isdn_icall(at_state); handle_icall() 1046 at_state->pending_commands |= PC_HUP; handle_icall() 1061 cs->at_state.pending_commands) do_lock() 1065 if (cs->bcs[i].at_state.pending_commands) do_lock() 1105 struct at_state_t *at_state = *p_at_state; do_action() local 1119 at_state->waiting = 1; do_action() 1122 cs->at_state.pending_commands &= ~PC_INIT; do_action() 1133 cs->at_state.pending_commands |= PC_CIDMODE; do_action() 1205 at_state = get_free_channel(cs, ev->parameter); do_action() 1206 if (!at_state) { do_action() 1215 at_state->ConState = 700; do_action() 1217 kfree(at_state->str_var[i]); do_action() 1218 at_state->str_var[i] = NULL; do_action() 1220 at_state->int_var[VAR_ZCTP] = -1; do_action() 1223 at_state->timer_expires = RING_TIMEOUT; do_action() 1224 at_state->timer_active = 1; do_action() 1228 handle_icall(cs, bcs, at_state); do_action() 1240 at_state->pending_commands |= PC_DLE1; do_action() 1257 at_state->int_var[VAR_ZSAU] = ZSAU_NULL; do_action() 1261 at_state->cid = -1; do_action() 1268 at_state->pending_commands |= PC_DLE0; do_action() 1271 disconnect_bc(at_state, cs, bcs); do_action() 1275 at_state->int_var[VAR_ZDLE] = 0; do_action() 1281 disconnect_bc(&bcs2->at_state, cs, bcs2); do_action() 1286 at_state->cid = -1; do_action() 1290 at_state->pending_commands |= PC_DLE0; do_action() 1292 disconnect_bc(at_state, cs, bcs); do_action() 1300 disconnect_bc(&bcs2->at_state, cs, bcs2); do_action() 1308 cs->bcs[channel].at_state.pending_commands |= PC_HUP; do_action() 1316 cs->bcs[channel].at_state.cid = ev->parameter; do_action() 1317 cs->bcs[channel].at_state.pending_commands |= do_action() 1330 disconnect_bc(&bcs2->at_state, cs, bcs2); do_action() 1336 disconnect_bc(&bcs2->at_state, cs, bcs2); do_action() 1346 disconnect_bc(at_state, cs, bcs); do_action() 1353 at_state->pending_commands |= PC_HUP; do_action() 1360 at_state->pending_commands |= PC_HUP; do_action() 1365 at_state->getstring = 1; do_action() 1418 __func__, at_state->ConState); do_action() 1423 __func__, ev->type, at_state->ConState); do_action() 1427 __func__, ev->type, at_state->ConState); do_action() 1431 ev->parameter, at_state->ConState); do_action() 1442 start_dial(at_state, ev->ptr, ev->parameter); do_action() 1445 start_accept(at_state); do_action() 1448 at_state->pending_commands |= PC_HUP; do_action() 1489 cs->at_state.pending_commands |= PC_CIDMODE; do_action() 1492 cs->at_state.pending_commands |= PC_UMMODE; do_action() 1517 *pp_command = at_state->bcs->commands[action - ACT_CMD]; do_action() 1536 struct at_state_t *at_state; process_event() local 1542 at_state = at_state_from_cid(cs, ev->cid); process_event() 1543 if (!at_state) { process_event() 1546 gigaset_add_event(cs, &cs->at_state, RSP_WRONG_CID, process_event() 1551 at_state = ev->at_state; process_event() 1552 if (at_state_invalid(cs, at_state)) { process_event() 1553 gig_dbg(DEBUG_EVENT, "event for invalid at_state %p", process_event() 1554 at_state); process_event() 1560 at_state->ConState, ev->type); process_event() 1562 bcs = at_state->bcs; process_event() 1565 rep = at_state->replystruct; process_event() 1569 if (ev->parameter != at_state->timer_index process_event() 1570 || !at_state->timer_active) { process_event() 1574 if (at_state->waiting) process_event() 1582 /* if the response belongs to a variable in at_state->int_var[VAR_XXXX] process_event() 1583 or at_state->str_var[STR_XXXX], set it */ process_event() 1586 at_state->int_var[index] = ev->parameter; process_event() 1589 kfree(at_state->str_var[index]); process_event() 1590 at_state->str_var[index] = ev->ptr; process_event() 1596 at_state->getstring = 0; process_event() 1606 __func__, ev->type, at_state->ConState); process_event() 1610 && ((int) at_state->ConState >= rep->min_ConState) process_event() 1612 || (int) at_state->ConState <= rep->max_ConState) process_event() 1619 at_state->waiting = 0; process_event() 1623 do_action(rep->action[curact], cs, bcs, &at_state, &p_command, process_event() 1625 if (!at_state) process_event() 1626 /* at_state destroyed by disconnect */ process_event() 1632 at_state->ConState = rep->new_ConState; process_event() 1636 at_state->timer_expires = 0; process_event() 1637 at_state->timer_active = 0; process_event() 1639 gigaset_add_event(cs, at_state, resp_code, NULL, 0, NULL); process_event() 1644 send_command(cs, p_command, at_state); process_event() 1646 gigaset_add_event(cs, at_state, RSP_NODEV, process_event() 1652 at_state->timer_expires = 0; process_event() 1653 at_state->timer_active = 0; process_event() 1655 at_state->timer_expires = rep->timeout * 10; process_event() 1656 at_state->timer_active = 1; process_event() 1657 ++at_state->timer_index; process_event() 1664 struct at_state_t *at_state, int sequence) schedule_sequence() 1667 gigaset_add_event(cs, at_state, RSP_INIT, NULL, sequence, NULL); schedule_sequence() 1672 struct at_state_t *at_state = NULL; process_command_flags() local 1690 if (cs->at_state.pending_commands & PC_SHUTDOWN) { process_command_flags() 1691 cs->at_state.pending_commands &= ~PC_CIDMODE; process_command_flags() 1694 at_state = &bcs->at_state; process_command_flags() 1695 at_state->pending_commands &= process_command_flags() 1697 if (at_state->cid > 0) process_command_flags() 1698 at_state->pending_commands |= PC_HUP; process_command_flags() 1699 if (at_state->pending_commands & PC_CID) { process_command_flags() 1700 at_state->pending_commands |= PC_NOCID; process_command_flags() 1701 at_state->pending_commands &= ~PC_CID; process_command_flags() 1707 if (cs->at_state.pending_commands & PC_INIT) { process_command_flags() 1708 cs->at_state.pending_commands &= ~PC_CIDMODE; process_command_flags() 1711 at_state = &bcs->at_state; process_command_flags() 1712 at_state->pending_commands &= process_command_flags() 1714 if (at_state->cid > 0) process_command_flags() 1715 at_state->pending_commands |= PC_HUP; process_command_flags() 1717 if (at_state->pending_commands & PC_CID) { process_command_flags() 1718 at_state->pending_commands |= PC_NOCID; process_command_flags() 1719 at_state->pending_commands &= ~PC_CID; process_command_flags() 1728 if (cs->at_state.pending_commands == PC_UMMODE process_command_flags() 1733 at_state = &cs->at_state; process_command_flags() 1736 if (bcs->at_state.pending_commands || process_command_flags() 1737 bcs->at_state.cid > 0) { process_command_flags() 1744 cs->at_state.pending_commands &= ~PC_UMMODE; process_command_flags() 1746 schedule_sequence(cs, at_state, sequence); process_command_flags() 1752 if (bcs->at_state.pending_commands & PC_HUP) { process_command_flags() 1755 schedule_sequence(cs, &cs->at_state, SEQ_DLE0); process_command_flags() 1758 bcs->at_state.pending_commands &= ~PC_HUP; process_command_flags() 1759 if (bcs->at_state.pending_commands & PC_CID) { process_command_flags() 1761 bcs->at_state.pending_commands |= PC_NOCID; process_command_flags() 1762 bcs->at_state.pending_commands &= ~PC_CID; process_command_flags() 1764 schedule_sequence(cs, &bcs->at_state, SEQ_HUP); process_command_flags() 1768 if (bcs->at_state.pending_commands & PC_NOCID) { process_command_flags() 1769 bcs->at_state.pending_commands &= ~PC_NOCID; process_command_flags() 1771 schedule_sequence(cs, &cs->at_state, SEQ_NOCID); process_command_flags() 1773 } else if (bcs->at_state.pending_commands & PC_DLE0) { process_command_flags() 1774 bcs->at_state.pending_commands &= ~PC_DLE0; process_command_flags() 1776 schedule_sequence(cs, &cs->at_state, SEQ_DLE0); process_command_flags() 1781 list_for_each_entry(at_state, &cs->temp_at_states, list) process_command_flags() 1782 if (at_state->pending_commands & PC_HUP) { process_command_flags() 1783 at_state->pending_commands &= ~PC_HUP; process_command_flags() 1784 schedule_sequence(cs, at_state, SEQ_HUP); process_command_flags() 1788 if (cs->at_state.pending_commands & PC_INIT) { process_command_flags() 1789 cs->at_state.pending_commands &= ~PC_INIT; process_command_flags() 1792 schedule_sequence(cs, &cs->at_state, SEQ_INIT); process_command_flags() 1795 if (cs->at_state.pending_commands & PC_SHUTDOWN) { process_command_flags() 1796 cs->at_state.pending_commands &= ~PC_SHUTDOWN; process_command_flags() 1797 schedule_sequence(cs, &cs->at_state, SEQ_SHUTDOWN); process_command_flags() 1800 if (cs->at_state.pending_commands & PC_CIDMODE) { process_command_flags() 1801 cs->at_state.pending_commands &= ~PC_CIDMODE; process_command_flags() 1804 schedule_sequence(cs, &cs->at_state, SEQ_CIDMODE); process_command_flags() 1811 if (bcs->at_state.pending_commands & PC_DLE1) { process_command_flags() 1812 bcs->at_state.pending_commands &= ~PC_DLE1; process_command_flags() 1814 schedule_sequence(cs, &cs->at_state, SEQ_DLE1); process_command_flags() 1817 if (bcs->at_state.pending_commands & PC_ACCEPT) { process_command_flags() 1818 bcs->at_state.pending_commands &= ~PC_ACCEPT; process_command_flags() 1819 schedule_sequence(cs, &bcs->at_state, SEQ_ACCEPT); process_command_flags() 1822 if (bcs->at_state.pending_commands & PC_DIAL) { process_command_flags() 1823 bcs->at_state.pending_commands &= ~PC_DIAL; process_command_flags() 1824 schedule_sequence(cs, &bcs->at_state, SEQ_DIAL); process_command_flags() 1827 if (bcs->at_state.pending_commands & PC_CID) { process_command_flags() 1830 cs->at_state.pending_commands |= PC_CIDMODE; process_command_flags() 1838 bcs->at_state.pending_commands &= ~PC_CID; process_command_flags() 1841 schedule_sequence(cs, &cs->at_state, SEQ_CID); process_command_flags() 761 send_command(struct cardstate *cs, const char *cmd, struct at_state_t *at_state) send_command() argument 1028 handle_icall(struct cardstate *cs, struct bc_state *bcs, struct at_state_t *at_state) handle_icall() argument 1663 schedule_sequence(struct cardstate *cs, struct at_state_t *at_state, int sequence) schedule_sequence() argument
|
H A D | common.c | 140 static int test_timeout(struct at_state_t *at_state) test_timeout() argument 142 if (!at_state->timer_expires) test_timeout() 145 if (--at_state->timer_expires) { test_timeout() 147 at_state, at_state->timer_expires); test_timeout() 151 gigaset_add_event(at_state->cs, at_state, EV_TIMEOUT, NULL, test_timeout() 152 at_state->timer_index, NULL); test_timeout() 161 struct at_state_t *at_state; timer_tick() local 167 if (test_timeout(&cs->bcs[channel].at_state)) timer_tick() 170 if (test_timeout(&cs->at_state)) timer_tick() 173 list_for_each_entry(at_state, &cs->temp_at_states, list) timer_tick() 174 if (test_timeout(at_state)) timer_tick() 321 * @at_state: connection state structure. 333 struct at_state_t *at_state, int type, gigaset_add_event() 351 event->at_state = at_state; gigaset_add_event() 365 static void clear_at_state(struct at_state_t *at_state) clear_at_state() argument 370 kfree(at_state->str_var[i]); clear_at_state() 371 at_state->str_var[i] = NULL; clear_at_state() 393 gig_dbg(DEBUG_INIT, "clearing bcs[%d]->at_state", bcs->channel); gigaset_freebcs() 394 clear_at_state(&bcs->at_state); gigaset_freebcs() 502 gig_dbg(DEBUG_INIT, "clearing at_state"); gigaset_freecs() 503 clear_at_state(&cs->at_state); gigaset_freecs() 520 void gigaset_at_init(struct at_state_t *at_state, struct bc_state *bcs, gigaset_at_init() argument 525 INIT_LIST_HEAD(&at_state->list); gigaset_at_init() 526 at_state->waiting = 0; gigaset_at_init() 527 at_state->getstring = 0; gigaset_at_init() 528 at_state->pending_commands = 0; gigaset_at_init() 529 at_state->timer_expires = 0; gigaset_at_init() 530 at_state->timer_active = 0; gigaset_at_init() 531 at_state->timer_index = 0; gigaset_at_init() 532 at_state->seq_index = 0; gigaset_at_init() 533 at_state->ConState = 0; gigaset_at_init() 535 at_state->str_var[i] = NULL; gigaset_at_init() 536 at_state->int_var[VAR_ZDLE] = 0; gigaset_at_init() 537 at_state->int_var[VAR_ZCTP] = -1; gigaset_at_init() 538 at_state->int_var[VAR_ZSAU] = ZSAU_NULL; gigaset_at_init() 539 at_state->cs = cs; gigaset_at_init() 540 at_state->bcs = bcs; gigaset_at_init() 541 at_state->cid = cid; gigaset_at_init() 543 at_state->replystruct = cs->tabnocid; gigaset_at_init() 545 at_state->replystruct = cs->tabcid; gigaset_at_init() 621 gig_dbg(DEBUG_INIT, "setting up bcs[%d]->at_state", channel); gigaset_initbcs() 622 gigaset_at_init(&bcs->at_state, bcs, cs, -1); gigaset_initbcs() 721 gig_dbg(DEBUG_INIT, "setting up at_state"); gigaset_initcs() 723 gigaset_at_init(&cs->at_state, NULL, cs, 0); gigaset_initcs() 796 clear_at_state(&bcs->at_state); gigaset_bcs_reinit() 797 bcs->at_state.ConState = 0; gigaset_bcs_reinit() 798 bcs->at_state.timer_active = 0; gigaset_bcs_reinit() 799 bcs->at_state.timer_expires = 0; gigaset_bcs_reinit() 800 bcs->at_state.cid = -1; /* No CID defined */ gigaset_bcs_reinit() 830 clear_at_state(&cs->at_state); cleanup_cs() 832 gigaset_at_init(&cs->at_state, NULL, cs, 0); cleanup_cs() 900 if (!gigaset_add_event(cs, &cs->at_state, EV_START, NULL, 0, NULL)) { gigaset_start() 938 if (!gigaset_add_event(cs, &cs->at_state, EV_SHUTDOWN, NULL, 0, NULL)) gigaset_shutdown() 965 if (!gigaset_add_event(cs, &cs->at_state, EV_STOP, NULL, 0, NULL)) gigaset_stop() 332 gigaset_add_event(struct cardstate *cs, struct at_state_t *at_state, int type, void *ptr, int parameter, void *arg) gigaset_add_event() argument
|
H A D | i4l.c | 310 if (!gigaset_add_event(cs, &bcs->at_state, EV_DIAL, commands, command_from_LL() 311 bcs->at_state.seq_index, NULL)) { command_from_LL() 337 if (!gigaset_add_event(cs, &bcs->at_state, command_from_LL() 351 if (!gigaset_add_event(cs, &bcs->at_state, command_from_LL() 450 * @at_state: connection state structure. 453 * received. @at_state contains the parameters of the call. 457 int gigaset_isdn_icall(struct at_state_t *at_state) gigaset_isdn_icall() argument 459 struct cardstate *cs = at_state->cs; gigaset_isdn_icall() 460 struct bc_state *bcs = at_state->bcs; gigaset_isdn_icall() 470 if (!at_state->str_var[STR_ZBC]) { gigaset_isdn_icall() 473 } else if (!strcmp(at_state->str_var[STR_ZBC], "8890")) { gigaset_isdn_icall() 476 } else if (!strcmp(at_state->str_var[STR_ZBC], "8090A3")) { gigaset_isdn_icall() 479 } else if (!strcmp(at_state->str_var[STR_ZBC], "9090A3")) { gigaset_isdn_icall() 485 at_state->str_var[STR_ZBC]); gigaset_isdn_icall() 488 if (at_state->str_var[STR_NMBR]) { gigaset_isdn_icall() 489 strlcpy(response.parm.setup.phone, at_state->str_var[STR_NMBR], gigaset_isdn_icall() 493 if (at_state->str_var[STR_ZCPN]) { gigaset_isdn_icall() 494 strlcpy(response.parm.setup.eazmsn, at_state->str_var[STR_ZCPN], gigaset_isdn_icall()
|
H A D | dummyll.c | 32 int gigaset_isdn_icall(struct at_state_t *at_state) gigaset_isdn_icall() argument
|
H A D | capi.c | 488 * @at_state: connection state structure. 491 * call has been received. @at_state contains the parameters of the call. 495 int gigaset_isdn_icall(struct at_state_t *at_state) gigaset_isdn_icall() argument 497 struct cardstate *cs = at_state->cs; gigaset_isdn_icall() 498 struct bc_state *bcs = at_state->bcs; gigaset_isdn_icall() 509 * (requires a u8 handle for the at_state structure that can gigaset_isdn_icall() 524 if (at_state->str_var[STR_ZBC]) { gigaset_isdn_icall() 526 if (encode_ie(at_state->str_var[STR_ZBC], iif->bc_buf, gigaset_isdn_icall() 529 at_state->str_var[STR_ZBC]); gigaset_isdn_icall() 539 at_state->str_var[STR_ZBC])) { gigaset_isdn_icall() 552 if (at_state->str_var[STR_ZHLC]) { gigaset_isdn_icall() 554 if (encode_ie(at_state->str_var[STR_ZHLC], iif->hlc_buf, gigaset_isdn_icall() 557 at_state->str_var[STR_ZHLC]); gigaset_isdn_icall() 565 if (at_state->str_var[STR_ZBC]) gigaset_isdn_icall() 569 at_state->str_var[STR_ZHLC]) && gigaset_isdn_icall() 571 at_state->str_var[STR_ZBC])) { gigaset_isdn_icall() 578 if (at_state->str_var[STR_ZCPN]) { gigaset_isdn_icall() 579 i = strlen(at_state->str_var[STR_ZCPN]); gigaset_isdn_icall() 582 at_state->str_var[STR_ZBC]); gigaset_isdn_icall() 587 memcpy(iif->cdpty_buf + 2, at_state->str_var[STR_ZCPN], i); gigaset_isdn_icall() 593 if (at_state->str_var[STR_NMBR]) { gigaset_isdn_icall() 594 i = strlen(at_state->str_var[STR_NMBR]); gigaset_isdn_icall() 597 at_state->str_var[STR_ZBC]); gigaset_isdn_icall() 603 memcpy(iif->cgpty_buf + 3, at_state->str_var[STR_NMBR], i); gigaset_isdn_icall() 1063 gigaset_add_event(cs, &bcs->at_state, remove_appl_from_channel() 1597 if (!gigaset_add_event(cs, &bcs->at_state, EV_DIAL, commands, do_connect_req() 1598 bcs->at_state.seq_index, NULL)) { do_connect_req() 1728 if (!gigaset_add_event(cs, &cs->bcs[channel - 1].at_state, do_connect_resp() 1782 if (!gigaset_add_event(cs, &cs->bcs[channel - 1].at_state, do_connect_resp() 1876 if (!gigaset_add_event(cs, &bcs->at_state, do_connect_b3_resp() 1997 if (!gigaset_add_event(cs, &bcs->at_state, EV_HUP, NULL, 0, NULL)) { do_disconnect_req() 2047 if (!gigaset_add_event(cs, &bcs->at_state, EV_HUP, NULL, 0, NULL)) { do_disconnect_b3_req()
|
H A D | proc.c | 44 if (!gigaset_add_event(cs, &cs->at_state, EV_PROC_CIDMODE, set_cidmode()
|
H A D | gigaset.h | 357 struct at_state_t *at_state; member in struct:event_t 370 struct at_state_t at_state; member in struct:bc_state 429 struct at_state_t at_state; /* at_state_t for cid == 0 */ member in struct:cardstate 484 * xxx.at_state.pending_command 683 int gigaset_isdn_icall(struct at_state_t *at_state); 713 void gigaset_at_init(struct at_state_t *at_state, struct bc_state *bcs, 759 struct at_state_t *at_state, int type, 779 gigaset_add_event(bcs->cs, &bcs->at_state, EV_BC_CLOSED, NULL, 0, NULL); gigaset_bchannel_down() 787 gigaset_add_event(bcs->cs, &bcs->at_state, EV_BC_OPEN, NULL, 0, NULL); gigaset_bchannel_up()
|
H A D | interface.c | 43 if (!gigaset_add_event(cs, &cs->at_state, EV_IF_LOCK, if_lock() 77 if (!gigaset_add_event(cs, &cs->at_state, EV_IF_VER, if_version()
|
H A D | bas-gigaset.c | 349 gigaset_add_event(cs, &bcs->at_state, EV_HUP, NULL, 0, NULL); error_hangup()
|