You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
openwrt/target/linux/layerscape/patches-5.4/701-net-0400-drivers-stagin...

32 lines
1.1 KiB
Diff

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);