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

Commit 898effb6 authored by Chandana Kishori Chiluveru's avatar Chandana Kishori Chiluveru
Browse files

slim-msm-ngd: Do not enable/disable core irq in SSR/PDR notifications



During SSR testing, subsystem and qmi notifications for SSR/PDR
sequence is missing sometimes. We are seeing 2 times DOWN notification
without UP. This will lead to imbalance in disabling and enabling of
core IRQ and capability exchange is timing out.

If interrupt line is not enabled, during retry-capability exchange
request is timing out and leading to freed memory access
inside ngd_xfer_msg.

Fix this issue by removing enabling and disabling from ngd_slim_enable
enable it only once during probe.

Change-Id: I15616c6e284848ed1f2aca00d251b82f79feb803
Signed-off-by: default avatarChandana Kishori Chiluveru <cchiluve@codeaurora.org>
parent be60e6e7
Loading
Loading
Loading
Loading
+1 −5
Original line number Diff line number Diff line
@@ -1541,7 +1541,6 @@ static int ngd_slim_enable(struct msm_slim_ctrl *dev, bool enable)
	int ret = 0;

	if (enable) {
		enable_irq(dev->irq);
		ret = msm_slim_qmi_init(dev, false);
		/* controller state should be in sync with framework state */
		if (!ret) {
@@ -1556,10 +1555,8 @@ static int ngd_slim_enable(struct msm_slim_ctrl *dev, bool enable)
		} else
			SLIM_ERR(dev, "qmi init fail, ret:%d, state:%d\n",
					ret, dev->state);
	} else {
		disable_irq(dev->irq);
	} else
		msm_slim_qmi_exit(dev);
	}

	return ret;
}
@@ -2056,7 +2053,6 @@ static int ngd_slim_probe(struct platform_device *pdev)
	 * extensive benifits and performance
	 * improvements.
	 */
	irq_set_status_flags(dev->irq, IRQ_NOAUTOEN);
	ret = devm_request_irq(dev->dev, dev->irq,
			ngd_slim_interrupt,
			IRQF_TRIGGER_HIGH,