提交 ba6c5c62 编写于 作者: M Mauro Carvalho Chehab

i7core_edac: maps all sockets as if ther are one MC controller

Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
上级 67166af4
...@@ -409,12 +409,12 @@ static int i7core_get_active_channels(u8 socket, unsigned *channels, ...@@ -409,12 +409,12 @@ static int i7core_get_active_channels(u8 socket, unsigned *channels,
return 0; return 0;
} }
static int get_dimm_config(struct mem_ctl_info *mci, u8 socket) static int get_dimm_config(struct mem_ctl_info *mci, int *csrow, u8 socket)
{ {
struct i7core_pvt *pvt = mci->pvt_info; struct i7core_pvt *pvt = mci->pvt_info;
struct csrow_info *csr; struct csrow_info *csr;
struct pci_dev *pdev; struct pci_dev *pdev;
int i, j, csrow = 0; int i, j;
unsigned long last_page = 0; unsigned long last_page = 0;
enum edac_type mode; enum edac_type mode;
enum mem_type mtype; enum mem_type mtype;
...@@ -534,7 +534,7 @@ static int get_dimm_config(struct mem_ctl_info *mci, u8 socket) ...@@ -534,7 +534,7 @@ static int get_dimm_config(struct mem_ctl_info *mci, u8 socket)
npages = size << (20 - PAGE_SHIFT); npages = size << (20 - PAGE_SHIFT);
#endif #endif
csr = &mci->csrows[csrow]; csr = &mci->csrows[*csrow];
csr->first_page = last_page + 1; csr->first_page = last_page + 1;
last_page += npages; last_page += npages;
csr->last_page = last_page; csr->last_page = last_page;
...@@ -542,7 +542,7 @@ static int get_dimm_config(struct mem_ctl_info *mci, u8 socket) ...@@ -542,7 +542,7 @@ static int get_dimm_config(struct mem_ctl_info *mci, u8 socket)
csr->page_mask = 0; csr->page_mask = 0;
csr->grain = 8; csr->grain = 8;
csr->csrow_idx = csrow; csr->csrow_idx = *csrow;
csr->nr_channels = 1; csr->nr_channels = 1;
csr->channels[0].chan_idx = i; csr->channels[0].chan_idx = i;
...@@ -565,7 +565,7 @@ static int get_dimm_config(struct mem_ctl_info *mci, u8 socket) ...@@ -565,7 +565,7 @@ static int get_dimm_config(struct mem_ctl_info *mci, u8 socket)
csr->edac_mode = mode; csr->edac_mode = mode;
csr->mtype = mtype; csr->mtype = mtype;
csrow++; (*csrow)++;
} }
pci_read_config_dword(pdev, MC_SAG_CH_0, &value[0]); pci_read_config_dword(pdev, MC_SAG_CH_0, &value[0]);
...@@ -1424,6 +1424,7 @@ static int __devinit i7core_probe(struct pci_dev *pdev, ...@@ -1424,6 +1424,7 @@ static int __devinit i7core_probe(struct pci_dev *pdev,
struct i7core_pvt *pvt; struct i7core_pvt *pvt;
int num_channels = 0; int num_channels = 0;
int num_csrows = 0; int num_csrows = 0;
int csrow = 0;
int dev_idx = id->driver_data; int dev_idx = id->driver_data;
int rc, i; int rc, i;
u8 sockets; u8 sockets;
...@@ -1495,7 +1496,7 @@ static int __devinit i7core_probe(struct pci_dev *pdev, ...@@ -1495,7 +1496,7 @@ static int __devinit i7core_probe(struct pci_dev *pdev,
/* Get dimm basic config */ /* Get dimm basic config */
for (i = 0; i < sockets; i++) for (i = 0; i < sockets; i++)
get_dimm_config(mci, i); get_dimm_config(mci, &csrow, i);
/* add this new MC control structure to EDAC's list of MCs */ /* add this new MC control structure to EDAC's list of MCs */
if (unlikely(edac_mc_add_mc(mci))) { if (unlikely(edac_mc_add_mc(mci))) {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册