X-Git-Url: https://jxself.org/git/?a=blobdiff_plain;f=carlfw%2Fusb%2Fmain.c;h=fac37805be7f555a90f5ef128e258932bf1fee5e;hb=3c80f40ba93f3f042dd12671d690e96877ef0eac;hp=a1cd2c9919b90fad5272e6c42c18d0c69902e91e;hpb=95e0b3d5f76e191546422c4dbb7afd2ad679ff8d;p=carl9170fw.git diff --git a/carlfw/usb/main.c b/carlfw/usb/main.c index a1cd2c9..fac3780 100644 --- a/carlfw/usb/main.c +++ b/carlfw/usb/main.c @@ -222,6 +222,8 @@ static void turn_power_off(void) set(AR9170_PWR_REG_BASE, 0x40021); + set(AR9170_MAC_REG_DMA_TRIGGER, 0); + set(AR9170_MAC_REG_POWER_STATE_CTRL, AR9170_MAC_POWER_STATE_CTRL_RESET); @@ -268,14 +270,16 @@ static void turn_power_off(void) set(AR9170_PHY_REG_ADC_SERIAL_CTL, AR9170_PHY_ADC_SCTL_SEL_INTERNAL_ADDAC); } -void __attribute__((noreturn)) reboot(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();