diff options
author | Bogdan Hamciuc <bogdan.hamciuc@freescale.com> | 2013-06-21 14:45:27 (GMT) |
---|---|---|
committer | Fleming Andrew-AFLEMING <AFLEMING@freescale.com> | 2013-07-12 21:03:49 (GMT) |
commit | df74252fe0d8eb9dc9be1c7e3ef8b1c27e111fe8 (patch) | |
tree | 1c16ba6501711fdcfb0e8681be2fc3a5f5dfc670 | |
parent | 124ff6755843ee1ba7a0c089dea130b105c8e22c (diff) | |
download | linux-fsl-qoriq-df74252fe0d8eb9dc9be1c7e3ef8b1c27e111fe8.tar.xz |
fsl_qman: Fix flipping of CSCI interrupt bit
Commit 88d4c504 "fsl_qman: implement CEETM CCSCI and update some ccg
APIs" inadvertently flips the QM_PIRQ_CSCI bit, reactivating a bug
which allowed congestion state to become irreversible because of a
missed interrupt.
Clearing the CSCI bit puts the system back on track.
Signed-off-by: Bogdan Hamciuc <bogdan.hamciuc@freescale.com>
Change-Id: I18ffa06a694911567a7a690c7a7aa1e7b4cd85b9
Reviewed-on: http://git.am.freescale.net:8181/3031
Tested-by: Review Code-CDREVIEW <CDREVIEW@freescale.com>
Reviewed-by: Wang Haiying-R54964 <Haiying.Wang@freescale.com>
Reviewed-by: Ladouceur Jeffrey-R11498 <Jeffrey.Ladouceur@freescale.com>
Reviewed-by: Thorpe Geoff-R01361 <Geoff.Thorpe@freescale.com>
Reviewed-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com>
-rw-r--r-- | drivers/staging/fsl_qbman/qman_high.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/staging/fsl_qbman/qman_high.c b/drivers/staging/fsl_qbman/qman_high.c index c2f734e..5fcd709 100644 --- a/drivers/staging/fsl_qbman/qman_high.c +++ b/drivers/staging/fsl_qbman/qman_high.c @@ -302,8 +302,8 @@ static irqreturn_t portal_isr(__always_unused int irq, void *ptr) * as part of the handling of this interrupt source. We mustn't * clear it a second time in this top-level function. */ - u32 clear = QM_DQAVAIL_MASK | (p->irq_sources & ~QM_PIRQ_CSCI) | - (p->irq_sources & ~QM_PIRQ_CCSCI); + u32 clear = QM_DQAVAIL_MASK | (p->irq_sources & + ~(QM_PIRQ_CSCI | QM_PIRQ_CCSCI)); u32 is = qm_isr_status_read(&p->p) & p->irq_sources; /* DQRR-handling if it's interrupt-driven */ if (is & QM_PIRQ_DQRI) |