Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 378e6f62 authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "msm_serial_hs: handle UART IRQ during PM operations for OBS"

parents 7a3c4cf8 715e1e4d
Loading
Loading
Loading
Loading
+14 −0
Original line number Diff line number Diff line
@@ -3041,6 +3041,18 @@ static int device_id_set_used(int index)
	return ret;
}

static void obs_manage_irq(struct msm_hs_port *msm_uport, bool en)
{
	struct uart_port *uport = &(msm_uport->uport);

	if (msm_uport->obs) {
		if (en)
			enable_irq(uport->irq);
		else
			disable_irq(uport->irq);
	}
}

static void msm_hs_pm_suspend(struct device *dev)
{
	struct platform_device *pdev = to_platform_device(dev);
@@ -3061,6 +3073,7 @@ static void msm_hs_pm_suspend(struct device *dev)

	msm_uport->pm_state = MSM_HS_PM_SUSPENDED;
	msm_hs_resource_off(msm_uport);
	obs_manage_irq(msm_uport, false);
	msm_hs_clk_bus_unvote(msm_uport);
	if (!atomic_read(&msm_uport->client_req_state))
		toggle_wakeup_interrupt(msm_uport);
@@ -3086,6 +3099,7 @@ static int msm_hs_pm_resume(struct device *dev)
		toggle_wakeup_interrupt(msm_uport);
	msm_hs_clk_bus_vote(msm_uport);
	__pm_stay_awake(&msm_uport->ws);
	obs_manage_irq(msm_uport, true);
	msm_uport->pm_state = MSM_HS_PM_ACTIVE;
	msm_hs_resource_on(msm_uport);