Commit 698e3ed9 authored by Tilman Schmidt's avatar Tilman Schmidt Committed by Linus Torvalds

[PATCH] isdn4linux: Gigaset driver cleanup

The following patch to the common part of the Siemens Gigaset driver
prevents it from trying to send the +++ break sequence if the device has
been disconnected, and removes a couple of assignments which didn't have
any effect.
Signed-off-by: default avatarTilman Schmidt <tilman@imap.cc>
Acked-by: default avatarHansjoerg Lipp <hjlipp@web.de>
Cc: Karsten Keil <kkeil@suse.de>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent 06163f86
...@@ -1262,7 +1262,8 @@ static void do_action(int action, struct cardstate *cs, ...@@ -1262,7 +1262,8 @@ static void do_action(int action, struct cardstate *cs,
break; break;
case ACT_HUPMODEM: case ACT_HUPMODEM:
/* send "+++" (hangup in unimodem mode) */ /* send "+++" (hangup in unimodem mode) */
cs->ops->write_cmd(cs, "+++", 3, NULL); if (cs->connected)
cs->ops->write_cmd(cs, "+++", 3, NULL);
break; break;
case ACT_RING: case ACT_RING:
/* get fresh AT state structure for new CID */ /* get fresh AT state structure for new CID */
...@@ -1294,7 +1295,6 @@ static void do_action(int action, struct cardstate *cs, ...@@ -1294,7 +1295,6 @@ static void do_action(int action, struct cardstate *cs,
break; break;
case ACT_ICALL: case ACT_ICALL:
handle_icall(cs, bcs, p_at_state); handle_icall(cs, bcs, p_at_state);
at_state = *p_at_state;
break; break;
case ACT_FAILSDOWN: case ACT_FAILSDOWN:
dev_warn(cs->dev, "Could not shut down the device.\n"); dev_warn(cs->dev, "Could not shut down the device.\n");
...@@ -1334,10 +1334,8 @@ static void do_action(int action, struct cardstate *cs, ...@@ -1334,10 +1334,8 @@ static void do_action(int action, struct cardstate *cs,
*/ */
at_state->pending_commands |= PC_DLE0; at_state->pending_commands |= PC_DLE0;
atomic_set(&cs->commands_pending, 1); atomic_set(&cs->commands_pending, 1);
} else { } else
disconnect(p_at_state); disconnect(p_at_state);
at_state = *p_at_state;
}
break; break;
case ACT_FAKEDLE0: case ACT_FAKEDLE0:
at_state->int_var[VAR_ZDLE] = 0; at_state->int_var[VAR_ZDLE] = 0;
...@@ -1354,10 +1352,8 @@ static void do_action(int action, struct cardstate *cs, ...@@ -1354,10 +1352,8 @@ static void do_action(int action, struct cardstate *cs,
at_state->cid = -1; at_state->cid = -1;
if (bcs && cs->onechannel) if (bcs && cs->onechannel)
at_state->pending_commands |= PC_DLE0; at_state->pending_commands |= PC_DLE0;
else { else
disconnect(p_at_state); disconnect(p_at_state);
at_state = *p_at_state;
}
schedule_init(cs, MS_RECOVER); schedule_init(cs, MS_RECOVER);
break; break;
case ACT_FAILDLE0: case ACT_FAILDLE0:
...@@ -1410,7 +1406,6 @@ static void do_action(int action, struct cardstate *cs, ...@@ -1410,7 +1406,6 @@ static void do_action(int action, struct cardstate *cs,
case ACT_ABORTACCEPT: /* hangup/error/timeout during ICALL processing */ case ACT_ABORTACCEPT: /* hangup/error/timeout during ICALL processing */
disconnect(p_at_state); disconnect(p_at_state);
at_state = *p_at_state;
break; break;
case ACT_ABORTDIAL: /* error/timeout during dial preparation */ case ACT_ABORTDIAL: /* error/timeout during dial preparation */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment