[<prev] [next>] [day] [month] [year] [list]
Message-ID: <888580.13795.qm@web50105.mail.yahoo.com>
Date: Tue, 2 Jan 2007 16:19:50 -0800 (PST)
From: Doug Thompson <norsk5@...oo.com>
To: linux-kernel@...r.kernel.org
Subject: [PATCH 2/2] EDAC: e752x-byte-access-fix
from: Brian Pomerantz <bapper@...sta.com>
Source: MontaVista Software, Inc.
MR: 17525
Type: Defect Fix
Disposition: local
Description:
The reading of the DRA registers should be a byte at a time (one
register at a time) instead of 4 bytes at a time (four registers).
Reading a dword at a time retrieves erronious information from all
but the first register. A change was made to read in each
register in a loop prior to using the data in those registers.
Signed-off-by: Brian Pomerantz <bapper@...sta.com>
Signed-off-by: Dave Jiang <djiang@...sta.com>
Signed-off-by: Doug Thompson <norsk5@...ssion.com>
e752x_edac.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
Index: linux-2.6.18/drivers/edac/e752x_edac.c
===================================================================
--- linux-2.6.18.orig/drivers/edac/e752x_edac.c
+++ linux-2.6.18/drivers/edac/e752x_edac.c
@@ -787,7 +787,12 @@ static void e752x_init_csrows(struct mem
u8 value;
u32 dra, drc, cumul_size;
- pci_read_config_dword(pdev, E752X_DRA, &dra);
+ dra = 0;
+ for (index=0; index < 4; index++) {
+ u8 dra_reg;
+ pci_read_config_byte(pdev, E752X_DRA+index, &dra_reg);
+ dra |= dra_reg << (index * 8);
+ }
pci_read_config_dword(pdev, E752X_DRC, &drc);
drc_chan = dual_channel_active(ddrcsr);
drc_drbg = drc_chan + 1; /* 128 in dual mode, 64 in single */
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists