/linux/drivers/gpu/drm/amd/amdgpu/ |
H A D | amdgpu_umc.c | 60 kcalloc(adev->umc.max_ras_err_cnt_per_query, in amdgpu_umc_page_retirement_mca() 69 err_data.err_addr_len = adev->umc.max_ras_err_cnt_per_query; in amdgpu_umc_page_retirement_mca() 109 if (adev->umc.ras && adev->umc.ras->ras_block.hw_ops && in amdgpu_umc_handle_bad_pages() 110 adev->umc.ras->ras_block.hw_ops->query_ras_error_count) in amdgpu_umc_handle_bad_pages() 111 adev->umc.ras->ras_block.hw_ops->query_ras_error_count(adev, ras_error_status); in amdgpu_umc_handle_bad_pages() 113 if (adev->umc.ras && adev->umc.ras->ras_block.hw_ops && in amdgpu_umc_handle_bad_pages() 114 adev->umc.ras->ras_block.hw_ops->query_ras_error_address && in amdgpu_umc_handle_bad_pages() 115 adev->umc.max_ras_err_cnt_per_query) { in amdgpu_umc_handle_bad_pages() 117 kcalloc(adev->umc.max_ras_err_cnt_per_query, in amdgpu_umc_handle_bad_pages() 127 err_data->err_addr_len = adev->umc.max_ras_err_cnt_per_query; in amdgpu_umc_handle_bad_pages() [all …]
|
H A D | umc_v8_10.c | 75 return adev->umc.channel_offs * ch_inst + UMC_8_INST_DIST * umc_inst + in get_umc_v8_10_reg_offset() 216 adev->umc.channel_idx_tbl[node_inst * adev->umc.umc_inst_num * in umc_v8_10_convert_error_address() 217 adev->umc.channel_inst_num + in umc_v8_10_convert_error_address() 218 umc_inst * adev->umc.channel_inst_num + in umc_v8_10_convert_error_address() 343 eccinfo_table_idx = node_inst * adev->umc.umc_inst_num * in umc_v8_10_ecc_info_query_correctable_error_count() 344 adev->umc.channel_inst_num + in umc_v8_10_ecc_info_query_correctable_error_count() 345 umc_inst * adev->umc.channel_inst_num + in umc_v8_10_ecc_info_query_correctable_error_count() 362 eccinfo_table_idx = node_inst * adev->umc.umc_inst_num * in umc_v8_10_ecc_info_query_uncorrectable_error_count() 363 adev->umc.channel_inst_num + in umc_v8_10_ecc_info_query_uncorrectable_error_count() 364 umc_inst * adev->umc.channel_inst_num + in umc_v8_10_ecc_info_query_uncorrectable_error_count() [all …]
|
H A D | umc_v6_7.c | 50 uint32_t index = umc_inst * adev->umc.channel_inst_num + ch_inst; in get_umc_v6_7_reg_offset() 57 return adev->umc.channel_offs * ch_inst + UMC_V6_7_INST_DIST * umc_inst; in get_umc_v6_7_reg_offset() 106 eccinfo_table_idx = umc_inst * adev->umc.channel_inst_num + ch_inst; in umc_v6_7_ecc_info_query_correctable_error_count() 119 adev->umc.channel_idx_tbl[umc_inst * adev->umc.channel_inst_num + ch_inst]; in umc_v6_7_ecc_info_query_correctable_error_count() 148 eccinfo_table_idx = umc_inst * adev->umc.channel_inst_num + ch_inst; in umc_v6_7_ecc_info_querry_uncorrectable_error_count() 195 adev->umc.channel_idx_tbl[umc_inst * adev->umc.channel_inst_num + ch_inst]; in umc_v6_7_convert_error_address() 231 eccinfo_table_idx = umc_inst * adev->umc.channel_inst_num + ch_inst; in umc_v6_7_ecc_info_query_error_address() 319 adev->umc.channel_idx_tbl[umc_inst * adev->umc.channel_inst_num + ch_inst]; in umc_v6_7_query_correctable_error_count()
|
H A D | amdgpu_umc.h | 45 #define LOOP_UMC_INST(umc_inst) for ((umc_inst) = 0; (umc_inst) < adev->umc.umc_inst_num; (umc_inst… 46 #define LOOP_UMC_CH_INST(ch_inst) for ((ch_inst) = 0; (ch_inst) < adev->umc.channel_inst_num; (ch_i… 50 for_each_set_bit((node_inst), &(adev->umc.active_mask), adev->umc.node_inst_num) 165 uint64_t err_addr, uint32_t ch, uint32_t umc,
|
H A D | gmc_v9_0.c | 1466 adev->umc.funcs = &umc_v6_0_funcs; in gmc_v9_0_set_umc_funcs() 1469 adev->umc.max_ras_err_cnt_per_query = UMC_V6_1_TOTAL_CHANNEL_NUM; in gmc_v9_0_set_umc_funcs() 1470 adev->umc.channel_inst_num = UMC_V6_1_CHANNEL_INSTANCE_NUM; in gmc_v9_0_set_umc_funcs() 1471 adev->umc.umc_inst_num = UMC_V6_1_UMC_INSTANCE_NUM; in gmc_v9_0_set_umc_funcs() 1472 adev->umc.channel_offs = UMC_V6_1_PER_CHANNEL_OFFSET_VG20; in gmc_v9_0_set_umc_funcs() 1473 adev->umc.retire_unit = 1; in gmc_v9_0_set_umc_funcs() 1474 adev->umc.channel_idx_tbl = &umc_v6_1_channel_idx_tbl[0][0]; in gmc_v9_0_set_umc_funcs() 1475 adev->umc.ras = &umc_v6_1_ras; in gmc_v9_0_set_umc_funcs() 1478 adev->umc.max_ras_err_cnt_per_query = UMC_V6_1_TOTAL_CHANNEL_NUM; in gmc_v9_0_set_umc_funcs() 1479 adev->umc.channel_inst_num = UMC_V6_1_CHANNEL_INSTANCE_NUM; in gmc_v9_0_set_umc_funcs() [all …]
|
H A D | gmc_v11_0.c | 552 adev->umc.channel_inst_num = UMC_V8_10_CHANNEL_INSTANCE_NUM; in gmc_v11_0_set_umc_funcs() 553 adev->umc.umc_inst_num = UMC_V8_10_UMC_INSTANCE_NUM; in gmc_v11_0_set_umc_funcs() 554 adev->umc.max_ras_err_cnt_per_query = UMC_V8_10_TOTAL_CHANNEL_NUM(adev); in gmc_v11_0_set_umc_funcs() 555 adev->umc.channel_offs = UMC_V8_10_PER_CHANNEL_OFFSET; in gmc_v11_0_set_umc_funcs() 556 adev->umc.retire_unit = UMC_V8_10_NA_COL_2BITS_POWER_OF_2_NUM; in gmc_v11_0_set_umc_funcs() 557 if (adev->umc.node_inst_num == 4) in gmc_v11_0_set_umc_funcs() 558 adev->umc.channel_idx_tbl = &umc_v8_10_channel_idx_tbl_ext0[0][0][0]; in gmc_v11_0_set_umc_funcs() 560 adev->umc.channel_idx_tbl = &umc_v8_10_channel_idx_tbl[0][0][0]; in gmc_v11_0_set_umc_funcs() 561 adev->umc.ras = &umc_v8_10_ras; in gmc_v11_0_set_umc_funcs() 928 if (adev->umc.funcs && adev->umc.funcs->init_registers) in gmc_v11_0_hw_init() [all …]
|
H A D | umc_v8_7.c | 47 return adev->umc.channel_offs*ch_inst + UMC_8_INST_DIST*umc_inst; in get_umc_v8_7_reg_offset() 58 eccinfo_table_idx = umc_inst * adev->umc.channel_inst_num + ch_inst; in umc_v8_7_ecc_info_query_correctable_error_count() 77 eccinfo_table_idx = umc_inst * adev->umc.channel_inst_num + ch_inst; in umc_v8_7_ecc_info_querry_uncorrectable_error_count() 119 adev->umc.channel_idx_tbl[umc_inst * adev->umc.channel_inst_num + ch_inst]; in umc_v8_7_convert_error_address() 139 eccinfo_table_idx = umc_inst * adev->umc.channel_inst_num + ch_inst; in umc_v8_7_ecc_info_query_error_address()
|
H A D | gmc_v10_0.c | 589 adev->umc.max_ras_err_cnt_per_query = UMC_V8_7_TOTAL_CHANNEL_NUM; in gmc_v10_0_set_umc_funcs() 590 adev->umc.channel_inst_num = UMC_V8_7_CHANNEL_INSTANCE_NUM; in gmc_v10_0_set_umc_funcs() 591 adev->umc.umc_inst_num = UMC_V8_7_UMC_INSTANCE_NUM; in gmc_v10_0_set_umc_funcs() 592 adev->umc.channel_offs = UMC_V8_7_PER_CHANNEL_OFFSET_SIENNA; in gmc_v10_0_set_umc_funcs() 593 adev->umc.retire_unit = 1; in gmc_v10_0_set_umc_funcs() 594 adev->umc.channel_idx_tbl = &umc_v8_7_channel_idx_tbl[0][0]; in gmc_v10_0_set_umc_funcs() 595 adev->umc.ras = &umc_v8_7_ras; in gmc_v10_0_set_umc_funcs() 1018 if (adev->umc.funcs && adev->umc.funcs->init_registers) in gmc_v10_0_hw_init() 1019 adev->umc.funcs->init_registers(adev); in gmc_v10_0_hw_init()
|
H A D | gmc_v12_0.c | 586 adev->umc.channel_inst_num = UMC_V8_14_CHANNEL_INSTANCE_NUM; in gmc_v12_0_set_umc_funcs() 587 adev->umc.umc_inst_num = UMC_V8_14_UMC_INSTANCE_NUM(adev); in gmc_v12_0_set_umc_funcs() 588 adev->umc.node_inst_num = 0; in gmc_v12_0_set_umc_funcs() 589 adev->umc.max_ras_err_cnt_per_query = UMC_V8_14_TOTAL_CHANNEL_NUM(adev); in gmc_v12_0_set_umc_funcs() 590 adev->umc.channel_offs = UMC_V8_14_PER_CHANNEL_OFFSET; in gmc_v12_0_set_umc_funcs() 591 adev->umc.ras = &umc_v8_14_ras; in gmc_v12_0_set_umc_funcs() 928 if (adev->umc.funcs && adev->umc.funcs->init_registers) in gmc_v12_0_hw_init() 929 adev->umc.funcs->init_registers(adev); in gmc_v12_0_hw_init()
|
H A D | amdgpu_ras.c | 1029 if (adev->umc.ras && adev->umc.ras->ras_block.hw_ops && in amdgpu_ras_get_ecc_info() 1030 adev->umc.ras->ras_block.hw_ops->query_ras_error_count) in amdgpu_ras_get_ecc_info() 1031 adev->umc.ras->ras_block.hw_ops->query_ras_error_count(adev, err_data); in amdgpu_ras_get_ecc_info() 1036 if (adev->umc.ras && adev->umc.ras->ras_block.hw_ops && in amdgpu_ras_get_ecc_info() 1037 adev->umc.ras->ras_block.hw_ops->query_ras_error_address) in amdgpu_ras_get_ecc_info() 1038 adev->umc.ras->ras_block.hw_ops->query_ras_error_address(adev, err_data); in amdgpu_ras_get_ecc_info() 1040 if (adev->umc.ras && in amdgpu_ras_get_ecc_info() 1041 adev->umc.ras->ecc_info_query_ras_error_count) in amdgpu_ras_get_ecc_info() 1042 adev->umc.ras->ecc_info_query_ras_error_count(adev, err_data); in amdgpu_ras_get_ecc_info() 1044 if (adev->umc.ras && in amdgpu_ras_get_ecc_info() [all …]
|
H A D | umc_v6_1.c | 91 return adev->umc.channel_offs*ch_inst + UMC_6_INST_DIST*umc_inst; in get_umc_6_reg_offset() 303 …uint32_t channel_index = adev->umc.channel_idx_tbl[umc_inst * adev->umc.channel_inst_num + ch_inst… in umc_v6_1_query_error_address()
|
H A D | umc_v8_14.h | 32 #define UMC_V8_14_UMC_INSTANCE_NUM(adev) ((adev)->umc.node_inst_num)
|
H A D | umc_v8_14.c | 34 return adev->umc.channel_offs * ch_inst + UMC_V8_14_INST_DIST * umc_inst; in get_umc_v8_14_reg_offset()
|
H A D | amdgpu_mca.c | 33 if (adev->umc.ras->check_ecc_err_status) in amdgpu_mca_is_deferred_error() 34 return adev->umc.ras->check_ecc_err_status(adev, in amdgpu_mca_is_deferred_error()
|
H A D | umc_v12_0.c | 39 uint32_t index = umc_inst * adev->umc.channel_inst_num + ch_inst; in get_umc_v12_0_reg_offset() 45 return adev->umc.channel_offs * ch_inst + UMC_V12_0_INST_DIST * umc_inst + in get_umc_v12_0_reg_offset()
|
H A D | amdgpu_ras_eeprom.c | 733 control->ras_num_recs * adev->umc.retire_unit; in amdgpu_ras_eeprom_append_table() 1417 control->ras_num_recs * adev->umc.retire_unit; in amdgpu_ras_eeprom_check()
|
H A D | amdgpu_discovery.c | 732 adev->umc.active_mask = ((1 << adev->umc.node_inst_num) - 1) & in amdgpu_discovery_read_from_harvest_table() 1386 adev->umc.node_inst_num++; in amdgpu_discovery_reg_base_init()
|
H A D | amdgpu.h | 1067 struct amdgpu_umc umc; member
|
/linux/drivers/edac/ |
H A D | amd64_edac.c | 1084 if (!(pvt->umc[i].sdp_ctrl & UMC_SDP_INIT)) in umc_determine_edac_cap() 1090 if (pvt->umc[i].umc_cfg & BIT(12)) in umc_determine_edac_cap() 1269 static int umc_addr_mask_to_cs_size(struct amd64_pvt *pvt, u8 umc, in umc_addr_mask_to_cs_size() argument 1313 addr_mask_orig = pvt->csels[umc].csmasks_sec[cs_mask_nr]; in umc_addr_mask_to_cs_size() 1315 addr_mask_orig = pvt->csels[umc].csmasks[cs_mask_nr]; in umc_addr_mask_to_cs_size() 1343 struct amd64_umc *umc; in umc_dump_misc_regs() local 1347 umc = &pvt->umc[i]; in umc_dump_misc_regs() 1349 edac_dbg(1, "UMC%d DIMM cfg: 0x%x\n", i, umc->dimm_cfg); in umc_dump_misc_regs() 1350 edac_dbg(1, "UMC%d UMC cfg: 0x%x\n", i, umc->umc_cfg); in umc_dump_misc_regs() 1351 edac_dbg(1, "UMC%d SDP ctrl: 0x%x\n", i, umc->sdp_ctrl); in umc_dump_misc_regs() [all …]
|
H A D | amd64_edac.h | 382 struct amd64_umc *umc; /* UMC registers */ member
|
/linux/drivers/ras/amd/atl/ |
H A D | Makefile | 16 amd_atl-y += umc.o
|
/linux/drivers/scsi/ |
H A D | megaraid.c | 3500 megacmd_t __user *umc; in mega_n_to_m() local 3520 umc = MBOX_P(uiocp); in mega_n_to_m() 3522 if (get_user(upthru, (mega_passthru __user * __user *)&umc->xferaddr)) in mega_n_to_m() 3537 umc = (megacmd_t __user *)uioc_mimd->mbox; in mega_n_to_m() 3539 if (get_user(upthru, (mega_passthru __user * __user *)&umc->xferaddr)) in mega_n_to_m()
|