Message ID | 1617067704-28850-3-git-send-email-bbhatt@codeaurora.org (mailing list archive) |
---|---|
State | Accepted |
Commit | 4f214496ac7421b027a41d067e7753ee0bc5ad6c |
Headers | show |
Series | MHI Emergency download and flash programmer support | expand |
On Tue, 30 Mar 2021 at 03:28, Bhaumik Bhatt <bbhatt@codeaurora.org> wrote: > > Currently, the firmware load handler returns after the EDL image > is downloaded. Wait for an MHI READY transition instead as the > specification expects so as to proceed with further bootup such > as device entering Flash Programmer execution environment. > > Signed-off-by: Bhaumik Bhatt <bbhatt@codeaurora.org> > Reviewed-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org> Reviewed-by: Loic Poulain <loic.poulain@linaro.org>
diff --git a/drivers/bus/mhi/core/boot.c b/drivers/bus/mhi/core/boot.c index 84c2117..0f0ae88 100644 --- a/drivers/bus/mhi/core/boot.c +++ b/drivers/bus/mhi/core/boot.c @@ -418,7 +418,7 @@ void mhi_fw_load_handler(struct mhi_controller *mhi_cntrl) /* If device is in pass through, do reset to ready state transition */ if (mhi_cntrl->ee == MHI_EE_PTHRU) - goto fw_load_ee_pthru; + goto fw_load_ready_state; fw_name = (mhi_cntrl->ee == MHI_EE_EDL) ? mhi_cntrl->edl_image : mhi_cntrl->fw_image; @@ -460,10 +460,10 @@ void mhi_fw_load_handler(struct mhi_controller *mhi_cntrl) goto error_fw_load; } - /* Exit if EDL image was loaded */ + /* Wait for ready since EDL image was loaded */ if (fw_name == mhi_cntrl->edl_image) { release_firmware(firmware); - return; + goto fw_load_ready_state; } write_lock_irq(&mhi_cntrl->pm_lock); @@ -488,7 +488,7 @@ void mhi_fw_load_handler(struct mhi_controller *mhi_cntrl) release_firmware(firmware); -fw_load_ee_pthru: +fw_load_ready_state: /* Transitioning into MHI RESET->READY state */ ret = mhi_ready_state_transition(mhi_cntrl); if (ret) {