xref: /linux/drivers/gpu/drm/i915/display/intel_display_utils.c (revision 24f171c7e145f43b9f187578e89b0982ce87e54c)
1cd81a70dSJani Nikula // SPDX-License-Identifier: MIT
2cd81a70dSJani Nikula /* Copyright © 2025 Intel Corporation */
3cd81a70dSJani Nikula 
4*aaccf0baSJani Nikula #include <linux/device.h>
5*aaccf0baSJani Nikula 
6*aaccf0baSJani Nikula #include <drm/drm_device.h>
7*aaccf0baSJani Nikula 
8cd81a70dSJani Nikula #ifdef CONFIG_X86
9cd81a70dSJani Nikula #include <asm/hypervisor.h>
10cd81a70dSJani Nikula #endif
11cd81a70dSJani Nikula 
12*aaccf0baSJani Nikula #include "intel_display_core.h"
13cd81a70dSJani Nikula #include "intel_display_utils.h"
14cd81a70dSJani Nikula 
15cd81a70dSJani Nikula bool intel_display_run_as_guest(struct intel_display *display)
16cd81a70dSJani Nikula {
17cd81a70dSJani Nikula #if IS_ENABLED(CONFIG_X86)
18cd81a70dSJani Nikula 	return !hypervisor_is_type(X86_HYPER_NATIVE);
19cd81a70dSJani Nikula #else
20cd81a70dSJani Nikula 	/* Not supported yet */
21cd81a70dSJani Nikula 	return false;
22cd81a70dSJani Nikula #endif
23cd81a70dSJani Nikula }
24*aaccf0baSJani Nikula 
25*aaccf0baSJani Nikula bool intel_display_vtd_active(struct intel_display *display)
26*aaccf0baSJani Nikula {
27*aaccf0baSJani Nikula 	if (device_iommu_mapped(display->drm->dev))
28*aaccf0baSJani Nikula 		return true;
29*aaccf0baSJani Nikula 
30*aaccf0baSJani Nikula 	/* Running as a guest, we assume the host is enforcing VT'd */
31*aaccf0baSJani Nikula 	return intel_display_run_as_guest(display);
32*aaccf0baSJani Nikula }
33