Lines Matching +full:0 +full:xe
83 .rel = 0,
148 .has_flat_ccs = 0,
159 .has_flat_ccs = 0,
186 .rel = 0,
237 static const u16 adls_rpls_ids[] = { XE_RPLS_IDS(NOP), 0 };
252 static const u16 adlp_rplu_ids[] = { XE_RPLU_IDS(NOP), 0 };
289 static const u16 dg2_g10_ids[] = { XE_DG2_G10_IDS(NOP), XE_ATS_M150_IDS(NOP), 0 };
290 static const u16 dg2_g11_ids[] = { XE_DG2_G11_IDS(NOP), XE_ATS_M75_IDS(NOP), 0 };
291 static const u16 dg2_g12_ids[] = { XE_DG2_G12_IDS(NOP), 0 };
371 PCI_BASE_CLASS_DISPLAY << 16, 0xff << 16, \
410 if (negative && strcmp(devices, "!*") == 0) in device_id_in_list()
412 if (!negative && strcmp(devices, "*") == 0) in device_id_in_list()
422 if (negative && tok[0] == '!') in device_id_in_list()
424 else if ((negative && tok[0] != '!') || in device_id_in_list()
425 (!negative && tok[0] == '!')) in device_id_in_list()
428 if (kstrtou16(tok, 16, &val) == 0 && val == device_id) { in device_id_in_list()
450 find_subplatform(const struct xe_device *xe, const struct xe_device_desc *desc) in find_subplatform() argument
457 if (*id == xe->info.devid) in find_subplatform()
468 static void read_gmdid(struct xe_device *xe, enum xe_gmdid_type type, u32 *ver, u32 *revid) in read_gmdid() argument
470 struct xe_gt *gt = xe_root_mmio_gt(xe); in read_gmdid()
474 KUNIT_STATIC_STUB_REDIRECT(read_gmdid, xe, type, ver, revid); in read_gmdid()
476 if (IS_SRIOV_VF(xe)) { in read_gmdid()
495 gt->info.id = 0; in read_gmdid()
502 val = xe_gt_sriov_vf_bootstrap(gt) ? 0 : xe_gt_sriov_vf_gmdid(gt); in read_gmdid()
508 gt->info.id = 0; in read_gmdid()
532 static void handle_pre_gmdid(struct xe_device *xe, in handle_pre_gmdid() argument
536 xe->info.graphics_verx100 = graphics->ver * 100 + graphics->rel; in handle_pre_gmdid()
539 xe->info.media_verx100 = media->ver * 100 + media->rel; in handle_pre_gmdid()
547 static void handle_gmdid(struct xe_device *xe, in handle_gmdid() argument
555 read_gmdid(xe, GMDID_GRAPHICS, &ver, graphics_revid); in handle_gmdid()
557 for (int i = 0; i < ARRAY_SIZE(graphics_ip_map); i++) { in handle_gmdid()
559 xe->info.graphics_verx100 = ver; in handle_gmdid()
566 if (!xe->info.graphics_verx100) { in handle_gmdid()
567 drm_err(&xe->drm, "Hardware reports unknown graphics version %u.%02u\n", in handle_gmdid()
571 read_gmdid(xe, GMDID_MEDIA, &ver, media_revid); in handle_gmdid()
574 if (ver == 0) in handle_gmdid()
577 for (int i = 0; i < ARRAY_SIZE(media_ip_map); i++) { in handle_gmdid()
579 xe->info.media_verx100 = ver; in handle_gmdid()
586 if (!xe->info.media_verx100) { in handle_gmdid()
587 drm_err(&xe->drm, "Hardware reports unknown media version %u.%02u\n", in handle_gmdid()
596 static int xe_info_init_early(struct xe_device *xe, in xe_info_init_early() argument
602 xe->info.platform_name = desc->platform_name; in xe_info_init_early()
603 xe->info.platform = desc->platform; in xe_info_init_early()
604 xe->info.subplatform = subplatform_desc ? in xe_info_init_early()
607 xe->info.is_dgfx = desc->is_dgfx; in xe_info_init_early()
608 xe->info.has_heci_gscfi = desc->has_heci_gscfi; in xe_info_init_early()
609 xe->info.has_heci_cscfi = desc->has_heci_cscfi; in xe_info_init_early()
610 xe->info.has_llc = desc->has_llc; in xe_info_init_early()
611 xe->info.has_mmio_ext = desc->has_mmio_ext; in xe_info_init_early()
612 xe->info.has_sriov = desc->has_sriov; in xe_info_init_early()
613 xe->info.skip_guc_pc = desc->skip_guc_pc; in xe_info_init_early()
614 xe->info.skip_mtcfg = desc->skip_mtcfg; in xe_info_init_early()
615 xe->info.skip_pcode = desc->skip_pcode; in xe_info_init_early()
617 xe->info.probe_display = IS_ENABLED(CONFIG_DRM_XE_DISPLAY) && in xe_info_init_early()
621 err = xe_tile_init_early(xe_device_get_root_tile(xe), xe, 0); in xe_info_init_early()
625 return 0; in xe_info_init_early()
634 static int xe_info_init(struct xe_device *xe, in xe_info_init() argument
638 u32 graphics_gmdid_revid = 0, media_gmdid_revid = 0; in xe_info_init()
650 handle_pre_gmdid(xe, graphics_desc, media_desc); in xe_info_init()
651 xe->info.step = xe_step_pre_gmdid_get(xe); in xe_info_init()
653 xe_assert(xe, !media_desc); in xe_info_init()
654 handle_gmdid(xe, &graphics_desc, &media_desc, in xe_info_init()
656 xe->info.step = xe_step_gmdid_get(xe, in xe_info_init()
669 xe->info.graphics_name = graphics_desc->name; in xe_info_init()
670 xe->info.media_name = media_desc ? media_desc->name : "none"; in xe_info_init()
671 xe->info.tile_mmio_ext_size = graphics_desc->tile_mmio_ext_size; in xe_info_init()
673 xe->info.dma_mask_size = graphics_desc->dma_mask_size; in xe_info_init()
674 xe->info.vram_flags = graphics_desc->vram_flags; in xe_info_init()
675 xe->info.va_bits = graphics_desc->va_bits; in xe_info_init()
676 xe->info.vm_max_level = graphics_desc->vm_max_level; in xe_info_init()
677 xe->info.has_asid = graphics_desc->has_asid; in xe_info_init()
678 xe->info.has_atomic_enable_pte_bit = graphics_desc->has_atomic_enable_pte_bit; in xe_info_init()
679 if (xe->info.platform != XE_PVC) in xe_info_init()
680 xe->info.has_device_atomics_on_smem = 1; in xe_info_init()
681 xe->info.has_flat_ccs = graphics_desc->has_flat_ccs; in xe_info_init()
682 xe->info.has_range_tlb_invalidation = graphics_desc->has_range_tlb_invalidation; in xe_info_init()
683 xe->info.has_usm = graphics_desc->has_usm; in xe_info_init()
694 xe->info.tile_count = 1 + graphics_desc->max_remote_tiles; in xe_info_init()
696 for_each_remote_tile(tile, xe, id) { in xe_info_init()
699 err = xe_tile_init_early(tile, xe, id); in xe_info_init()
704 for_each_tile(tile, xe, id) { in xe_info_init()
706 gt->info.id = xe->info.gt_count++; in xe_info_init()
710 if (MEDIA_VER(xe) < 13 && media_desc) in xe_info_init()
713 if (MEDIA_VER(xe) < 13 || !media_desc) in xe_info_init()
737 drm_WARN_ON(&xe->drm, id != 0); in xe_info_init()
738 gt->info.id = xe->info.gt_count++; in xe_info_init()
741 return 0; in xe_info_init()
746 struct xe_device *xe; in xe_pci_remove() local
748 xe = pdev_to_xe_device(pdev); in xe_pci_remove()
749 if (!xe) /* driver load aborted, nothing to cleanup */ in xe_pci_remove()
752 if (IS_SRIOV_PF(xe)) in xe_pci_remove()
753 xe_pci_sriov_configure(pdev, 0); in xe_pci_remove()
755 xe_device_remove(xe); in xe_pci_remove()
756 xe_pm_runtime_fini(xe); in xe_pci_remove()
764 struct xe_device *xe; in xe_pci_probe() local
770 "by xe driver in this kernel version. To force Xe probe,\n" in xe_pci_probe()
771 "use xe.force_probe='%04x' and i915.force_probe='!%04x'\n" in xe_pci_probe()
792 xe = xe_device_create(pdev, ent); in xe_pci_probe()
793 if (IS_ERR(xe)) in xe_pci_probe()
794 return PTR_ERR(xe); in xe_pci_probe()
796 pci_set_drvdata(pdev, &xe->drm); in xe_pci_probe()
798 xe_pm_assert_unbounded_bridge(xe); in xe_pci_probe()
799 subplatform_desc = find_subplatform(xe, desc); in xe_pci_probe()
803 err = xe_info_init_early(xe, desc, subplatform_desc); in xe_pci_probe()
807 err = xe_device_probe_early(xe); in xe_pci_probe()
811 err = xe_info_init(xe, desc->graphics, desc->media); in xe_pci_probe()
815 err = xe_display_probe(xe); in xe_pci_probe()
819 …drm_dbg(&xe->drm, "%s %s %04x:%04x dgfx:%d gfx:%s (%d.%02d) media:%s (%d.%02d) display:%s dma_m_s:… in xe_pci_probe()
822 xe->info.devid, xe->info.revid, in xe_pci_probe()
823 xe->info.is_dgfx, in xe_pci_probe()
824 xe->info.graphics_name, in xe_pci_probe()
825 xe->info.graphics_verx100 / 100, in xe_pci_probe()
826 xe->info.graphics_verx100 % 100, in xe_pci_probe()
827 xe->info.media_name, in xe_pci_probe()
828 xe->info.media_verx100 / 100, in xe_pci_probe()
829 xe->info.media_verx100 % 100, in xe_pci_probe()
830 str_yes_no(xe->info.probe_display), in xe_pci_probe()
831 xe->info.dma_mask_size, xe->info.tile_count, in xe_pci_probe()
832 xe->info.has_heci_gscfi, xe->info.has_heci_cscfi); in xe_pci_probe()
834 drm_dbg(&xe->drm, "Stepping = (G:%s, M:%s, B:%s)\n", in xe_pci_probe()
835 xe_step_name(xe->info.step.graphics), in xe_pci_probe()
836 xe_step_name(xe->info.step.media), in xe_pci_probe()
837 xe_step_name(xe->info.step.basedie)); in xe_pci_probe()
839 drm_dbg(&xe->drm, "SR-IOV support: %s (mode: %s)\n", in xe_pci_probe()
840 str_yes_no(xe_device_has_sriov(xe)), in xe_pci_probe()
841 xe_sriov_mode_to_string(xe_device_sriov_mode(xe))); in xe_pci_probe()
843 err = xe_pm_init_early(xe); in xe_pci_probe()
847 err = xe_device_probe(xe); in xe_pci_probe()
851 err = xe_pm_init(xe); in xe_pci_probe()
855 drm_dbg(&xe->drm, "d3cold: capable=%s\n", in xe_pci_probe()
856 str_yes_no(xe->d3cold.capable)); in xe_pci_probe()
858 return 0; in xe_pci_probe()
873 struct xe_device *xe = pdev_to_xe_device(pdev); in d3cold_toggle() local
876 if (!xe->d3cold.capable) in d3cold_toggle()
912 return 0; in xe_pci_suspend()
939 return 0; in xe_pci_resume()
945 struct xe_device *xe = pdev_to_xe_device(pdev); in xe_pci_runtime_suspend() local
948 err = xe_pm_runtime_suspend(xe); in xe_pci_runtime_suspend()
954 if (xe->d3cold.allowed) { in xe_pci_runtime_suspend()
964 return 0; in xe_pci_runtime_suspend()
970 struct xe_device *xe = pdev_to_xe_device(pdev); in xe_pci_runtime_resume() local
979 if (xe->d3cold.allowed) { in xe_pci_runtime_resume()
987 return xe_pm_runtime_resume(xe); in xe_pci_runtime_resume()
993 struct xe_device *xe = pdev_to_xe_device(pdev); in xe_pci_runtime_idle() local
995 xe_pm_d3cold_allowed_toggle(xe); in xe_pci_runtime_idle()
997 return 0; in xe_pci_runtime_idle()