Loading drivers/platform/msm/mhi_dev/mhi.c +8 −4 Original line number Diff line number Diff line Loading @@ -2459,6 +2459,14 @@ static int mhi_dev_cache_host_cfg(struct mhi_dev *mhi) (union mhi_dev_ring_ctx *)mhi->cmd_ctx_cache, mhi); } void mhi_dev_pm_relax(void) { atomic_set(&mhi_ctx->mhi_dev_wake, 0); pm_relax(mhi_ctx->dev); mhi_log(MHI_MSG_VERBOSE, "releasing mhi wakelock\n"); } EXPORT_SYMBOL(mhi_dev_pm_relax); int mhi_dev_suspend(struct mhi_dev *mhi) { int ch_id = 0, rc = 0; Loading Loading @@ -2493,10 +2501,6 @@ int mhi_dev_suspend(struct mhi_dev *mhi) } atomic_set(&mhi->mhi_dev_wake, 0); pm_relax(mhi->dev); mhi_log(MHI_MSG_VERBOSE, "releasing mhi wakelock\n"); mutex_unlock(&mhi_ctx->mhi_write_test); return rc; Loading drivers/platform/msm/mhi_dev/mhi.h +1 −0 Original line number Diff line number Diff line Loading @@ -1116,4 +1116,5 @@ void mhi_uci_chan_state_notify_all(struct mhi_dev *mhi, void mhi_uci_chan_state_notify(struct mhi_dev *mhi, enum mhi_client_channel ch_id, enum mhi_ctrl_info ch_state); void mhi_dev_pm_relax(void); #endif /* _MHI_H */ drivers/platform/msm/mhi_dev/mhi_hwio.h +1 −0 Original line number Diff line number Diff line Loading @@ -29,6 +29,7 @@ #define MHI_CTRL_INT_CLEAR_A7 (0x004C) #define MHI_CTRL_INT_CLEAR_A7_CLEAR_MASK 0xffffffff #define MHI_CTRL_INT_CLEAR_A7_CLEAR_SHIFT 0x0 #define MHI_CTRL_INT_MMIO_WR_CLEAR BIT(2) #define MHI_CTRL_INT_CRDB_CLEAR BIT(1) #define MHI_CTRL_INT_CRDB_MHICTRL_CLEAR BIT(0) Loading drivers/platform/msm/mhi_dev/mhi_mmio.c +2 −1 Original line number Diff line number Diff line Loading @@ -420,7 +420,8 @@ int mhi_dev_mmio_clear_interrupts(struct mhi_dev *dev) MHI_ERDB_INT_CLEAR_A7_n_CLEAR_MASK); mhi_dev_mmio_write(dev, MHI_CTRL_INT_CLEAR_A7, MHI_CTRL_INT_CRDB_CLEAR); (MHI_CTRL_INT_MMIO_WR_CLEAR | MHI_CTRL_INT_CRDB_CLEAR | MHI_CTRL_INT_CRDB_MHICTRL_CLEAR)); return 0; } Loading drivers/platform/msm/mhi_dev/mhi_sm.c +1 −0 Original line number Diff line number Diff line Loading @@ -888,6 +888,7 @@ static void mhi_sm_dev_event_manager(struct work_struct *work) res = mhi_sm_prepare_suspend(MHI_DEV_M3_STATE); if (res) MHI_SM_ERR("Failed switching to M3 state\n"); mhi_dev_pm_relax(); break; case MHI_DEV_EVENT_HW_ACC_WAKEUP: case MHI_DEV_EVENT_CORE_WAKEUP: Loading Loading
drivers/platform/msm/mhi_dev/mhi.c +8 −4 Original line number Diff line number Diff line Loading @@ -2459,6 +2459,14 @@ static int mhi_dev_cache_host_cfg(struct mhi_dev *mhi) (union mhi_dev_ring_ctx *)mhi->cmd_ctx_cache, mhi); } void mhi_dev_pm_relax(void) { atomic_set(&mhi_ctx->mhi_dev_wake, 0); pm_relax(mhi_ctx->dev); mhi_log(MHI_MSG_VERBOSE, "releasing mhi wakelock\n"); } EXPORT_SYMBOL(mhi_dev_pm_relax); int mhi_dev_suspend(struct mhi_dev *mhi) { int ch_id = 0, rc = 0; Loading Loading @@ -2493,10 +2501,6 @@ int mhi_dev_suspend(struct mhi_dev *mhi) } atomic_set(&mhi->mhi_dev_wake, 0); pm_relax(mhi->dev); mhi_log(MHI_MSG_VERBOSE, "releasing mhi wakelock\n"); mutex_unlock(&mhi_ctx->mhi_write_test); return rc; Loading
drivers/platform/msm/mhi_dev/mhi.h +1 −0 Original line number Diff line number Diff line Loading @@ -1116,4 +1116,5 @@ void mhi_uci_chan_state_notify_all(struct mhi_dev *mhi, void mhi_uci_chan_state_notify(struct mhi_dev *mhi, enum mhi_client_channel ch_id, enum mhi_ctrl_info ch_state); void mhi_dev_pm_relax(void); #endif /* _MHI_H */
drivers/platform/msm/mhi_dev/mhi_hwio.h +1 −0 Original line number Diff line number Diff line Loading @@ -29,6 +29,7 @@ #define MHI_CTRL_INT_CLEAR_A7 (0x004C) #define MHI_CTRL_INT_CLEAR_A7_CLEAR_MASK 0xffffffff #define MHI_CTRL_INT_CLEAR_A7_CLEAR_SHIFT 0x0 #define MHI_CTRL_INT_MMIO_WR_CLEAR BIT(2) #define MHI_CTRL_INT_CRDB_CLEAR BIT(1) #define MHI_CTRL_INT_CRDB_MHICTRL_CLEAR BIT(0) Loading
drivers/platform/msm/mhi_dev/mhi_mmio.c +2 −1 Original line number Diff line number Diff line Loading @@ -420,7 +420,8 @@ int mhi_dev_mmio_clear_interrupts(struct mhi_dev *dev) MHI_ERDB_INT_CLEAR_A7_n_CLEAR_MASK); mhi_dev_mmio_write(dev, MHI_CTRL_INT_CLEAR_A7, MHI_CTRL_INT_CRDB_CLEAR); (MHI_CTRL_INT_MMIO_WR_CLEAR | MHI_CTRL_INT_CRDB_CLEAR | MHI_CTRL_INT_CRDB_MHICTRL_CLEAR)); return 0; } Loading
drivers/platform/msm/mhi_dev/mhi_sm.c +1 −0 Original line number Diff line number Diff line Loading @@ -888,6 +888,7 @@ static void mhi_sm_dev_event_manager(struct work_struct *work) res = mhi_sm_prepare_suspend(MHI_DEV_M3_STATE); if (res) MHI_SM_ERR("Failed switching to M3 state\n"); mhi_dev_pm_relax(); break; case MHI_DEV_EVENT_HW_ACC_WAKEUP: case MHI_DEV_EVENT_CORE_WAKEUP: Loading