1f0e2f00cSMatt Roper // SPDX-License-Identifier: MIT 2f0e2f00cSMatt Roper /* 3f0e2f00cSMatt Roper * Copyright © 2021 Intel Corporation 4f0e2f00cSMatt Roper */ 5f0e2f00cSMatt Roper 6f0e2f00cSMatt Roper #include <drm/drm_managed.h> 7f0e2f00cSMatt Roper 8f0e2f00cSMatt Roper #include "i915_drv.h" 9f0e2f00cSMatt Roper #include "gt/intel_gt.h" 10f0e2f00cSMatt Roper #include "gt/intel_sa_media.h" 11f0e2f00cSMatt Roper intel_sa_mediagt_setup(struct intel_gt * gt,phys_addr_t phys_addr,u32 gsi_offset)12f0e2f00cSMatt Roperint intel_sa_mediagt_setup(struct intel_gt *gt, phys_addr_t phys_addr, 13f0e2f00cSMatt Roper u32 gsi_offset) 14f0e2f00cSMatt Roper { 15f0e2f00cSMatt Roper struct drm_i915_private *i915 = gt->i915; 16f0e2f00cSMatt Roper struct intel_uncore *uncore; 17f0e2f00cSMatt Roper 18f0e2f00cSMatt Roper uncore = drmm_kzalloc(&i915->drm, sizeof(*uncore), GFP_KERNEL); 19f0e2f00cSMatt Roper if (!uncore) 20f0e2f00cSMatt Roper return -ENOMEM; 21f0e2f00cSMatt Roper 22f0e2f00cSMatt Roper uncore->gsi_offset = gsi_offset; 23f0e2f00cSMatt Roper 2403d2c54dSMatt Roper gt->irq_lock = to_gt(i915)->irq_lock; 25f0e2f00cSMatt Roper intel_gt_common_init_early(gt); 26f0e2f00cSMatt Roper intel_uncore_init_early(uncore, gt); 27f0e2f00cSMatt Roper 28f0e2f00cSMatt Roper /* 29f0e2f00cSMatt Roper * Standalone media shares the general MMIO space with the primary 30f0e2f00cSMatt Roper * GT. We'll re-use the primary GT's mapping. 31f0e2f00cSMatt Roper */ 32*72e9abc3SJani Nikula uncore->regs = intel_uncore_regs(&i915->uncore); 33f0e2f00cSMatt Roper if (drm_WARN_ON(&i915->drm, uncore->regs == NULL)) 34f0e2f00cSMatt Roper return -EIO; 35f0e2f00cSMatt Roper 36f0e2f00cSMatt Roper gt->uncore = uncore; 37f0e2f00cSMatt Roper gt->phys_addr = phys_addr; 38f0e2f00cSMatt Roper 3951aec8bfSMatt Roper /* 4051aec8bfSMatt Roper * For current platforms we can assume there's only a single 4151aec8bfSMatt Roper * media GT and cache it for quick lookup. 4251aec8bfSMatt Roper */ 4351aec8bfSMatt Roper drm_WARN_ON(&i915->drm, i915->media_gt); 4451aec8bfSMatt Roper i915->media_gt = gt; 4551aec8bfSMatt Roper 46f0e2f00cSMatt Roper return 0; 47f0e2f00cSMatt Roper } 48