Lines Matching refs:ras
1021 struct amdgpu_ras *ras = amdgpu_ras_get_context(adev); in amdgpu_ras_get_ecc_info() local
1028 ret = amdgpu_dpm_get_ecc_info(adev, (void *)&(ras->umc_ecc)); in amdgpu_ras_get_ecc_info()
1030 if (adev->umc.ras && adev->umc.ras->ras_block.hw_ops && in amdgpu_ras_get_ecc_info()
1031 adev->umc.ras->ras_block.hw_ops->query_ras_error_count) in amdgpu_ras_get_ecc_info()
1032 adev->umc.ras->ras_block.hw_ops->query_ras_error_count(adev, err_data); in amdgpu_ras_get_ecc_info()
1037 if (adev->umc.ras && adev->umc.ras->ras_block.hw_ops && in amdgpu_ras_get_ecc_info()
1038 adev->umc.ras->ras_block.hw_ops->query_ras_error_address) in amdgpu_ras_get_ecc_info()
1039 adev->umc.ras->ras_block.hw_ops->query_ras_error_address(adev, err_data); in amdgpu_ras_get_ecc_info()
1041 if (adev->umc.ras && in amdgpu_ras_get_ecc_info()
1042 adev->umc.ras->ecc_info_query_ras_error_count) in amdgpu_ras_get_ecc_info()
1043 adev->umc.ras->ecc_info_query_ras_error_count(adev, err_data); in amdgpu_ras_get_ecc_info()
1045 if (adev->umc.ras && in amdgpu_ras_get_ecc_info()
1046 adev->umc.ras->ecc_info_query_ras_error_address) in amdgpu_ras_get_ecc_info()
1047 adev->umc.ras->ecc_info_query_ras_error_address(adev, err_data); in amdgpu_ras_get_ecc_info()
2175 if (adev->nbio.ras && in amdgpu_ras_interrupt_fatal_error_handler()
2176 adev->nbio.ras->handle_ras_controller_intr_no_bifring) in amdgpu_ras_interrupt_fatal_error_handler()
2177 adev->nbio.ras->handle_ras_controller_intr_no_bifring(adev); in amdgpu_ras_interrupt_fatal_error_handler()
2179 if (adev->nbio.ras && in amdgpu_ras_interrupt_fatal_error_handler()
2180 adev->nbio.ras->handle_ras_err_event_athub_intr_no_bifring) in amdgpu_ras_interrupt_fatal_error_handler()
2181 adev->nbio.ras->handle_ras_err_event_athub_intr_no_bifring(adev); in amdgpu_ras_interrupt_fatal_error_handler()
2605 struct amdgpu_ras *ras = amdgpu_ras_get_context(adev); in amdgpu_ras_in_recovery() local
2613 if (ras && (atomic_read(&ras->in_recovery) || hive_ras_recovery)) in amdgpu_ras_in_recovery()
2629 struct amdgpu_ras *ras = in amdgpu_ras_do_recovery() local
2632 struct amdgpu_device *adev = ras->adev; in amdgpu_ras_do_recovery()
2652 if (!ras->disable_ras_err_cnt_harvest) { in amdgpu_ras_do_recovery()
2672 if (amdgpu_device_should_recover_gpu(ras->adev)) { in amdgpu_ras_do_recovery()
2682 if (!amdgpu_ras_is_poison_mode_supported(ras->adev)) in amdgpu_ras_do_recovery()
2687 if (ras->gpu_reset_flags & AMDGPU_RAS_GPU_RESET_MODE2_RESET) { in amdgpu_ras_do_recovery()
2688 ras->gpu_reset_flags &= ~AMDGPU_RAS_GPU_RESET_MODE2_RESET; in amdgpu_ras_do_recovery()
2695 if (ras->gpu_reset_flags & AMDGPU_RAS_GPU_RESET_MODE1_RESET) { in amdgpu_ras_do_recovery()
2696 ras->gpu_reset_flags &= ~AMDGPU_RAS_GPU_RESET_MODE1_RESET; in amdgpu_ras_do_recovery()
2703 amdgpu_device_gpu_recover(ras->adev, NULL, &reset_context); in amdgpu_ras_do_recovery()
2705 atomic_set(&ras->in_recovery, 0); in amdgpu_ras_do_recovery()
2758 if (adev->umc.ras && adev->umc.ras->convert_ras_err_addr) in amdgpu_ras_mca2pa_by_idx()
2759 ret = adev->umc.ras->convert_ras_err_addr(adev, err_data, in amdgpu_ras_mca2pa_by_idx()
2778 if (adev->umc.ras && adev->umc.ras->get_die_id_from_pa) in amdgpu_ras_mca2pa()
2779 die_id = adev->umc.ras->get_die_id_from_pa(adev, bps->address, in amdgpu_ras_mca2pa()
2795 if (adev->umc.ras && adev->umc.ras->convert_ras_err_addr) in amdgpu_ras_mca2pa()
2796 return adev->umc.ras->convert_ras_err_addr(adev, err_data, in amdgpu_ras_mca2pa()
2900 &adev->psp.ras_context.ras->eeprom_control; in amdgpu_ras_add_bad_pages()
3023 &adev->psp.ras_context.ras->eeprom_control; in amdgpu_ras_load_bad_pages()
3039 if (adev->umc.ras && adev->umc.ras->convert_ras_err_addr) { in amdgpu_ras_load_bad_pages()
3259 struct amdgpu_ras *ras = amdgpu_ras_get_context(adev); in amdgpu_ras_poison_creation_handler() local
3269 ecc_log = &ras->umc_ecc_log; in amdgpu_ras_poison_creation_handler()
3308 schedule_delayed_work(&ras->page_retirement_dwork, 0); in amdgpu_ras_poison_creation_handler()
3460 if (!adev->umc.ras || !adev->umc.ras->convert_ras_err_addr) in amdgpu_ras_init_badpage_info()
3729 adev->umc.ras && in amdgpu_ras_query_poison_mode()
3730 adev->umc.ras->query_ras_poison_mode) { in amdgpu_ras_query_poison_mode()
3734 adev->umc.ras->query_ras_poison_mode(adev); in amdgpu_ras_query_poison_mode()
3857 struct amdgpu_ras *ras = amdgpu_ras_get_context(adev); in amdgpu_ras_event_mgr_init() local
3860 if (!ras) in amdgpu_ras_event_mgr_init()
3864 ras->event_mgr = hive ? &hive->event_mgr : &ras->__event_mgr; in amdgpu_ras_event_mgr_init()
3869 ras_event_mgr_init(ras->event_mgr); in amdgpu_ras_event_mgr_init()
3952 adev->nbio.ras = &nbio_v7_4_ras; in amdgpu_ras_init()
3962 adev->nbio.ras = &nbio_v4_3_ras; in amdgpu_ras_init()
3973 adev->nbio.ras = &nbif_v6_3_1_ras; in amdgpu_ras_init()
3978 adev->nbio.ras = &nbio_v7_9_ras; in amdgpu_ras_init()
3991 if (adev->nbio.ras && in amdgpu_ras_init()
3992 adev->nbio.ras->init_ras_controller_interrupt) { in amdgpu_ras_init()
3993 r = adev->nbio.ras->init_ras_controller_interrupt(adev); in amdgpu_ras_init()
3998 if (adev->nbio.ras && in amdgpu_ras_init()
3999 adev->nbio.ras->init_ras_err_event_athub_interrupt) { in amdgpu_ras_init()
4000 r = adev->nbio.ras->init_ras_err_event_athub_interrupt(adev); in amdgpu_ras_init()
4349 struct amdgpu_ras *ras; in amdgpu_ras_get_fed_status() local
4351 ras = amdgpu_ras_get_context(adev); in amdgpu_ras_get_fed_status()
4352 if (!ras) in amdgpu_ras_get_fed_status()
4355 return test_bit(AMDGPU_RAS_BLOCK__LAST, &ras->ras_err_state); in amdgpu_ras_get_fed_status()
4360 struct amdgpu_ras *ras; in amdgpu_ras_set_fed() local
4362 ras = amdgpu_ras_get_context(adev); in amdgpu_ras_set_fed()
4363 if (ras) { in amdgpu_ras_set_fed()
4365 set_bit(AMDGPU_RAS_BLOCK__LAST, &ras->ras_err_state); in amdgpu_ras_set_fed()
4367 clear_bit(AMDGPU_RAS_BLOCK__LAST, &ras->ras_err_state); in amdgpu_ras_set_fed()
4373 struct amdgpu_ras *ras; in amdgpu_ras_clear_err_state() local
4375 ras = amdgpu_ras_get_context(adev); in amdgpu_ras_clear_err_state()
4376 if (ras) in amdgpu_ras_clear_err_state()
4377 ras->ras_err_state = 0; in amdgpu_ras_clear_err_state()
4383 struct amdgpu_ras *ras; in amdgpu_ras_set_err_poison() local
4385 ras = amdgpu_ras_get_context(adev); in amdgpu_ras_set_err_poison()
4386 if (ras) in amdgpu_ras_set_err_poison()
4387 set_bit(block, &ras->ras_err_state); in amdgpu_ras_set_err_poison()
4392 struct amdgpu_ras *ras; in amdgpu_ras_is_err_state() local
4394 ras = amdgpu_ras_get_context(adev); in amdgpu_ras_is_err_state()
4395 if (ras) { in amdgpu_ras_is_err_state()
4397 return (ras->ras_err_state != 0); in amdgpu_ras_is_err_state()
4399 return test_bit(block, &ras->ras_err_state) || in amdgpu_ras_is_err_state()
4401 &ras->ras_err_state); in amdgpu_ras_is_err_state()
4409 struct amdgpu_ras *ras; in __get_ras_event_mgr() local
4411 ras = amdgpu_ras_get_context(adev); in __get_ras_event_mgr()
4412 if (!ras) in __get_ras_event_mgr()
4415 return ras->event_mgr; in __get_ras_event_mgr()
4478 struct amdgpu_ras *ras = amdgpu_ras_get_context(adev); in amdgpu_ras_global_ras_isr() local
4491 ras->gpu_reset_flags |= AMDGPU_RAS_GPU_RESET_MODE1_RESET; in amdgpu_ras_global_ras_isr()
4628 return adev->psp.ras_context.ras; in amdgpu_ras_get_context()
4636 adev->psp.ras_context.ras = ras_con; in amdgpu_ras_set_context()
4645 struct amdgpu_ras *ras = amdgpu_ras_get_context(adev); in amdgpu_ras_is_supported() local
4650 ret = ras && (adev->ras_enabled & (1 << block)); in amdgpu_ras_is_supported()
4673 struct amdgpu_ras *ras = amdgpu_ras_get_context(adev); in amdgpu_ras_reset_gpu() local
4677 ras->gpu_reset_flags = 0; in amdgpu_ras_reset_gpu()
4678 ras->gpu_reset_flags |= AMDGPU_RAS_GPU_RESET_MODE1_RESET; in amdgpu_ras_reset_gpu()
4681 if (atomic_cmpxchg(&ras->in_recovery, 0, 1) == 0) { in amdgpu_ras_reset_gpu()
4694 amdgpu_reset_domain_schedule(ras->adev->reset_domain, &ras->recovery_work); in amdgpu_ras_reset_gpu()
4696 atomic_set(&ras->in_recovery, 0); in amdgpu_ras_reset_gpu()
4698 flush_work(&ras->recovery_work); in amdgpu_ras_reset_gpu()
4699 amdgpu_reset_domain_schedule(ras->adev->reset_domain, &ras->recovery_work); in amdgpu_ras_reset_gpu()