Lines Matching refs:banks

39 static void aca_banks_init(struct aca_banks *banks)  in aca_banks_init()  argument
41 if (!banks) in aca_banks_init()
44 memset(banks, 0, sizeof(*banks)); in aca_banks_init()
45 INIT_LIST_HEAD(&banks->list); in aca_banks_init()
48 static int aca_banks_add_bank(struct aca_banks *banks, struct aca_bank *bank) in aca_banks_add_bank() argument
62 list_add_tail(&node->node, &banks->list); in aca_banks_add_bank()
64 banks->nr_banks++; in aca_banks_add_bank()
69 static void aca_banks_release(struct aca_banks *banks) in aca_banks_release() argument
73 if (list_empty(&banks->list)) in aca_banks_release()
76 list_for_each_entry_safe(node, tmp, &banks->list, node) { in aca_banks_release()
79 banks->nr_banks--; in aca_banks_release()
157 struct aca_banks *banks, struct ras_query_context *qctx) in aca_smu_get_valid_aca_banks() argument
204 ret = aca_banks_add_bank(banks, &bank); in aca_smu_get_valid_aca_banks()
365 static int aca_dispatch_banks(struct aca_handle_manager *mgr, struct aca_banks *banks, in aca_dispatch_banks() argument
372 if (!mgr || !banks) in aca_dispatch_banks()
376 if (list_empty(&mgr->list) || list_empty(&banks->list)) in aca_dispatch_banks()
379 list_for_each_entry(node, &banks->list, node) { in aca_dispatch_banks()
412 struct aca_banks *banks, in aca_banks_generate_cper() argument
422 if (!banks || !count) { in aca_banks_generate_cper()
432 list_for_each_entry(node, &banks->list, node) { in aca_banks_generate_cper()
455 if (amdgpu_cper_generate_ce_records(adev, banks, count)) in aca_banks_generate_cper()
464 struct aca_banks banks; in aca_banks_update() local
481 aca_banks_init(&banks); in aca_banks_update()
483 ret = aca_smu_get_valid_aca_banks(adev, type, 0, count, &banks, qctx); in aca_banks_update()
487 if (list_empty(&banks.list)) { in aca_banks_update()
492 ret = aca_dispatch_banks(&aca->mgr, &banks, type, in aca_banks_update()
497 aca_banks_generate_cper(adev, type, &banks, count); in aca_banks_update()
500 aca_banks_release(&banks); in aca_banks_update()