d9e4b432c225d9d262e8e4a2ec80e308dda6d492
[openwrt/openwrt.git] /
1 From 09269e71bfe9ff445ba42e2b88b17d323e434896 Mon Sep 17 00:00:00 2001
2 From: Roy Pledge <roy.pledge@nxp.com>
3 Date: Mon, 16 Dec 2019 16:59:32 -0500
4 Subject: [PATCH] drivers/staging/fsl_qbman: Disable Portal Channel IRQs
5
6 Disable portal channel IRQs to avoid them stopping QBMan from
7 entering idle mode. Since push mode is used in this driver these
8 interrupts are not needed/used.
9
10 Signed-off-by: Roy Pledge <roy.pledge@nxp.com>
11 (cherry picked from commit 977cf95ef173bf22b1816e7dbafcbb0f8a151133)
12 ---
13 drivers/staging/fsl_qbman/qman_high.c | 7 ++++++-
14 1 file changed, 6 insertions(+), 1 deletion(-)
15
16 --- a/drivers/staging/fsl_qbman/qman_high.c
17 +++ b/drivers/staging/fsl_qbman/qman_high.c
18 @@ -737,7 +737,12 @@ struct qman_portal *qman_create_portal(
19 }
20 /* Success */
21 portal->config = config;
22 - qm_isr_disable_write(__p, 0);
23 + /*
24 + * Undisable all the IRQs except the dequeue available bits.
25 + * If left enabled they cause problems with sleep mode. Since
26 + * they are not used in push mode we can safely turn them off
27 + */
28 + qm_isr_disable_write(__p, QM_DQAVAIL_MASK);
29 qm_isr_uninhibit(__p);
30 /* Write a sane SDQCR */
31 qm_dqrr_sdqcr_set(__p, portal->sdqcr);