Messages in this thread Patch in this message | | | Date | Tue, 2 Jan 2007 16:19:50 -0800 (PST) | From | Doug Thompson <> | Subject | [PATCH 2/2] EDAC: e752x-byte-access-fix |
| |
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 */ - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |