/Linux-v6.1/drivers/gpu/drm/i915/gt/ |
D | intel_gt_pm.c | 26 static void user_forcewake(struct intel_gt *gt, bool suspend) in user_forcewake() argument 28 int count = atomic_read(>->user_wakeref); in user_forcewake() 34 intel_gt_pm_get(gt); in user_forcewake() 36 GEM_BUG_ON(count > atomic_read(>->wakeref.count)); in user_forcewake() 37 atomic_sub(count, >->wakeref.count); in user_forcewake() 39 atomic_add(count, >->wakeref.count); in user_forcewake() 41 intel_gt_pm_put(gt); in user_forcewake() 44 static void runtime_begin(struct intel_gt *gt) in runtime_begin() argument 47 write_seqcount_begin(>->stats.lock); in runtime_begin() 48 gt->stats.start = ktime_get(); in runtime_begin() [all …]
|
D | intel_gt.c | 39 void intel_gt_common_init_early(struct intel_gt *gt) in intel_gt_common_init_early() argument 41 spin_lock_init(gt->irq_lock); in intel_gt_common_init_early() 43 INIT_LIST_HEAD(>->lmem_userfault_list); in intel_gt_common_init_early() 44 mutex_init(>->lmem_userfault_lock); in intel_gt_common_init_early() 45 INIT_LIST_HEAD(>->closed_vma); in intel_gt_common_init_early() 46 spin_lock_init(>->closed_lock); in intel_gt_common_init_early() 48 init_llist_head(>->watchdog.list); in intel_gt_common_init_early() 49 INIT_WORK(>->watchdog.work, intel_gt_watchdog_work); in intel_gt_common_init_early() 51 intel_gt_init_buffer_pool(gt); in intel_gt_common_init_early() 52 intel_gt_init_reset(gt); in intel_gt_common_init_early() [all …]
|
D | intel_gt_irq.c | 25 gen11_gt_engine_identity(struct intel_gt *gt, in gen11_gt_engine_identity() argument 28 void __iomem * const regs = gt->uncore->regs; in gen11_gt_engine_identity() 32 lockdep_assert_held(gt->irq_lock); in gen11_gt_engine_identity() 59 gen11_other_irq_handler(struct intel_gt *gt, const u8 instance, in gen11_other_irq_handler() argument 62 struct intel_gt *media_gt = gt->i915->media_gt; in gen11_other_irq_handler() 65 return guc_irq_handler(>->uc.guc, iir); in gen11_other_irq_handler() 70 return gen11_rps_irq_handler(>->rps, iir); in gen11_other_irq_handler() 75 return intel_pxp_irq_handler(>->pxp, iir); in gen11_other_irq_handler() 78 return intel_gsc_irq_handler(gt, iir); in gen11_other_irq_handler() 85 gen11_engine_irq_handler(struct intel_gt *gt, const u8 class, in gen11_engine_irq_handler() argument [all …]
|
D | intel_gt_pm.h | 14 static inline bool intel_gt_pm_is_awake(const struct intel_gt *gt) in intel_gt_pm_is_awake() argument 16 return intel_wakeref_is_active(>->wakeref); in intel_gt_pm_is_awake() 19 static inline void intel_gt_pm_get(struct intel_gt *gt) in intel_gt_pm_get() argument 21 intel_wakeref_get(>->wakeref); in intel_gt_pm_get() 24 static inline void __intel_gt_pm_get(struct intel_gt *gt) in __intel_gt_pm_get() argument 26 __intel_wakeref_get(>->wakeref); in __intel_gt_pm_get() 29 static inline bool intel_gt_pm_get_if_awake(struct intel_gt *gt) in intel_gt_pm_get_if_awake() argument 31 return intel_wakeref_get_if_active(>->wakeref); in intel_gt_pm_get_if_awake() 34 static inline void intel_gt_pm_might_get(struct intel_gt *gt) in intel_gt_pm_might_get() argument 36 intel_wakeref_might_get(>->wakeref); in intel_gt_pm_might_get() [all …]
|
D | intel_reset.c | 167 static int i915_do_reset(struct intel_gt *gt, in i915_do_reset() argument 171 struct pci_dev *pdev = to_pci_dev(gt->i915->drm.dev); in i915_do_reset() 196 static int g33_do_reset(struct intel_gt *gt, in g33_do_reset() argument 200 struct pci_dev *pdev = to_pci_dev(gt->i915->drm.dev); in g33_do_reset() 206 static int g4x_do_reset(struct intel_gt *gt, in g4x_do_reset() argument 210 struct pci_dev *pdev = to_pci_dev(gt->i915->drm.dev); in g4x_do_reset() 211 struct intel_uncore *uncore = gt->uncore; in g4x_do_reset() 222 GT_TRACE(gt, "Wait for media reset failed\n"); in g4x_do_reset() 230 GT_TRACE(gt, "Wait for render reset failed\n"); in g4x_do_reset() 243 static int ilk_do_reset(struct intel_gt *gt, intel_engine_mask_t engine_mask, in ilk_do_reset() argument [all …]
|
D | intel_gt_mcr.c | 92 void intel_gt_mcr_init(struct intel_gt *gt) in intel_gt_mcr_init() argument 94 struct drm_i915_private *i915 = gt->i915; in intel_gt_mcr_init() 101 gt->info.mslice_mask = in intel_gt_mcr_init() 102 intel_slicemask_from_xehp_dssmask(gt->info.sseu.subslice_mask, in intel_gt_mcr_init() 104 gt->info.mslice_mask |= in intel_gt_mcr_init() 105 (intel_uncore_read(gt->uncore, GEN10_MIRROR_FUSE3) & in intel_gt_mcr_init() 108 if (!gt->info.mslice_mask) /* should be impossible! */ in intel_gt_mcr_init() 113 gt->steering_table[INSTANCE0] = pvc_instance0_steering_table; in intel_gt_mcr_init() 115 gt->steering_table[MSLICE] = xehpsdv_mslice_steering_table; in intel_gt_mcr_init() 116 gt->steering_table[LNCF] = dg2_lncf_steering_table; in intel_gt_mcr_init() [all …]
|
D | intel_gt_pm_irq.c | 13 static void write_pm_imr(struct intel_gt *gt) in write_pm_imr() argument 15 struct drm_i915_private *i915 = gt->i915; in write_pm_imr() 16 struct intel_uncore *uncore = gt->uncore; in write_pm_imr() 17 u32 mask = gt->pm_imr; in write_pm_imr() 32 static void gen6_gt_pm_update_irq(struct intel_gt *gt, in gen6_gt_pm_update_irq() argument 40 lockdep_assert_held(gt->irq_lock); in gen6_gt_pm_update_irq() 42 new_val = gt->pm_imr; in gen6_gt_pm_update_irq() 46 if (new_val != gt->pm_imr) { in gen6_gt_pm_update_irq() 47 gt->pm_imr = new_val; in gen6_gt_pm_update_irq() 48 write_pm_imr(gt); in gen6_gt_pm_update_irq() [all …]
|
D | selftest_reset.c | 18 __igt_reset_stolen(struct intel_gt *gt, in __igt_reset_stolen() argument 22 struct i915_ggtt *ggtt = gt->ggtt; in __igt_reset_stolen() 23 const struct resource *dsm = >->i915->dsm; in __igt_reset_stolen() 51 igt_global_reset_lock(gt); in __igt_reset_stolen() 52 wakeref = intel_runtime_pm_get(gt->uncore->rpm); in __igt_reset_stolen() 54 err = igt_spinner_init(&spin, gt); in __igt_reset_stolen() 58 for_each_engine(engine, gt, id) { in __igt_reset_stolen() 96 if (!__drm_mm_interval_first(>->i915->mm.stolen, in __igt_reset_stolen() 112 intel_gt_reset(gt, mask, NULL); in __igt_reset_stolen() 114 for_each_engine(engine, gt, id) { in __igt_reset_stolen() [all …]
|
D | intel_gt.h | 16 #define GT_TRACE(gt, fmt, ...) do { \ argument 17 const struct intel_gt *gt__ __maybe_unused = (gt); \ 22 static inline bool gt_is_root(struct intel_gt *gt) in gt_is_root() argument 24 return !gt->info.id; in gt_is_root() 47 void intel_gt_common_init_early(struct intel_gt *gt); 49 int intel_gt_assign_ggtt(struct intel_gt *gt); 50 int intel_gt_init_mmio(struct intel_gt *gt); 51 int __must_check intel_gt_init_hw(struct intel_gt *gt); 52 int intel_gt_init(struct intel_gt *gt); 53 void intel_gt_driver_register(struct intel_gt *gt); [all …]
|
D | intel_gt_sysfs_pm.c | 28 int (func)(struct intel_gt *gt, u32 val), u32 val) in sysfs_gt_attribute_w_func() argument 30 struct intel_gt *gt; in sysfs_gt_attribute_w_func() local 37 for_each_gt(gt, i915, i) { in sysfs_gt_attribute_w_func() 38 ret = func(gt, val); in sysfs_gt_attribute_w_func() 43 gt = intel_gt_sysfs_get_drvdata(dev, attr->attr.name); in sysfs_gt_attribute_w_func() 44 ret = func(gt, val); in sysfs_gt_attribute_w_func() 52 u32 (func)(struct intel_gt *gt), in sysfs_gt_attribute_r_func() argument 55 struct intel_gt *gt; in sysfs_gt_attribute_r_func() local 64 for_each_gt(gt, i915, i) { in sysfs_gt_attribute_r_func() 65 u32 val = func(gt); in sysfs_gt_attribute_r_func() [all …]
|
D | intel_gt_sysfs.c | 49 static struct kobject *gt_get_parent_obj(struct intel_gt *gt) in gt_get_parent_obj() argument 51 return >->i915->drm.primary->kdev->kobj; in gt_get_parent_obj() 58 struct intel_gt *gt = intel_gt_sysfs_get_drvdata(dev, attr->attr.name); in id_show() local 60 return sysfs_emit(buf, "%u\n", gt->info.id); in id_show() 81 void intel_gt_sysfs_register(struct intel_gt *gt) in intel_gt_sysfs_register() argument 91 if (gt_is_root(gt)) in intel_gt_sysfs_register() 92 intel_gt_sysfs_pm_init(gt, gt_get_parent_obj(gt)); in intel_gt_sysfs_register() 95 if (kobject_init_and_add(>->sysfs_gt, &kobj_gt_type, in intel_gt_sysfs_register() 96 gt->i915->sysfs_gt, "gt%d", gt->info.id)) in intel_gt_sysfs_register() 99 gt->sysfs_defaults = kobject_create_and_add(".defaults", >->sysfs_gt); in intel_gt_sysfs_register() [all …]
|
D | intel_gt_clock_utils.c | 146 void intel_gt_init_clock_frequency(struct intel_gt *gt) in intel_gt_init_clock_frequency() argument 148 gt->clock_frequency = read_clock_frequency(gt->uncore); in intel_gt_init_clock_frequency() 151 if (GRAPHICS_VER(gt->i915) == 11) in intel_gt_init_clock_frequency() 152 gt->clock_period_ns = NSEC_PER_SEC / 13750000; in intel_gt_init_clock_frequency() 153 else if (gt->clock_frequency) in intel_gt_init_clock_frequency() 154 gt->clock_period_ns = intel_gt_clock_interval_to_ns(gt, 1); in intel_gt_init_clock_frequency() 156 GT_TRACE(gt, in intel_gt_init_clock_frequency() 158 gt->clock_frequency / 1000, in intel_gt_init_clock_frequency() 159 gt->clock_period_ns, in intel_gt_init_clock_frequency() 160 div_u64(mul_u32_u32(gt->clock_period_ns, S32_MAX), in intel_gt_init_clock_frequency() [all …]
|
D | intel_reset.h | 21 void intel_gt_init_reset(struct intel_gt *gt); 22 void intel_gt_fini_reset(struct intel_gt *gt); 25 void intel_gt_handle_error(struct intel_gt *gt, 31 void intel_gt_reset(struct intel_gt *gt, 41 int __must_check intel_gt_reset_trylock(struct intel_gt *gt, int *srcu); 42 void intel_gt_reset_unlock(struct intel_gt *gt, int tag); 44 void intel_gt_set_wedged(struct intel_gt *gt); 45 bool intel_gt_unset_wedged(struct intel_gt *gt); 46 int intel_gt_terminally_wedged(struct intel_gt *gt); 53 void intel_gt_set_wedged_on_init(struct intel_gt *gt); [all …]
|
D | intel_gt_debugfs.c | 18 int intel_gt_debugfs_reset_show(struct intel_gt *gt, u64 *val) in intel_gt_debugfs_reset_show() argument 20 int ret = intel_gt_terminally_wedged(gt); in intel_gt_debugfs_reset_show() 34 void intel_gt_debugfs_reset_store(struct intel_gt *gt, u64 val) in intel_gt_debugfs_reset_store() argument 37 wait_event(gt->reset.queue, in intel_gt_debugfs_reset_store() 38 !test_bit(I915_RESET_BACKOFF, >->reset.flags)); in intel_gt_debugfs_reset_store() 40 intel_gt_handle_error(gt, val, I915_ERROR_CAPTURE, in intel_gt_debugfs_reset_store() 66 struct intel_gt *gt = m->private; in steering_show() local 68 intel_gt_mcr_report_steering(&p, gt, true); in steering_show() 74 static void gt_debugfs_register(struct intel_gt *gt, struct dentry *root) in gt_debugfs_register() argument 81 intel_gt_debugfs_register_files(root, files, ARRAY_SIZE(files), gt); in gt_debugfs_register() [all …]
|
D | selftest_gt_pm.c | 68 struct intel_gt *gt = arg; in live_gt_clocks() local 73 if (!gt->clock_frequency) { /* unknown */ in live_gt_clocks() 78 if (GRAPHICS_VER(gt->i915) < 4) /* Any CS_TIMESTAMP? */ in live_gt_clocks() 81 if (GRAPHICS_VER(gt->i915) == 5) in live_gt_clocks() 90 if (GRAPHICS_VER(gt->i915) == 4) in live_gt_clocks() 100 intel_gt_pm_get(gt); in live_gt_clocks() 101 intel_uncore_forcewake_get(gt->uncore, FORCEWAKE_ALL); in live_gt_clocks() 103 for_each_engine(engine, gt, id) { in live_gt_clocks() 114 time = intel_gt_clock_interval_to_ns(engine->gt, cycles); in live_gt_clocks() 115 expected = intel_gt_ns_to_clock_interval(engine->gt, dt); in live_gt_clocks() [all …]
|
D | selftest_hangcheck.c | 33 struct intel_gt *gt; member 41 static int hang_init(struct hang *h, struct intel_gt *gt) in hang_init() argument 47 h->gt = gt; in hang_init() 49 h->ctx = kernel_context(gt->i915, NULL); in hang_init() 55 h->hws = i915_gem_object_create_internal(gt->i915, PAGE_SIZE); in hang_init() 61 h->obj = i915_gem_object_create_internal(gt->i915, PAGE_SIZE); in hang_init() 76 i915_coherent_map_type(gt->i915, h->obj, false)); in hang_init() 121 struct intel_gt *gt = h->gt; in hang_create_request() local 131 obj = i915_gem_object_create_internal(gt->i915, PAGE_SIZE); in hang_create_request() 137 vaddr = i915_gem_object_pin_map_unlocked(obj, i915_coherent_map_type(gt->i915, obj, false)); in hang_create_request() [all …]
|
D | intel_gt_pm_debugfs.c | 27 void intel_gt_pm_debugfs_forcewake_user_open(struct intel_gt *gt) in intel_gt_pm_debugfs_forcewake_user_open() argument 29 atomic_inc(>->user_wakeref); in intel_gt_pm_debugfs_forcewake_user_open() 30 intel_gt_pm_get(gt); in intel_gt_pm_debugfs_forcewake_user_open() 31 if (GRAPHICS_VER(gt->i915) >= 6) in intel_gt_pm_debugfs_forcewake_user_open() 32 intel_uncore_forcewake_user_get(gt->uncore); in intel_gt_pm_debugfs_forcewake_user_open() 35 void intel_gt_pm_debugfs_forcewake_user_release(struct intel_gt *gt) in intel_gt_pm_debugfs_forcewake_user_release() argument 37 if (GRAPHICS_VER(gt->i915) >= 6) in intel_gt_pm_debugfs_forcewake_user_release() 38 intel_uncore_forcewake_user_put(gt->uncore); in intel_gt_pm_debugfs_forcewake_user_release() 39 intel_gt_pm_put(gt); in intel_gt_pm_debugfs_forcewake_user_release() 40 atomic_dec(>->user_wakeref); in intel_gt_pm_debugfs_forcewake_user_release() [all …]
|
/Linux-v6.1/drivers/gpu/drm/i915/ |
D | Makefile | 83 gt-y += \ 84 gt/gen2_engine_cs.o \ 85 gt/gen6_engine_cs.o \ 86 gt/gen6_ppgtt.o \ 87 gt/gen7_renderclear.o \ 88 gt/gen8_engine_cs.o \ 89 gt/gen8_ppgtt.o \ 90 gt/intel_breadcrumbs.o \ 91 gt/intel_context.o \ 92 gt/intel_context_sseu.o \ [all …]
|
D | i915_gpu_error.c | 456 for_each_ss_steering(iter, ee->engine->gt, slice, subslice) in error_print_instdone() 461 for_each_ss_steering(iter, ee->engine->gt, slice, subslice) in error_print_instdone() 470 for_each_ss_steering(iter, ee->engine->gt, slice, subslice) in error_print_instdone() 718 struct intel_gt_coredump *gt) in err_print_gt_info() argument 722 intel_gt_info_print(>->info, &p); in err_print_gt_info() 723 intel_sseu_print_topology(gt->_gt->i915, >->info.sseu, &p); in err_print_gt_info() 727 struct intel_gt_coredump *gt) in err_print_gt_display() argument 729 err_printf(m, "IER: 0x%08x\n", gt->ier); in err_print_gt_display() 730 err_printf(m, "DERRMR: 0x%08x\n", gt->derrmr); in err_print_gt_display() 734 struct intel_gt_coredump *gt) in err_print_gt_global_nonguc() argument [all …]
|
/Linux-v6.1/drivers/gpu/drm/i915/selftests/ |
D | igt_reset.c | 14 void igt_global_reset_lock(struct intel_gt *gt) in igt_global_reset_lock() argument 19 pr_debug("%s: current gpu_error=%08lx\n", __func__, gt->reset.flags); in igt_global_reset_lock() 21 while (test_and_set_bit(I915_RESET_BACKOFF, >->reset.flags)) in igt_global_reset_lock() 22 wait_event(gt->reset.queue, in igt_global_reset_lock() 23 !test_bit(I915_RESET_BACKOFF, >->reset.flags)); in igt_global_reset_lock() 25 for_each_engine(engine, gt, id) { in igt_global_reset_lock() 27 >->reset.flags)) in igt_global_reset_lock() 28 wait_on_bit(>->reset.flags, I915_RESET_ENGINE + id, in igt_global_reset_lock() 33 void igt_global_reset_unlock(struct intel_gt *gt) in igt_global_reset_unlock() argument 38 for_each_engine(engine, gt, id) in igt_global_reset_unlock() [all …]
|
/Linux-v6.1/drivers/gpu/drm/i915/pxp/ |
D | intel_pxp_irq.c | 23 struct intel_gt *gt = pxp_to_gt(pxp); in intel_pxp_irq_handler() local 28 lockdep_assert_held(gt->irq_lock); in intel_pxp_irq_handler() 47 static inline void __pxp_set_interrupts(struct intel_gt *gt, u32 interrupts) in __pxp_set_interrupts() argument 49 struct intel_uncore *uncore = gt->uncore; in __pxp_set_interrupts() 56 static inline void pxp_irq_reset(struct intel_gt *gt) in pxp_irq_reset() argument 58 spin_lock_irq(gt->irq_lock); in pxp_irq_reset() 59 gen11_gt_reset_one_iir(gt, 0, GEN11_KCR); in pxp_irq_reset() 60 spin_unlock_irq(gt->irq_lock); in pxp_irq_reset() 65 struct intel_gt *gt = pxp_to_gt(pxp); in intel_pxp_irq_enable() local 67 spin_lock_irq(gt->irq_lock); in intel_pxp_irq_enable() [all …]
|
/Linux-v6.1/drivers/gpu/drm/i915/gt/uc/ |
D | selftest_guc.c | 49 struct intel_gt *gt = arg; in intel_guc_scrub_ctbs() local 57 if (!intel_has_gpu_reset(gt)) in intel_guc_scrub_ctbs() 60 wakeref = intel_runtime_pm_get(gt->uncore->rpm); in intel_guc_scrub_ctbs() 61 engine = intel_selftest_find_any_engine(gt); in intel_guc_scrub_ctbs() 68 drm_err(>->i915->drm, "Failed to create context, %d: %d\n", i, ret); in intel_guc_scrub_ctbs() 89 drm_err(>->i915->drm, "Failed to create request, %d: %d\n", i, ret); in intel_guc_scrub_ctbs() 99 drm_err(>->i915->drm, "Last request failed to complete: %d\n", ret); in intel_guc_scrub_ctbs() 107 intel_gt_retire_requests(gt); in intel_guc_scrub_ctbs() 111 intel_gt_handle_error(engine->gt, -1, 0, "selftest reset"); in intel_guc_scrub_ctbs() 114 ret = intel_gt_wait_for_idle(gt, HZ); in intel_guc_scrub_ctbs() [all …]
|
D | selftest_guc_hangcheck.c | 30 struct intel_gt *gt = arg; in intel_hang_guc() local 37 struct i915_gpu_error *global = >->i915->gpu_error; in intel_hang_guc() 43 ctx = kernel_context(gt->i915, NULL); in intel_hang_guc() 45 drm_err(>->i915->drm, "Failed get kernel context: %ld\n", PTR_ERR(ctx)); in intel_hang_guc() 49 wakeref = intel_runtime_pm_get(gt->uncore->rpm); in intel_hang_guc() 51 ce = intel_context_create(gt->engine[BCS0]); in intel_hang_guc() 54 drm_err(>->i915->drm, "Failed to create spinner request: %d\n", ret); in intel_hang_guc() 64 drm_err(>->i915->drm, "Failed to boost heatbeat interval: %d\n", ret); in intel_hang_guc() 68 ret = igt_spinner_init(&spin, engine->gt); in intel_hang_guc() 70 drm_err(>->i915->drm, "Failed to create spinner: %d\n", ret); in intel_hang_guc() [all …]
|
D | intel_guc.c | 42 struct intel_gt *gt = guc_to_gt(guc); in intel_guc_notify() local 50 intel_uncore_write(gt->uncore, guc->notify_reg, GUC_SEND_TRIGGER); in intel_guc_notify() 64 struct intel_gt *gt = guc_to_gt(guc); in intel_guc_init_send_regs() local 72 fw_domains |= intel_uncore_forcewake_for_reg(gt->uncore, in intel_guc_init_send_regs() 81 struct intel_gt *gt = guc_to_gt(guc); in gen9_reset_guc_interrupts() local 83 assert_rpm_wakelock_held(>->i915->runtime_pm); in gen9_reset_guc_interrupts() 85 spin_lock_irq(gt->irq_lock); in gen9_reset_guc_interrupts() 86 gen6_gt_pm_reset_iir(gt, gt->pm_guc_events); in gen9_reset_guc_interrupts() 87 spin_unlock_irq(gt->irq_lock); in gen9_reset_guc_interrupts() 92 struct intel_gt *gt = guc_to_gt(guc); in gen9_enable_guc_interrupts() local [all …]
|
/Linux-v6.1/drivers/media/radio/ |
D | radio-gemtek.c | 150 static void gemtek_bu2614_transmit(struct gemtek *gt) in gemtek_bu2614_transmit() argument 152 struct radio_isa_card *isa = >->isa; in gemtek_bu2614_transmit() 155 mute = gt->muted ? GEMTEK_MT : 0x00; in gemtek_bu2614_transmit() 160 for (i = 0, q = gt->bu2614data; i < 32; i++, q >>= 1) { in gemtek_bu2614_transmit() 182 struct gemtek *gt = kzalloc(sizeof(*gt), GFP_KERNEL); in gemtek_alloc() local 184 if (gt) in gemtek_alloc() 185 gt->muted = true; in gemtek_alloc() 186 return gt ? >->isa : NULL; in gemtek_alloc() 194 struct gemtek *gt = container_of(isa, struct gemtek, isa); in gemtek_s_frequency() local 196 if (hardmute && gt->muted) in gemtek_s_frequency() [all …]
|