die_info
die_offset = le16_to_cpu(ihdr->die_info[ii].die_offset);
die_offset = le16_to_cpu(ihdr->die_info[i].die_offset);
die_offset = le16_to_cpu(ihdr->die_info[i].die_offset);
die_info die_info[16]; /* list die information for up to 16 dies */
bond_grp = die_info->bgrps[i];
mutex_unlock(&die_info->die_mutex);
struct hns_roce_die_info *die_info;
die_info = kzalloc_obj(*die_info);
if (!die_info)
ret = xa_err(xa_store(&roce_bond_xa, bus_num, die_info, GFP_KERNEL));
kfree(die_info);
mutex_init(&die_info->die_mutex);
return die_info;
static void dealloc_die_info(struct hns_roce_die_info *die_info, u8 bus_num)
mutex_destroy(&die_info->die_mutex);
kfree(die_info);
struct hns_roce_die_info *die_info = xa_load(&roce_bond_xa, bus_num);
if (!die_info) {
die_info = alloc_die_info(bus_num);
if (!die_info)
if (die_info->bond_id_mask & BOND_ID(i))
die_info->bond_id_mask |= BOND_ID(i);
die_info->bgrps[i] = bond_grp;
struct hns_roce_die_info *die_info = xa_load(&roce_bond_xa, bus_num);
if (!die_info)
die_info->bond_id_mask &= ~BOND_ID(bond_id);
die_info->bgrps[bond_id] = NULL;
if (!die_info->bond_id_mask)
dealloc_die_info(die_info, bus_num);
struct hns_roce_die_info *die_info = xa_load(&roce_bond_xa, bus_num);
if (!die_info)
bond_grp = die_info->bgrps[i];
struct hns_roce_die_info *die_info;
xa_for_each(&roce_bond_xa, id, die_info) {
bond_grp = die_info->bgrps[i];
struct hns_roce_die_info *die_info;
die_info = xa_load(&roce_bond_xa, bus_num);
if (!die_info)
mutex_lock(&die_info->die_mutex);
if (die_info->suspend_cnt)
bond_grp = die_info->bgrps[i];
die_info->suspend_cnt++;
mutex_unlock(&die_info->die_mutex);
struct hns_roce_die_info *die_info;
die_info = xa_load(&roce_bond_xa, bus_num);
if (!die_info)
mutex_lock(&die_info->die_mutex);
die_info->suspend_cnt--;
if (die_info->suspend_cnt)
u16 die_info;
&die_info);
&die_info);
*ver = (s8)((die_info & PG_VER_MASK) >> PG_VER_OFFSET);
plr->die_info = devm_kcalloc(&auxdev->dev, num_resources, sizeof(*plr->die_info),
if (!plr->die_info) {
plr->die_info[i].base = base;
plr->die_info[i].package_id = plat_info->package_id;
plr->die_info[i].die_id = i;
plr->die_info[i].plr = plr;
mutex_init(&plr->die_info[i].lock);
if (plr_read(&plr->die_info[i], PLR_HEADER) == PLR_INVALID)
debugfs_create_file("status", 0644, dentry, &plr->die_info[i],
struct tpmi_plr_die *die_info;