diff options
Diffstat (limited to 'drivers/usb/atm')
-rw-r--r-- | drivers/usb/atm/ueagle-atm.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/drivers/usb/atm/ueagle-atm.c b/drivers/usb/atm/ueagle-atm.c index 8ec9e031e0d1..602be5488c9d 100644 --- a/drivers/usb/atm/ueagle-atm.c +++ b/drivers/usb/atm/ueagle-atm.c | |||
@@ -243,7 +243,7 @@ enum { | |||
243 | #define BULK_TIMEOUT 300 | 243 | #define BULK_TIMEOUT 300 |
244 | #define CTRL_TIMEOUT 1000 | 244 | #define CTRL_TIMEOUT 1000 |
245 | 245 | ||
246 | #define ACK_TIMEOUT msecs_to_jiffies(1500) | 246 | #define ACK_TIMEOUT msecs_to_jiffies(3000) |
247 | 247 | ||
248 | #define UEA_INTR_IFACE_NO 0 | 248 | #define UEA_INTR_IFACE_NO 0 |
249 | #define UEA_US_IFACE_NO 1 | 249 | #define UEA_US_IFACE_NO 1 |
@@ -1079,7 +1079,13 @@ static int uea_start_reset(struct uea_softc *sc) | |||
1079 | uea_enters(INS_TO_USBDEV(sc)); | 1079 | uea_enters(INS_TO_USBDEV(sc)); |
1080 | uea_info(INS_TO_USBDEV(sc), "(re)booting started\n"); | 1080 | uea_info(INS_TO_USBDEV(sc), "(re)booting started\n"); |
1081 | 1081 | ||
1082 | /* mask interrupt */ | ||
1082 | sc->booting = 1; | 1083 | sc->booting = 1; |
1084 | /* We need to set this here because, a ack timeout could have occured, | ||
1085 | * but before we start the reboot, the ack occurs and set this to 1. | ||
1086 | * So we will failed to wait Ready CMV. | ||
1087 | */ | ||
1088 | sc->cmv_ack = 0; | ||
1083 | UPDATE_ATM_STAT(signal, ATM_PHY_SIG_LOST); | 1089 | UPDATE_ATM_STAT(signal, ATM_PHY_SIG_LOST); |
1084 | 1090 | ||
1085 | /* reset statistics */ | 1091 | /* reset statistics */ |
@@ -1105,6 +1111,7 @@ static int uea_start_reset(struct uea_softc *sc) | |||
1105 | 1111 | ||
1106 | msleep(1000); | 1112 | msleep(1000); |
1107 | sc->cmv_function = MAKEFUNCTION(ADSLDIRECTIVE, MODEMREADY); | 1113 | sc->cmv_function = MAKEFUNCTION(ADSLDIRECTIVE, MODEMREADY); |
1114 | /* demask interrupt */ | ||
1108 | sc->booting = 0; | 1115 | sc->booting = 0; |
1109 | 1116 | ||
1110 | /* start loading DSP */ | 1117 | /* start loading DSP */ |