@@ -1438,6 +1438,7 @@ static void umc_read_base_mask(struct amd64_pvt *pvt)
14381438 u32 * base , * base_sec ;
14391439 u32 * mask , * mask_sec ;
14401440 int cs , umc ;
1441+ u32 tmp ;
14411442
14421443 for_each_umc (umc ) {
14431444 umc_base_reg = get_umc_base (umc ) + UMCCH_BASE_ADDR ;
@@ -1450,13 +1451,17 @@ static void umc_read_base_mask(struct amd64_pvt *pvt)
14501451 base_reg = umc_base_reg + (cs * 4 );
14511452 base_reg_sec = umc_base_reg_sec + (cs * 4 );
14521453
1453- if (!amd_smn_read (pvt -> mc_node_id , base_reg , base ))
1454+ if (!amd_smn_read (pvt -> mc_node_id , base_reg , & tmp )) {
1455+ * base = tmp ;
14541456 edac_dbg (0 , " DCSB%d[%d]=0x%08x reg: 0x%x\n" ,
14551457 umc , cs , * base , base_reg );
1458+ }
14561459
1457- if (!amd_smn_read (pvt -> mc_node_id , base_reg_sec , base_sec ))
1460+ if (!amd_smn_read (pvt -> mc_node_id , base_reg_sec , & tmp )) {
1461+ * base_sec = tmp ;
14581462 edac_dbg (0 , " DCSB_SEC%d[%d]=0x%08x reg: 0x%x\n" ,
14591463 umc , cs , * base_sec , base_reg_sec );
1464+ }
14601465 }
14611466
14621467 umc_mask_reg = get_umc_base (umc ) + UMCCH_ADDR_MASK ;
@@ -1469,13 +1474,17 @@ static void umc_read_base_mask(struct amd64_pvt *pvt)
14691474 mask_reg = umc_mask_reg + (cs * 4 );
14701475 mask_reg_sec = umc_mask_reg_sec + (cs * 4 );
14711476
1472- if (!amd_smn_read (pvt -> mc_node_id , mask_reg , mask ))
1477+ if (!amd_smn_read (pvt -> mc_node_id , mask_reg , & tmp )) {
1478+ * mask = tmp ;
14731479 edac_dbg (0 , " DCSM%d[%d]=0x%08x reg: 0x%x\n" ,
14741480 umc , cs , * mask , mask_reg );
1481+ }
14751482
1476- if (!amd_smn_read (pvt -> mc_node_id , mask_reg_sec , mask_sec ))
1483+ if (!amd_smn_read (pvt -> mc_node_id , mask_reg_sec , & tmp )) {
1484+ * mask_sec = tmp ;
14771485 edac_dbg (0 , " DCSM_SEC%d[%d]=0x%08x reg: 0x%x\n" ,
14781486 umc , cs , * mask_sec , mask_reg_sec );
1487+ }
14791488 }
14801489 }
14811490}
@@ -2894,19 +2903,28 @@ static void umc_read_mc_regs(struct amd64_pvt *pvt)
28942903{
28952904 u8 nid = pvt -> mc_node_id ;
28962905 struct amd64_umc * umc ;
2897- u32 i , umc_base ;
2906+ u32 i , tmp , umc_base ;
28982907
28992908 /* Read registers from each UMC */
29002909 for_each_umc (i ) {
29012910
29022911 umc_base = get_umc_base (i );
29032912 umc = & pvt -> umc [i ];
29042913
2905- amd_smn_read (nid , umc_base + get_umc_reg (pvt , UMCCH_DIMM_CFG ), & umc -> dimm_cfg );
2906- amd_smn_read (nid , umc_base + UMCCH_UMC_CFG , & umc -> umc_cfg );
2907- amd_smn_read (nid , umc_base + UMCCH_SDP_CTRL , & umc -> sdp_ctrl );
2908- amd_smn_read (nid , umc_base + UMCCH_ECC_CTRL , & umc -> ecc_ctrl );
2909- amd_smn_read (nid , umc_base + UMCCH_UMC_CAP_HI , & umc -> umc_cap_hi );
2914+ if (!amd_smn_read (nid , umc_base + get_umc_reg (pvt , UMCCH_DIMM_CFG ), & tmp ))
2915+ umc -> dimm_cfg = tmp ;
2916+
2917+ if (!amd_smn_read (nid , umc_base + UMCCH_UMC_CFG , & tmp ))
2918+ umc -> umc_cfg = tmp ;
2919+
2920+ if (!amd_smn_read (nid , umc_base + UMCCH_SDP_CTRL , & tmp ))
2921+ umc -> sdp_ctrl = tmp ;
2922+
2923+ if (!amd_smn_read (nid , umc_base + UMCCH_ECC_CTRL , & tmp ))
2924+ umc -> ecc_ctrl = tmp ;
2925+
2926+ if (!amd_smn_read (nid , umc_base + UMCCH_UMC_CAP_HI , & tmp ))
2927+ umc -> umc_cap_hi = tmp ;
29102928 }
29112929}
29122930
@@ -3635,16 +3653,21 @@ static void gpu_read_mc_regs(struct amd64_pvt *pvt)
36353653{
36363654 u8 nid = pvt -> mc_node_id ;
36373655 struct amd64_umc * umc ;
3638- u32 i , umc_base ;
3656+ u32 i , tmp , umc_base ;
36393657
36403658 /* Read registers from each UMC */
36413659 for_each_umc (i ) {
36423660 umc_base = gpu_get_umc_base (pvt , i , 0 );
36433661 umc = & pvt -> umc [i ];
36443662
3645- amd_smn_read (nid , umc_base + UMCCH_UMC_CFG , & umc -> umc_cfg );
3646- amd_smn_read (nid , umc_base + UMCCH_SDP_CTRL , & umc -> sdp_ctrl );
3647- amd_smn_read (nid , umc_base + UMCCH_ECC_CTRL , & umc -> ecc_ctrl );
3663+ if (!amd_smn_read (nid , umc_base + UMCCH_UMC_CFG , & tmp ))
3664+ umc -> umc_cfg = tmp ;
3665+
3666+ if (!amd_smn_read (nid , umc_base + UMCCH_SDP_CTRL , & tmp ))
3667+ umc -> sdp_ctrl = tmp ;
3668+
3669+ if (!amd_smn_read (nid , umc_base + UMCCH_ECC_CTRL , & tmp ))
3670+ umc -> ecc_ctrl = tmp ;
36483671 }
36493672}
36503673
0 commit comments