From bd14d14fcd8bcc3fc9f20a4461b76d325a978b36 Mon Sep 17 00:00:00 2001 From: Ganbold Tsagaankhuu Date: Fri, 8 May 2015 04:38:01 +0000 Subject: [PATCH] This follows the gic and ti/aintc code by adding additional barriers to the Amlogic pic driver. Differential Revision: https://reviews.freebsd.org/D2472 Submitted by: John Wehle --- sys/arm/amlogic/aml8726/aml8726_pic.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/sys/arm/amlogic/aml8726/aml8726_pic.c b/sys/arm/amlogic/aml8726/aml8726_pic.c index 5ef1403d7c2b..565d157032a8 100644 --- a/sys/arm/amlogic/aml8726/aml8726_pic.c +++ b/sys/arm/amlogic/aml8726/aml8726_pic.c @@ -121,6 +121,8 @@ aml8726_pic_eoi(void *arg) if (nb >= AML_PIC_NIRQS) return; + arm_irq_memory_barrier(nb); + CSR_WRITE_4(aml8726_pic_sc, AML_PIC_STAT_CLR_REG(nb), AML_PIC_BIT(nb)); CSR_BARRIER(aml8726_pic_sc, AML_PIC_STAT_CLR_REG(nb)); @@ -265,8 +267,12 @@ arm_unmask_irq(uintptr_t nb) if (nb >= AML_PIC_NIRQS) return; + arm_irq_memory_barrier(nb); + mask = CSR_READ_4(aml8726_pic_sc, AML_PIC_MASK_REG(nb)); mask |= AML_PIC_BIT(nb); CSR_WRITE_4(aml8726_pic_sc, AML_PIC_MASK_REG(nb), mask); + + CSR_BARRIER(aml8726_pic_sc, AML_PIC_MASK_REG(nb)); } #endif