diff options
Diffstat (limited to 'drivers/edac/amd64_edac.c')
-rw-r--r-- | drivers/edac/amd64_edac.c | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/drivers/edac/amd64_edac.c b/drivers/edac/amd64_edac.c index 4f4ac82382f7..a38831c82649 100644 --- a/drivers/edac/amd64_edac.c +++ b/drivers/edac/amd64_edac.c | |||
@@ -1122,7 +1122,7 @@ static void k8_read_dram_base_limit(struct amd64_pvt *pvt, int dram) | |||
1122 | debugf0("Reading K8_DRAM_BASE_LOW failed\n"); | 1122 | debugf0("Reading K8_DRAM_BASE_LOW failed\n"); |
1123 | 1123 | ||
1124 | /* Extract parts into separate data entries */ | 1124 | /* Extract parts into separate data entries */ |
1125 | pvt->dram_base[dram] = ((u64) low & 0xFFFF0000) << 24; | 1125 | pvt->dram_base[dram] = ((u64) low & 0xFFFF0000) << 8; |
1126 | pvt->dram_IntlvEn[dram] = (low >> 8) & 0x7; | 1126 | pvt->dram_IntlvEn[dram] = (low >> 8) & 0x7; |
1127 | pvt->dram_rw_en[dram] = (low & 0x3); | 1127 | pvt->dram_rw_en[dram] = (low & 0x3); |
1128 | 1128 | ||
@@ -1135,7 +1135,7 @@ static void k8_read_dram_base_limit(struct amd64_pvt *pvt, int dram) | |||
1135 | * Extract parts into separate data entries. Limit is the HIGHEST memory | 1135 | * Extract parts into separate data entries. Limit is the HIGHEST memory |
1136 | * location of the region, so lower 24 bits need to be all ones | 1136 | * location of the region, so lower 24 bits need to be all ones |
1137 | */ | 1137 | */ |
1138 | pvt->dram_limit[dram] = (((u64) low & 0xFFFF0000) << 24) | 0x00FFFFFF; | 1138 | pvt->dram_limit[dram] = (((u64) low & 0xFFFF0000) << 8) | 0x00FFFFFF; |
1139 | pvt->dram_IntlvSel[dram] = (low >> 8) & 0x7; | 1139 | pvt->dram_IntlvSel[dram] = (low >> 8) & 0x7; |
1140 | pvt->dram_DstNode[dram] = (low & 0x7); | 1140 | pvt->dram_DstNode[dram] = (low & 0x7); |
1141 | } | 1141 | } |
@@ -1369,7 +1369,7 @@ static void f10_read_dram_base_limit(struct amd64_pvt *pvt, int dram) | |||
1369 | pvt->dram_IntlvEn[dram] = (low_base >> 8) & 0x7; | 1369 | pvt->dram_IntlvEn[dram] = (low_base >> 8) & 0x7; |
1370 | 1370 | ||
1371 | pvt->dram_base[dram] = (((u64)high_base & 0x000000FF) << 40) | | 1371 | pvt->dram_base[dram] = (((u64)high_base & 0x000000FF) << 40) | |
1372 | (((u64)low_base & 0xFFFF0000) << 24); | 1372 | (((u64)low_base & 0xFFFF0000) << 8); |
1373 | 1373 | ||
1374 | low_offset = K8_DRAM_LIMIT_LOW + (dram << 3); | 1374 | low_offset = K8_DRAM_LIMIT_LOW + (dram << 3); |
1375 | high_offset = F10_DRAM_LIMIT_HIGH + (dram << 3); | 1375 | high_offset = F10_DRAM_LIMIT_HIGH + (dram << 3); |
@@ -1391,7 +1391,7 @@ static void f10_read_dram_base_limit(struct amd64_pvt *pvt, int dram) | |||
1391 | * memory location of the region, so low 24 bits need to be all ones. | 1391 | * memory location of the region, so low 24 bits need to be all ones. |
1392 | */ | 1392 | */ |
1393 | pvt->dram_limit[dram] = (((u64)high_limit & 0x000000FF) << 40) | | 1393 | pvt->dram_limit[dram] = (((u64)high_limit & 0x000000FF) << 40) | |
1394 | (((u64) low_limit & 0xFFFF0000) << 24) | | 1394 | (((u64) low_limit & 0xFFFF0000) << 8) | |
1395 | 0x00FFFFFF; | 1395 | 0x00FFFFFF; |
1396 | } | 1396 | } |
1397 | 1397 | ||
@@ -2254,7 +2254,7 @@ static inline void __amd64_decode_bus_error(struct mem_ctl_info *mci, | |||
2254 | { | 2254 | { |
2255 | u32 ec = ERROR_CODE(info->nbsl); | 2255 | u32 ec = ERROR_CODE(info->nbsl); |
2256 | u32 xec = EXT_ERROR_CODE(info->nbsl); | 2256 | u32 xec = EXT_ERROR_CODE(info->nbsl); |
2257 | int ecc_type = info->nbsh & (0x3 << 13); | 2257 | int ecc_type = (info->nbsh >> 13) & 0x3; |
2258 | 2258 | ||
2259 | /* Bail early out if this was an 'observed' error */ | 2259 | /* Bail early out if this was an 'observed' error */ |
2260 | if (PP(ec) == K8_NBSL_PP_OBS) | 2260 | if (PP(ec) == K8_NBSL_PP_OBS) |
@@ -3163,7 +3163,7 @@ static int __init amd64_edac_init(void) | |||
3163 | opstate_init(); | 3163 | opstate_init(); |
3164 | 3164 | ||
3165 | if (cache_k8_northbridges() < 0) | 3165 | if (cache_k8_northbridges() < 0) |
3166 | goto err_exit; | 3166 | return err; |
3167 | 3167 | ||
3168 | err = pci_register_driver(&amd64_pci_driver); | 3168 | err = pci_register_driver(&amd64_pci_driver); |
3169 | if (err) | 3169 | if (err) |
@@ -3189,8 +3189,6 @@ static int __init amd64_edac_init(void) | |||
3189 | 3189 | ||
3190 | err_2nd_stage: | 3190 | err_2nd_stage: |
3191 | debugf0("2nd stage failed\n"); | 3191 | debugf0("2nd stage failed\n"); |
3192 | |||
3193 | err_exit: | ||
3194 | pci_unregister_driver(&amd64_pci_driver); | 3192 | pci_unregister_driver(&amd64_pci_driver); |
3195 | 3193 | ||
3196 | return err; | 3194 | return err; |