uboot-mediatek: fix factory/reset button
[openwrt/staging/dedeckeh.git] / package / boot / uboot-mediatek / patches / 301-mt7622-generic-reset-button-ignore-env.patch
index 63301fd53513173360cde0044d44115c56f8b15d..1862a9344ad631cfce033f1764b4050f2832b321 100644 (file)
@@ -17,7 +17,7 @@
  
  #include <mtd.h>
  #include <linux/mtd/mtd.h>
-@@ -25,7 +32,19 @@ int board_init(void)
+@@ -25,7 +32,22 @@ int board_init(void)
  
  int board_late_init(void)
  {
 +      if (!button_get_by_label(CONFIG_RESET_BUTTON_LABEL, &dev)) {
 +              puts("reset button found\n");
 +#ifdef CONFIG_RESET_BUTTON_SETTLE_DELAY
-+              mdelay(CONFIG_RESET_BUTTON_SETTLE_DELAY);
++              if (CONFIG_RESET_BUTTON_SETTLE_DELAY > 0) {
++                      button_get_state(dev);
++                      mdelay(CONFIG_RESET_BUTTON_SETTLE_DELAY);
++              }
 +#endif
 +              if (button_get_state(dev) == BUTTON_ON) {
 +                      puts("button pushed, resetting environment\n");
@@ -40,7 +43,7 @@
  }
 --- a/arch/arm/mach-mediatek/Kconfig
 +++ b/arch/arm/mach-mediatek/Kconfig
-@@ -140,4 +140,8 @@ config MTK_BROM_HEADER_INFO
+@@ -140,4 +140,11 @@ config MTK_BROM_HEADER_INFO
  
  source "board/mediatek/mt7629/Kconfig"
  
@@ -48,4 +51,7 @@
 +      string "Button to trigger factory reset"
 +      default "reset"
 +
++config RESET_BUTTON_SETTLE_DELAY
++      int "Delay to wait for button to settle"
++      default 0
  endif