Lines Matching +full:0 +full:xe
23 * DOC: Xe Boot Survivability
60 static void populate_survivability_info(struct xe_device *xe) in populate_survivability_info() argument
62 struct xe_survivability *survivability = &xe->survivability; in populate_survivability_info()
65 u32 id = 0, reg_value; in populate_survivability_info()
69 mmio = xe_root_tile_mmio(xe); in populate_survivability_info()
86 for (index = 0; id && reg_value; index++, reg_value = info[id].value, in populate_survivability_info()
96 struct xe_device *xe = pdev_to_xe_device(pdev); in log_survivability_info() local
97 struct xe_survivability *survivability = &xe->survivability; in log_survivability_info()
103 for (id = 0; id < MAX_SCRATCH_MMIO; id++) { in log_survivability_info()
105 dev_info(&pdev->dev, "%s: 0x%x - 0x%x\n", info[id].name, in log_survivability_info()
114 struct xe_device *xe = pdev_to_xe_device(pdev); in survivability_mode_show() local
115 struct xe_survivability *survivability = &xe->survivability; in survivability_mode_show()
117 int index = 0, count = 0; in survivability_mode_show()
119 for (index = 0; index < MAX_SCRATCH_MMIO; index++) { in survivability_mode_show()
121 count += sysfs_emit_at(buff, count, "%s: 0x%x - 0x%x\n", info[index].name, in survivability_mode_show()
132 struct xe_device *xe = arg; in xe_survivability_mode_fini() local
133 struct pci_dev *pdev = to_pci_dev(xe->drm.dev); in xe_survivability_mode_fini()
142 struct xe_device *xe = pdev_to_xe_device(pdev); in enable_survivability_mode() local
143 struct xe_survivability *survivability = &xe->survivability; in enable_survivability_mode()
144 int ret = 0; in enable_survivability_mode()
153 ret = devm_add_action_or_reset(xe->drm.dev, in enable_survivability_mode()
154 xe_survivability_mode_fini, xe); in enable_survivability_mode()
161 ret = xe_heci_gsc_init(xe); in enable_survivability_mode()
171 xe_vsec_init(xe); in enable_survivability_mode()
175 return 0; in enable_survivability_mode()
180 * @xe: xe device instance
184 bool xe_survivability_mode_is_enabled(struct xe_device *xe) in xe_survivability_mode_is_enabled() argument
186 return xe->survivability.mode; in xe_survivability_mode_is_enabled()
198 static bool survivability_mode_requested(struct xe_device *xe) in survivability_mode_requested() argument
200 struct xe_survivability *survivability = &xe->survivability; in survivability_mode_requested()
201 struct xe_mmio *mmio = xe_root_tile_mmio(xe); in survivability_mode_requested()
204 if (!IS_DGFX(xe) || xe->info.platform < XE_BATTLEMAGE || IS_SRIOV_VF(xe)) in survivability_mode_requested()
207 data = xe_mmio_read32(mmio, PCODE_SCRATCH(0)); in survivability_mode_requested()
216 * @xe: xe device instance
220 * Return: 0 if survivability mode is enabled or not requested; negative error
223 int xe_survivability_mode_enable(struct xe_device *xe) in xe_survivability_mode_enable() argument
225 struct xe_survivability *survivability = &xe->survivability; in xe_survivability_mode_enable()
227 struct pci_dev *pdev = to_pci_dev(xe->drm.dev); in xe_survivability_mode_enable()
229 if (!survivability_mode_requested(xe)) in xe_survivability_mode_enable()
230 return 0; in xe_survivability_mode_enable()
234 info = devm_kcalloc(xe->drm.dev, survivability->size, sizeof(*info), in xe_survivability_mode_enable()
241 populate_survivability_info(xe); in xe_survivability_mode_enable()