Skip to content

Commit 1781ef1

Browse files
committed
intel: disable GT1 (Media chip) on FreeBSD
This disables the GT1 unit on meteorlake and newer. This GT is in charge of handling accelerated media and HDCP, which requires the MEI driver. We don't have this on FreeBSD yet so disable it for now to get mtl gpus working. We also have to disable the HDCP initialization or else it will panic because the GT pointer is invalid.
1 parent e1b7694 commit 1781ef1

2 files changed

Lines changed: 21 additions & 0 deletions

File tree

drivers/gpu/drm/i915/display/intel_hdcp.c

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2279,6 +2279,15 @@ static int initialize_hdcp_port_data(struct intel_connector *connector,
22792279

22802280
static bool is_hdcp2_supported(struct drm_i915_private *i915)
22812281
{
2282+
#ifdef __FreeBSD__
2283+
/*
2284+
* HDCP is not supported on meteorlake because it requires
2285+
* GSC which depends on the MEI driver, which we do not have.
2286+
*/
2287+
if (!IS_ENABLED(CONFIG_INTEL_MEI_HDCP))
2288+
return false;
2289+
#endif
2290+
22822291
if (intel_hdcp_gsc_cs_required(i915))
22832292
return true;
22842293

drivers/gpu/drm/i915/gt/intel_sa_media.c

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,18 @@ int intel_sa_mediagt_setup(struct intel_gt *gt, phys_addr_t phys_addr,
1414
{
1515
struct drm_i915_private *i915 = gt->i915;
1616
struct intel_uncore *uncore;
17+
#ifdef __FreeBSD__
18+
/*
19+
* Skip standalone media GT on Meteor Lake.
20+
* FreeBSD lacks MEI driver support needed for GSC proxy,
21+
* which causes GuC authentication to fail on GT1.
22+
*/
23+
if (!IS_ENABLED(CONFIG_INTEL_MEI_HDCP)) {
24+
drm_info(&i915->drm,
25+
"Skipping GT1 (Standalone Media GT) - MEI driver not available on FreeBSD\n");
26+
return 0;
27+
}
28+
#endif
1729

1830
uncore = drmm_kzalloc(&i915->drm, sizeof(*uncore), GFP_KERNEL);
1931
if (!uncore)

0 commit comments

Comments
 (0)