[PATCH] USB: UEAGLE : support geode
authormatthieu castet <castet.matthieu@free.fr>
Sun, 2 Apr 2006 16:44:20 +0000 (18:44 +0200)
committerGreg Kroah-Hartman <gregkh@suse.de>
Fri, 14 Apr 2006 18:12:23 +0000 (11:12 -0700)
- 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>
drivers/usb/atm/ueagle-atm.c

index 8ec9e031e0d18c20d881b29eaf3a766e93e74eee..602be5488c9d5b4e8f2d95916138f836f7938f35 100644 (file)
@@ -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 */