Lines Matching defs:mca_set
159 static void amdgpu_mca_bank_set_init(struct mca_bank_set *mca_set)
161 if (!mca_set)
164 memset(mca_set, 0, sizeof(*mca_set));
165 INIT_LIST_HEAD(&mca_set->list);
168 static int amdgpu_mca_bank_set_add_entry(struct mca_bank_set *mca_set, struct mca_bank_entry *entry)
182 list_add_tail(&node->node, &mca_set->list);
184 mca_set->nr_entries++;
189 static int amdgpu_mca_bank_set_merge(struct mca_bank_set *mca_set, struct mca_bank_set *new)
194 amdgpu_mca_bank_set_add_entry(mca_set, &node->entry);
199 static void amdgpu_mca_bank_set_remove_node(struct mca_bank_set *mca_set, struct mca_bank_node *node)
207 mca_set->nr_entries--;
210 static void amdgpu_mca_bank_set_release(struct mca_bank_set *mca_set)
214 if (list_empty(&mca_set->list))
217 list_for_each_entry_safe(node, tmp, &mca_set->list, node)
218 amdgpu_mca_bank_set_remove_node(mca_set, node);
239 amdgpu_mca_bank_set_init(&mca_cache->mca_set);
255 amdgpu_mca_bank_set_release(&mca_cache->mca_set);
372 static int amdgpu_mca_smu_get_mca_set(struct amdgpu_device *adev, enum amdgpu_mca_error_type type, struct mca_bank_set *mca_set,
379 if (!mca_set)
395 amdgpu_mca_bank_set_add_entry(mca_set, &entry);
419 struct mca_bank_set *mca_set, struct ras_err_data *err_data)
427 if (!mca_set)
430 if (!mca_set->nr_entries)
433 list_for_each_entry_safe(node, tmp, &mca_set->list, node) {
461 amdgpu_mca_bank_set_remove_node(mca_set, node);
473 ret = amdgpu_mca_bank_set_merge(&mca_cache->mca_set, new);
482 struct mca_bank_set mca_set;
486 amdgpu_mca_bank_set_init(&mca_set);
488 ret = amdgpu_mca_smu_get_mca_set(adev, type, &mca_set, qctx);
492 ret = amdgpu_mca_dispatch_mca_set(adev, blk, type, &mca_set, err_data);
497 if (mca_set.nr_entries) {
498 ret = amdgpu_mca_add_mca_set_to_cache(adev, type, &mca_set);
505 if (mca_cache->mca_set.nr_entries)
506 ret = amdgpu_mca_dispatch_mca_set(adev, blk, type, &mca_cache->mca_set, err_data);
510 amdgpu_mca_bank_set_release(&mca_set);
554 struct mca_bank_set mca_set;
558 amdgpu_mca_bank_set_init(&mca_set);
561 ret = amdgpu_mca_smu_get_mca_set(adev, type, &mca_set, &qctx);
566 type == AMDGPU_MCA_ERROR_TYPE_UE ? "UE" : "CE", mca_set.nr_entries);
568 if (!mca_set.nr_entries)
571 list_for_each_entry(node, &mca_set.list, node)
575 ret = amdgpu_mca_add_mca_set_to_cache(adev, type, &mca_set);
578 amdgpu_mca_bank_set_release(&mca_set);