aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/layerscape/patches-5.4/701-net-0400-drivers-staging-fsl_qbman-Disable-Portal-Channel-IRQ.patch
blob: d9e4b432c225d9d262e8e4a2ec80e308dda6d492 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
From 09269e71bfe9ff445ba42e2b88b17d323e434896 Mon Sep 17 00:00:00 2001
From: Roy Pledge <roy.pledge@nxp.com>
Date: Mon, 16 Dec 2019 16:59:32 -0500
Subject: [PATCH] drivers/staging/fsl_qbman: Disable Portal Channel IRQs

Disable portal channel IRQs to avoid them stopping QBMan from
entering idle mode. Since push mode is used in this driver these
interrupts are not needed/used.

Signed-off-by: Roy Pledge <roy.pledge@nxp.com>
(cherry picked from commit 977cf95ef173bf22b1816e7dbafcbb0f8a151133)
---
 drivers/staging/fsl_qbman/qman_high.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

--- a/drivers/staging/fsl_qbman/qman_high.c
+++ b/drivers/staging/fsl_qbman/qman_high.c
@@ -737,7 +737,12 @@ struct qman_portal *qman_create_portal(
 	}
 	/* Success */
 	portal->config = config;
-	qm_isr_disable_write(__p, 0);
+	/*
+	 * Undisable all the IRQs except the dequeue available bits.
+	 * If left enabled they cause problems with sleep mode. Since
+	 * they are not used in push mode we can safely turn them off
+	 */
+	qm_isr_disable_write(__p, QM_DQAVAIL_MASK);
 	qm_isr_uninhibit(__p);
 	/* Write a sane SDQCR */
 	qm_dqrr_sdqcr_set(__p, portal->sdqcr);