Lines Matching refs:con

334 	struct amdgpu_ras *con = amdgpu_ras_get_context(adev);  in amdgpu_ras_create_obj()  local
337 if (!con) in amdgpu_ras_create_obj()
343 obj = &con->objs[head->block]; in amdgpu_ras_create_obj()
350 list_add(&obj->node, &con->head); in amdgpu_ras_create_obj()
360 struct amdgpu_ras *con = amdgpu_ras_get_context(adev); in amdgpu_ras_find_obj() local
364 if (!con) in amdgpu_ras_find_obj()
371 obj = &con->objs[head->block]; in amdgpu_ras_find_obj()
379 obj = &con->objs[i]; in amdgpu_ras_find_obj()
395 struct amdgpu_ras *con = amdgpu_ras_get_context(adev); in amdgpu_ras_is_feature_allowed() local
397 return con->hw_supported & BIT(head->block); in amdgpu_ras_is_feature_allowed()
403 struct amdgpu_ras *con = amdgpu_ras_get_context(adev); in amdgpu_ras_is_feature_enabled() local
405 return con->features & BIT(head->block); in amdgpu_ras_is_feature_enabled()
415 struct amdgpu_ras *con = amdgpu_ras_get_context(adev); in __amdgpu_ras_feature_enable() local
438 con->features |= BIT(head->block); in __amdgpu_ras_feature_enable()
441 con->features &= ~BIT(head->block); in __amdgpu_ras_feature_enable()
453 struct amdgpu_ras *con = amdgpu_ras_get_context(adev); in amdgpu_ras_feature_enable() local
457 if (!con) in amdgpu_ras_feature_enable()
499 struct amdgpu_ras *con = amdgpu_ras_get_context(adev); in amdgpu_ras_feature_enable_on_boot() local
502 if (!con) in amdgpu_ras_feature_enable_on_boot()
505 if (con->flags & AMDGPU_RAS_FLAG_INIT_BY_VBIOS) { in amdgpu_ras_feature_enable_on_boot()
541 struct amdgpu_ras *con = amdgpu_ras_get_context(adev); in amdgpu_ras_disable_all_features() local
544 list_for_each_entry_safe(obj, tmp, &con->head, node) { in amdgpu_ras_disable_all_features()
557 return con->features; in amdgpu_ras_disable_all_features()
563 struct amdgpu_ras *con = amdgpu_ras_get_context(adev); in amdgpu_ras_enable_all_features() local
589 return con->features; in amdgpu_ras_enable_all_features()
694 struct amdgpu_ras *con = amdgpu_ras_get_context(adev); in amdgpu_ras_query_error_count() local
698 if (!con) in amdgpu_ras_query_error_count()
701 list_for_each_entry(obj, &con->head, node) { in amdgpu_ras_query_error_count()
763 struct amdgpu_ras *con = in amdgpu_ras_sysfs_badpages_read() local
765 struct amdgpu_device *adev = con->adev; in amdgpu_ras_sysfs_badpages_read()
794 struct amdgpu_ras *con = in amdgpu_ras_sysfs_features_read() local
797 return scnprintf(buf, PAGE_SIZE, "feature mask: 0x%x\n", con->features); in amdgpu_ras_sysfs_features_read()
802 struct amdgpu_ras *con = amdgpu_ras_get_context(adev); in amdgpu_ras_sysfs_create_feature_node() local
804 &con->features_attr.attr, in amdgpu_ras_sysfs_create_feature_node()
808 &con->badpages_attr, in amdgpu_ras_sysfs_create_feature_node()
817 con->features_attr = (struct device_attribute) { in amdgpu_ras_sysfs_create_feature_node()
825 con->badpages_attr = (struct bin_attribute) { in amdgpu_ras_sysfs_create_feature_node()
843 struct amdgpu_ras *con = amdgpu_ras_get_context(adev); in amdgpu_ras_sysfs_remove_feature_node() local
845 &con->features_attr.attr, in amdgpu_ras_sysfs_remove_feature_node()
849 &con->badpages_attr, in amdgpu_ras_sysfs_remove_feature_node()
917 struct amdgpu_ras *con = amdgpu_ras_get_context(adev); in amdgpu_ras_sysfs_remove_all() local
920 list_for_each_entry_safe(obj, tmp, &con->head, node) { in amdgpu_ras_sysfs_remove_all()
933 struct amdgpu_ras *con = amdgpu_ras_get_context(adev); in amdgpu_ras_debugfs_create_ctrl_node() local
936 con->dir = debugfs_create_dir("ras", minor->debugfs_root); in amdgpu_ras_debugfs_create_ctrl_node()
937 con->ent = debugfs_create_file("ras_ctrl", S_IWUGO | S_IRUGO, con->dir, in amdgpu_ras_debugfs_create_ctrl_node()
944 struct amdgpu_ras *con = amdgpu_ras_get_context(adev); in amdgpu_ras_debugfs_create() local
957 S_IWUGO | S_IRUGO, con->dir, obj, in amdgpu_ras_debugfs_create()
976 struct amdgpu_ras *con = amdgpu_ras_get_context(adev); in amdgpu_ras_debugfs_remove_all() local
979 list_for_each_entry_safe(obj, tmp, &con->head, node) { in amdgpu_ras_debugfs_remove_all()
983 debugfs_remove(con->ent); in amdgpu_ras_debugfs_remove_all()
984 debugfs_remove(con->dir); in amdgpu_ras_debugfs_remove_all()
985 con->dir = NULL; in amdgpu_ras_debugfs_remove_all()
986 con->ent = NULL; in amdgpu_ras_debugfs_remove_all()
1146 struct amdgpu_ras *con = amdgpu_ras_get_context(adev); in amdgpu_ras_interrupt_remove_all() local
1149 list_for_each_entry_safe(obj, tmp, &con->head, node) { in amdgpu_ras_interrupt_remove_all()
1168 struct amdgpu_ras *con = amdgpu_ras_get_context(adev); in amdgpu_ras_badpages_read() local
1173 if (!con || !con->eh_data || !bps || !count) in amdgpu_ras_badpages_read()
1176 mutex_lock(&con->recovery_lock); in amdgpu_ras_badpages_read()
1177 data = con->eh_data; in amdgpu_ras_badpages_read()
1204 mutex_unlock(&con->recovery_lock); in amdgpu_ras_badpages_read()
1313 struct amdgpu_ras *con = amdgpu_ras_get_context(adev); in amdgpu_ras_add_bad_pages() local
1318 if (!con || !con->eh_data || !bps || pages <= 0) in amdgpu_ras_add_bad_pages()
1321 mutex_lock(&con->recovery_lock); in amdgpu_ras_add_bad_pages()
1322 data = con->eh_data; in amdgpu_ras_add_bad_pages()
1337 mutex_unlock(&con->recovery_lock); in amdgpu_ras_add_bad_pages()
1345 struct amdgpu_ras *con = amdgpu_ras_get_context(adev); in amdgpu_ras_reserve_bad_pages() local
1351 if (!con || !con->eh_data) in amdgpu_ras_reserve_bad_pages()
1354 mutex_lock(&con->recovery_lock); in amdgpu_ras_reserve_bad_pages()
1355 data = con->eh_data; in amdgpu_ras_reserve_bad_pages()
1370 mutex_unlock(&con->recovery_lock); in amdgpu_ras_reserve_bad_pages()
1377 struct amdgpu_ras *con = amdgpu_ras_get_context(adev); in amdgpu_ras_release_bad_pages() local
1382 if (!con || !con->eh_data) in amdgpu_ras_release_bad_pages()
1385 mutex_lock(&con->recovery_lock); in amdgpu_ras_release_bad_pages()
1386 data = con->eh_data; in amdgpu_ras_release_bad_pages()
1399 mutex_unlock(&con->recovery_lock); in amdgpu_ras_release_bad_pages()
1421 struct amdgpu_ras *con = amdgpu_ras_get_context(adev); in amdgpu_ras_recovery_init() local
1422 struct ras_err_handler_data **data = &con->eh_data; in amdgpu_ras_recovery_init()
1429 mutex_init(&con->recovery_lock); in amdgpu_ras_recovery_init()
1430 INIT_WORK(&con->recovery_work, amdgpu_ras_do_recovery); in amdgpu_ras_recovery_init()
1431 atomic_set(&con->in_recovery, 0); in amdgpu_ras_recovery_init()
1432 con->adev = adev; in amdgpu_ras_recovery_init()
1442 struct amdgpu_ras *con = amdgpu_ras_get_context(adev); in amdgpu_ras_recovery_fini() local
1443 struct ras_err_handler_data *data = con->eh_data; in amdgpu_ras_recovery_fini()
1445 cancel_work_sync(&con->recovery_work); in amdgpu_ras_recovery_fini()
1449 mutex_lock(&con->recovery_lock); in amdgpu_ras_recovery_fini()
1450 con->eh_data = NULL; in amdgpu_ras_recovery_fini()
1453 mutex_unlock(&con->recovery_lock); in amdgpu_ras_recovery_fini()
1502 struct amdgpu_ras *con = amdgpu_ras_get_context(adev); in amdgpu_ras_init() local
1504 if (con) in amdgpu_ras_init()
1507 con = kmalloc(sizeof(struct amdgpu_ras) + in amdgpu_ras_init()
1510 if (!con) in amdgpu_ras_init()
1513 con->objs = (struct ras_manager *)(con + 1); in amdgpu_ras_init()
1515 amdgpu_ras_set_context(adev, con); in amdgpu_ras_init()
1517 amdgpu_ras_check_supported(adev, &con->hw_supported, in amdgpu_ras_init()
1518 &con->supported); in amdgpu_ras_init()
1519 if (!con->hw_supported) { in amdgpu_ras_init()
1521 kfree(con); in amdgpu_ras_init()
1525 con->features = 0; in amdgpu_ras_init()
1526 INIT_LIST_HEAD(&con->head); in amdgpu_ras_init()
1528 con->flags = RAS_DEFAULT_FLAGS; in amdgpu_ras_init()
1544 con->hw_supported, con->supported); in amdgpu_ras_init()
1550 kfree(con); in amdgpu_ras_init()
1560 struct amdgpu_ras *con = amdgpu_ras_get_context(adev); in amdgpu_ras_resume() local
1563 if (!con) in amdgpu_ras_resume()
1566 if (con->flags & AMDGPU_RAS_FLAG_INIT_BY_VBIOS) { in amdgpu_ras_resume()
1578 list_for_each_entry_safe(obj, tmp, &con->head, node) { in amdgpu_ras_resume()
1587 if (con->flags & AMDGPU_RAS_FLAG_INIT_NEED_RESET) { in amdgpu_ras_resume()
1588 con->flags &= ~AMDGPU_RAS_FLAG_INIT_NEED_RESET; in amdgpu_ras_resume()
1603 struct amdgpu_ras *con = amdgpu_ras_get_context(adev); in amdgpu_ras_suspend() local
1605 if (!con) in amdgpu_ras_suspend()
1610 if (con->features) in amdgpu_ras_suspend()
1617 struct amdgpu_ras *con = amdgpu_ras_get_context(adev); in amdgpu_ras_pre_fini() local
1619 if (!con) in amdgpu_ras_pre_fini()
1630 struct amdgpu_ras *con = amdgpu_ras_get_context(adev); in amdgpu_ras_fini() local
1632 if (!con) in amdgpu_ras_fini()
1638 WARN(con->features, "Feature mask is not cleared"); in amdgpu_ras_fini()
1640 if (con->features) in amdgpu_ras_fini()
1644 kfree(con); in amdgpu_ras_fini()