u-boot-brain/drivers/watchdog
Ruslan Bilovol 87c692cbc1 watchdog: omap_wdt: improve watchdog reset path
Remove busy looping during watchdog reset.
Each polling of W_PEND_WTGR bit ("finish posted
write") after watchdog reset takes 120-140us
on BeagleBone Black board. Current U-Boot code
has watchdog resets in random places and often
there is situation when watchdog is reset
few times in a row in nested functions.
This adds extra delays and slows the whole system.

Instead of polling W_PEND_WTGR bit, we skip
watchdog reset if the bit is set. Anyway, watchdog
is in the middle of reset *right now*, so we can
just return.

This noticeably increases performance of the
system. Below are some measurements on BBB:
 - DFU upload over USB                 15% faster
 - fastboot image upload               3x times faster
 - USB ep0 transfers with 4k packets   20% faster

Signed-off-by: Ruslan Bilovol <ruslan.bilovol@gmail.com>
Tested-by: Sam Protsenko <semen.protsenko@linaro.org>
Reviewed-by: Lokesh Vutla <lokeshvutla@ti.com>
Reviewed-by: Lukasz Majewski <lukma@denx.de>
Tested-by: Alex Kiernan <alex.kiernan@gmail.com>
2018-03-16 09:42:38 -04:00
..
ast_wdt.c dm: Rename dev_addr..() functions 2017-06-01 07:03:01 -06:00
at91sam9_wdt.c arm, at91, wdt: make timeout configurable 2015-02-07 23:43:20 +01:00
bcm2835_wdt.c bcm2835_wdt: support for the BCM2835/2836 watchdog 2017-05-09 20:30:08 -04:00
bcm6345_wdt.c dm: Rename dev_addr..() functions 2017-06-01 07:03:01 -06:00
designware_wdt.c wdt: Unify option of timeout value 2017-07-07 07:38:23 -04:00
ftwdt010_wdt.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
imx_watchdog.c imx_watchdog: Do not assert WDOG_B on watchdog init 2016-10-04 12:01:14 +02:00
Kconfig watchdog: Introduce watchdog driver for Intel Tangier 2017-07-30 10:30:25 +08:00
Makefile watchdog: Introduce watchdog driver for Intel Tangier 2017-07-30 10:30:25 +08:00
omap_wdt.c watchdog: omap_wdt: improve watchdog reset path 2018-03-16 09:42:38 -04:00
orion_wdt.c orion_wdt: Support for the Orion Watchdog 2017-07-12 06:56:48 +02:00
s5p_wdt.c Coding Style cleanup: remove trailing white space 2013-10-14 16:06:53 -04:00
sandbox_wdt.c dm: Update Simple Watchdog uclass 2017-05-09 09:08:07 -04:00
tangier_wdt.c watchdog: Introduce watchdog driver for Intel Tangier 2017-07-30 10:30:25 +08:00
ulp_wdog.c wdog: Add the watchdog driver for MX7ULP. 2017-03-17 09:27:08 +01:00
wdt-uclass.c wdt: Update uclass to make clear that the timeout is in ms 2017-08-13 15:17:34 -04:00
xilinx_tb_wdt.c microblaze: Fix watchdog initialization 2013-10-16 09:24:38 -04:00