Lines Matching full:table
25 const struct drm_i915_mocs_entry *table; member
120 * entries will remain constant and the table will only be updated by
491 struct drm_i915_mocs_table *table) in get_mocs_settings() argument
495 memset(table, 0, sizeof(struct drm_i915_mocs_table)); in get_mocs_settings()
497 table->unused_entries_index = I915_MOCS_PTE; in get_mocs_settings()
499 table->size = ARRAY_SIZE(mtl_mocs_table); in get_mocs_settings()
500 table->table = mtl_mocs_table; in get_mocs_settings()
501 table->n_entries = MTL_NUM_MOCS_ENTRIES; in get_mocs_settings()
502 table->uc_index = 9; in get_mocs_settings()
503 table->unused_entries_index = 1; in get_mocs_settings()
505 table->size = ARRAY_SIZE(pvc_mocs_table); in get_mocs_settings()
506 table->table = pvc_mocs_table; in get_mocs_settings()
507 table->n_entries = PVC_NUM_MOCS_ENTRIES; in get_mocs_settings()
508 table->uc_index = 1; in get_mocs_settings()
509 table->wb_index = 2; in get_mocs_settings()
510 table->unused_entries_index = 2; in get_mocs_settings()
512 table->size = ARRAY_SIZE(dg2_mocs_table); in get_mocs_settings()
513 table->table = dg2_mocs_table; in get_mocs_settings()
514 table->uc_index = 1; in get_mocs_settings()
515 table->n_entries = GEN9_NUM_MOCS_ENTRIES; in get_mocs_settings()
516 table->unused_entries_index = 3; in get_mocs_settings()
518 table->size = ARRAY_SIZE(xehpsdv_mocs_table); in get_mocs_settings()
519 table->table = xehpsdv_mocs_table; in get_mocs_settings()
520 table->uc_index = 2; in get_mocs_settings()
521 table->n_entries = GEN9_NUM_MOCS_ENTRIES; in get_mocs_settings()
522 table->unused_entries_index = 5; in get_mocs_settings()
524 table->size = ARRAY_SIZE(dg1_mocs_table); in get_mocs_settings()
525 table->table = dg1_mocs_table; in get_mocs_settings()
526 table->uc_index = 1; in get_mocs_settings()
527 table->n_entries = GEN9_NUM_MOCS_ENTRIES; in get_mocs_settings()
528 table->uc_index = 1; in get_mocs_settings()
529 table->unused_entries_index = 5; in get_mocs_settings()
532 table->size = ARRAY_SIZE(tgl_mocs_table); in get_mocs_settings()
533 table->table = tgl_mocs_table; in get_mocs_settings()
534 table->n_entries = GEN9_NUM_MOCS_ENTRIES; in get_mocs_settings()
535 table->uc_index = 3; in get_mocs_settings()
537 table->size = ARRAY_SIZE(gen12_mocs_table); in get_mocs_settings()
538 table->table = gen12_mocs_table; in get_mocs_settings()
539 table->n_entries = GEN9_NUM_MOCS_ENTRIES; in get_mocs_settings()
540 table->uc_index = 3; in get_mocs_settings()
541 table->unused_entries_index = 2; in get_mocs_settings()
543 table->size = ARRAY_SIZE(icl_mocs_table); in get_mocs_settings()
544 table->table = icl_mocs_table; in get_mocs_settings()
545 table->n_entries = GEN9_NUM_MOCS_ENTRIES; in get_mocs_settings()
547 table->size = ARRAY_SIZE(skl_mocs_table); in get_mocs_settings()
548 table->n_entries = GEN9_NUM_MOCS_ENTRIES; in get_mocs_settings()
549 table->table = skl_mocs_table; in get_mocs_settings()
551 table->size = ARRAY_SIZE(broxton_mocs_table); in get_mocs_settings()
552 table->n_entries = GEN9_NUM_MOCS_ENTRIES; in get_mocs_settings()
553 table->table = broxton_mocs_table; in get_mocs_settings()
556 "Platform that should have a MOCS table does not.\n"); in get_mocs_settings()
560 if (GEM_DEBUG_WARN_ON(table->size > table->n_entries)) in get_mocs_settings()
567 for (i = 0; i < table->size; i++) in get_mocs_settings()
568 if (GEM_DEBUG_WARN_ON(table->table[i].l3cc_value & in get_mocs_settings()
591 static u32 get_entry_control(const struct drm_i915_mocs_table *table, in get_entry_control() argument
594 if (index < table->size && table->table[index].used) in get_entry_control()
595 return table->table[index].control_value; in get_entry_control()
596 return table->table[table->unused_entries_index].control_value; in get_entry_control()
605 const struct drm_i915_mocs_table *table, in __init_mocs_table() argument
611 drm_WARN_ONCE(&uncore->i915->drm, !table->unused_entries_index, in __init_mocs_table()
613 for_each_mocs(mocs, table, i) in __init_mocs_table()
633 const struct drm_i915_mocs_table *table) in init_mocs_table() argument
635 __init_mocs_table(engine->uncore, table, mocs_offset(engine)); in init_mocs_table()
643 static u16 get_entry_l3cc(const struct drm_i915_mocs_table *table, in get_entry_l3cc() argument
646 if (index < table->size && table->table[index].used) in get_entry_l3cc()
647 return table->table[index].l3cc_value; in get_entry_l3cc()
648 return table->table[table->unused_entries_index].l3cc_value; in get_entry_l3cc()
665 const struct drm_i915_mocs_table *table) in init_l3cc_table() argument
672 for_each_l3cc(l3cc, table, i) in init_l3cc_table()
682 struct drm_i915_mocs_table table; in intel_mocs_init_engine() local
688 flags = get_mocs_settings(engine->i915, &table); in intel_mocs_init_engine()
694 init_mocs_table(engine, &table); in intel_mocs_init_engine()
697 init_l3cc_table(engine->gt, &table); in intel_mocs_init_engine()
707 struct drm_i915_mocs_table table; in intel_set_mocs_index() local
709 get_mocs_settings(gt->i915, &table); in intel_set_mocs_index()
710 gt->mocs.uc_index = table.uc_index; in intel_set_mocs_index()
712 gt->mocs.wb_index = table.wb_index; in intel_set_mocs_index()
717 struct drm_i915_mocs_table table; in intel_mocs_init() local
723 flags = get_mocs_settings(gt->i915, &table); in intel_mocs_init()
725 __init_mocs_table(gt->uncore, &table, global_mocs_offset()); in intel_mocs_init()
728 * Initialize the L3CC table as part of mocs initalization to make in intel_mocs_init()
733 init_l3cc_table(gt, &table); in intel_mocs_init()