diff options
Diffstat (limited to 'drivers/isdn/gigaset/ev-layer.c')
-rw-r--r-- | drivers/isdn/gigaset/ev-layer.c | 30 |
1 files changed, 20 insertions, 10 deletions
diff --git a/drivers/isdn/gigaset/ev-layer.c b/drivers/isdn/gigaset/ev-layer.c index 2d91049571a4..cc768caa38f5 100644 --- a/drivers/isdn/gigaset/ev-layer.c +++ b/drivers/isdn/gigaset/ev-layer.c | |||
@@ -207,7 +207,6 @@ struct reply_t gigaset_tab_nocid[] = | |||
207 | /* leave dle mode */ | 207 | /* leave dle mode */ |
208 | {RSP_INIT, 0, 0,SEQ_DLE0, 201, 5, {0}, "^SDLE=0\r"}, | 208 | {RSP_INIT, 0, 0,SEQ_DLE0, 201, 5, {0}, "^SDLE=0\r"}, |
209 | {RSP_OK, 201,201, -1, 202,-1}, | 209 | {RSP_OK, 201,201, -1, 202,-1}, |
210 | //{RSP_ZDLE, 202,202, 0, 202, 0, {ACT_ERROR}},//DELETE | ||
211 | {RSP_ZDLE, 202,202, 0, 0, 0, {ACT_DLE0}}, | 210 | {RSP_ZDLE, 202,202, 0, 0, 0, {ACT_DLE0}}, |
212 | {RSP_NODEV, 200,249, -1, 0, 0, {ACT_FAKEDLE0}}, | 211 | {RSP_NODEV, 200,249, -1, 0, 0, {ACT_FAKEDLE0}}, |
213 | {RSP_ERROR, 200,249, -1, 0, 0, {ACT_FAILDLE0}}, | 212 | {RSP_ERROR, 200,249, -1, 0, 0, {ACT_FAILDLE0}}, |
@@ -265,6 +264,7 @@ struct reply_t gigaset_tab_nocid[] = | |||
265 | {EV_SHUTDOWN, -1, -1, -1, -1,-1, {ACT_SHUTDOWN}}, //FIXME | 264 | {EV_SHUTDOWN, -1, -1, -1, -1,-1, {ACT_SHUTDOWN}}, //FIXME |
266 | 265 | ||
267 | /* misc. */ | 266 | /* misc. */ |
267 | {RSP_ERROR, -1, -1, -1, -1, -1, {ACT_ERROR} }, | ||
268 | {RSP_EMPTY, -1, -1, -1, -1,-1, {ACT_DEBUG}}, //FIXME | 268 | {RSP_EMPTY, -1, -1, -1, -1,-1, {ACT_DEBUG}}, //FIXME |
269 | {RSP_ZCFGT, -1, -1, -1, -1,-1, {ACT_DEBUG}}, //FIXME | 269 | {RSP_ZCFGT, -1, -1, -1, -1,-1, {ACT_DEBUG}}, //FIXME |
270 | {RSP_ZCFG, -1, -1, -1, -1,-1, {ACT_DEBUG}}, //FIXME | 270 | {RSP_ZCFG, -1, -1, -1, -1,-1, {ACT_DEBUG}}, //FIXME |
@@ -328,10 +328,9 @@ struct reply_t gigaset_tab_cid[] = | |||
328 | {RSP_INIT, -1, -1,SEQ_HUP, 401, 5, {0}, "+VLS=0\r"}, /* hang up */ //-1,-1? | 328 | {RSP_INIT, -1, -1,SEQ_HUP, 401, 5, {0}, "+VLS=0\r"}, /* hang up */ //-1,-1? |
329 | {RSP_OK, 401,401, -1, 402, 5}, | 329 | {RSP_OK, 401,401, -1, 402, 5}, |
330 | {RSP_ZVLS, 402,402, 0, 403, 5}, | 330 | {RSP_ZVLS, 402,402, 0, 403, 5}, |
331 | {RSP_ZSAU, 403,403,ZSAU_DISCONNECT_REQ, -1,-1, {ACT_DEBUG}}, /* if not remote hup */ | 331 | {RSP_ZSAU, 403, 403, ZSAU_DISCONNECT_REQ, -1, -1, {ACT_DEBUG} }, |
332 | //{RSP_ZSAU, 403,403,ZSAU_NULL, 401, 0, {ACT_ERROR}}, //DELETE//FIXME -> DLE0 // should we do this _before_ hanging up for base driver? | 332 | {RSP_ZSAU, 403, 403, ZSAU_NULL, 0, 0, {ACT_DISCONNECT} }, |
333 | {RSP_ZSAU, 403,403,ZSAU_NULL, 0, 0, {ACT_DISCONNECT}}, //FIXME -> DLE0 // should we do this _before_ hanging up for base driver? | 333 | {RSP_NODEV, 401, 403, -1, 0, 0, {ACT_FAKEHUP} }, |
334 | {RSP_NODEV, 401,403, -1, 0, 0, {ACT_FAKEHUP}}, //FIXME -> DLE0 // should we do this _before_ hanging up for base driver? | ||
335 | {RSP_ERROR, 401,401, -1, 0, 0, {ACT_ABORTHUP}}, | 334 | {RSP_ERROR, 401,401, -1, 0, 0, {ACT_ABORTHUP}}, |
336 | {EV_TIMEOUT, 401,403, -1, 0, 0, {ACT_ABORTHUP}}, | 335 | {EV_TIMEOUT, 401,403, -1, 0, 0, {ACT_ABORTHUP}}, |
337 | 336 | ||
@@ -474,8 +473,13 @@ static int cid_of_response(char *s) | |||
474 | //FIXME is ;<digit>+ at end of non-CID response really impossible? | 473 | //FIXME is ;<digit>+ at end of non-CID response really impossible? |
475 | } | 474 | } |
476 | 475 | ||
477 | /* This function will be called via task queue from the callback handler. | 476 | /** |
478 | * We received a modem response and have to handle it.. | 477 | * gigaset_handle_modem_response() - process received modem response |
478 | * @cs: device descriptor structure. | ||
479 | * | ||
480 | * Called by asyncdata/isocdata if a block of data received from the | ||
481 | * device must be processed as a modem command response. The data is | ||
482 | * already in the cs structure. | ||
479 | */ | 483 | */ |
480 | void gigaset_handle_modem_response(struct cardstate *cs) | 484 | void gigaset_handle_modem_response(struct cardstate *cs) |
481 | { | 485 | { |
@@ -707,6 +711,11 @@ static void disconnect(struct at_state_t **at_state_p) | |||
707 | if (bcs) { | 711 | if (bcs) { |
708 | /* B channel assigned: invoke hardware specific handler */ | 712 | /* B channel assigned: invoke hardware specific handler */ |
709 | cs->ops->close_bchannel(bcs); | 713 | cs->ops->close_bchannel(bcs); |
714 | /* notify LL */ | ||
715 | if (bcs->chstate & (CHS_D_UP | CHS_NOTIFY_LL)) { | ||
716 | bcs->chstate &= ~(CHS_D_UP | CHS_NOTIFY_LL); | ||
717 | gigaset_i4l_channel_cmd(bcs, ISDN_STAT_DHUP); | ||
718 | } | ||
710 | } else { | 719 | } else { |
711 | /* no B channel assigned: just deallocate */ | 720 | /* no B channel assigned: just deallocate */ |
712 | spin_lock_irqsave(&cs->lock, flags); | 721 | spin_lock_irqsave(&cs->lock, flags); |
@@ -1429,11 +1438,12 @@ static void do_action(int action, struct cardstate *cs, | |||
1429 | cs->gotfwver = -1; | 1438 | cs->gotfwver = -1; |
1430 | dev_err(cs->dev, "could not read firmware version.\n"); | 1439 | dev_err(cs->dev, "could not read firmware version.\n"); |
1431 | break; | 1440 | break; |
1432 | #ifdef CONFIG_GIGASET_DEBUG | ||
1433 | case ACT_ERROR: | 1441 | case ACT_ERROR: |
1434 | *p_genresp = 1; | 1442 | gig_dbg(DEBUG_ANY, "%s: ERROR response in ConState %d", |
1435 | *p_resp_code = RSP_ERROR; | 1443 | __func__, at_state->ConState); |
1444 | cs->cur_at_seq = SEQ_NONE; | ||
1436 | break; | 1445 | break; |
1446 | #ifdef CONFIG_GIGASET_DEBUG | ||
1437 | case ACT_TEST: | 1447 | case ACT_TEST: |
1438 | { | 1448 | { |
1439 | static int count = 3; //2; //1; | 1449 | static int count = 3; //2; //1; |