Searched refs:at_state (Results 1 - 9 of 9) sorted by relevance

/linux-4.4.14/drivers/isdn/gigaset/
H A Dev-layer.c49 /* 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 Dcommon.c140 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 Di4l.c310 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 Ddummyll.c32 int gigaset_isdn_icall(struct at_state_t *at_state) gigaset_isdn_icall() argument
H A Dcapi.c488 * @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 Dproc.c44 if (!gigaset_add_event(cs, &cs->at_state, EV_PROC_CIDMODE, set_cidmode()
H A Dgigaset.h357 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 Dinterface.c43 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 Dbas-gigaset.c349 gigaset_add_event(cs, &bcs->at_state, EV_HUP, NULL, 0, NULL); error_hangup()

Completed in 1083 milliseconds