MA-17368 Trigger board reset for fastboot reboot
authorJi Luo <ji.luo@nxp.com>
Fri, 12 Jun 2020 09:15:53 +0000 (17:15 +0800)
committerJi Luo <ji.luo@nxp.com>
Thu, 13 May 2021 01:49:18 +0000 (09:49 +0800)
Trigger system board reset for imx8q when reboot is required
in fastboot commands, this will help fix the hang issue when
switch normal Android and Android Auto images.

Test: fastboot reboot.

Change-Id: Ibfdb34e88e0393294af25c1ef5aceeadb8c02f74
Signed-off-by: Ji Luo <ji.luo@nxp.com>
(cherry picked from commit 2cb43a55955ae400acce66b3d4ce870b0e423c81)
(cherry picked from commit fa8c79a3b4b4bc8fe0a399f9f8a415c94c2e280c)

drivers/usb/gadget/f_fastboot.c

index 346573a..f92de33 100644 (file)
@@ -508,9 +508,17 @@ static int fastboot_tx_write_str(const char *buffer)
        return fastboot_tx_write(buffer, strlen(buffer));
 }
 
+#ifdef CONFIG_PSCI_BOARD_REBOOT
+int do_board_reboot(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]);
+#endif
+
 static void compl_do_reset(struct usb_ep *ep, struct usb_request *req)
 {
+#ifdef CONFIG_PSCI_BOARD_REBOOT
+       do_board_reboot(NULL, 0, 0, NULL);
+#else
        do_reset(NULL, 0, 0, NULL);
+#endif
 }
 
 static unsigned int rx_bytes_expected(struct usb_ep *ep)