Lines Matching refs:eng_grps

91 static int dev_supports_eng_type(struct otx_cpt_eng_grps *eng_grps,
94 return is_eng_type(eng_grps->eng_types_supported, eng_type);
599 struct otx_cpt_eng_grps *eng_grps)
611 eng_grps->avail.max_se_cnt, eng_grps->avail.max_ae_cnt);
612 pr_debug("free SE %d\n", eng_grps->avail.se_cnt);
613 pr_debug("free AE %d\n", eng_grps->avail.ae_cnt);
616 grp = &eng_grps->grp[i];
620 mirrored_grp = &eng_grps->grp[grp->mirror.idx];
637 eng_grps->engs_num);
1037 struct otx_cpt_eng_grps *eng_grps = grp->g;
1041 if (!eng_grps->grp[i].is_enabled)
1043 if (eng_grps->grp[i].ucode[0].type)
1047 if (!strncasecmp(eng_grps->grp[i].ucode[0].ver_str,
1050 return &eng_grps->grp[i];
1057 struct otx_cpt_eng_grps *eng_grps)
1062 if (!eng_grps->grp[i].is_enabled)
1063 return &eng_grps->grp[i];
1215 struct otx_cpt_eng_grps *eng_grps,
1230 if (!dev_supports_eng_type(eng_grps, engs[i].type)) {
1237 eng_grp = find_unused_eng_grp(eng_grps);
1294 ret = enable_eng_grp(eng_grp, eng_grps->obj);
1333 struct otx_cpt_eng_grps *eng_grps;
1342 eng_grps = container_of(attr, struct otx_cpt_eng_grps, ucode_load_attr);
1429 if (!eng_grps->grp[del_grp_idx].is_enabled) {
1440 mutex_lock(&eng_grps->lock);
1442 if (eng_grps->is_rdonly) {
1450 ret = create_engine_group(dev, eng_grps, engs, grp_idx,
1455 ret = delete_engine_group(dev, &eng_grps->grp[del_grp_idx]);
1459 print_dbg_info(dev, eng_grps);
1461 mutex_unlock(&eng_grps->lock);
1470 struct otx_cpt_eng_grps *eng_grps,
1479 mutex_lock(&eng_grps->lock);
1485 if (eng_grps->is_first_try)
1487 eng_grps->is_first_try = true;
1491 if (eng_grps->grp[i].is_enabled)
1517 dev_supports_eng_type(eng_grps, OTX_CPT_SE_TYPES)) {
1520 engs[0].count = eng_grps->avail.max_se_cnt;
1522 ret = create_engine_group(&pdev->dev, eng_grps, engs, 1,
1534 dev_supports_eng_type(eng_grps, OTX_CPT_AE_TYPES)) {
1537 engs[0].count = eng_grps->avail.max_ae_cnt;
1539 ret = create_engine_group(&pdev->dev, eng_grps, engs, 1,
1545 print_dbg_info(&pdev->dev, eng_grps);
1549 mutex_unlock(&eng_grps->lock);
1553 void otx_cpt_set_eng_grps_is_rdonly(struct otx_cpt_eng_grps *eng_grps,
1556 mutex_lock(&eng_grps->lock);
1558 eng_grps->is_rdonly = is_rdonly;
1560 mutex_unlock(&eng_grps->lock);
1589 struct otx_cpt_eng_grps *eng_grps)
1594 mutex_lock(&eng_grps->lock);
1595 if (eng_grps->is_ucode_load_created) {
1597 &eng_grps->ucode_load_attr);
1598 eng_grps->is_ucode_load_created = false;
1603 if (eng_grps->grp[i].mirror.is_ena)
1604 delete_engine_group(&pdev->dev, &eng_grps->grp[i]);
1608 delete_engine_group(&pdev->dev, &eng_grps->grp[i]);
1612 grp = &eng_grps->grp[i];
1619 mutex_unlock(&eng_grps->lock);
1623 struct otx_cpt_eng_grps *eng_grps, int pf_type)
1628 mutex_init(&eng_grps->lock);
1629 eng_grps->obj = pci_get_drvdata(pdev);
1630 eng_grps->avail.se_cnt = eng_grps->avail.max_se_cnt;
1631 eng_grps->avail.ae_cnt = eng_grps->avail.max_ae_cnt;
1633 eng_grps->engs_num = eng_grps->avail.max_se_cnt +
1634 eng_grps->avail.max_ae_cnt;
1635 if (eng_grps->engs_num > OTX_CPT_MAX_ENGINES) {
1638 eng_grps->engs_num, OTX_CPT_MAX_ENGINES);
1644 grp = &eng_grps->grp[i];
1645 grp->g = eng_grps;
1652 kcalloc(BITS_TO_LONGS(eng_grps->engs_num),
1664 eng_grps->eng_types_supported = 1 << OTX_CPT_SE_TYPES;
1669 eng_grps->eng_types_supported = 1 << OTX_CPT_AE_TYPES;
1678 eng_grps->ucode_load_attr.show = NULL;
1679 eng_grps->ucode_load_attr.store = ucode_load_store;
1680 eng_grps->ucode_load_attr.attr.name = "ucode_load";
1681 eng_grps->ucode_load_attr.attr.mode = 0220;
1682 sysfs_attr_init(&eng_grps->ucode_load_attr.attr);
1684 &eng_grps->ucode_load_attr);
1687 eng_grps->is_ucode_load_created = true;
1689 print_dbg_info(&pdev->dev, eng_grps);
1692 otx_cpt_cleanup_eng_grps(pdev, eng_grps);