From: Tilman Schmidt <[EMAIL PROTECTED]>
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: Tilman Schmidt <[EMAIL PROTECTED]>
Acked-by: Hansjoerg Lipp <[EMAIL PROTECTED]>
---
ev-layer.c | 13 ++++---------
1 files changed, 4 insertions(+), 9 deletions(-)
diff -rup linux-2.6.17-rc6-retrystall/drivers/isdn/gigaset/ev-layer.c
linux-2.6.17-rc6-evclnup/drivers/isdn/gigaset/ev-layer.c
--- linux-2.6.17-rc6-submitted/drivers/isdn/gigaset/ev-layer.c 2006-06-08
01:03:36.000000000 +0200
+++ linux-2.6.17-rc6-evclnup/drivers/isdn/gigaset/ev-layer.c 2006-06-08
18:18:44.000000000 +0200
@@ -1262,7 +1262,8 @@ static void do_action(int action, struct
break;
case ACT_HUPMODEM:
/* send "+++" (hangup in unimodem mode) */
- cs->ops->write_cmd(cs, "+++", 3, NULL);
+ if (cs->connected)
+ cs->ops->write_cmd(cs, "+++", 3, NULL);
break;
case ACT_RING:
/* get fresh AT state structure for new CID */
@@ -1294,7 +1295,6 @@ static void do_action(int action, struct
break;
case ACT_ICALL:
handle_icall(cs, bcs, p_at_state);
- at_state = *p_at_state;
break;
case ACT_FAILSDOWN:
dev_warn(cs->dev, "Could not shut down the device.\n");
@@ -1334,10 +1334,8 @@ static void do_action(int action, struct
*/
at_state->pending_commands |= PC_DLE0;
atomic_set(&cs->commands_pending, 1);
- } else {
+ } else
disconnect(p_at_state);
- at_state = *p_at_state;
- }
break;
case ACT_FAKEDLE0:
at_state->int_var[VAR_ZDLE] = 0;
@@ -1354,10 +1352,8 @@ static void do_action(int action, struct
at_state->cid = -1;
if (bcs && cs->onechannel)
at_state->pending_commands |= PC_DLE0;
- else {
+ else
disconnect(p_at_state);
- at_state = *p_at_state;
- }
schedule_init(cs, MS_RECOVER);
break;
case ACT_FAILDLE0:
@@ -1410,7 +1406,6 @@ static void do_action(int action, struct
case ACT_ABORTACCEPT: /* hangup/error/timeout during ICALL processing
*/
disconnect(p_at_state);
- at_state = *p_at_state;
break;
case ACT_ABORTDIAL: /* error/timeout during dial preparation */
_______________________________________________
[email protected]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel