From 898effb6001c828765deb864ae4f6f3b4af21fa5 Mon Sep 17 00:00:00 2001 From: Chandana Kishori Chiluveru Date: Thu, 4 Mar 2021 10:06:10 +0530 Subject: [PATCH] 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: Chandana Kishori Chiluveru --- drivers/slimbus/slim-msm-ngd.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/drivers/slimbus/slim-msm-ngd.c b/drivers/slimbus/slim-msm-ngd.c index 4ed5357a42e1..7375608431fd 100644 --- a/drivers/slimbus/slim-msm-ngd.c +++ b/drivers/slimbus/slim-msm-ngd.c @@ -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,