Lines Matching refs:adev

80 static int amdgpu_xgmi_sysfs_create(struct amdgpu_device *adev,  in amdgpu_xgmi_sysfs_create()  argument
88 hive->kobj = kobject_create_and_add("xgmi_hive_info", &adev->dev->kobj); in amdgpu_xgmi_sysfs_create()
90 dev_err(adev->dev, "XGMI: Failed to allocate sysfs entry!\n"); in amdgpu_xgmi_sysfs_create()
105 dev_err(adev->dev, "XGMI: Failed to create device file xgmi_hive_id\n"); in amdgpu_xgmi_sysfs_create()
114 static void amdgpu_xgmi_sysfs_destroy(struct amdgpu_device *adev, in amdgpu_xgmi_sysfs_destroy() argument
128 struct amdgpu_device *adev = ddev->dev_private; in amdgpu_xgmi_show_device_id() local
130 return snprintf(buf, PAGE_SIZE, "%llu\n", adev->gmc.xgmi.node_id); in amdgpu_xgmi_show_device_id()
140 struct amdgpu_device *adev = ddev->dev_private; in amdgpu_xgmi_show_error() local
148 fica_out = adev->df_funcs->get_fica(adev, ficaa_pie_ctl_in); in amdgpu_xgmi_show_error()
152 fica_out = adev->df_funcs->get_fica(adev, ficaa_pie_status_in); in amdgpu_xgmi_show_error()
157 adev->df_funcs->set_fica(adev, ficaa_pie_status_in, 0, 0); in amdgpu_xgmi_show_error()
166 static int amdgpu_xgmi_sysfs_add_dev_info(struct amdgpu_device *adev, in amdgpu_xgmi_sysfs_add_dev_info() argument
173 ret = device_create_file(adev->dev, &dev_attr_xgmi_device_id); in amdgpu_xgmi_sysfs_add_dev_info()
175 dev_err(adev->dev, "XGMI: Failed to create device file xgmi_device_id\n"); in amdgpu_xgmi_sysfs_add_dev_info()
180 ret = device_create_file(adev->dev, &dev_attr_xgmi_error); in amdgpu_xgmi_sysfs_add_dev_info()
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()
190 dev_err(adev->dev, "XGMI: Failed to create link to hive info"); 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()
199 dev_err(adev->dev, "XGMI: Failed to create link from hive info"); in amdgpu_xgmi_sysfs_add_dev_info()
207 sysfs_remove_link(&adev->dev->kobj, adev->ddev->unique); in amdgpu_xgmi_sysfs_add_dev_info()
210 device_remove_file(adev->dev, &dev_attr_xgmi_device_id); in amdgpu_xgmi_sysfs_add_dev_info()
216 static void amdgpu_xgmi_sysfs_rem_dev_info(struct amdgpu_device *adev, in amdgpu_xgmi_sysfs_rem_dev_info() argument
219 device_remove_file(adev->dev, &dev_attr_xgmi_device_id); in amdgpu_xgmi_sysfs_rem_dev_info()
220 sysfs_remove_link(&adev->dev->kobj, adev->ddev->unique); in amdgpu_xgmi_sysfs_rem_dev_info()
221 sysfs_remove_link(hive->kobj, adev->ddev->unique); in amdgpu_xgmi_sysfs_rem_dev_info()
226 struct amdgpu_hive_info *amdgpu_get_xgmi_hive(struct amdgpu_device *adev, int lock) in amdgpu_get_xgmi_hive() argument
231 if (!adev->gmc.xgmi.hive_id) in amdgpu_get_xgmi_hive()
238 if (tmp->hive_id == adev->gmc.xgmi.hive_id) { in amdgpu_get_xgmi_hive()
253 if (amdgpu_xgmi_sysfs_create(adev, tmp)) { in amdgpu_get_xgmi_hive()
258 tmp->adev = adev; in amdgpu_get_xgmi_hive()
259 tmp->hive_id = adev->gmc.xgmi.hive_id; in amdgpu_get_xgmi_hive()
272 int amdgpu_xgmi_set_pstate(struct amdgpu_device *adev, int pstate) in amdgpu_xgmi_set_pstate() argument
275 struct amdgpu_hive_info *hive = amdgpu_get_xgmi_hive(adev, 0); in amdgpu_xgmi_set_pstate()
283 dev_dbg(adev->dev, "Set xgmi pstate %d.\n", pstate); in amdgpu_xgmi_set_pstate()
285 if (is_support_sw_smu_xgmi(adev)) in amdgpu_xgmi_set_pstate()
286 ret = smu_set_xgmi_pstate(&adev->smu, pstate); in amdgpu_xgmi_set_pstate()
288 dev_err(adev->dev, in amdgpu_xgmi_set_pstate()
290 adev->gmc.xgmi.node_id, in amdgpu_xgmi_set_pstate()
291 adev->gmc.xgmi.hive_id, ret); 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
301 ret = psp_xgmi_set_topology_info(&adev->psp, in amdgpu_xgmi_update_topology()
303 &adev->psp.xgmi_context.top_info); in amdgpu_xgmi_update_topology()
305 dev_err(adev->dev, in amdgpu_xgmi_update_topology()
307 adev->gmc.xgmi.node_id, in amdgpu_xgmi_update_topology()
308 adev->gmc.xgmi.hive_id, ret); in amdgpu_xgmi_update_topology()
314 int amdgpu_xgmi_get_hops_count(struct amdgpu_device *adev, in amdgpu_xgmi_get_hops_count() argument
317 struct psp_xgmi_topology_info *top = &adev->psp.xgmi_context.top_info; in amdgpu_xgmi_get_hops_count()
326 int amdgpu_xgmi_add_device(struct amdgpu_device *adev) in amdgpu_xgmi_add_device() argument
335 if (!adev->gmc.xgmi.supported) in amdgpu_xgmi_add_device()
338 if (amdgpu_device_ip_get_ip_block(adev, AMD_IP_BLOCK_TYPE_PSP)) { in amdgpu_xgmi_add_device()
339 ret = psp_xgmi_get_hive_id(&adev->psp, &adev->gmc.xgmi.hive_id); in amdgpu_xgmi_add_device()
341 dev_err(adev->dev, in amdgpu_xgmi_add_device()
346 ret = psp_xgmi_get_node_id(&adev->psp, &adev->gmc.xgmi.node_id); in amdgpu_xgmi_add_device()
348 dev_err(adev->dev, in amdgpu_xgmi_add_device()
353 adev->gmc.xgmi.hive_id = 16; in amdgpu_xgmi_add_device()
354 adev->gmc.xgmi.node_id = adev->gmc.xgmi.physical_node_id + 16; in amdgpu_xgmi_add_device()
357 hive = amdgpu_get_xgmi_hive(adev, 1); in amdgpu_xgmi_add_device()
360 dev_err(adev->dev, in amdgpu_xgmi_add_device()
362 adev->gmc.xgmi.node_id, adev->gmc.xgmi.hive_id); in amdgpu_xgmi_add_device()
366 top_info = &adev->psp.xgmi_context.top_info; in amdgpu_xgmi_add_device()
368 list_add_tail(&adev->gmc.xgmi.head, &hive->device_list); in amdgpu_xgmi_add_device()
374 if (amdgpu_device_ip_get_ip_block(adev, AMD_IP_BLOCK_TYPE_PSP)) { in amdgpu_xgmi_add_device()
377 if (tmp_adev != adev) { in amdgpu_xgmi_add_device()
380 adev->gmc.xgmi.node_id; in amdgpu_xgmi_add_device()
404 ret = amdgpu_xgmi_sysfs_add_dev_info(adev, hive); in amdgpu_xgmi_add_device()
410 dev_info(adev->dev, "XGMI: Add node %d, hive 0x%llx.\n", in amdgpu_xgmi_add_device()
411 adev->gmc.xgmi.physical_node_id, adev->gmc.xgmi.hive_id); in amdgpu_xgmi_add_device()
413 dev_err(adev->dev, "XGMI: Failed to add node %d, hive 0x%llx ret: %d\n", in amdgpu_xgmi_add_device()
414 adev->gmc.xgmi.physical_node_id, adev->gmc.xgmi.hive_id, in amdgpu_xgmi_add_device()
420 void amdgpu_xgmi_remove_device(struct amdgpu_device *adev) in amdgpu_xgmi_remove_device() argument
424 if (!adev->gmc.xgmi.supported) in amdgpu_xgmi_remove_device()
427 hive = amdgpu_get_xgmi_hive(adev, 1); in amdgpu_xgmi_remove_device()
432 amdgpu_xgmi_sysfs_destroy(adev, hive); in amdgpu_xgmi_remove_device()
436 amdgpu_xgmi_sysfs_rem_dev_info(adev, hive); in amdgpu_xgmi_remove_device()