From: Marek Majtyka <marekx.majt...@intel.com>

Fixed backward compatibility issue between linux axxia
BSP 1.59 with older uboot releases.

Signed-off-by: Marek Majtyka <marekx.majt...@intel.com>
---
 drivers/edac/axxia_edac-l3_56xx.c | 24 ++++++++----------------
 include/linux/arm-smccc.h         |  2 ++
 2 files changed, 10 insertions(+), 16 deletions(-)

diff --git a/drivers/edac/axxia_edac-l3_56xx.c 
b/drivers/edac/axxia_edac-l3_56xx.c
index aa574af..d2d9e5a 100644
--- a/drivers/edac/axxia_edac-l3_56xx.c
+++ b/drivers/edac/axxia_edac-l3_56xx.c
@@ -424,24 +424,16 @@ static int intel_edac_l3_probe(struct platform_device 
*pdev)
        if (!r)
                return -EINVAL;
 
-       /* Check if we can use the interrupt */
-       __arm_smccc_smc(0xc4000027,
+       /*
+        * Check if we can use the interrupt here.
+        * We are not interested in PMU events, so let's try to disable it.
+        * Once -1 return, it means old uboot without ccn service.
+        * Then only polling mechanism is allowed, as it was before.
+        */
+       if (ARM_SMCCC_UNKNOWN != __arm_smccc_smc(0xc4000027,
                        CCN_MN_ERRINT_STATUS__PMU_EVENTS__DISABLE,
-                       0, 0, &ret);
-       if (__arm_smccc_smc(0xc4000026, 0, 0, 0, &ret) &
-                       CCN_MN_ERRINT_STATUS__PMU_EVENTS__DISABLED) {
-               /* Can set 'disable' bits, so can acknowledge interrupts */
-
-               /*
-                * TODO
-                * perf for now switched off.
-                *   __arm_smccc_smc(0xc4000027,
-                *      CCN_MN_ERRINT_STATUS__PMU_EVENTS__ENABLE,
-                *      0, 0, &ret);
-                */
-
+                       0, 0, &ret))
                dev_info->irq_used = 1;
-       }
 
        dev_info->edac_dev->pvt_info = dev_info;
        dev_info->edac_dev->dev = &dev_info->pdev->dev;
diff --git a/include/linux/arm-smccc.h b/include/linux/arm-smccc.h
index d45283a..7c7f7cb 100644
--- a/include/linux/arm-smccc.h
+++ b/include/linux/arm-smccc.h
@@ -47,6 +47,8 @@
 #define ARM_SMCCC_OWNER_TRUSTED_OS      50
 #define ARM_SMCCC_OWNER_TRUSTED_OS_END  63
 
+#define ARM_SMCCC_UNKNOWN              0xffffffff
+
 struct arm_smccc_res {
        u64 a0;
        u64 a1;
-- 
2.7.4

-- 
_______________________________________________
linux-yocto mailing list
linux-yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/linux-yocto

Reply via email to