isdn/gigaset: leave DLE mode before hanging up
authorTilman Schmidt <tilman@imap.cc>
Mon, 21 Jan 2013 11:57:20 +0000 (11:57 +0000)
committerDavid S. Miller <davem@davemloft.net>
Mon, 21 Jan 2013 22:36:25 +0000 (17:36 -0500)
Some firmware releases of Gigaset M105 do not accept AT+VLS=0 command
in DLE mode, so always leave DLE mode before sending the command.

Signed-off-by: Tilman Schmidt <tilman@imap.cc>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/isdn/gigaset/ev-layer.c

index 2e6963dc740ea340778094ed3cab25e3b1d2ddaa..e2383ece8e2e7f675e7ae9d79b34514f8311e9ad 100644 (file)
@@ -1693,6 +1693,11 @@ static void process_command_flags(struct cardstate *cs)
        for (i = 0; i < cs->channels; ++i) {
                bcs = cs->bcs + i;
                if (bcs->at_state.pending_commands & PC_HUP) {
+                       if (cs->dle) {
+                               cs->curchannel = bcs->channel;
+                               schedule_sequence(cs, &cs->at_state, SEQ_DLE0);
+                               return;
+                       }
                        bcs->at_state.pending_commands &= ~PC_HUP;
                        if (bcs->at_state.pending_commands & PC_CID) {
                                /* not yet dialing: PC_NOCID is sufficient */