diff options
Diffstat (limited to 'drivers/edac/e7xxx_edac.c')
-rw-r--r-- | drivers/edac/e7xxx_edac.c | 54 |
1 files changed, 27 insertions, 27 deletions
diff --git a/drivers/edac/e7xxx_edac.c b/drivers/edac/e7xxx_edac.c index 453ba346b6ca..0601958421fb 100644 --- a/drivers/edac/e7xxx_edac.c +++ b/drivers/edac/e7xxx_edac.c | |||
@@ -148,17 +148,17 @@ static struct edac_pci_ctl_info *e7xxx_pci; | |||
148 | 148 | ||
149 | static const struct e7xxx_dev_info e7xxx_devs[] = { | 149 | static const struct e7xxx_dev_info e7xxx_devs[] = { |
150 | [E7500] = { | 150 | [E7500] = { |
151 | .err_dev = PCI_DEVICE_ID_INTEL_7500_1_ERR, | 151 | .err_dev = PCI_DEVICE_ID_INTEL_7500_1_ERR, |
152 | .ctl_name = "E7500"}, | 152 | .ctl_name = "E7500"}, |
153 | [E7501] = { | 153 | [E7501] = { |
154 | .err_dev = PCI_DEVICE_ID_INTEL_7501_1_ERR, | 154 | .err_dev = PCI_DEVICE_ID_INTEL_7501_1_ERR, |
155 | .ctl_name = "E7501"}, | 155 | .ctl_name = "E7501"}, |
156 | [E7505] = { | 156 | [E7505] = { |
157 | .err_dev = PCI_DEVICE_ID_INTEL_7505_1_ERR, | 157 | .err_dev = PCI_DEVICE_ID_INTEL_7505_1_ERR, |
158 | .ctl_name = "E7505"}, | 158 | .ctl_name = "E7505"}, |
159 | [E7205] = { | 159 | [E7205] = { |
160 | .err_dev = PCI_DEVICE_ID_INTEL_7205_1_ERR, | 160 | .err_dev = PCI_DEVICE_ID_INTEL_7205_1_ERR, |
161 | .ctl_name = "E7205"}, | 161 | .ctl_name = "E7205"}, |
162 | }; | 162 | }; |
163 | 163 | ||
164 | /* FIXME - is this valid for both SECDED and S4ECD4ED? */ | 164 | /* FIXME - is this valid for both SECDED and S4ECD4ED? */ |
@@ -179,7 +179,7 @@ static inline int e7xxx_find_channel(u16 syndrome) | |||
179 | } | 179 | } |
180 | 180 | ||
181 | static unsigned long ctl_page_to_phys(struct mem_ctl_info *mci, | 181 | static unsigned long ctl_page_to_phys(struct mem_ctl_info *mci, |
182 | unsigned long page) | 182 | unsigned long page) |
183 | { | 183 | { |
184 | u32 remap; | 184 | u32 remap; |
185 | struct e7xxx_pvt *pvt = (struct e7xxx_pvt *)mci->pvt_info; | 185 | struct e7xxx_pvt *pvt = (struct e7xxx_pvt *)mci->pvt_info; |
@@ -187,7 +187,7 @@ static unsigned long ctl_page_to_phys(struct mem_ctl_info *mci, | |||
187 | debugf3("%s()\n", __func__); | 187 | debugf3("%s()\n", __func__); |
188 | 188 | ||
189 | if ((page < pvt->tolm) || | 189 | if ((page < pvt->tolm) || |
190 | ((page >= 0x100000) && (page < pvt->remapbase))) | 190 | ((page >= 0x100000) && (page < pvt->remapbase))) |
191 | return page; | 191 | return page; |
192 | 192 | ||
193 | remap = (page - pvt->tolm) + pvt->remapbase; | 193 | remap = (page - pvt->tolm) + pvt->remapbase; |
@@ -257,15 +257,15 @@ static void e7xxx_get_error_info(struct mem_ctl_info *mci, | |||
257 | 257 | ||
258 | if ((info->dram_ferr & 1) || (info->dram_nerr & 1)) { | 258 | if ((info->dram_ferr & 1) || (info->dram_nerr & 1)) { |
259 | pci_read_config_dword(pvt->bridge_ck, E7XXX_DRAM_CELOG_ADD, | 259 | pci_read_config_dword(pvt->bridge_ck, E7XXX_DRAM_CELOG_ADD, |
260 | &info->dram_celog_add); | 260 | &info->dram_celog_add); |
261 | pci_read_config_word(pvt->bridge_ck, | 261 | pci_read_config_word(pvt->bridge_ck, |
262 | E7XXX_DRAM_CELOG_SYNDROME, | 262 | E7XXX_DRAM_CELOG_SYNDROME, |
263 | &info->dram_celog_syndrome); | 263 | &info->dram_celog_syndrome); |
264 | } | 264 | } |
265 | 265 | ||
266 | if ((info->dram_ferr & 2) || (info->dram_nerr & 2)) | 266 | if ((info->dram_ferr & 2) || (info->dram_nerr & 2)) |
267 | pci_read_config_dword(pvt->bridge_ck, E7XXX_DRAM_UELOG_ADD, | 267 | pci_read_config_dword(pvt->bridge_ck, E7XXX_DRAM_UELOG_ADD, |
268 | &info->dram_uelog_add); | 268 | &info->dram_uelog_add); |
269 | 269 | ||
270 | if (info->dram_ferr & 3) | 270 | if (info->dram_ferr & 3) |
271 | pci_write_bits8(pvt->bridge_ck, E7XXX_DRAM_FERR, 0x03, 0x03); | 271 | pci_write_bits8(pvt->bridge_ck, E7XXX_DRAM_FERR, 0x03, 0x03); |
@@ -275,8 +275,8 @@ static void e7xxx_get_error_info(struct mem_ctl_info *mci, | |||
275 | } | 275 | } |
276 | 276 | ||
277 | static int e7xxx_process_error_info(struct mem_ctl_info *mci, | 277 | static int e7xxx_process_error_info(struct mem_ctl_info *mci, |
278 | struct e7xxx_error_info *info, | 278 | struct e7xxx_error_info *info, |
279 | int handle_errors) | 279 | int handle_errors) |
280 | { | 280 | { |
281 | int error_found; | 281 | int error_found; |
282 | 282 | ||
@@ -345,7 +345,7 @@ static inline int drb_granularity(u32 drc, int dev_idx) | |||
345 | } | 345 | } |
346 | 346 | ||
347 | static void e7xxx_init_csrows(struct mem_ctl_info *mci, struct pci_dev *pdev, | 347 | static void e7xxx_init_csrows(struct mem_ctl_info *mci, struct pci_dev *pdev, |
348 | int dev_idx, u32 drc) | 348 | int dev_idx, u32 drc) |
349 | { | 349 | { |
350 | unsigned long last_cumul_size; | 350 | unsigned long last_cumul_size; |
351 | int index; | 351 | int index; |
@@ -435,7 +435,7 @@ static int e7xxx_probe1(struct pci_dev *pdev, int dev_idx) | |||
435 | debugf3("%s(): init mci\n", __func__); | 435 | debugf3("%s(): init mci\n", __func__); |
436 | mci->mtype_cap = MEM_FLAG_RDDR; | 436 | mci->mtype_cap = MEM_FLAG_RDDR; |
437 | mci->edac_ctl_cap = EDAC_FLAG_NONE | EDAC_FLAG_SECDED | | 437 | mci->edac_ctl_cap = EDAC_FLAG_NONE | EDAC_FLAG_SECDED | |
438 | EDAC_FLAG_S4ECD4ED; | 438 | EDAC_FLAG_S4ECD4ED; |
439 | /* FIXME - what if different memory types are in different csrows? */ | 439 | /* FIXME - what if different memory types are in different csrows? */ |
440 | mci->mod_name = EDAC_MOD_STR; | 440 | mci->mod_name = EDAC_MOD_STR; |
441 | mci->mod_ver = E7XXX_REVISION; | 441 | mci->mod_ver = E7XXX_REVISION; |
@@ -448,8 +448,8 @@ static int e7xxx_probe1(struct pci_dev *pdev, int dev_idx) | |||
448 | 448 | ||
449 | if (!pvt->bridge_ck) { | 449 | if (!pvt->bridge_ck) { |
450 | e7xxx_printk(KERN_ERR, "error reporting device not found:" | 450 | e7xxx_printk(KERN_ERR, "error reporting device not found:" |
451 | "vendor %x device 0x%x (broken BIOS?)\n", | 451 | "vendor %x device 0x%x (broken BIOS?)\n", |
452 | PCI_VENDOR_ID_INTEL, e7xxx_devs[dev_idx].err_dev); | 452 | PCI_VENDOR_ID_INTEL, e7xxx_devs[dev_idx].err_dev); |
453 | goto fail0; | 453 | goto fail0; |
454 | } | 454 | } |
455 | 455 | ||
@@ -469,8 +469,8 @@ static int e7xxx_probe1(struct pci_dev *pdev, int dev_idx) | |||
469 | pci_read_config_word(pdev, E7XXX_REMAPLIMIT, &pci_data); | 469 | pci_read_config_word(pdev, E7XXX_REMAPLIMIT, &pci_data); |
470 | pvt->remaplimit = ((u32) pci_data) << 14; | 470 | pvt->remaplimit = ((u32) pci_data) << 14; |
471 | e7xxx_printk(KERN_INFO, | 471 | e7xxx_printk(KERN_INFO, |
472 | "tolm = %x, remapbase = %x, remaplimit = %x\n", pvt->tolm, | 472 | "tolm = %x, remapbase = %x, remaplimit = %x\n", pvt->tolm, |
473 | pvt->remapbase, pvt->remaplimit); | 473 | pvt->remapbase, pvt->remaplimit); |
474 | 474 | ||
475 | /* clear any pending errors, or initial state bits */ | 475 | /* clear any pending errors, or initial state bits */ |
476 | e7xxx_get_error_info(mci, &discard); | 476 | e7xxx_get_error_info(mci, &discard); |
@@ -498,10 +498,10 @@ static int e7xxx_probe1(struct pci_dev *pdev, int dev_idx) | |||
498 | debugf3("%s(): success\n", __func__); | 498 | debugf3("%s(): success\n", __func__); |
499 | return 0; | 499 | return 0; |
500 | 500 | ||
501 | fail1: | 501 | fail1: |
502 | pci_dev_put(pvt->bridge_ck); | 502 | pci_dev_put(pvt->bridge_ck); |
503 | 503 | ||
504 | fail0: | 504 | fail0: |
505 | edac_mc_free(mci); | 505 | edac_mc_free(mci); |
506 | 506 | ||
507 | return -ENODEV; | 507 | return -ENODEV; |
@@ -509,13 +509,13 @@ static int e7xxx_probe1(struct pci_dev *pdev, int dev_idx) | |||
509 | 509 | ||
510 | /* returns count (>= 0), or negative on error */ | 510 | /* returns count (>= 0), or negative on error */ |
511 | static int __devinit e7xxx_init_one(struct pci_dev *pdev, | 511 | static int __devinit e7xxx_init_one(struct pci_dev *pdev, |
512 | const struct pci_device_id *ent) | 512 | const struct pci_device_id *ent) |
513 | { | 513 | { |
514 | debugf0("%s()\n", __func__); | 514 | debugf0("%s()\n", __func__); |
515 | 515 | ||
516 | /* wake up and enable device */ | 516 | /* wake up and enable device */ |
517 | return pci_enable_device(pdev) ? | 517 | return pci_enable_device(pdev) ? |
518 | -EIO : e7xxx_probe1(pdev, ent->driver_data); | 518 | -EIO : e7xxx_probe1(pdev, ent->driver_data); |
519 | } | 519 | } |
520 | 520 | ||
521 | static void __devexit e7xxx_remove_one(struct pci_dev *pdev) | 521 | static void __devexit e7xxx_remove_one(struct pci_dev *pdev) |
@@ -578,7 +578,7 @@ module_exit(e7xxx_exit); | |||
578 | 578 | ||
579 | MODULE_LICENSE("GPL"); | 579 | MODULE_LICENSE("GPL"); |
580 | MODULE_AUTHOR("Linux Networx (http://lnxi.com) Thayne Harbaugh et al\n" | 580 | MODULE_AUTHOR("Linux Networx (http://lnxi.com) Thayne Harbaugh et al\n" |
581 | "Based on.work by Dan Hollis et al"); | 581 | "Based on.work by Dan Hollis et al"); |
582 | MODULE_DESCRIPTION("MC support for Intel e7xxx memory controllers"); | 582 | MODULE_DESCRIPTION("MC support for Intel e7xxx memory controllers"); |
583 | module_param(edac_op_state, int, 0444); | 583 | module_param(edac_op_state, int, 0444); |
584 | MODULE_PARM_DESC(edac_op_state, "EDAC Error Reporting state: 0=Poll,1=NMI"); | 584 | MODULE_PARM_DESC(edac_op_state, "EDAC Error Reporting state: 0=Poll,1=NMI"); |