summaryrefslogtreecommitdiffstats
path: root/drivers/usb/atm
diff options
context:
space:
mode:
authormatthieu castet <castet.matthieu@free.fr>2006-04-02 18:44:20 +0200
committerGreg Kroah-Hartman <gregkh@suse.de>2006-04-14 11:12:23 -0700
commit22fcceb546227a4c557d1844c1796c13a5086c9f (patch)
tree4c88b74470404f9afcbd7e2042d7dcd9421a2d46 /drivers/usb/atm
parent2a99b50719d3bff0a090fa8daf56d519c338296c (diff)
[PATCH] USB: UEAGLE : support geode
- increase ack timeout for slow system (geode 233MHz where HZ=100) - reset the cmv ack flag when rebooting Signed-off-by: Matthieu CASTET <castet.matthieu@free.fr> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/usb/atm')
-rw-r--r--drivers/usb/atm/ueagle-atm.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/drivers/usb/atm/ueagle-atm.c b/drivers/usb/atm/ueagle-atm.c
index 8ec9e031e0d..602be5488c9 100644
--- a/drivers/usb/atm/ueagle-atm.c
+++ b/drivers/usb/atm/ueagle-atm.c
@@ -243,7 +243,7 @@ enum {
#define BULK_TIMEOUT 300
#define CTRL_TIMEOUT 1000
-#define ACK_TIMEOUT msecs_to_jiffies(1500)
+#define ACK_TIMEOUT msecs_to_jiffies(3000)
#define UEA_INTR_IFACE_NO 0
#define UEA_US_IFACE_NO 1
@@ -1079,7 +1079,13 @@ static int uea_start_reset(struct uea_softc *sc)
uea_enters(INS_TO_USBDEV(sc));
uea_info(INS_TO_USBDEV(sc), "(re)booting started\n");
+ /* mask interrupt */
sc->booting = 1;
+ /* We need to set this here because, a ack timeout could have occured,
+ * but before we start the reboot, the ack occurs and set this to 1.
+ * So we will failed to wait Ready CMV.
+ */
+ sc->cmv_ack = 0;
UPDATE_ATM_STAT(signal, ATM_PHY_SIG_LOST);
/* reset statistics */
@@ -1105,6 +1111,7 @@ static int uea_start_reset(struct uea_softc *sc)
msleep(1000);
sc->cmv_function = MAKEFUNCTION(ADSLDIRECTIVE, MODEMREADY);
+ /* demask interrupt */
sc->booting = 0;
/* start loading DSP */