summary refs log tree commit diff
path: root/drivers/bus
diff options
context:
space:
mode:
authorBaochen Qiang <quic_bqiang@quicinc.com>2023-05-23 14:47:45 +0800
committerPierre-Loup A. Griffais <pgriffais@valvesoftware.com>2023-11-02 16:07:53 -0700
commitf68ff9e74a9f435a159cc08b0b7670dc744b662a (patch)
tree89887205d51657e34bcf4d55d6649ac541814bdc /drivers/bus
parent53af72da86aec0f964c3c6489a3abeadd4f5f915 (diff)
downloadlinux-f68ff9e74a9f435a159cc08b0b7670dc744b662a.tar.gz
mhi: host: wake up device in mhi_intvec_threaded_handler
Signed-off-by: Baochen Qiang <quic_bqiang@quicinc.com>
Diffstat (limited to 'drivers/bus')
-rw-r--r--drivers/bus/mhi/host/main.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/bus/mhi/host/main.c b/drivers/bus/mhi/host/main.c
index 0c3a009ed9bb..a7aa06b58d90 100644
--- a/drivers/bus/mhi/host/main.c
+++ b/drivers/bus/mhi/host/main.c
@@ -483,9 +483,12 @@ irqreturn_t mhi_intvec_threaded_handler(int irq_number, void *priv)
 	enum mhi_pm_state pm_state = 0;
 	enum mhi_ee_type ee;
 
+	mhi_device_get_sync(mhi_cntrl->mhi_dev);
+
 	write_lock_irq(&mhi_cntrl->pm_lock);
 	if (!MHI_REG_ACCESS_VALID(mhi_cntrl->pm_state)) {
 		write_unlock_irq(&mhi_cntrl->pm_lock);
+		mhi_device_put(mhi_cntrl->mhi_dev);
 		goto exit_intvec;
 	}
 
@@ -502,6 +505,7 @@ irqreturn_t mhi_intvec_threaded_handler(int irq_number, void *priv)
 					       MHI_PM_SYS_ERR_DETECT);
 	}
 	write_unlock_irq(&mhi_cntrl->pm_lock);
+	mhi_device_put(mhi_cntrl->mhi_dev);
 
 	if (pm_state != MHI_PM_SYS_ERR_DETECT)
 		goto exit_intvec;