Lines Matching defs:xe

447 find_subplatform(const struct xe_device *xe, const struct xe_device_desc *desc)
454 if (*id == xe->info.devid)
465 static void read_gmdid(struct xe_device *xe, enum xe_gmdid_type type, u32 *ver, u32 *revid)
467 struct xe_gt *gt = xe_root_mmio_gt(xe);
471 KUNIT_STATIC_STUB_REDIRECT(read_gmdid, xe, type, ver, revid);
487 static void handle_pre_gmdid(struct xe_device *xe,
491 xe->info.graphics_verx100 = graphics->ver * 100 + graphics->rel;
494 xe->info.media_verx100 = media->ver * 100 + media->rel;
502 static void handle_gmdid(struct xe_device *xe,
510 read_gmdid(xe, GMDID_GRAPHICS, &ver, graphics_revid);
514 xe->info.graphics_verx100 = ver;
521 if (!xe->info.graphics_verx100) {
522 drm_err(&xe->drm, "Hardware reports unknown graphics version %u.%02u\n",
526 read_gmdid(xe, GMDID_MEDIA, &ver, media_revid);
534 xe->info.media_verx100 = ver;
541 if (!xe->info.media_verx100) {
542 drm_err(&xe->drm, "Hardware reports unknown media version %u.%02u\n",
551 static int xe_info_init_early(struct xe_device *xe,
557 xe->info.platform = desc->platform;
558 xe->info.subplatform = subplatform_desc ?
561 xe->info.is_dgfx = desc->is_dgfx;
562 xe->info.has_heci_gscfi = desc->has_heci_gscfi;
563 xe->info.has_llc = desc->has_llc;
564 xe->info.has_mmio_ext = desc->has_mmio_ext;
565 xe->info.has_sriov = desc->has_sriov;
566 xe->info.skip_guc_pc = desc->skip_guc_pc;
567 xe->info.skip_mtcfg = desc->skip_mtcfg;
568 xe->info.skip_pcode = desc->skip_pcode;
570 xe->info.enable_display = IS_ENABLED(CONFIG_DRM_XE_DISPLAY) &&
574 err = xe_tile_init_early(xe_device_get_root_tile(xe), xe, 0);
587 static int xe_info_init(struct xe_device *xe,
603 handle_pre_gmdid(xe, graphics_desc, media_desc);
604 xe->info.step = xe_step_pre_gmdid_get(xe);
606 xe_assert(xe, !media_desc);
607 handle_gmdid(xe, &graphics_desc, &media_desc,
609 xe->info.step = xe_step_gmdid_get(xe,
622 xe->info.graphics_name = graphics_desc->name;
623 xe->info.media_name = media_desc ? media_desc->name : "none";
624 xe->info.tile_mmio_ext_size = graphics_desc->tile_mmio_ext_size;
626 xe->info.dma_mask_size = graphics_desc->dma_mask_size;
627 xe->info.vram_flags = graphics_desc->vram_flags;
628 xe->info.va_bits = graphics_desc->va_bits;
629 xe->info.vm_max_level = graphics_desc->vm_max_level;
630 xe->info.has_asid = graphics_desc->has_asid;
631 xe->info.has_flat_ccs = graphics_desc->has_flat_ccs;
632 xe->info.has_range_tlb_invalidation = graphics_desc->has_range_tlb_invalidation;
633 xe->info.has_usm = graphics_desc->has_usm;
644 xe->info.tile_count = 1 + graphics_desc->max_remote_tiles;
646 for_each_remote_tile(tile, xe, id) {
649 err = xe_tile_init_early(tile, xe, id);
654 for_each_tile(tile, xe, id) {
656 gt->info.id = xe->info.gt_count++;
659 if (MEDIA_VER(xe) < 13 && media_desc)
662 if (MEDIA_VER(xe) < 13 || !media_desc)
685 drm_WARN_ON(&xe->drm, id != 0);
686 gt->info.id = xe->info.gt_count++;
694 struct xe_device *xe;
696 xe = pci_get_drvdata(pdev);
697 if (!xe) /* driver load aborted, nothing to cleanup */
700 xe_device_remove(xe);
701 xe_pm_runtime_fini(xe);
709 struct xe_device *xe;
715 "by xe driver in this kernel version. To force Xe probe,\n"
716 "use xe.force_probe='%04x' and i915.force_probe='!%04x'\n"
737 xe = xe_device_create(pdev, ent);
738 if (IS_ERR(xe))
739 return PTR_ERR(xe);
741 pci_set_drvdata(pdev, xe);
743 xe_pm_assert_unbounded_bridge(xe);
744 subplatform_desc = find_subplatform(xe, desc);
748 err = xe_info_init_early(xe, desc, subplatform_desc);
752 err = xe_device_probe_early(xe);
756 err = xe_info_init(xe, desc->graphics, desc->media);
760 xe_display_probe(xe);
762 drm_dbg(&xe->drm, "%s %s %04x:%04x dgfx:%d gfx:%s (%d.%02d) media:%s (%d.%02d) display:%s dma_m_s:%d tc:%d gscfi:%d",
765 xe->info.devid, xe->info.revid,
766 xe->info.is_dgfx,
767 xe->info.graphics_name,
768 xe->info.graphics_verx100 / 100,
769 xe->info.graphics_verx100 % 100,
770 xe->info.media_name,
771 xe->info.media_verx100 / 100,
772 xe->info.media_verx100 % 100,
773 str_yes_no(xe->info.enable_display),
774 xe->info.dma_mask_size, xe->info.tile_count,
775 xe->info.has_heci_gscfi);
777 drm_dbg(&xe->drm, "Stepping = (G:%s, M:%s, D:%s, B:%s)\n",
778 xe_step_name(xe->info.step.graphics),
779 xe_step_name(xe->info.step.media),
780 xe_step_name(xe->info.step.display),
781 xe_step_name(xe->info.step.basedie));
783 drm_dbg(&xe->drm, "SR-IOV support: %s (mode: %s)\n",
784 str_yes_no(xe_device_has_sriov(xe)),
785 xe_sriov_mode_to_string(xe_device_sriov_mode(xe)));
787 err = xe_pm_init_early(xe);
791 err = xe_device_probe(xe);
795 err = xe_pm_init(xe);
799 drm_dbg(&xe->drm, "d3cold: capable=%s\n",
800 str_yes_no(xe->d3cold.capable));
817 struct xe_device *xe = pdev_to_xe_device(pdev);
820 if (!xe->d3cold.capable)
887 struct xe_device *xe = pdev_to_xe_device(pdev);
890 err = xe_pm_runtime_suspend(xe);
896 if (xe->d3cold.allowed) {
912 struct xe_device *xe = pdev_to_xe_device(pdev);
921 if (xe->d3cold.allowed) {
929 return xe_pm_runtime_resume(xe);
935 struct xe_device *xe = pdev_to_xe_device(pdev);
937 xe_pm_d3cold_allowed_toggle(xe);