carl9170 firmware: fix random reboot failures
authorChristian Lamparter <chunkeey@googlemail.com>
Mon, 15 Nov 2010 19:29:13 +0000 (20:29 +0100)
committerChristian Lamparter <chunkeey@googlemail.com>
Mon, 15 Nov 2010 19:29:13 +0000 (20:29 +0100)
This patch improves the reliability of various
reboot paths.

Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
carlfw/usb/main.c

index 57f75a44162f93635161182b7a8cc5013f3d1fdd..fac37805be7f555a90f5ef128e258932bf1fee5e 100644 (file)
@@ -272,12 +272,14 @@ static void turn_power_off(void)
 
 void __noreturn reboot(void)
 {
+       set(AR9170_MAC_REG_DMA_TRIGGER, 0);
+
        /* write watchdog magic pattern for suspend  */
        andl(AR9170_PWR_REG_WATCH_DOG_MAGIC, 0xffff);
        orl(AR9170_PWR_REG_WATCH_DOG_MAGIC, 0x98760000);
 
        /* Disable watchdog */
-       orl(AR9170_TIMER_REG_WATCH_DOG, 0xffff);
+       set(AR9170_TIMER_REG_WATCH_DOG, 0xffff);
 
        /* Turn off power */
        turn_power_off();