Lines Matching refs:bps

1697 		struct ras_badpage **bps, unsigned int *count);
1754 struct ras_badpage *bps = NULL; in amdgpu_ras_sysfs_badpages_read() local
1759 if (amdgpu_ras_badpages_read(adev, &bps, &bps_count)) in amdgpu_ras_sysfs_badpages_read()
1765 bps[start].bp, in amdgpu_ras_sysfs_badpages_read()
1766 bps[start].size, in amdgpu_ras_sysfs_badpages_read()
1767 amdgpu_ras_badpage_flags_str(bps[start].flags)); in amdgpu_ras_sysfs_badpages_read()
1769 kfree(bps); in amdgpu_ras_sysfs_badpages_read()
2551 struct ras_badpage **bps, unsigned int *count) in amdgpu_ras_badpages_read() argument
2558 if (!con || !con->eh_data || !bps || !count) in amdgpu_ras_badpages_read()
2564 *bps = NULL; in amdgpu_ras_badpages_read()
2569 *bps = kmalloc(sizeof(struct ras_badpage) * data->count, GFP_KERNEL); in amdgpu_ras_badpages_read()
2570 if (!*bps) { in amdgpu_ras_badpages_read()
2576 (*bps)[i] = (struct ras_badpage){ in amdgpu_ras_badpages_read()
2577 .bp = data->bps[i].retired_page, in amdgpu_ras_badpages_read()
2582 data->bps[i].retired_page << AMDGPU_GPU_PAGE_SHIFT); in amdgpu_ras_badpages_read()
2584 (*bps)[i].flags = AMDGPU_RAS_RETIRE_PAGE_PENDING; in amdgpu_ras_badpages_read()
2586 (*bps)[i].flags = AMDGPU_RAS_RETIRE_PAGE_FAULT; in amdgpu_ras_badpages_read()
2725 void *bps = kmalloc(align_space * sizeof(*data->bps), GFP_KERNEL); in amdgpu_ras_realloc_eh_data_space() local
2727 if (!bps) { in amdgpu_ras_realloc_eh_data_space()
2731 if (data->bps) { in amdgpu_ras_realloc_eh_data_space()
2732 memcpy(bps, data->bps, in amdgpu_ras_realloc_eh_data_space()
2733 data->count * sizeof(*data->bps)); in amdgpu_ras_realloc_eh_data_space()
2734 kfree(data->bps); in amdgpu_ras_realloc_eh_data_space()
2737 data->bps = bps; in amdgpu_ras_realloc_eh_data_space()
2743 struct eeprom_table_record *bps, in amdgpu_ras_mca2pa_by_idx() argument
2758 addr_in.ma.err_addr = bps->address; in amdgpu_ras_mca2pa_by_idx()
2760 addr_in.ma.ch_inst = bps->mem_channel; in amdgpu_ras_mca2pa_by_idx()
2772 struct eeprom_table_record *bps, in amdgpu_ras_mca2pa() argument
2785 die_id = adev->umc.ras->get_die_id_from_pa(adev, bps->address, in amdgpu_ras_mca2pa()
2786 bps->retired_page << AMDGPU_GPU_PAGE_SHIFT); in amdgpu_ras_mca2pa()
2795 addr_in.ma.err_addr = bps->address; in amdgpu_ras_mca2pa()
2796 addr_in.ma.ch_inst = bps->mem_channel; in amdgpu_ras_mca2pa()
2797 addr_in.ma.umc_inst = bps->mcumc_id; in amdgpu_ras_mca2pa()
2809 struct eeprom_table_record *bps, int count) in __amdgpu_ras_restore_bad_pages() argument
2817 bps[j].retired_page << AMDGPU_GPU_PAGE_SHIFT)) in __amdgpu_ras_restore_bad_pages()
2825 amdgpu_ras_reserve_page(adev, bps[j].retired_page); in __amdgpu_ras_restore_bad_pages()
2827 memcpy(&data->bps[data->count], &(bps[j]), in __amdgpu_ras_restore_bad_pages()
2837 struct eeprom_table_record *bps, struct ras_err_data *err_data, in __amdgpu_ras_convert_rec_array_from_rom() argument
2843 save_nps = (bps[0].retired_page >> UMC_NPS_SHIFT) & UMC_NPS_MASK; in __amdgpu_ras_convert_rec_array_from_rom()
2847 memcpy(err_data->err_addr, bps, in __amdgpu_ras_convert_rec_array_from_rom()
2853 bps[i].retired_page &= ~(UMC_NPS_MASK << UMC_NPS_SHIFT); in __amdgpu_ras_convert_rec_array_from_rom()
2858 bps[0].retired_page << AMDGPU_GPU_PAGE_SHIFT)) in __amdgpu_ras_convert_rec_array_from_rom()
2861 err_data->err_addr[i].address = bps[0].address; in __amdgpu_ras_convert_rec_array_from_rom()
2862 err_data->err_addr[i].mem_channel = bps[0].mem_channel; in __amdgpu_ras_convert_rec_array_from_rom()
2863 err_data->err_addr[i].bank = bps[0].bank; in __amdgpu_ras_convert_rec_array_from_rom()
2864 err_data->err_addr[i].err_type = bps[0].err_type; in __amdgpu_ras_convert_rec_array_from_rom()
2865 err_data->err_addr[i].mcumc_id = bps[0].mcumc_id; in __amdgpu_ras_convert_rec_array_from_rom()
2868 if (amdgpu_ras_mca2pa_by_idx(adev, &bps[0], err_data)) in __amdgpu_ras_convert_rec_array_from_rom()
2872 if (bps[0].address == 0) { in __amdgpu_ras_convert_rec_array_from_rom()
2876 if (amdgpu_umc_pa2mca(adev, bps[0].retired_page << AMDGPU_GPU_PAGE_SHIFT, in __amdgpu_ras_convert_rec_array_from_rom()
2877 &(bps[0].address), AMDGPU_NPS1_PARTITION_MODE)) in __amdgpu_ras_convert_rec_array_from_rom()
2881 if (amdgpu_ras_mca2pa(adev, &bps[0], err_data)) { in __amdgpu_ras_convert_rec_array_from_rom()
2883 memcpy(err_data->err_addr, bps, in __amdgpu_ras_convert_rec_array_from_rom()
2895 struct eeprom_table_record *bps, struct ras_err_data *err_data, in __amdgpu_ras_convert_rec_from_rom() argument
2901 save_nps = (bps->retired_page >> UMC_NPS_SHIFT) & UMC_NPS_MASK; in __amdgpu_ras_convert_rec_from_rom()
2902 bps->retired_page &= ~(UMC_NPS_MASK << UMC_NPS_SHIFT); in __amdgpu_ras_convert_rec_from_rom()
2906 bps->retired_page << AMDGPU_GPU_PAGE_SHIFT)) in __amdgpu_ras_convert_rec_from_rom()
2909 err_data->err_addr[i].address = bps->address; in __amdgpu_ras_convert_rec_from_rom()
2910 err_data->err_addr[i].mem_channel = bps->mem_channel; in __amdgpu_ras_convert_rec_from_rom()
2911 err_data->err_addr[i].bank = bps->bank; in __amdgpu_ras_convert_rec_from_rom()
2912 err_data->err_addr[i].err_type = bps->err_type; in __amdgpu_ras_convert_rec_from_rom()
2913 err_data->err_addr[i].mcumc_id = bps->mcumc_id; in __amdgpu_ras_convert_rec_from_rom()
2916 if (bps->address) { in __amdgpu_ras_convert_rec_from_rom()
2917 if (amdgpu_ras_mca2pa_by_idx(adev, bps, err_data)) in __amdgpu_ras_convert_rec_from_rom()
2923 if (amdgpu_umc_pa2mca(adev, bps->retired_page << AMDGPU_GPU_PAGE_SHIFT, in __amdgpu_ras_convert_rec_from_rom()
2924 &(bps->address), AMDGPU_NPS1_PARTITION_MODE)) in __amdgpu_ras_convert_rec_from_rom()
2927 if (amdgpu_ras_mca2pa(adev, bps, err_data)) in __amdgpu_ras_convert_rec_from_rom()
2938 struct eeprom_table_record *bps, int pages, bool from_rom) in amdgpu_ras_add_bad_pages() argument
2948 if (!con || !con->eh_data || !bps || pages <= 0) in amdgpu_ras_add_bad_pages()
2971 if ((bps[i].address == bps[i + 1].address) && in amdgpu_ras_add_bad_pages()
2972 (bps[i].mem_channel == bps[i + 1].mem_channel)) { in amdgpu_ras_add_bad_pages()
2975 &bps[i], &err_data, nps); in amdgpu_ras_add_bad_pages()
2989 &bps[i], &err_data, nps); in amdgpu_ras_add_bad_pages()
2994 ret = __amdgpu_ras_restore_bad_pages(adev, bps, pages); in amdgpu_ras_add_bad_pages()
3049 &data->bps[bad_page_num], save_count)) { in amdgpu_ras_save_bad_pages()
3056 &data->bps[bad_page_num + in amdgpu_ras_save_bad_pages()
3078 struct eeprom_table_record *bps; in amdgpu_ras_load_bad_pages() local
3085 bps = kcalloc(control->ras_num_recs, sizeof(*bps), GFP_KERNEL); in amdgpu_ras_load_bad_pages()
3086 if (!bps) in amdgpu_ras_load_bad_pages()
3089 ret = amdgpu_ras_eeprom_read(control, bps, control->ras_num_recs); in amdgpu_ras_load_bad_pages()
3100 if ((bps[i].address == bps[i + 1].address) && in amdgpu_ras_load_bad_pages()
3101 (bps[i].mem_channel == bps[i + 1].mem_channel)) { in amdgpu_ras_load_bad_pages()
3129 ret = amdgpu_ras_add_bad_pages(adev, bps, control->ras_num_recs, true); in amdgpu_ras_load_bad_pages()
3133 kfree(bps); in amdgpu_ras_load_bad_pages()
3145 if (addr == data->bps[i].retired_page) in amdgpu_ras_check_bad_page_unlock()
3609 kfree((*data)->bps); in amdgpu_ras_recovery_init()
3660 kfree(data->bps); in amdgpu_ras_recovery_fini()