]> Git Repo - J-linux.git/blob - drivers/gpu/drm/i915/gt/intel_sa_media.c
Merge tag 'kbuild-v6.9' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy...
[J-linux.git] / drivers / gpu / drm / i915 / gt / intel_sa_media.c
1 // SPDX-License-Identifier: MIT
2 /*
3  * Copyright © 2021 Intel Corporation
4  */
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
12 int 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 primary
30          * 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 single
41          * 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 }
This page took 0.031505 seconds and 4 git commands to generate.