diff options
author | Mauro Carvalho Chehab <mchehab@redhat.com> | 2010-08-27 09:30:18 -0400 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2010-08-30 13:56:55 -0400 |
commit | e43276050927c7dfc45b1e2f090b94f72f87c052 (patch) | |
tree | df6eafa0aefb4db65ac6adfd7bcfe487a91908ac | |
parent | 57021918aa9c310524d7e9754506e4e8272b4c0e (diff) |
i7300_edac: Add a code to cleanup error registers
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
-rw-r--r-- | drivers/edac/i7300_edac.c | 29 |
1 files changed, 27 insertions, 2 deletions
diff --git a/drivers/edac/i7300_edac.c b/drivers/edac/i7300_edac.c index 728f9b0ab62c..3b6da20de4e5 100644 --- a/drivers/edac/i7300_edac.c +++ b/drivers/edac/i7300_edac.c | |||
@@ -470,9 +470,34 @@ static void i7300_process_error_info(struct mem_ctl_info *mci, | |||
470 | */ | 470 | */ |
471 | static void i7300_clear_error(struct mem_ctl_info *mci) | 471 | static void i7300_clear_error(struct mem_ctl_info *mci) |
472 | { | 472 | { |
473 | struct i7300_error_info info; | 473 | struct i7300_pvt *pvt = mci->pvt_info; |
474 | u32 value; | ||
475 | /* | ||
476 | * All error values are RWC - we need to read and write 1 to the | ||
477 | * bit that we want to cleanup | ||
478 | */ | ||
474 | 479 | ||
475 | i7300_get_error_info(mci, &info); | 480 | /* Clear global error registers */ |
481 | pci_read_config_dword(pvt->pci_dev_16_2_fsb_err_regs, | ||
482 | FERR_GLOBAL_HI, &value); | ||
483 | pci_write_config_dword(pvt->pci_dev_16_2_fsb_err_regs, | ||
484 | FERR_GLOBAL_HI, value); | ||
485 | |||
486 | pci_read_config_dword(pvt->pci_dev_16_2_fsb_err_regs, | ||
487 | FERR_GLOBAL_LO, &value); | ||
488 | pci_write_config_dword(pvt->pci_dev_16_2_fsb_err_regs, | ||
489 | FERR_GLOBAL_LO, value); | ||
490 | |||
491 | /* Clear FBD error registers */ | ||
492 | pci_read_config_dword(pvt->pci_dev_16_1_fsb_addr_map, | ||
493 | FERR_FAT_FBD, &value); | ||
494 | pci_write_config_dword(pvt->pci_dev_16_1_fsb_addr_map, | ||
495 | FERR_FAT_FBD, value); | ||
496 | |||
497 | pci_read_config_dword(pvt->pci_dev_16_1_fsb_addr_map, | ||
498 | FERR_NF_FBD, &value); | ||
499 | pci_write_config_dword(pvt->pci_dev_16_1_fsb_addr_map, | ||
500 | FERR_NF_FBD, value); | ||
476 | } | 501 | } |
477 | 502 | ||
478 | /* | 503 | /* |