Lines Matching refs:at_state

430 		event->at_state = NULL;  in add_cid_event()
460 if (cs->at_state.getstring) { in gigaset_handle_modem_response()
462 cs->at_state.getstring = 0; in gigaset_handle_modem_response()
646 cs->at_state.pending_commands |= PC_UMMODE; in disconnect_nobc()
665 static void disconnect_bc(struct at_state_t *at_state, in disconnect_bc() argument
671 ++at_state->seq_index; in disconnect_bc()
675 cs->at_state.pending_commands |= PC_UMMODE; in disconnect_bc()
710 ret = &cs->bcs[i].at_state; in get_free_channel()
728 struct at_state_t *at_state; in init_failed() local
730 cs->at_state.pending_commands &= ~PC_INIT; in init_failed()
735 at_state = &cs->bcs[i].at_state; in init_failed()
736 if (at_state->pending_commands & PC_CID) { in init_failed()
737 at_state->pending_commands &= ~PC_CID; in init_failed()
738 at_state->pending_commands |= PC_NOCID; in init_failed()
746 if (cs->at_state.pending_commands & PC_INIT) { in schedule_init()
753 cs->at_state.pending_commands |= PC_INIT; in schedule_init()
762 struct at_state_t *at_state) in send_command() argument
764 int cid = at_state->cid; in send_command()
790 struct at_state_t *at_state; in at_state_from_cid() local
795 return &cs->at_state; in at_state_from_cid()
798 if (cid == cs->bcs[i].at_state.cid) in at_state_from_cid()
799 return &cs->bcs[i].at_state; in at_state_from_cid()
803 list_for_each_entry(at_state, &cs->temp_at_states, list) in at_state_from_cid()
804 if (cid == at_state->cid) { in at_state_from_cid()
806 return at_state; in at_state_from_cid()
843 static void start_dial(struct at_state_t *at_state, void *data, in start_dial() argument
846 struct bc_state *bcs = at_state->bcs; in start_dial()
847 struct cardstate *cs = at_state->cs; in start_dial()
855 if (at_state->seq_index != seq_index) { in start_dial()
866 at_state->pending_commands |= PC_CID; in start_dial()
876 at_state->pending_commands |= PC_NOCID; in start_dial()
882 static void start_accept(struct at_state_t *at_state) in start_accept() argument
884 struct cardstate *cs = at_state->cs; in start_accept()
885 struct bc_state *bcs = at_state->bcs; in start_accept()
896 dev_err(at_state->cs->dev, "out of memory\n"); in start_accept()
898 at_state->pending_commands |= PC_HUP; in start_accept()
907 at_state->pending_commands |= PC_ACCEPT; in start_accept()
952 cs->at_state.pending_commands |= PC_SHUTDOWN; in do_shutdown()
986 if (cs->bcs[i].at_state.cid > 0) in reinit_and_retry()
995 cs->bcs[channel].at_state.pending_commands |= PC_CID; in reinit_and_retry()
1006 struct at_state_t *at_state; in at_state_invalid() local
1011 if (test_ptr == &cs->at_state) in at_state_invalid()
1014 list_for_each_entry(at_state, &cs->temp_at_states, list) in at_state_invalid()
1015 if (at_state == test_ptr) in at_state_invalid()
1019 if (&cs->bcs[channel].at_state == test_ptr) in at_state_invalid()
1029 struct at_state_t *at_state) in handle_icall() argument
1033 retval = gigaset_isdn_icall(at_state); in handle_icall()
1046 at_state->pending_commands |= PC_HUP; in handle_icall()
1061 cs->at_state.pending_commands) in do_lock()
1065 if (cs->bcs[i].at_state.pending_commands) in do_lock()
1105 struct at_state_t *at_state = *p_at_state; in do_action() local
1119 at_state->waiting = 1; in do_action()
1122 cs->at_state.pending_commands &= ~PC_INIT; in do_action()
1133 cs->at_state.pending_commands |= PC_CIDMODE; in do_action()
1205 at_state = get_free_channel(cs, ev->parameter); in do_action()
1206 if (!at_state) { in do_action()
1215 at_state->ConState = 700; in do_action()
1217 kfree(at_state->str_var[i]); in do_action()
1218 at_state->str_var[i] = NULL; in do_action()
1220 at_state->int_var[VAR_ZCTP] = -1; in do_action()
1223 at_state->timer_expires = RING_TIMEOUT; in do_action()
1224 at_state->timer_active = 1; in do_action()
1228 handle_icall(cs, bcs, at_state); in do_action()
1240 at_state->pending_commands |= PC_DLE1; in do_action()
1257 at_state->int_var[VAR_ZSAU] = ZSAU_NULL; in do_action()
1261 at_state->cid = -1; in do_action()
1268 at_state->pending_commands |= PC_DLE0; in do_action()
1271 disconnect_bc(at_state, cs, bcs); in do_action()
1275 at_state->int_var[VAR_ZDLE] = 0; in do_action()
1281 disconnect_bc(&bcs2->at_state, cs, bcs2); in do_action()
1286 at_state->cid = -1; in do_action()
1290 at_state->pending_commands |= PC_DLE0; in do_action()
1292 disconnect_bc(at_state, cs, bcs); in do_action()
1300 disconnect_bc(&bcs2->at_state, cs, bcs2); in do_action()
1308 cs->bcs[channel].at_state.pending_commands |= PC_HUP; in do_action()
1316 cs->bcs[channel].at_state.cid = ev->parameter; in do_action()
1317 cs->bcs[channel].at_state.pending_commands |= in do_action()
1330 disconnect_bc(&bcs2->at_state, cs, bcs2); in do_action()
1336 disconnect_bc(&bcs2->at_state, cs, bcs2); in do_action()
1346 disconnect_bc(at_state, cs, bcs); in do_action()
1353 at_state->pending_commands |= PC_HUP; in do_action()
1360 at_state->pending_commands |= PC_HUP; in do_action()
1365 at_state->getstring = 1; in do_action()
1418 __func__, at_state->ConState); in do_action()
1423 __func__, ev->type, at_state->ConState); in do_action()
1427 __func__, ev->type, at_state->ConState); in do_action()
1431 ev->parameter, at_state->ConState); in do_action()
1442 start_dial(at_state, ev->ptr, ev->parameter); in do_action()
1445 start_accept(at_state); in do_action()
1448 at_state->pending_commands |= PC_HUP; in do_action()
1489 cs->at_state.pending_commands |= PC_CIDMODE; in do_action()
1492 cs->at_state.pending_commands |= PC_UMMODE; in do_action()
1517 *pp_command = at_state->bcs->commands[action - ACT_CMD]; in do_action()
1536 struct at_state_t *at_state; in process_event() local
1542 at_state = at_state_from_cid(cs, ev->cid); in process_event()
1543 if (!at_state) { in process_event()
1546 gigaset_add_event(cs, &cs->at_state, RSP_WRONG_CID, in process_event()
1551 at_state = ev->at_state; in process_event()
1552 if (at_state_invalid(cs, at_state)) { in process_event()
1554 at_state); in process_event()
1560 at_state->ConState, ev->type); in process_event()
1562 bcs = at_state->bcs; in process_event()
1565 rep = at_state->replystruct; in process_event()
1569 if (ev->parameter != at_state->timer_index in process_event()
1570 || !at_state->timer_active) { in process_event()
1574 if (at_state->waiting) in process_event()
1586 at_state->int_var[index] = ev->parameter; in process_event()
1589 kfree(at_state->str_var[index]); in process_event()
1590 at_state->str_var[index] = ev->ptr; in process_event()
1596 at_state->getstring = 0; in process_event()
1606 __func__, ev->type, at_state->ConState); in process_event()
1610 && ((int) at_state->ConState >= rep->min_ConState) in process_event()
1612 || (int) at_state->ConState <= rep->max_ConState) in process_event()
1619 at_state->waiting = 0; in process_event()
1623 do_action(rep->action[curact], cs, bcs, &at_state, &p_command, in process_event()
1625 if (!at_state) in process_event()
1632 at_state->ConState = rep->new_ConState; in process_event()
1636 at_state->timer_expires = 0; in process_event()
1637 at_state->timer_active = 0; in process_event()
1639 gigaset_add_event(cs, at_state, resp_code, NULL, 0, NULL); in process_event()
1644 send_command(cs, p_command, at_state); in process_event()
1646 gigaset_add_event(cs, at_state, RSP_NODEV, in process_event()
1652 at_state->timer_expires = 0; in process_event()
1653 at_state->timer_active = 0; in process_event()
1655 at_state->timer_expires = rep->timeout * 10; in process_event()
1656 at_state->timer_active = 1; in process_event()
1657 ++at_state->timer_index; in process_event()
1664 struct at_state_t *at_state, int sequence) in schedule_sequence() argument
1667 gigaset_add_event(cs, at_state, RSP_INIT, NULL, sequence, NULL); in schedule_sequence()
1672 struct at_state_t *at_state = NULL; in process_command_flags() local
1690 if (cs->at_state.pending_commands & PC_SHUTDOWN) { in process_command_flags()
1691 cs->at_state.pending_commands &= ~PC_CIDMODE; in process_command_flags()
1694 at_state = &bcs->at_state; in process_command_flags()
1695 at_state->pending_commands &= in process_command_flags()
1697 if (at_state->cid > 0) in process_command_flags()
1698 at_state->pending_commands |= PC_HUP; in process_command_flags()
1699 if (at_state->pending_commands & PC_CID) { in process_command_flags()
1700 at_state->pending_commands |= PC_NOCID; in process_command_flags()
1701 at_state->pending_commands &= ~PC_CID; in process_command_flags()
1707 if (cs->at_state.pending_commands & PC_INIT) { in process_command_flags()
1708 cs->at_state.pending_commands &= ~PC_CIDMODE; in process_command_flags()
1711 at_state = &bcs->at_state; in process_command_flags()
1712 at_state->pending_commands &= in process_command_flags()
1714 if (at_state->cid > 0) in process_command_flags()
1715 at_state->pending_commands |= PC_HUP; in process_command_flags()
1717 if (at_state->pending_commands & PC_CID) { in process_command_flags()
1718 at_state->pending_commands |= PC_NOCID; in process_command_flags()
1719 at_state->pending_commands &= ~PC_CID; in process_command_flags()
1728 if (cs->at_state.pending_commands == PC_UMMODE in process_command_flags()
1733 at_state = &cs->at_state; in process_command_flags()
1736 if (bcs->at_state.pending_commands || in process_command_flags()
1737 bcs->at_state.cid > 0) { in process_command_flags()
1744 cs->at_state.pending_commands &= ~PC_UMMODE; in process_command_flags()
1746 schedule_sequence(cs, at_state, sequence); in process_command_flags()
1752 if (bcs->at_state.pending_commands & PC_HUP) { in process_command_flags()
1755 schedule_sequence(cs, &cs->at_state, SEQ_DLE0); in process_command_flags()
1758 bcs->at_state.pending_commands &= ~PC_HUP; in process_command_flags()
1759 if (bcs->at_state.pending_commands & PC_CID) { in process_command_flags()
1761 bcs->at_state.pending_commands |= PC_NOCID; in process_command_flags()
1762 bcs->at_state.pending_commands &= ~PC_CID; in process_command_flags()
1764 schedule_sequence(cs, &bcs->at_state, SEQ_HUP); in process_command_flags()
1768 if (bcs->at_state.pending_commands & PC_NOCID) { in process_command_flags()
1769 bcs->at_state.pending_commands &= ~PC_NOCID; in process_command_flags()
1771 schedule_sequence(cs, &cs->at_state, SEQ_NOCID); in process_command_flags()
1773 } else if (bcs->at_state.pending_commands & PC_DLE0) { in process_command_flags()
1774 bcs->at_state.pending_commands &= ~PC_DLE0; in process_command_flags()
1776 schedule_sequence(cs, &cs->at_state, SEQ_DLE0); in process_command_flags()
1781 list_for_each_entry(at_state, &cs->temp_at_states, list) in process_command_flags()
1782 if (at_state->pending_commands & PC_HUP) { in process_command_flags()
1783 at_state->pending_commands &= ~PC_HUP; in process_command_flags()
1784 schedule_sequence(cs, at_state, SEQ_HUP); in process_command_flags()
1788 if (cs->at_state.pending_commands & PC_INIT) { in process_command_flags()
1789 cs->at_state.pending_commands &= ~PC_INIT; in process_command_flags()
1792 schedule_sequence(cs, &cs->at_state, SEQ_INIT); in process_command_flags()
1795 if (cs->at_state.pending_commands & PC_SHUTDOWN) { in process_command_flags()
1796 cs->at_state.pending_commands &= ~PC_SHUTDOWN; in process_command_flags()
1797 schedule_sequence(cs, &cs->at_state, SEQ_SHUTDOWN); in process_command_flags()
1800 if (cs->at_state.pending_commands & PC_CIDMODE) { in process_command_flags()
1801 cs->at_state.pending_commands &= ~PC_CIDMODE; in process_command_flags()
1804 schedule_sequence(cs, &cs->at_state, SEQ_CIDMODE); in process_command_flags()
1811 if (bcs->at_state.pending_commands & PC_DLE1) { in process_command_flags()
1812 bcs->at_state.pending_commands &= ~PC_DLE1; in process_command_flags()
1814 schedule_sequence(cs, &cs->at_state, SEQ_DLE1); in process_command_flags()
1817 if (bcs->at_state.pending_commands & PC_ACCEPT) { in process_command_flags()
1818 bcs->at_state.pending_commands &= ~PC_ACCEPT; in process_command_flags()
1819 schedule_sequence(cs, &bcs->at_state, SEQ_ACCEPT); in process_command_flags()
1822 if (bcs->at_state.pending_commands & PC_DIAL) { in process_command_flags()
1823 bcs->at_state.pending_commands &= ~PC_DIAL; in process_command_flags()
1824 schedule_sequence(cs, &bcs->at_state, SEQ_DIAL); in process_command_flags()
1827 if (bcs->at_state.pending_commands & PC_CID) { in process_command_flags()
1830 cs->at_state.pending_commands |= PC_CIDMODE; in process_command_flags()
1838 bcs->at_state.pending_commands &= ~PC_CID; in process_command_flags()
1841 schedule_sequence(cs, &cs->at_state, SEQ_CID); in process_command_flags()