Lines Matching defs:config
99 xe_gt_sriov_notice(gt, "Failed to push %s %u config KLV%s (%pe)\n",
111 xe_gt_sriov_dbg(gt, "pushed %s config with %u KLV%s:\n",
237 return >->sriov.pf.vfs[vfid].config;
259 static u32 encode_config_ggtt(u32 *cfg, const struct xe_gt_sriov_config *config, bool details)
261 struct xe_ggtt_node *node = config->ggtt_region;
270 static u32 encode_config(u32 *cfg, const struct xe_gt_sriov_config *config, bool details)
274 n += encode_config_ggtt(cfg, config, details);
276 if (details && config->num_ctxs) {
278 cfg[n++] = config->begin_ctx;
282 cfg[n++] = config->num_ctxs;
284 if (details && config->num_dbs) {
286 cfg[n++] = config->begin_db;
290 cfg[n++] = config->num_dbs;
292 if (config->lmem_obj) {
294 cfg[n++] = lower_32_bits(xe_bo_size(config->lmem_obj));
295 cfg[n++] = upper_32_bits(xe_bo_size(config->lmem_obj));
299 cfg[n++] = config->exec_quantum;
302 cfg[n++] = config->preempt_timeout;
306 cfg[n++] = config->thresholds[MAKE_XE_GUC_KLV_THRESHOLD_INDEX(TAG)]; \
317 struct xe_gt_sriov_config *config = pf_pick_vf_config(gt, vfid);
329 num_dwords = encode_config(cfg, config, true);
336 /* media-GT will never include a GGTT config */
337 xe_gt_assert(gt, !encode_config_ggtt(cfg + num_dwords, config, true));
339 /* the GGTT config must be taken from the primary-GT instead */
348 /* plain PF config data will never include a real GGTT region */
349 xe_gt_assert(gt, !encode_config_ggtt(cfg + num_dwords, config, true));
351 /* fake PF GGTT config covers full GGTT range except reserved WOPCM */
450 static void pf_release_vf_config_ggtt(struct xe_gt *gt, struct xe_gt_sriov_config *config)
452 pf_release_ggtt(gt_to_tile(gt), config->ggtt_region);
453 config->ggtt_region = NULL;
458 struct xe_gt_sriov_config *config = pf_pick_vf_config(gt, vfid);
471 if (xe_ggtt_node_allocated(config->ggtt_region)) {
476 pf_release_vf_config_ggtt(gt, config);
482 xe_gt_assert(gt, !xe_ggtt_node_allocated(config->ggtt_region));
503 config->ggtt_region = node;
512 struct xe_gt_sriov_config *config = pf_pick_vf_config(gt, vfid);
513 struct xe_ggtt_node *node = config->ggtt_region;
573 * If &vfid represents PF, then function will change PF's spare GGTT config.
781 static void pf_release_config_ctxs(struct xe_gt *gt, struct xe_gt_sriov_config *config)
785 pf_release_ctxs(gt, config->begin_ctx, config->num_ctxs);
786 config->begin_ctx = 0;
787 config->num_ctxs = 0;
792 struct xe_gt_sriov_config *config = pf_pick_vf_config(gt, vfid);
800 if (config->num_ctxs) {
805 pf_release_config_ctxs(gt, config);
819 config->begin_ctx = ret;
820 config->num_ctxs = num_ctxs;
822 ret = pf_push_vf_cfg_ctxs(gt, vfid, config->begin_ctx, config->num_ctxs);
824 pf_release_config_ctxs(gt, config);
829 vfid, config->begin_ctx, config->begin_ctx + config->num_ctxs - 1);
835 struct xe_gt_sriov_config *config = pf_pick_vf_config(gt, vfid);
837 return config->num_ctxs;
1082 static void pf_release_config_dbs(struct xe_gt *gt, struct xe_gt_sriov_config *config)
1086 pf_release_dbs(gt, config->begin_db, config->num_dbs);
1087 config->begin_db = 0;
1088 config->num_dbs = 0;
1093 struct xe_gt_sriov_config *config = pf_pick_vf_config(gt, vfid);
1101 if (config->num_dbs) {
1106 pf_release_config_dbs(gt, config);
1120 config->begin_db = ret;
1121 config->num_dbs = num_dbs;
1123 ret = pf_push_vf_cfg_dbs(gt, vfid, config->begin_db, config->num_dbs);
1125 pf_release_config_dbs(gt, config);
1130 vfid, config->begin_db, config->begin_db + config->num_dbs - 1);
1136 struct xe_gt_sriov_config *config = pf_pick_vf_config(gt, vfid);
1138 return config->num_dbs;
1318 struct xe_gt_sriov_config *config = pf_pick_vf_config(gt, vfid);
1321 bo = config->lmem_obj;
1380 struct xe_gt_sriov_config *config;
1413 config = pf_pick_vf_config(gt, vfid);
1414 bo = config->lmem_obj;
1436 static void pf_release_vf_config_lmem(struct xe_gt *gt, struct xe_gt_sriov_config *config)
1442 if (config->lmem_obj) {
1443 xe_bo_unpin_map_no_vm(config->lmem_obj);
1444 config->lmem_obj = NULL;
1450 struct xe_gt_sriov_config *config = pf_pick_vf_config(gt, vfid);
1462 if (config->lmem_obj) {
1469 pf_release_vf_config_lmem(gt, config);
1471 xe_gt_assert(gt, !config->lmem_obj);
1494 config->lmem_obj = bo;
1514 pf_release_vf_config_lmem(gt, config);
1718 struct xe_gt_sriov_config *config = pf_pick_vf_config(gt, vfid);
1725 config->exec_quantum = exec_quantum;
1731 struct xe_gt_sriov_config *config = pf_pick_vf_config(gt, vfid);
1733 return config->exec_quantum;
1788 struct xe_gt_sriov_config *config = pf_pick_vf_config(gt, vfid);
1795 config->preempt_timeout = preempt_timeout;
1802 struct xe_gt_sriov_config *config = pf_pick_vf_config(gt, vfid);
1804 return config->preempt_timeout;
1861 struct xe_gt_sriov_config *config = pf_pick_vf_config(gt, vfid);
1868 config->sched_priority = priority;
1874 struct xe_gt_sriov_config *config = pf_pick_vf_config(gt, vfid);
1876 return config->sched_priority;
1922 static void pf_reset_config_sched(struct xe_gt *gt, struct xe_gt_sriov_config *config)
1926 config->exec_quantum = 0;
1927 config->preempt_timeout = 0;
1933 struct xe_gt_sriov_config *config = pf_pick_vf_config(gt, vfid);
1940 config->thresholds[index] = value;
1948 struct xe_gt_sriov_config *config = pf_pick_vf_config(gt, vfid);
1950 return config->thresholds[index];
2007 static void pf_reset_config_thresholds(struct xe_gt *gt, struct xe_gt_sriov_config *config)
2012 config->thresholds[MAKE_XE_GUC_KLV_THRESHOLD_INDEX(TAG)] = 0; \
2021 struct xe_gt_sriov_config *config = pf_pick_vf_config(gt, vfid);
2025 pf_release_vf_config_ggtt(gt, config);
2027 pf_release_vf_config_lmem(gt, config);
2032 pf_release_config_ctxs(gt, config);
2033 pf_release_config_dbs(gt, config);
2034 pf_reset_config_sched(gt, config);
2035 pf_reset_config_thresholds(gt, config);
2106 struct xe_gt_sriov_config *config = pf_pick_vf_config(gt, vfid);
2116 pf_sanitize_ggtt(config->ggtt_region, vfid);
2118 err = pf_sanitize_lmem(tile, config->lmem_obj, timeout);
2232 * xe_gt_sriov_pf_config_save - Save a VF provisioning config as binary blob.
2235 * @buf: the buffer to save a config to (or NULL if query the buf size)
2245 struct xe_gt_sriov_config *config;
2260 config = pf_pick_vf_config(gt, vfid);
2261 ret = encode_config(buf, config, false) * sizeof(u32);
2357 * xe_gt_sriov_pf_config_restore - Restore a VF provisioning config from binary blob.
2360 * @buf: the buffer with config data
2361 * @size: the size of the config data
2384 drm_printf(&p, "restoring VF%u config:\n", vfid);
2401 struct xe_gt_sriov_config *config = pf_pick_vf_config(gt, PFID);
2406 * directly in the config structure, can't do the same with the GGTT
2409 config->num_ctxs = GUC_ID_MAX;
2410 config->num_dbs = GUC_NUM_DOORBELLS;
2513 const struct xe_gt_sriov_config *config;
2517 config = >->sriov.pf.vfs[n].config;
2518 if (!xe_ggtt_node_allocated(config->ggtt_region))
2521 string_get_size(config->ggtt_region->base.size, 1, STRING_UNITS_2,
2524 n, config->ggtt_region->base.start,
2525 config->ggtt_region->base.start + config->ggtt_region->base.size - 1,
2546 const struct xe_gt_sriov_config *config;
2552 config = >->sriov.pf.vfs[n].config;
2553 if (!config->num_ctxs)
2558 config->begin_ctx,
2559 config->begin_ctx + config->num_ctxs - 1,
2560 config->num_ctxs);
2581 const struct xe_gt_sriov_config *config;
2587 config = >->sriov.pf.vfs[n].config;
2588 if (!config->num_dbs)
2593 config->begin_db,
2594 config->begin_db + config->num_dbs - 1,
2595 config->num_dbs);
2616 const struct xe_gt_sriov_config *config;
2623 config = >->sriov.pf.vfs[n].config;
2624 if (!config->lmem_obj)
2627 string_get_size(xe_bo_size(config->lmem_obj), 1, STRING_UNITS_2,
2630 n, xe_bo_size(config->lmem_obj), buf);