Lines Matching refs:hive
38 void *amdgpu_xgmi_hive_try_lock(struct amdgpu_hive_info *hive) in amdgpu_xgmi_hive_try_lock() argument
40 return &hive->device_list; in amdgpu_xgmi_hive_try_lock()
74 struct amdgpu_hive_info *hive = in amdgpu_xgmi_show_hive_id() local
77 return snprintf(buf, PAGE_SIZE, "%llu\n", hive->hive_id); in amdgpu_xgmi_show_hive_id()
81 struct amdgpu_hive_info *hive) in amdgpu_xgmi_sysfs_create() argument
85 if (WARN_ON(hive->kobj)) in amdgpu_xgmi_sysfs_create()
88 hive->kobj = kobject_create_and_add("xgmi_hive_info", &adev->dev->kobj); in amdgpu_xgmi_sysfs_create()
89 if (!hive->kobj) { in amdgpu_xgmi_sysfs_create()
94 hive->dev_attr = (struct device_attribute) { in amdgpu_xgmi_sysfs_create()
103 ret = sysfs_create_file(hive->kobj, &hive->dev_attr.attr); in amdgpu_xgmi_sysfs_create()
106 kobject_del(hive->kobj); in amdgpu_xgmi_sysfs_create()
107 kobject_put(hive->kobj); in amdgpu_xgmi_sysfs_create()
108 hive->kobj = NULL; in amdgpu_xgmi_sysfs_create()
115 struct amdgpu_hive_info *hive) in amdgpu_xgmi_sysfs_destroy() argument
117 sysfs_remove_file(hive->kobj, &hive->dev_attr.attr); in amdgpu_xgmi_sysfs_destroy()
118 kobject_del(hive->kobj); in amdgpu_xgmi_sysfs_destroy()
119 kobject_put(hive->kobj); in amdgpu_xgmi_sysfs_destroy()
120 hive->kobj = NULL; in amdgpu_xgmi_sysfs_destroy()
167 struct amdgpu_hive_info *hive) in amdgpu_xgmi_sysfs_add_dev_info() argument
186 if (adev != hive->adev) { in amdgpu_xgmi_sysfs_add_dev_info()
187 ret = sysfs_create_link(&adev->dev->kobj, hive->kobj, in amdgpu_xgmi_sysfs_add_dev_info()
195 sprintf(node, "node%d", hive->number_devices); in amdgpu_xgmi_sysfs_add_dev_info()
197 ret = sysfs_create_link(hive->kobj, &adev->dev->kobj, node); in amdgpu_xgmi_sysfs_add_dev_info()
217 struct amdgpu_hive_info *hive) in amdgpu_xgmi_sysfs_rem_dev_info() argument
221 sysfs_remove_link(hive->kobj, adev->ddev->unique); in amdgpu_xgmi_sysfs_rem_dev_info()
275 struct amdgpu_hive_info *hive = amdgpu_get_xgmi_hive(adev, 0); in amdgpu_xgmi_set_pstate() local
277 if (!hive) in amdgpu_xgmi_set_pstate()
280 if (hive->pstate == pstate) in amdgpu_xgmi_set_pstate()
296 int amdgpu_xgmi_update_topology(struct amdgpu_hive_info *hive, struct amdgpu_device *adev) in amdgpu_xgmi_update_topology() argument
302 hive->number_devices, in amdgpu_xgmi_update_topology()
329 struct amdgpu_hive_info *hive; in amdgpu_xgmi_add_device() local
357 hive = amdgpu_get_xgmi_hive(adev, 1); in amdgpu_xgmi_add_device()
358 if (!hive) { in amdgpu_xgmi_add_device()
368 list_add_tail(&adev->gmc.xgmi.head, &hive->device_list); in amdgpu_xgmi_add_device()
369 list_for_each_entry(entry, &hive->device_list, head) in amdgpu_xgmi_add_device()
372 hive->number_devices = count; in amdgpu_xgmi_add_device()
375 list_for_each_entry(tmp_adev, &hive->device_list, gmc.xgmi.head) { in amdgpu_xgmi_add_device()
383 ret = amdgpu_xgmi_update_topology(hive, tmp_adev); in amdgpu_xgmi_add_device()
389 list_for_each_entry(tmp_adev, &hive->device_list, gmc.xgmi.head) { in amdgpu_xgmi_add_device()
404 ret = amdgpu_xgmi_sysfs_add_dev_info(adev, hive); in amdgpu_xgmi_add_device()
407 mutex_unlock(&hive->hive_lock); in amdgpu_xgmi_add_device()
422 struct amdgpu_hive_info *hive; in amdgpu_xgmi_remove_device() local
427 hive = amdgpu_get_xgmi_hive(adev, 1); in amdgpu_xgmi_remove_device()
428 if (!hive) in amdgpu_xgmi_remove_device()
431 if (!(hive->number_devices--)) { in amdgpu_xgmi_remove_device()
432 amdgpu_xgmi_sysfs_destroy(adev, hive); in amdgpu_xgmi_remove_device()
433 mutex_destroy(&hive->hive_lock); in amdgpu_xgmi_remove_device()
434 mutex_destroy(&hive->reset_lock); in amdgpu_xgmi_remove_device()
436 amdgpu_xgmi_sysfs_rem_dev_info(adev, hive); in amdgpu_xgmi_remove_device()
437 mutex_unlock(&hive->hive_lock); in amdgpu_xgmi_remove_device()