diff options
author | Dave Peterson <dsp@llnl.gov> | 2006-03-26 04:38:45 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-03-26 11:57:07 -0500 |
commit | 749ede57443b2a7ede2db105145f21047efcea6a (patch) | |
tree | 0d0ee972f55e8fbb9d8fba6209a6304fdd3c98f1 /drivers/edac/e752x_edac.c | |
parent | d38fde84f7521973fdfa5c3d03d62f014b42cd03 (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.c | 22 |
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__); |