aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/edac
diff options
context:
space:
mode:
authorMauro Carvalho Chehab <mchehab@redhat.com>2009-07-18 10:44:30 -0300
committerMauro Carvalho Chehab <mchehab@redhat.com>2010-05-10 11:44:53 -0300
commitec6df24c15822e671801eeeb53758e14f3b28381 (patch)
treec364138af33799161128f1c95b538a0eded7215b /drivers/edac
parentc77720b9544d8825ff5b9546d0ee038cfa4d4eb2 (diff)
downloadkernel_samsung_crespo-ec6df24c15822e671801eeeb53758e14f3b28381.zip
kernel_samsung_crespo-ec6df24c15822e671801eeeb53758e14f3b28381.tar.gz
kernel_samsung_crespo-ec6df24c15822e671801eeeb53758e14f3b28381.tar.bz2
i7core: better document i7core_get_active_channels()
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/edac')
-rw-r--r--drivers/edac/i7core_edac.c18
1 files changed, 17 insertions, 1 deletions
diff --git a/drivers/edac/i7core_edac.c b/drivers/edac/i7core_edac.c
index 79636b5..bf03740 100644
--- a/drivers/edac/i7core_edac.c
+++ b/drivers/edac/i7core_edac.c
@@ -333,7 +333,6 @@ static inline int numcol(u32 col)
return cols[col & 0x3];
}
-
/****************************************************************************
Memory check routines
****************************************************************************/
@@ -355,6 +354,23 @@ static struct pci_dev *get_pdev_slot_func(u8 socket, unsigned slot,
return NULL;
}
+/**
+ * i7core_get_active_channels() - gets the number of channels and csrows
+ * @socket: Quick Path Interconnect socket
+ * @channels: Number of channels that will be returned
+ * @csrows: Number of csrows found
+ *
+ * Since EDAC core needs to know in advance the number of available channels
+ * and csrows, in order to allocate memory for csrows/channels, it is needed
+ * to run two similar steps. At the first step, implemented on this function,
+ * it checks the number of csrows/channels present at one socket.
+ * this is used in order to properly allocate the size of mci components.
+ *
+ * It should be noticed that none of the current available datasheets explain
+ * or even mention how csrows are seen by the memory controller. So, we need
+ * to add a fake description for csrows.
+ * So, this driver is attributing one DIMM memory for one csrow.
+ */
static int i7core_get_active_channels(u8 socket, unsigned *channels,
unsigned *csrows)
{