Loading drivers/bus/mhi/core/mhi_boot.c +2 −13 Original line number Diff line number Diff line Loading @@ -523,10 +523,9 @@ static void mhi_firmware_copy(struct mhi_controller *mhi_cntrl, } } void mhi_fw_load_worker(struct work_struct *work) void mhi_fw_load_handler(struct mhi_controller *mhi_cntrl) { int ret; struct mhi_controller *mhi_cntrl; const char *fw_name; const struct firmware *firmware; struct image_info *image_info; Loading @@ -534,17 +533,7 @@ void mhi_fw_load_worker(struct work_struct *work) dma_addr_t dma_addr; size_t size; mhi_cntrl = container_of(work, struct mhi_controller, fw_worker); MHI_LOG("Waiting for device to enter PBL from EE:%s\n", TO_MHI_EXEC_STR(mhi_cntrl->ee)); ret = wait_event_timeout(mhi_cntrl->state_event, MHI_IN_PBL(mhi_cntrl->ee) || MHI_PM_IN_ERROR_STATE(mhi_cntrl->pm_state), msecs_to_jiffies(mhi_cntrl->timeout_ms)); if (!ret || MHI_PM_IN_ERROR_STATE(mhi_cntrl->pm_state)) { if (MHI_PM_IN_ERROR_STATE(mhi_cntrl->pm_state)) { MHI_ERR("MHI is not in valid state\n"); return; } Loading drivers/bus/mhi/core/mhi_init.c +0 −1 Original line number Diff line number Diff line Loading @@ -1393,7 +1393,6 @@ int of_register_mhi_controller(struct mhi_controller *mhi_cntrl) spin_lock_init(&mhi_cntrl->transition_lock); spin_lock_init(&mhi_cntrl->wlock); INIT_WORK(&mhi_cntrl->st_worker, mhi_pm_st_worker); INIT_WORK(&mhi_cntrl->fw_worker, mhi_fw_load_worker); INIT_WORK(&mhi_cntrl->low_priority_worker, mhi_low_priority_worker); init_waitqueue_head(&mhi_cntrl->state_event); Loading drivers/bus/mhi/core/mhi_internal.h +1 −0 Original line number Diff line number Diff line Loading @@ -930,6 +930,7 @@ void mhi_deinit_free_irq(struct mhi_controller *mhi_cntrl); int mhi_dtr_init(void); void mhi_rddm_prepare(struct mhi_controller *mhi_cntrl, struct image_info *img_info); void mhi_fw_load_handler(struct mhi_controller *mhi_cntrl); int mhi_prepare_channel(struct mhi_controller *mhi_cntrl, struct mhi_chan *mhi_chan); Loading drivers/bus/mhi/core/mhi_pm.c +1 −5 Original line number Diff line number Diff line Loading @@ -631,7 +631,6 @@ static void mhi_pm_disable_transition(struct mhi_controller *mhi_cntrl, MHI_LOG("Waiting for all pending threads to complete\n"); wake_up_all(&mhi_cntrl->state_event); flush_work(&mhi_cntrl->fw_worker); flush_work(&mhi_cntrl->low_priority_worker); mhi_cntrl->force_m3_done = false; Loading Loading @@ -847,7 +846,7 @@ void mhi_pm_st_worker(struct work_struct *work) mhi_cntrl->ee = mhi_get_exec_env(mhi_cntrl); write_unlock_irq(&mhi_cntrl->pm_lock); if (MHI_IN_PBL(mhi_cntrl->ee)) wake_up_all(&mhi_cntrl->state_event); mhi_fw_load_handler(mhi_cntrl); break; case MHI_ST_TRANSITION_SBL: write_lock_irq(&mhi_cntrl->pm_lock); Loading Loading @@ -956,9 +955,6 @@ int mhi_async_power_up(struct mhi_controller *mhi_cntrl) next_state = MHI_IN_PBL(current_ee) ? MHI_ST_TRANSITION_PBL : MHI_ST_TRANSITION_READY; if (next_state == MHI_ST_TRANSITION_PBL) schedule_work(&mhi_cntrl->fw_worker); mhi_queue_state_transition(mhi_cntrl, next_state); mhi_init_debugfs(mhi_cntrl); Loading Loading
drivers/bus/mhi/core/mhi_boot.c +2 −13 Original line number Diff line number Diff line Loading @@ -523,10 +523,9 @@ static void mhi_firmware_copy(struct mhi_controller *mhi_cntrl, } } void mhi_fw_load_worker(struct work_struct *work) void mhi_fw_load_handler(struct mhi_controller *mhi_cntrl) { int ret; struct mhi_controller *mhi_cntrl; const char *fw_name; const struct firmware *firmware; struct image_info *image_info; Loading @@ -534,17 +533,7 @@ void mhi_fw_load_worker(struct work_struct *work) dma_addr_t dma_addr; size_t size; mhi_cntrl = container_of(work, struct mhi_controller, fw_worker); MHI_LOG("Waiting for device to enter PBL from EE:%s\n", TO_MHI_EXEC_STR(mhi_cntrl->ee)); ret = wait_event_timeout(mhi_cntrl->state_event, MHI_IN_PBL(mhi_cntrl->ee) || MHI_PM_IN_ERROR_STATE(mhi_cntrl->pm_state), msecs_to_jiffies(mhi_cntrl->timeout_ms)); if (!ret || MHI_PM_IN_ERROR_STATE(mhi_cntrl->pm_state)) { if (MHI_PM_IN_ERROR_STATE(mhi_cntrl->pm_state)) { MHI_ERR("MHI is not in valid state\n"); return; } Loading
drivers/bus/mhi/core/mhi_init.c +0 −1 Original line number Diff line number Diff line Loading @@ -1393,7 +1393,6 @@ int of_register_mhi_controller(struct mhi_controller *mhi_cntrl) spin_lock_init(&mhi_cntrl->transition_lock); spin_lock_init(&mhi_cntrl->wlock); INIT_WORK(&mhi_cntrl->st_worker, mhi_pm_st_worker); INIT_WORK(&mhi_cntrl->fw_worker, mhi_fw_load_worker); INIT_WORK(&mhi_cntrl->low_priority_worker, mhi_low_priority_worker); init_waitqueue_head(&mhi_cntrl->state_event); Loading
drivers/bus/mhi/core/mhi_internal.h +1 −0 Original line number Diff line number Diff line Loading @@ -930,6 +930,7 @@ void mhi_deinit_free_irq(struct mhi_controller *mhi_cntrl); int mhi_dtr_init(void); void mhi_rddm_prepare(struct mhi_controller *mhi_cntrl, struct image_info *img_info); void mhi_fw_load_handler(struct mhi_controller *mhi_cntrl); int mhi_prepare_channel(struct mhi_controller *mhi_cntrl, struct mhi_chan *mhi_chan); Loading
drivers/bus/mhi/core/mhi_pm.c +1 −5 Original line number Diff line number Diff line Loading @@ -631,7 +631,6 @@ static void mhi_pm_disable_transition(struct mhi_controller *mhi_cntrl, MHI_LOG("Waiting for all pending threads to complete\n"); wake_up_all(&mhi_cntrl->state_event); flush_work(&mhi_cntrl->fw_worker); flush_work(&mhi_cntrl->low_priority_worker); mhi_cntrl->force_m3_done = false; Loading Loading @@ -847,7 +846,7 @@ void mhi_pm_st_worker(struct work_struct *work) mhi_cntrl->ee = mhi_get_exec_env(mhi_cntrl); write_unlock_irq(&mhi_cntrl->pm_lock); if (MHI_IN_PBL(mhi_cntrl->ee)) wake_up_all(&mhi_cntrl->state_event); mhi_fw_load_handler(mhi_cntrl); break; case MHI_ST_TRANSITION_SBL: write_lock_irq(&mhi_cntrl->pm_lock); Loading Loading @@ -956,9 +955,6 @@ int mhi_async_power_up(struct mhi_controller *mhi_cntrl) next_state = MHI_IN_PBL(current_ee) ? MHI_ST_TRANSITION_PBL : MHI_ST_TRANSITION_READY; if (next_state == MHI_ST_TRANSITION_PBL) schedule_work(&mhi_cntrl->fw_worker); mhi_queue_state_transition(mhi_cntrl, next_state); mhi_init_debugfs(mhi_cntrl); Loading