aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/edac/e752x_edac.c
diff options
context:
space:
mode:
authorDave Peterson <dsp@llnl.gov>2006-03-26 04:38:45 -0500
committerLinus Torvalds <torvalds@g5.osdl.org>2006-03-26 11:57:07 -0500
commit749ede57443b2a7ede2db105145f21047efcea6a (patch)
tree0d0ee972f55e8fbb9d8fba6209a6304fdd3c98f1 /drivers/edac/e752x_edac.c
parentd38fde84f7521973fdfa5c3d03d62f014b42cd03 (diff)
[PATCH] EDAC: cleanup code for clearing initial errors
Fix xxx_probe1() functions so they call xxx_get_error_info() functions to clear initial errors. This is simpler and cleaner than duplicating the low-level code for accessing PCI config space. Signed-off-by: David S. Peterson <dsp@llnl.gov> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'drivers/edac/e752x_edac.c')
-rw-r--r--drivers/edac/e752x_edac.c22
1 files changed, 2 insertions, 20 deletions
diff --git a/drivers/edac/e752x_edac.c b/drivers/edac/e752x_edac.c
index f31725a55e54..24446542d8d6 100644
--- a/drivers/edac/e752x_edac.c
+++ b/drivers/edac/e752x_edac.c
@@ -747,8 +747,6 @@ static int e752x_probe1(struct pci_dev *pdev, int dev_idx)
747 int rc = -ENODEV; 747 int rc = -ENODEV;
748 int index; 748 int index;
749 u16 pci_data; 749 u16 pci_data;
750 u32 stat32;
751 u16 stat16;
752 u8 stat8; 750 u8 stat8;
753 struct mem_ctl_info *mci = NULL; 751 struct mem_ctl_info *mci = NULL;
754 struct e752x_pvt *pvt = NULL; 752 struct e752x_pvt *pvt = NULL;
@@ -760,6 +758,7 @@ static int e752x_probe1(struct pci_dev *pdev, int dev_idx)
760 u32 dra; 758 u32 dra;
761 unsigned long last_cumul_size; 759 unsigned long last_cumul_size;
762 struct pci_dev *dev = NULL; 760 struct pci_dev *dev = NULL;
761 struct e752x_error_info discard;
763 762
764 debugf0("%s(): mci\n", __func__); 763 debugf0("%s(): mci\n", __func__);
765 debugf0("Starting Probe1\n"); 764 debugf0("Starting Probe1\n");
@@ -938,24 +937,7 @@ static int e752x_probe1(struct pci_dev *pdev, int dev_idx)
938 pci_write_config_byte(dev, E752X_DRAM_ERRMASK, 0x00); 937 pci_write_config_byte(dev, E752X_DRAM_ERRMASK, 0x00);
939 pci_write_config_byte(dev, E752X_DRAM_SMICMD, 0x00); 938 pci_write_config_byte(dev, E752X_DRAM_SMICMD, 0x00);
940 /* clear other MCH errors */ 939 /* clear other MCH errors */
941 pci_read_config_dword(dev, E752X_FERR_GLOBAL, &stat32); 940 e752x_get_error_info(mci, &discard);
942 pci_write_config_dword(dev, E752X_FERR_GLOBAL, stat32);
943 pci_read_config_dword(dev, E752X_NERR_GLOBAL, &stat32);
944 pci_write_config_dword(dev, E752X_NERR_GLOBAL, stat32);
945 pci_read_config_byte(dev, E752X_HI_FERR, &stat8);
946 pci_write_config_byte(dev, E752X_HI_FERR, stat8);
947 pci_read_config_byte(dev, E752X_HI_NERR, &stat8);
948 pci_write_config_byte(dev, E752X_HI_NERR, stat8);
949 pci_read_config_dword(dev, E752X_SYSBUS_FERR, &stat32);
950 pci_write_config_dword(dev, E752X_SYSBUS_FERR, stat32);
951 pci_read_config_byte(dev, E752X_BUF_FERR, &stat8);
952 pci_write_config_byte(dev, E752X_BUF_FERR, stat8);
953 pci_read_config_byte(dev, E752X_BUF_NERR, &stat8);
954 pci_write_config_byte(dev, E752X_BUF_NERR, stat8);
955 pci_read_config_word(dev, E752X_DRAM_FERR, &stat16);
956 pci_write_config_word(dev, E752X_DRAM_FERR, stat16);
957 pci_read_config_word(dev, E752X_DRAM_NERR, &stat16);
958 pci_write_config_word(dev, E752X_DRAM_NERR, stat16);
959 941
960 /* get this far and it's successful */ 942 /* get this far and it's successful */
961 debugf3("%s(): success\n", __func__); 943 debugf3("%s(): success\n", __func__);