Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 273292
b: refs/heads/master
c: 27100db
h: refs/heads/master
v: v3
  • Loading branch information
Mauro Carvalho Chehab committed Oct 31, 2011
1 parent 7989968 commit 2a56a18
Show file tree
Hide file tree
Showing 2 changed files with 40 additions and 8 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: e8b6a1271035e621d1c4b22403c697b5c969728c
refs/heads/master: 27100db0e0d381d24b6f3cb1a4f439996e7c00c8
46 changes: 39 additions & 7 deletions trunk/drivers/edac/i7core_edac.c
Original file line number Diff line number Diff line change
Expand Up @@ -263,7 +263,7 @@ struct i7core_pvt {
unsigned long rdimm_ce_count[NUM_CHANS][MAX_DIMMS];
int rdimm_last_ce_count[NUM_CHANS][MAX_DIMMS];

unsigned int is_registered;
bool is_registered, enable_scrub;

/* mcelog glue */
struct edac_mce edac_mce;
Expand Down Expand Up @@ -1487,8 +1487,10 @@ static int mci_bind_devs(struct mem_ctl_info *mci,
struct i7core_pvt *pvt = mci->pvt_info;
struct pci_dev *pdev;
int i, func, slot;
char *family;

pvt->is_registered = 0;
pvt->is_registered = false;
pvt->enable_scrub = false;
for (i = 0; i < i7core_dev->n_devs; i++) {
pdev = i7core_dev->pdev[i];
if (!pdev)
Expand All @@ -1504,9 +1506,37 @@ static int mci_bind_devs(struct mem_ctl_info *mci,
if (unlikely(func > MAX_CHAN_FUNC))
goto error;
pvt->pci_ch[slot - 4][func] = pdev;
} else if (!slot && !func)
} else if (!slot && !func) {
pvt->pci_noncore = pdev;
else

/* Detect the processor family */
switch (pdev->device) {
case PCI_DEVICE_ID_INTEL_I7_NONCORE:
family = "Xeon 35xx/ i7core";
pvt->enable_scrub = false;
break;
case PCI_DEVICE_ID_INTEL_LYNNFIELD_NONCORE_ALT:
family = "i7-800/i5-700";
pvt->enable_scrub = false;
break;
case PCI_DEVICE_ID_INTEL_LYNNFIELD_NONCORE:
family = "Xeon 34xx";
pvt->enable_scrub = false;
break;
case PCI_DEVICE_ID_INTEL_I7_NONCORE_ALT:
family = "Xeon 55xx";
pvt->enable_scrub = true;
break;
case PCI_DEVICE_ID_INTEL_LYNNFIELD_NONCORE_REV2:
family = "Xeon 56xx / i7-900";
pvt->enable_scrub = true;
break;
default:
family = "unknown";
pvt->enable_scrub = false;
}
debugf0("Detected a processor type %s\n", family);
} else
goto error;

debugf0("Associated fn %d.%d, dev = %p, socket %d\n",
Expand All @@ -1515,7 +1545,7 @@ static int mci_bind_devs(struct mem_ctl_info *mci,

if (PCI_SLOT(pdev->devfn) == 3 &&
PCI_FUNC(pdev->devfn) == 2)
pvt->is_registered = 1;
pvt->is_registered = true;
}

return 0;
Expand Down Expand Up @@ -2060,7 +2090,8 @@ static void i7core_unregister_mci(struct i7core_dev *i7core_dev)
__func__, mci, &i7core_dev->pdev[0]->dev);

/* Disable scrubrate setting */
disable_sdram_scrub_setting(mci);
if (pvt->enable_scrub)
disable_sdram_scrub_setting(mci);

/* Disable MCE NMI handler */
edac_mce_unregister(&pvt->edac_mce);
Expand Down Expand Up @@ -2136,7 +2167,8 @@ static int i7core_register_mci(struct i7core_dev *i7core_dev)
mci->edac_check = i7core_check_error;

/* Enable scrubrate setting */
enable_sdram_scrub_setting(mci);
if (pvt->enable_scrub)
enable_sdram_scrub_setting(mci);

/* add this new MC control structure to EDAC's list of MCs */
if (unlikely(edac_mc_add_mc(mci))) {
Expand Down

0 comments on commit 2a56a18

Please sign in to comment.