Lines Matching refs:con
461 struct amdgpu_ras *con = amdgpu_ras_get_context(adev); in amdgpu_ras_create_obj() local
464 if (!con) in amdgpu_ras_create_obj()
470 obj = &con->objs[head->block]; in amdgpu_ras_create_obj()
477 list_add(&obj->node, &con->head); in amdgpu_ras_create_obj()
487 struct amdgpu_ras *con = amdgpu_ras_get_context(adev); in amdgpu_ras_find_obj() local
491 if (!con) in amdgpu_ras_find_obj()
498 obj = &con->objs[head->block]; in amdgpu_ras_find_obj()
506 obj = &con->objs[i]; in amdgpu_ras_find_obj()
545 struct amdgpu_ras *con = amdgpu_ras_get_context(adev); in amdgpu_ras_is_feature_allowed() local
547 return con->hw_supported & BIT(head->block); in amdgpu_ras_is_feature_allowed()
553 struct amdgpu_ras *con = amdgpu_ras_get_context(adev); in amdgpu_ras_is_feature_enabled() local
555 return con->features & BIT(head->block); in amdgpu_ras_is_feature_enabled()
565 struct amdgpu_ras *con = amdgpu_ras_get_context(adev); in __amdgpu_ras_feature_enable() local
588 con->features |= BIT(head->block); in __amdgpu_ras_feature_enable()
591 con->features &= ~BIT(head->block); in __amdgpu_ras_feature_enable()
603 struct amdgpu_ras *con = amdgpu_ras_get_context(adev); in amdgpu_ras_feature_enable() local
607 if (!con) in amdgpu_ras_feature_enable()
662 struct amdgpu_ras *con = amdgpu_ras_get_context(adev); in amdgpu_ras_feature_enable_on_boot() local
665 if (!con) in amdgpu_ras_feature_enable_on_boot()
668 if (con->flags & AMDGPU_RAS_FLAG_INIT_BY_VBIOS) { in amdgpu_ras_feature_enable_on_boot()
705 struct amdgpu_ras *con = amdgpu_ras_get_context(adev); in amdgpu_ras_disable_all_features() local
708 list_for_each_entry_safe(obj, tmp, &con->head, node) { in amdgpu_ras_disable_all_features()
721 return con->features; in amdgpu_ras_disable_all_features()
727 struct amdgpu_ras *con = amdgpu_ras_get_context(adev); in amdgpu_ras_enable_all_features() local
753 return con->features; in amdgpu_ras_enable_all_features()
917 struct amdgpu_ras *con = amdgpu_ras_get_context(adev); in amdgpu_ras_query_error_count() local
921 if (!con) in amdgpu_ras_query_error_count()
924 list_for_each_entry(obj, &con->head, node) { in amdgpu_ras_query_error_count()
993 struct amdgpu_ras *con = in amdgpu_ras_sysfs_badpages_read() local
995 struct amdgpu_device *adev = con->adev; in amdgpu_ras_sysfs_badpages_read()
1024 struct amdgpu_ras *con = in amdgpu_ras_sysfs_features_read() local
1027 return scnprintf(buf, PAGE_SIZE, "feature mask: 0x%x\n", con->features); in amdgpu_ras_sysfs_features_read()
1032 struct amdgpu_ras *con = amdgpu_ras_get_context(adev); in amdgpu_ras_sysfs_remove_bad_page_node() local
1035 &con->badpages_attr.attr, in amdgpu_ras_sysfs_remove_bad_page_node()
1041 struct amdgpu_ras *con = amdgpu_ras_get_context(adev); in amdgpu_ras_sysfs_remove_feature_node() local
1043 &con->features_attr.attr, in amdgpu_ras_sysfs_remove_feature_node()
1110 struct amdgpu_ras *con = amdgpu_ras_get_context(adev); in amdgpu_ras_sysfs_remove_all() local
1113 list_for_each_entry_safe(obj, tmp, &con->head, node) { in amdgpu_ras_sysfs_remove_all()
1147 struct amdgpu_ras *con = amdgpu_ras_get_context(adev); in amdgpu_ras_debugfs_create_ctrl_node() local
1150 con->dir = debugfs_create_dir(RAS_FS_NAME, minor->debugfs_root); in amdgpu_ras_debugfs_create_ctrl_node()
1151 debugfs_create_file("ras_ctrl", S_IWUGO | S_IRUGO, con->dir, in amdgpu_ras_debugfs_create_ctrl_node()
1153 debugfs_create_file("ras_eeprom_reset", S_IWUGO | S_IRUGO, con->dir, in amdgpu_ras_debugfs_create_ctrl_node()
1164 debugfs_create_bool("auto_reboot", S_IWUGO | S_IRUGO, con->dir, in amdgpu_ras_debugfs_create_ctrl_node()
1165 &con->reboot); in amdgpu_ras_debugfs_create_ctrl_node()
1172 con->dir, &con->disable_ras_err_cnt_harvest); in amdgpu_ras_debugfs_create_ctrl_node()
1178 struct amdgpu_ras *con = amdgpu_ras_get_context(adev); in amdgpu_ras_debugfs_create() local
1191 S_IWUGO | S_IRUGO, con->dir, obj, in amdgpu_ras_debugfs_create()
1197 struct amdgpu_ras *con = amdgpu_ras_get_context(adev); in amdgpu_ras_debugfs_create_all() local
1205 if (!IS_ENABLED(CONFIG_DEBUG_FS) || !con) in amdgpu_ras_debugfs_create_all()
1210 list_for_each_entry(obj, &con->head, node) { in amdgpu_ras_debugfs_create_all()
1235 struct amdgpu_ras *con = amdgpu_ras_get_context(adev); in amdgpu_ras_debugfs_remove_all() local
1238 list_for_each_entry_safe(obj, tmp, &con->head, node) { in amdgpu_ras_debugfs_remove_all()
1242 con->dir = NULL; in amdgpu_ras_debugfs_remove_all()
1253 struct amdgpu_ras *con = amdgpu_ras_get_context(adev); in amdgpu_ras_fs_init() local
1258 &con->features_attr.attr, in amdgpu_ras_fs_init()
1268 con->features_attr = dev_attr_features; in amdgpu_ras_fs_init()
1275 con->badpages_attr = bin_attr_gpu_vram_bad_pages; in amdgpu_ras_fs_init()
1276 bin_attrs[0] = &con->badpages_attr; in amdgpu_ras_fs_init()
1435 struct amdgpu_ras *con = amdgpu_ras_get_context(adev); in amdgpu_ras_interrupt_remove_all() local
1438 list_for_each_entry_safe(obj, tmp, &con->head, node) { in amdgpu_ras_interrupt_remove_all()
1452 struct amdgpu_ras *con = amdgpu_ras_get_context(adev); in amdgpu_ras_log_on_err_counter() local
1455 if (!con) in amdgpu_ras_log_on_err_counter()
1458 list_for_each_entry(obj, &con->head, node) { in amdgpu_ras_log_on_err_counter()
1500 struct amdgpu_ras *con = amdgpu_ras_get_context(adev); in amdgpu_ras_query_err_status() local
1503 if (!con) in amdgpu_ras_query_err_status()
1506 list_for_each_entry(obj, &con->head, node) { in amdgpu_ras_query_err_status()
1523 struct amdgpu_ras *con = amdgpu_ras_get_context(adev); in amdgpu_ras_badpages_read() local
1528 if (!con || !con->eh_data || !bps || !count) in amdgpu_ras_badpages_read()
1531 mutex_lock(&con->recovery_lock); in amdgpu_ras_badpages_read()
1532 data = con->eh_data; in amdgpu_ras_badpages_read()
1560 mutex_unlock(&con->recovery_lock); in amdgpu_ras_badpages_read()
1636 struct amdgpu_ras *con = amdgpu_ras_get_context(adev); in amdgpu_ras_add_bad_pages() local
1640 if (!con || !con->eh_data || !bps || pages <= 0) in amdgpu_ras_add_bad_pages()
1643 mutex_lock(&con->recovery_lock); in amdgpu_ras_add_bad_pages()
1644 data = con->eh_data; in amdgpu_ras_add_bad_pages()
1659 mutex_unlock(&con->recovery_lock); in amdgpu_ras_add_bad_pages()
1670 struct amdgpu_ras *con = amdgpu_ras_get_context(adev); in amdgpu_ras_save_bad_pages() local
1675 if (!con || !con->eh_data) in amdgpu_ras_save_bad_pages()
1678 control = &con->eeprom_control; in amdgpu_ras_save_bad_pages()
1679 data = con->eh_data; in amdgpu_ras_save_bad_pages()
1738 struct amdgpu_ras *con = amdgpu_ras_get_context(adev); in amdgpu_ras_check_bad_page() local
1743 if (!con || !con->eh_data) in amdgpu_ras_check_bad_page()
1746 mutex_lock(&con->recovery_lock); in amdgpu_ras_check_bad_page()
1747 data = con->eh_data; in amdgpu_ras_check_bad_page()
1759 mutex_unlock(&con->recovery_lock); in amdgpu_ras_check_bad_page()
1766 struct amdgpu_ras *con = amdgpu_ras_get_context(adev); in amdgpu_ras_validate_threshold() local
1797 con->bad_page_cnt_threshold = min(lower_32_bits(val), in amdgpu_ras_validate_threshold()
1800 con->bad_page_cnt_threshold = tmp_threshold; in amdgpu_ras_validate_threshold()
1807 struct amdgpu_ras *con = amdgpu_ras_get_context(adev); in amdgpu_ras_reserve_bad_pages() local
1814 if (!con || !con->eh_data || (amdgpu_bad_page_threshold == 0)) in amdgpu_ras_reserve_bad_pages()
1817 mutex_lock(&con->recovery_lock); in amdgpu_ras_reserve_bad_pages()
1818 data = con->eh_data; in amdgpu_ras_reserve_bad_pages()
1845 mutex_unlock(&con->recovery_lock); in amdgpu_ras_reserve_bad_pages()
1852 struct amdgpu_ras *con = amdgpu_ras_get_context(adev); in amdgpu_ras_release_bad_pages() local
1857 if (!con || !con->eh_data) in amdgpu_ras_release_bad_pages()
1860 mutex_lock(&con->recovery_lock); in amdgpu_ras_release_bad_pages()
1861 data = con->eh_data; in amdgpu_ras_release_bad_pages()
1874 mutex_unlock(&con->recovery_lock); in amdgpu_ras_release_bad_pages()
1880 struct amdgpu_ras *con = amdgpu_ras_get_context(adev); in amdgpu_ras_recovery_init() local
1886 if (con) in amdgpu_ras_recovery_init()
1887 data = &con->eh_data; in amdgpu_ras_recovery_init()
1897 mutex_init(&con->recovery_lock); in amdgpu_ras_recovery_init()
1898 INIT_WORK(&con->recovery_work, amdgpu_ras_do_recovery); in amdgpu_ras_recovery_init()
1899 atomic_set(&con->in_recovery, 0); in amdgpu_ras_recovery_init()
1900 con->adev = adev; in amdgpu_ras_recovery_init()
1905 ret = amdgpu_ras_eeprom_init(&con->eeprom_control, &exc_err_limit); in amdgpu_ras_recovery_init()
1913 if (con->eeprom_control.num_recs) { in amdgpu_ras_recovery_init()
1930 con->eh_data = NULL; in amdgpu_ras_recovery_init()
1948 struct amdgpu_ras *con = amdgpu_ras_get_context(adev); in amdgpu_ras_recovery_fini() local
1949 struct ras_err_handler_data *data = con->eh_data; in amdgpu_ras_recovery_fini()
1955 cancel_work_sync(&con->recovery_work); in amdgpu_ras_recovery_fini()
1958 mutex_lock(&con->recovery_lock); in amdgpu_ras_recovery_fini()
1959 con->eh_data = NULL; in amdgpu_ras_recovery_fini()
1963 mutex_unlock(&con->recovery_lock); in amdgpu_ras_recovery_fini()
2036 struct amdgpu_ras *con = amdgpu_ras_get_context(adev); in amdgpu_ras_init() local
2039 if (con) in amdgpu_ras_init()
2042 con = kmalloc(sizeof(struct amdgpu_ras) + in amdgpu_ras_init()
2045 if (!con) in amdgpu_ras_init()
2048 con->objs = (struct ras_manager *)(con + 1); in amdgpu_ras_init()
2050 amdgpu_ras_set_context(adev, con); in amdgpu_ras_init()
2052 amdgpu_ras_check_supported(adev, &con->hw_supported, in amdgpu_ras_init()
2053 &con->supported); in amdgpu_ras_init()
2054 if (!con->hw_supported || (adev->asic_type == CHIP_VEGA10)) { in amdgpu_ras_init()
2059 con->features = 0; in amdgpu_ras_init()
2060 INIT_LIST_HEAD(&con->head); in amdgpu_ras_init()
2062 con->flags = RAS_DEFAULT_FLAGS; in amdgpu_ras_init()
2083 con->hw_supported, con->supported); in amdgpu_ras_init()
2087 kfree(con); in amdgpu_ras_init()
2165 struct amdgpu_ras *con = amdgpu_ras_get_context(adev); in amdgpu_ras_resume() local
2168 if (!con) in amdgpu_ras_resume()
2171 if (con->flags & AMDGPU_RAS_FLAG_INIT_BY_VBIOS) { in amdgpu_ras_resume()
2183 list_for_each_entry_safe(obj, tmp, &con->head, node) { in amdgpu_ras_resume()
2192 if (con->flags & AMDGPU_RAS_FLAG_INIT_NEED_RESET) { in amdgpu_ras_resume()
2193 con->flags &= ~AMDGPU_RAS_FLAG_INIT_NEED_RESET; in amdgpu_ras_resume()
2208 struct amdgpu_ras *con = amdgpu_ras_get_context(adev); in amdgpu_ras_suspend() local
2210 if (!con) in amdgpu_ras_suspend()
2215 if (con->features) in amdgpu_ras_suspend()
2222 struct amdgpu_ras *con = amdgpu_ras_get_context(adev); in amdgpu_ras_pre_fini() local
2224 if (!con) in amdgpu_ras_pre_fini()
2235 struct amdgpu_ras *con = amdgpu_ras_get_context(adev); in amdgpu_ras_fini() local
2237 if (!con) in amdgpu_ras_fini()
2243 WARN(con->features, "Feature mask is not cleared"); in amdgpu_ras_fini()
2245 if (con->features) in amdgpu_ras_fini()
2249 kfree(con); in amdgpu_ras_fini()
2283 struct amdgpu_ras *con = amdgpu_ras_get_context(adev); in amdgpu_ras_check_err_threshold() local
2286 if (con && (amdgpu_bad_page_threshold != 0)) in amdgpu_ras_check_err_threshold()
2287 amdgpu_ras_eeprom_check_err_threshold(&con->eeprom_control, in amdgpu_ras_check_err_threshold()