diff options
Diffstat (limited to 'drivers/isdn')
-rw-r--r-- | drivers/isdn/gigaset/bas-gigaset.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/isdn/gigaset/bas-gigaset.c b/drivers/isdn/gigaset/bas-gigaset.c index e865c5dc0282..7520bc6f3871 100644 --- a/drivers/isdn/gigaset/bas-gigaset.c +++ b/drivers/isdn/gigaset/bas-gigaset.c | |||
@@ -350,7 +350,7 @@ static inline void error_hangup(struct bc_state *bcs) | |||
350 | * reset Gigaset device because of an unrecoverable error | 350 | * reset Gigaset device because of an unrecoverable error |
351 | * This function may be called from any context, and takes care of | 351 | * This function may be called from any context, and takes care of |
352 | * scheduling the necessary actions for execution outside of interrupt context. | 352 | * scheduling the necessary actions for execution outside of interrupt context. |
353 | * cs->lock must not be held. | 353 | * cs->hw.bas->lock must not be held. |
354 | * argument: | 354 | * argument: |
355 | * controller state structure | 355 | * controller state structure |
356 | */ | 356 | */ |
@@ -358,7 +358,9 @@ static inline void error_reset(struct cardstate *cs) | |||
358 | { | 358 | { |
359 | /* reset interrupt pipe to recover (ignore errors) */ | 359 | /* reset interrupt pipe to recover (ignore errors) */ |
360 | update_basstate(cs->hw.bas, BS_RESETTING, 0); | 360 | update_basstate(cs->hw.bas, BS_RESETTING, 0); |
361 | req_submit(cs->bcs, HD_RESET_INTERRUPT_PIPE, 0, BAS_TIMEOUT); | 361 | if (req_submit(cs->bcs, HD_RESET_INTERRUPT_PIPE, 0, BAS_TIMEOUT)) |
362 | /* submission failed, escalate to USB port reset */ | ||
363 | usb_queue_reset_device(cs->hw.bas->interface); | ||
362 | } | 364 | } |
363 | 365 | ||
364 | /* check_pending | 366 | /* check_pending |