public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH 2/2] EDAC: e752x-byte-access-fix
@ 2007-01-03  0:19 Doug Thompson
  0 siblings, 0 replies; only message in thread
From: Doug Thompson @ 2007-01-03  0:19 UTC (permalink / raw)
  To: linux-kernel

from: Brian Pomerantz <bapper@mvista.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@mvista.com>
Signed-off-by: Dave Jiang <djiang@mvista.com>
Signed-off-by: Doug Thompson <norsk5@xmission.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 */


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2007-01-03  0:19 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-01-03  0:19 [PATCH 2/2] EDAC: e752x-byte-access-fix Doug Thompson

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox