ARM: socfpga: Moving the watchdog reset to the for-loop status polling
authorTien Fong Chee <tien.fong.chee@intel.com>
Tue, 7 May 2019 09:42:27 +0000 (17:42 +0800)
committerMarek Vasut <marex@denx.de>
Fri, 10 May 2019 20:48:10 +0000 (22:48 +0200)
Current watchdog reset is misplaced after for-loop status polling, so
this poses a risk that watchdog can't be reset timely if polling taking
longer than watchdog timeout. This patch moving the watchdog reset
into polling to ensure the watchdog can be reset timely.

Signed-off-by: Tien Fong Chee <tien.fong.chee@intel.com>
drivers/fpga/socfpga_arria10.c

index b0abe1955cf8a7a536481e357496f755cd06921b..9499d1a01444df074baf4dbd978c5537c575b701 100644 (file)
@@ -360,6 +360,7 @@ static int fpgamgr_program_poll_cd(void)
                        printf("nstatus == 0 while waiting for condone\n");
                        return -EPERM;
                }
+               WATCHDOG_RESET();
        }
 
        if (i == FPGA_TIMEOUT_CNT)
@@ -433,7 +434,6 @@ int fpgamgr_program_finish(void)
                printf("FPGA: Poll CD failed with error code %d\n", status);
                return -EPERM;
        }
-       WATCHDOG_RESET();
 
        /* Ensure the FPGA entering user mode */
        status = fpgamgr_program_poll_usermode();