x38_edac: make use of lo_hi_readq()
authorJason Baron <jbaron@akamai.com>
Thu, 26 Jun 2014 21:58:32 +0000 (21:58 +0000)
committerBorislav Petkov <bp@suse.de>
Fri, 4 Jul 2014 11:46:03 +0000 (13:46 +0200)
Convert to the generic API.

Signed-off-by: Jason Baron <jbaron@akamai.com>
Link: http://lkml.kernel.org/r/bb9a4cbb980cc7b51be75cbfcf644553bf6a04cd.1403818526.git.jbaron@akamai.com
Signed-off-by: Borislav Petkov <bp@suse.de>
drivers/edac/x38_edac.c

index 4891b450830bdd742076927957819da9b666c445..e644b52c287c41b3eddb206d24c283c4f1f7f6e9 100644 (file)
@@ -14,6 +14,8 @@
 #include <linux/pci.h>
 #include <linux/pci_ids.h>
 #include <linux/edac.h>
+
+#include <asm-generic/io-64-nonatomic-lo-hi.h>
 #include "edac_core.h"
 
 #define X38_REVISION           "1.1"
@@ -161,11 +163,6 @@ static void x38_clear_error_info(struct mem_ctl_info *mci)
                         X38_ERRSTS_BITS);
 }
 
-static u64 x38_readq(const void __iomem *addr)
-{
-       return readl(addr) | (((u64)readl(addr + 4)) << 32);
-}
-
 static void x38_get_and_clear_error_info(struct mem_ctl_info *mci,
                                 struct x38_error_info *info)
 {
@@ -183,9 +180,9 @@ static void x38_get_and_clear_error_info(struct mem_ctl_info *mci,
        if (!(info->errsts & X38_ERRSTS_BITS))
                return;
 
-       info->eccerrlog[0] = x38_readq(window + X38_C0ECCERRLOG);
+       info->eccerrlog[0] = lo_hi_readq(window + X38_C0ECCERRLOG);
        if (x38_channel_num == 2)
-               info->eccerrlog[1] = x38_readq(window + X38_C1ECCERRLOG);
+               info->eccerrlog[1] = lo_hi_readq(window + X38_C1ECCERRLOG);
 
        pci_read_config_word(pdev, X38_ERRSTS, &info->errsts2);
 
@@ -196,10 +193,10 @@ static void x38_get_and_clear_error_info(struct mem_ctl_info *mci,
         * should be UE info.
         */
        if ((info->errsts ^ info->errsts2) & X38_ERRSTS_BITS) {
-               info->eccerrlog[0] = x38_readq(window + X38_C0ECCERRLOG);
+               info->eccerrlog[0] = lo_hi_readq(window + X38_C0ECCERRLOG);
                if (x38_channel_num == 2)
                        info->eccerrlog[1] =
-                               x38_readq(window + X38_C1ECCERRLOG);
+                               lo_hi_readq(window + X38_C1ECCERRLOG);
        }
 
        x38_clear_error_info(mci);