brintos

brintos / linux-shallow public Read only

0
0
Text · 1.1 KiB · 8c1dbcb Raw
48 lines · c
1// SPDX-License-Identifier: MIT2/*3 * Copyright © 2021 Intel Corporation4 */5 6#include <drm/drm_managed.h>7 8#include "i915_drv.h"9#include "gt/intel_gt.h"10#include "gt/intel_sa_media.h"11 12int intel_sa_mediagt_setup(struct intel_gt *gt, phys_addr_t phys_addr,13			   u32 gsi_offset)14{15	struct drm_i915_private *i915 = gt->i915;16	struct intel_uncore *uncore;17 18	uncore = drmm_kzalloc(&i915->drm, sizeof(*uncore), GFP_KERNEL);19	if (!uncore)20		return -ENOMEM;21 22	uncore->gsi_offset = gsi_offset;23 24	gt->irq_lock = to_gt(i915)->irq_lock;25	intel_gt_common_init_early(gt);26	intel_uncore_init_early(uncore, gt);27 28	/*29	 * Standalone media shares the general MMIO space with the primary30	 * GT.  We'll re-use the primary GT's mapping.31	 */32	uncore->regs = intel_uncore_regs(&i915->uncore);33	if (drm_WARN_ON(&i915->drm, uncore->regs == NULL))34		return -EIO;35 36	gt->uncore = uncore;37	gt->phys_addr = phys_addr;38 39	/*40	 * For current platforms we can assume there's only a single41	 * media GT and cache it for quick lookup.42	 */43	drm_WARN_ON(&i915->drm, i915->media_gt);44	i915->media_gt = gt;45 46	return 0;47}48