diff options
Diffstat (limited to 'drivers/edac/e752x_edac.c')
-rw-r--r-- | drivers/edac/e752x_edac.c | 23 |
1 files changed, 12 insertions, 11 deletions
diff --git a/drivers/edac/e752x_edac.c b/drivers/edac/e752x_edac.c index fce31936e6d7..de9f332eabf0 100644 --- a/drivers/edac/e752x_edac.c +++ b/drivers/edac/e752x_edac.c | |||
@@ -25,6 +25,8 @@ | |||
25 | #include <linux/slab.h> | 25 | #include <linux/slab.h> |
26 | #include "edac_mc.h" | 26 | #include "edac_mc.h" |
27 | 27 | ||
28 | #define E752X_REVISION " Ver: 2.0.0 " __DATE__ | ||
29 | |||
28 | static int force_function_unhide; | 30 | static int force_function_unhide; |
29 | 31 | ||
30 | #define e752x_printk(level, fmt, arg...) \ | 32 | #define e752x_printk(level, fmt, arg...) \ |
@@ -819,8 +821,8 @@ static int e752x_probe1(struct pci_dev *pdev, int dev_idx) | |||
819 | EDAC_FLAG_S4ECD4ED; | 821 | EDAC_FLAG_S4ECD4ED; |
820 | /* FIXME - what if different memory types are in different csrows? */ | 822 | /* FIXME - what if different memory types are in different csrows? */ |
821 | mci->mod_name = EDAC_MOD_STR; | 823 | mci->mod_name = EDAC_MOD_STR; |
822 | mci->mod_ver = "$Revision: 1.5.2.11 $"; | 824 | mci->mod_ver = E752X_REVISION; |
823 | mci->pdev = pdev; | 825 | mci->dev = &pdev->dev; |
824 | 826 | ||
825 | debugf3("%s(): init pvt\n", __func__); | 827 | debugf3("%s(): init pvt\n", __func__); |
826 | pvt = (struct e752x_pvt *) mci->pvt_info; | 828 | pvt = (struct e752x_pvt *) mci->pvt_info; |
@@ -864,7 +866,7 @@ static int e752x_probe1(struct pci_dev *pdev, int dev_idx) | |||
864 | struct csrow_info *csrow = &mci->csrows[index]; | 866 | struct csrow_info *csrow = &mci->csrows[index]; |
865 | 867 | ||
866 | mem_dev = (mem_dev == 2); | 868 | mem_dev = (mem_dev == 2); |
867 | pci_read_config_byte(mci->pdev, E752X_DRB + index, &value); | 869 | pci_read_config_byte(pdev, E752X_DRB + index, &value); |
868 | /* convert a 128 or 64 MiB DRB to a page size. */ | 870 | /* convert a 128 or 64 MiB DRB to a page size. */ |
869 | cumul_size = value << (25 + drc_drbg - PAGE_SHIFT); | 871 | cumul_size = value << (25 + drc_drbg - PAGE_SHIFT); |
870 | debugf3("%s(): (%d) cumul_size 0x%x\n", __func__, index, | 872 | debugf3("%s(): (%d) cumul_size 0x%x\n", __func__, index, |
@@ -904,8 +906,7 @@ static int e752x_probe1(struct pci_dev *pdev, int dev_idx) | |||
904 | u8 row = 0; | 906 | u8 row = 0; |
905 | 907 | ||
906 | for (index = 0; index < 8; index += 2) { | 908 | for (index = 0; index < 8; index += 2) { |
907 | pci_read_config_byte(mci->pdev, E752X_DRB + index, | 909 | pci_read_config_byte(pdev, E752X_DRB + index, &value); |
908 | &value); | ||
909 | 910 | ||
910 | /* test if there is a dimm in this slot */ | 911 | /* test if there is a dimm in this slot */ |
911 | if (value == last) { | 912 | if (value == last) { |
@@ -918,7 +919,7 @@ static int e752x_probe1(struct pci_dev *pdev, int dev_idx) | |||
918 | last = value; | 919 | last = value; |
919 | /* test the next value to see if the dimm is | 920 | /* test the next value to see if the dimm is |
920 | double sided */ | 921 | double sided */ |
921 | pci_read_config_byte(mci->pdev, | 922 | pci_read_config_byte(pdev, |
922 | E752X_DRB + index + 1, | 923 | E752X_DRB + index + 1, |
923 | &value); | 924 | &value); |
924 | pvt->map[index + 1] = (value == last) ? | 925 | pvt->map[index + 1] = (value == last) ? |
@@ -935,18 +936,18 @@ static int e752x_probe1(struct pci_dev *pdev, int dev_idx) | |||
935 | } | 936 | } |
936 | 937 | ||
937 | /* set the map type. 1 = normal, 0 = reversed */ | 938 | /* set the map type. 1 = normal, 0 = reversed */ |
938 | pci_read_config_byte(mci->pdev, E752X_DRM, &stat8); | 939 | pci_read_config_byte(pdev, E752X_DRM, &stat8); |
939 | pvt->map_type = ((stat8 & 0x0f) > ((stat8 >> 4) & 0x0f)); | 940 | pvt->map_type = ((stat8 & 0x0f) > ((stat8 >> 4) & 0x0f)); |
940 | 941 | ||
941 | mci->edac_cap |= EDAC_FLAG_NONE; | 942 | mci->edac_cap |= EDAC_FLAG_NONE; |
942 | debugf3("%s(): tolm, remapbase, remaplimit\n", __func__); | 943 | debugf3("%s(): tolm, remapbase, remaplimit\n", __func__); |
943 | 944 | ||
944 | /* load the top of low memory, remap base, and remap limit vars */ | 945 | /* load the top of low memory, remap base, and remap limit vars */ |
945 | pci_read_config_word(mci->pdev, E752X_TOLM, &pci_data); | 946 | pci_read_config_word(pdev, E752X_TOLM, &pci_data); |
946 | pvt->tolm = ((u32) pci_data) << 4; | 947 | pvt->tolm = ((u32) pci_data) << 4; |
947 | pci_read_config_word(mci->pdev, E752X_REMAPBASE, &pci_data); | 948 | pci_read_config_word(pdev, E752X_REMAPBASE, &pci_data); |
948 | pvt->remapbase = ((u32) pci_data) << 14; | 949 | pvt->remapbase = ((u32) pci_data) << 14; |
949 | pci_read_config_word(mci->pdev, E752X_REMAPLIMIT, &pci_data); | 950 | pci_read_config_word(pdev, E752X_REMAPLIMIT, &pci_data); |
950 | pvt->remaplimit = ((u32) pci_data) << 14; | 951 | pvt->remaplimit = ((u32) pci_data) << 14; |
951 | e752x_printk(KERN_INFO, | 952 | e752x_printk(KERN_INFO, |
952 | "tolm = %x, remapbase = %x, remaplimit = %x\n", pvt->tolm, | 953 | "tolm = %x, remapbase = %x, remaplimit = %x\n", pvt->tolm, |
@@ -1015,7 +1016,7 @@ static void __devexit e752x_remove_one(struct pci_dev *pdev) | |||
1015 | 1016 | ||
1016 | debugf0("%s()\n", __func__); | 1017 | debugf0("%s()\n", __func__); |
1017 | 1018 | ||
1018 | if ((mci = edac_mc_del_mc(pdev)) == NULL) | 1019 | if ((mci = edac_mc_del_mc(&pdev->dev)) == NULL) |
1019 | return; | 1020 | return; |
1020 | 1021 | ||
1021 | pvt = (struct e752x_pvt *) mci->pvt_info; | 1022 | pvt = (struct e752x_pvt *) mci->pvt_info; |