2013-10-30 16:27:35

by Aristeu Rozanski

[permalink] [raw]
Subject: [PATCH 09/12] sb_edac: enable multiple PCI id tables to be used

This is needed to allow separated PCI id tables for Sandy Bridge and Ivy
Bridge.

Signed-off-by: Aristeu Rozanski <[email protected]>
---
drivers/edac/sb_edac.c | 22 +++++++++++++---------
1 files changed, 13 insertions(+), 9 deletions(-)

diff --git a/drivers/edac/sb_edac.c b/drivers/edac/sb_edac.c
index bf305a2..3e07c28 100644
--- a/drivers/edac/sb_edac.c
+++ b/drivers/edac/sb_edac.c
@@ -1088,12 +1088,6 @@ static void sbridge_put_all_devices(void)
}
}

-/*
- * sbridge_get_all_devices Find and perform 'get' operation on the MCH's
- * device/functions we want to reference for this driver
- *
- * Need to 'get' device 16 func 1 and func 2
- */
static int sbridge_get_onedevice(struct pci_dev **prev,
u8 *num_mc,
const struct pci_id_table *table,
@@ -1195,11 +1189,21 @@ static int sbridge_get_onedevice(struct pci_dev **prev,
return 0;
}

-static int sbridge_get_all_devices(u8 *num_mc)
+/*
+ * sbridge_get_all_devices - Find and perform 'get' operation on the MCH's
+ * device/functions we want to reference for this driver.
+ * Need to 'get' device 16 func 1 and func 2.
+ * @num_mc: pointer to the memory controllers count, to be incremented in case
+ * of success.
+ * @table: model specific table
+ *
+ * returns 0 in case of success or error code
+ */
+static int sbridge_get_all_devices(u8 *num_mc,
+ const struct pci_id_table *table)
{
int i, rc;
struct pci_dev *pdev = NULL;
- const struct pci_id_table *table = pci_dev_descr_sbridge_table;

while (table && table->descr) {
for (i = 0; i < table->n_devs; i++) {
@@ -1719,7 +1723,7 @@ static int sbridge_probe(struct pci_dev *pdev, const struct pci_device_id *id)
}
probed++;

- rc = sbridge_get_all_devices(&num_mc);
+ rc = sbridge_get_all_devices(&num_mc, pci_dev_descr_sbridge_table);
if (unlikely(rc < 0))
goto fail0;
mc = 0;
--
1.7.1