mirror of
https://github.com/torvalds/linux.git
synced 2026-03-08 03:44:45 +01:00
drm/i915: split out i915_wait_util.h
Move waiting related utilities from i915_utils.h to separate new file i915_wait_util.h. Clean up related includes. Note: Many of the various wait macro usages could likely be refactored to use poll_timeout_us(). Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com> Link: https://lore.kernel.org/r/431396ac8cdb3e2f4ff053a8933290289a66ce42.1757582214.git.jani.nikula@intel.com Signed-off-by: Jani Nikula <jani.nikula@intel.com>
This commit is contained in:
parent
2f04432fcf
commit
65805c2ed7
24 changed files with 184 additions and 151 deletions
|
|
@ -117,6 +117,7 @@
|
|||
#include "i915_timer_util.h"
|
||||
#include "i915_trace.h"
|
||||
#include "i915_vgpu.h"
|
||||
#include "i915_wait_util.h"
|
||||
#include "intel_breadcrumbs.h"
|
||||
#include "intel_context.h"
|
||||
#include "intel_engine_heartbeat.h"
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@
|
|||
*/
|
||||
|
||||
#include "i915_drv.h"
|
||||
#include "i915_wait_util.h"
|
||||
#include "intel_gt.h"
|
||||
#include "intel_gt_mcr.h"
|
||||
#include "intel_gt_print.h"
|
||||
|
|
|
|||
|
|
@ -9,18 +9,17 @@
|
|||
|
||||
#include "display/intel_display_reset.h"
|
||||
#include "display/intel_overlay.h"
|
||||
|
||||
#include "gem/i915_gem_context.h"
|
||||
|
||||
#include "gt/intel_gt_regs.h"
|
||||
|
||||
#include "gt/uc/intel_gsc_fw.h"
|
||||
#include "uc/intel_guc.h"
|
||||
|
||||
#include "i915_drv.h"
|
||||
#include "i915_file_private.h"
|
||||
#include "i915_gpu_error.h"
|
||||
#include "i915_irq.h"
|
||||
#include "i915_reg.h"
|
||||
#include "i915_wait_util.h"
|
||||
#include "intel_breadcrumbs.h"
|
||||
#include "intel_engine_pm.h"
|
||||
#include "intel_engine_regs.h"
|
||||
|
|
@ -32,8 +31,6 @@
|
|||
#include "intel_pci_config.h"
|
||||
#include "intel_reset.h"
|
||||
|
||||
#include "uc/intel_guc.h"
|
||||
|
||||
#define RESET_MAX_RETRIES 3
|
||||
|
||||
static void client_mark_guilty(struct i915_gem_context *ctx, bool banned)
|
||||
|
|
|
|||
|
|
@ -15,18 +15,19 @@
|
|||
#include "i915_irq.h"
|
||||
#include "i915_mitigations.h"
|
||||
#include "i915_reg.h"
|
||||
#include "i915_wait_util.h"
|
||||
#include "intel_breadcrumbs.h"
|
||||
#include "intel_context.h"
|
||||
#include "intel_engine_heartbeat.h"
|
||||
#include "intel_engine_pm.h"
|
||||
#include "intel_engine_regs.h"
|
||||
#include "intel_gt.h"
|
||||
#include "intel_gt_irq.h"
|
||||
#include "intel_gt_print.h"
|
||||
#include "intel_gt_regs.h"
|
||||
#include "intel_reset.h"
|
||||
#include "intel_ring.h"
|
||||
#include "shmem_utils.h"
|
||||
#include "intel_engine_heartbeat.h"
|
||||
#include "intel_engine_pm.h"
|
||||
#include "intel_gt_print.h"
|
||||
|
||||
/* Rough estimate of the typical request size, performing a flush,
|
||||
* set-context and then emitting the batch.
|
||||
|
|
|
|||
|
|
@ -10,9 +10,11 @@
|
|||
#include "display/intel_display.h"
|
||||
#include "display/intel_display_rps.h"
|
||||
#include "soc/intel_dram.h"
|
||||
|
||||
#include "i915_drv.h"
|
||||
#include "i915_irq.h"
|
||||
#include "i915_reg.h"
|
||||
#include "i915_wait_util.h"
|
||||
#include "intel_breadcrumbs.h"
|
||||
#include "intel_gt.h"
|
||||
#include "intel_gt_clock_utils.h"
|
||||
|
|
|
|||
|
|
@ -3,17 +3,17 @@
|
|||
* Copyright © 2022 Intel Corporation
|
||||
*/
|
||||
|
||||
#include "i915_selftest.h"
|
||||
|
||||
#include "gem/i915_gem_internal.h"
|
||||
#include "gem/i915_gem_lmem.h"
|
||||
#include "gem/i915_gem_region.h"
|
||||
|
||||
#include "gen8_engine_cs.h"
|
||||
#include "i915_gem_ww.h"
|
||||
#include "i915_selftest.h"
|
||||
#include "i915_wait_util.h"
|
||||
#include "intel_context.h"
|
||||
#include "intel_engine_regs.h"
|
||||
#include "intel_gpu_commands.h"
|
||||
#include "intel_context.h"
|
||||
#include "intel_gt.h"
|
||||
#include "intel_ring.h"
|
||||
|
||||
|
|
|
|||
|
|
@ -10,11 +10,13 @@
|
|||
|
||||
#include "gt/intel_gt.h"
|
||||
#include "gt/intel_gt_print.h"
|
||||
|
||||
#include "i915_drv.h"
|
||||
#include "i915_reg.h"
|
||||
#include "i915_wait_util.h"
|
||||
#include "intel_gsc_proxy.h"
|
||||
#include "intel_gsc_uc.h"
|
||||
#include "intel_gsc_uc_heci_cmd_submit.h"
|
||||
#include "i915_drv.h"
|
||||
#include "i915_reg.h"
|
||||
|
||||
/*
|
||||
* GSC proxy:
|
||||
|
|
|
|||
|
|
@ -8,6 +8,8 @@
|
|||
#include "gt/intel_gpu_commands.h"
|
||||
#include "gt/intel_gt.h"
|
||||
#include "gt/intel_ring.h"
|
||||
|
||||
#include "i915_wait_util.h"
|
||||
#include "intel_gsc_uc_heci_cmd_submit.h"
|
||||
|
||||
struct gsc_heci_pkt {
|
||||
|
|
|
|||
|
|
@ -8,15 +8,17 @@
|
|||
#include "gt/intel_gt_irq.h"
|
||||
#include "gt/intel_gt_pm_irq.h"
|
||||
#include "gt/intel_gt_regs.h"
|
||||
|
||||
#include "i915_drv.h"
|
||||
#include "i915_irq.h"
|
||||
#include "i915_reg.h"
|
||||
#include "i915_wait_util.h"
|
||||
#include "intel_guc.h"
|
||||
#include "intel_guc_ads.h"
|
||||
#include "intel_guc_capture.h"
|
||||
#include "intel_guc_print.h"
|
||||
#include "intel_guc_slpc.h"
|
||||
#include "intel_guc_submission.h"
|
||||
#include "i915_drv.h"
|
||||
#include "i915_irq.h"
|
||||
#include "i915_reg.h"
|
||||
|
||||
/**
|
||||
* DOC: GuC
|
||||
|
|
|
|||
|
|
@ -5,11 +5,12 @@
|
|||
|
||||
#include <linux/circ_buf.h>
|
||||
#include <linux/ktime.h>
|
||||
#include <linux/time64.h>
|
||||
#include <linux/string_helpers.h>
|
||||
#include <linux/time64.h>
|
||||
#include <linux/timekeeping.h>
|
||||
|
||||
#include "i915_drv.h"
|
||||
#include "i915_wait_util.h"
|
||||
#include "intel_guc_ct.h"
|
||||
#include "intel_guc_print.h"
|
||||
|
||||
|
|
|
|||
|
|
@ -13,9 +13,11 @@
|
|||
#include "gt/intel_gt_mcr.h"
|
||||
#include "gt/intel_gt_regs.h"
|
||||
#include "gt/intel_rps.h"
|
||||
|
||||
#include "i915_drv.h"
|
||||
#include "i915_wait_util.h"
|
||||
#include "intel_guc_fw.h"
|
||||
#include "intel_guc_print.h"
|
||||
#include "i915_drv.h"
|
||||
|
||||
static void guc_prepare_xfer(struct intel_gt *gt)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -3,18 +3,21 @@
|
|||
* Copyright © 2021 Intel Corporation
|
||||
*/
|
||||
|
||||
#include <drm/drm_cache.h>
|
||||
#include <linux/string_helpers.h>
|
||||
|
||||
#include "i915_drv.h"
|
||||
#include "i915_reg.h"
|
||||
#include "intel_guc_slpc.h"
|
||||
#include "intel_guc_print.h"
|
||||
#include "intel_mchbar_regs.h"
|
||||
#include <drm/drm_cache.h>
|
||||
|
||||
#include "gt/intel_gt.h"
|
||||
#include "gt/intel_gt_regs.h"
|
||||
#include "gt/intel_rps.h"
|
||||
|
||||
#include "i915_drv.h"
|
||||
#include "i915_reg.h"
|
||||
#include "i915_wait_util.h"
|
||||
#include "intel_guc_print.h"
|
||||
#include "intel_guc_slpc.h"
|
||||
#include "intel_mchbar_regs.h"
|
||||
|
||||
/**
|
||||
* DOC: SLPC - Dynamic Frequency management
|
||||
*
|
||||
|
|
|
|||
|
|
@ -25,16 +25,16 @@
|
|||
#include "gt/intel_mocs.h"
|
||||
#include "gt/intel_ring.h"
|
||||
|
||||
#include "i915_drv.h"
|
||||
#include "i915_irq.h"
|
||||
#include "i915_reg.h"
|
||||
#include "i915_trace.h"
|
||||
#include "i915_wait_util.h"
|
||||
#include "intel_guc_ads.h"
|
||||
#include "intel_guc_capture.h"
|
||||
#include "intel_guc_print.h"
|
||||
#include "intel_guc_submission.h"
|
||||
|
||||
#include "i915_drv.h"
|
||||
#include "i915_reg.h"
|
||||
#include "i915_irq.h"
|
||||
#include "i915_trace.h"
|
||||
|
||||
/**
|
||||
* DOC: GuC-based command submission
|
||||
*
|
||||
|
|
|
|||
|
|
@ -33,14 +33,16 @@
|
|||
*
|
||||
*/
|
||||
|
||||
#include "i915_drv.h"
|
||||
#include "i915_reg.h"
|
||||
#include "gt/intel_context.h"
|
||||
#include "gt/intel_engine_regs.h"
|
||||
#include "gt/intel_gpu_commands.h"
|
||||
#include "gt/intel_gt_regs.h"
|
||||
#include "gt/intel_ring.h"
|
||||
|
||||
#include "gvt.h"
|
||||
#include "i915_drv.h"
|
||||
#include "i915_reg.h"
|
||||
#include "i915_wait_util.h"
|
||||
#include "trace.h"
|
||||
|
||||
#define GEN9_MOCS_SIZE 64
|
||||
|
|
|
|||
|
|
@ -26,11 +26,11 @@
|
|||
*
|
||||
*/
|
||||
|
||||
#include <linux/debugfs.h>
|
||||
#include <linux/sched/mm.h>
|
||||
#include <linux/sort.h>
|
||||
#include <linux/string_helpers.h>
|
||||
|
||||
#include <linux/debugfs.h>
|
||||
#include <drm/drm_debugfs.h>
|
||||
|
||||
#include "gem/i915_gem_context.h"
|
||||
|
|
@ -54,6 +54,7 @@
|
|||
#include "i915_irq.h"
|
||||
#include "i915_reg.h"
|
||||
#include "i915_scheduler.h"
|
||||
#include "i915_wait_util.h"
|
||||
#include "intel_mchbar_regs.h"
|
||||
|
||||
static inline struct drm_i915_private *node_to_i915(struct drm_info_node *node)
|
||||
|
|
|
|||
|
|
@ -134,112 +134,6 @@ wait_remaining_ms_from_jiffies(unsigned long timestamp_jiffies, int to_wait_ms)
|
|||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* __wait_for - magic wait macro
|
||||
*
|
||||
* Macro to help avoid open coding check/wait/timeout patterns. Note that it's
|
||||
* important that we check the condition again after having timed out, since the
|
||||
* timeout could be due to preemption or similar and we've never had a chance to
|
||||
* check the condition before the timeout.
|
||||
*/
|
||||
#define __wait_for(OP, COND, US, Wmin, Wmax) ({ \
|
||||
const ktime_t end__ = ktime_add_ns(ktime_get_raw(), 1000ll * (US)); \
|
||||
long wait__ = (Wmin); /* recommended min for usleep is 10 us */ \
|
||||
int ret__; \
|
||||
might_sleep(); \
|
||||
for (;;) { \
|
||||
const bool expired__ = ktime_after(ktime_get_raw(), end__); \
|
||||
OP; \
|
||||
/* Guarantee COND check prior to timeout */ \
|
||||
barrier(); \
|
||||
if (COND) { \
|
||||
ret__ = 0; \
|
||||
break; \
|
||||
} \
|
||||
if (expired__) { \
|
||||
ret__ = -ETIMEDOUT; \
|
||||
break; \
|
||||
} \
|
||||
usleep_range(wait__, wait__ * 2); \
|
||||
if (wait__ < (Wmax)) \
|
||||
wait__ <<= 1; \
|
||||
} \
|
||||
ret__; \
|
||||
})
|
||||
|
||||
#define _wait_for(COND, US, Wmin, Wmax) __wait_for(, (COND), (US), (Wmin), \
|
||||
(Wmax))
|
||||
#define wait_for(COND, MS) _wait_for((COND), (MS) * 1000, 10, 1000)
|
||||
|
||||
/*
|
||||
* If CONFIG_PREEMPT_COUNT is disabled, in_atomic() always reports false.
|
||||
* On PREEMPT_RT the context isn't becoming atomic because it is used in an
|
||||
* interrupt handler or because a spinlock_t is acquired. This leads to
|
||||
* warnings which don't occur otherwise and therefore the check is disabled.
|
||||
*/
|
||||
#if IS_ENABLED(CONFIG_DRM_I915_DEBUG) && IS_ENABLED(CONFIG_PREEMPT_COUNT) && !defined(CONFIG_PREEMPT_RT)
|
||||
# define _WAIT_FOR_ATOMIC_CHECK(ATOMIC) WARN_ON_ONCE((ATOMIC) && !in_atomic())
|
||||
#else
|
||||
# define _WAIT_FOR_ATOMIC_CHECK(ATOMIC) do { } while (0)
|
||||
#endif
|
||||
|
||||
#define _wait_for_atomic(COND, US, ATOMIC) \
|
||||
({ \
|
||||
int cpu, ret, timeout = (US) * 1000; \
|
||||
u64 base; \
|
||||
_WAIT_FOR_ATOMIC_CHECK(ATOMIC); \
|
||||
if (!(ATOMIC)) { \
|
||||
preempt_disable(); \
|
||||
cpu = smp_processor_id(); \
|
||||
} \
|
||||
base = local_clock(); \
|
||||
for (;;) { \
|
||||
u64 now = local_clock(); \
|
||||
if (!(ATOMIC)) \
|
||||
preempt_enable(); \
|
||||
/* Guarantee COND check prior to timeout */ \
|
||||
barrier(); \
|
||||
if (COND) { \
|
||||
ret = 0; \
|
||||
break; \
|
||||
} \
|
||||
if (now - base >= timeout) { \
|
||||
ret = -ETIMEDOUT; \
|
||||
break; \
|
||||
} \
|
||||
cpu_relax(); \
|
||||
if (!(ATOMIC)) { \
|
||||
preempt_disable(); \
|
||||
if (unlikely(cpu != smp_processor_id())) { \
|
||||
timeout -= now - base; \
|
||||
cpu = smp_processor_id(); \
|
||||
base = local_clock(); \
|
||||
} \
|
||||
} \
|
||||
} \
|
||||
ret; \
|
||||
})
|
||||
|
||||
#define wait_for_us(COND, US) \
|
||||
({ \
|
||||
int ret__; \
|
||||
BUILD_BUG_ON(!__builtin_constant_p(US)); \
|
||||
if ((US) > 10) \
|
||||
ret__ = _wait_for((COND), (US), 10, 10); \
|
||||
else \
|
||||
ret__ = _wait_for_atomic((COND), (US), 0); \
|
||||
ret__; \
|
||||
})
|
||||
|
||||
#define wait_for_atomic_us(COND, US) \
|
||||
({ \
|
||||
BUILD_BUG_ON(!__builtin_constant_p(US)); \
|
||||
BUILD_BUG_ON((US) > 50000); \
|
||||
_wait_for_atomic((COND), (US), 1); \
|
||||
})
|
||||
|
||||
#define wait_for_atomic(COND, MS) wait_for_atomic_us((COND), (MS) * 1000)
|
||||
|
||||
#define KHz(x) (1000 * (x))
|
||||
#define MHz(x) KHz(1000 * (x))
|
||||
|
||||
|
|
|
|||
119
drivers/gpu/drm/i915/i915_wait_util.h
Normal file
119
drivers/gpu/drm/i915/i915_wait_util.h
Normal file
|
|
@ -0,0 +1,119 @@
|
|||
/* SPDX-License-Identifier: MIT */
|
||||
/* Copyright © 2025 Intel Corporation */
|
||||
|
||||
#ifndef __I915_WAIT_UTIL_H__
|
||||
#define __I915_WAIT_UTIL_H__
|
||||
|
||||
#include <linux/compiler.h>
|
||||
#include <linux/delay.h>
|
||||
#include <linux/ktime.h>
|
||||
#include <linux/sched/clock.h>
|
||||
#include <linux/smp.h>
|
||||
|
||||
/*
|
||||
* __wait_for - magic wait macro
|
||||
*
|
||||
* Macro to help avoid open coding check/wait/timeout patterns. Note that it's
|
||||
* important that we check the condition again after having timed out, since the
|
||||
* timeout could be due to preemption or similar and we've never had a chance to
|
||||
* check the condition before the timeout.
|
||||
*/
|
||||
#define __wait_for(OP, COND, US, Wmin, Wmax) ({ \
|
||||
const ktime_t end__ = ktime_add_ns(ktime_get_raw(), 1000ll * (US)); \
|
||||
long wait__ = (Wmin); /* recommended min for usleep is 10 us */ \
|
||||
int ret__; \
|
||||
might_sleep(); \
|
||||
for (;;) { \
|
||||
const bool expired__ = ktime_after(ktime_get_raw(), end__); \
|
||||
OP; \
|
||||
/* Guarantee COND check prior to timeout */ \
|
||||
barrier(); \
|
||||
if (COND) { \
|
||||
ret__ = 0; \
|
||||
break; \
|
||||
} \
|
||||
if (expired__) { \
|
||||
ret__ = -ETIMEDOUT; \
|
||||
break; \
|
||||
} \
|
||||
usleep_range(wait__, wait__ * 2); \
|
||||
if (wait__ < (Wmax)) \
|
||||
wait__ <<= 1; \
|
||||
} \
|
||||
ret__; \
|
||||
})
|
||||
|
||||
#define _wait_for(COND, US, Wmin, Wmax) __wait_for(, (COND), (US), (Wmin), \
|
||||
(Wmax))
|
||||
#define wait_for(COND, MS) _wait_for((COND), (MS) * 1000, 10, 1000)
|
||||
|
||||
/*
|
||||
* If CONFIG_PREEMPT_COUNT is disabled, in_atomic() always reports false.
|
||||
* On PREEMPT_RT the context isn't becoming atomic because it is used in an
|
||||
* interrupt handler or because a spinlock_t is acquired. This leads to
|
||||
* warnings which don't occur otherwise and therefore the check is disabled.
|
||||
*/
|
||||
#if IS_ENABLED(CONFIG_DRM_I915_DEBUG) && IS_ENABLED(CONFIG_PREEMPT_COUNT) && !defined(CONFIG_PREEMPT_RT)
|
||||
# define _WAIT_FOR_ATOMIC_CHECK(ATOMIC) WARN_ON_ONCE((ATOMIC) && !in_atomic())
|
||||
#else
|
||||
# define _WAIT_FOR_ATOMIC_CHECK(ATOMIC) do { } while (0)
|
||||
#endif
|
||||
|
||||
#define _wait_for_atomic(COND, US, ATOMIC) \
|
||||
({ \
|
||||
int cpu, ret, timeout = (US) * 1000; \
|
||||
u64 base; \
|
||||
_WAIT_FOR_ATOMIC_CHECK(ATOMIC); \
|
||||
if (!(ATOMIC)) { \
|
||||
preempt_disable(); \
|
||||
cpu = smp_processor_id(); \
|
||||
} \
|
||||
base = local_clock(); \
|
||||
for (;;) { \
|
||||
u64 now = local_clock(); \
|
||||
if (!(ATOMIC)) \
|
||||
preempt_enable(); \
|
||||
/* Guarantee COND check prior to timeout */ \
|
||||
barrier(); \
|
||||
if (COND) { \
|
||||
ret = 0; \
|
||||
break; \
|
||||
} \
|
||||
if (now - base >= timeout) { \
|
||||
ret = -ETIMEDOUT; \
|
||||
break; \
|
||||
} \
|
||||
cpu_relax(); \
|
||||
if (!(ATOMIC)) { \
|
||||
preempt_disable(); \
|
||||
if (unlikely(cpu != smp_processor_id())) { \
|
||||
timeout -= now - base; \
|
||||
cpu = smp_processor_id(); \
|
||||
base = local_clock(); \
|
||||
} \
|
||||
} \
|
||||
} \
|
||||
ret; \
|
||||
})
|
||||
|
||||
#define wait_for_us(COND, US) \
|
||||
({ \
|
||||
int ret__; \
|
||||
BUILD_BUG_ON(!__builtin_constant_p(US)); \
|
||||
if ((US) > 10) \
|
||||
ret__ = _wait_for((COND), (US), 10, 10); \
|
||||
else \
|
||||
ret__ = _wait_for_atomic((COND), (US), 0); \
|
||||
ret__; \
|
||||
})
|
||||
|
||||
#define wait_for_atomic_us(COND, US) \
|
||||
({ \
|
||||
BUILD_BUG_ON(!__builtin_constant_p(US)); \
|
||||
BUILD_BUG_ON((US) > 50000); \
|
||||
_wait_for_atomic((COND), (US), 1); \
|
||||
})
|
||||
|
||||
#define wait_for_atomic(COND, MS) wait_for_atomic_us((COND), (MS) * 1000)
|
||||
|
||||
#endif /* __I915_WAIT_UTIL_H__ */
|
||||
|
|
@ -5,6 +5,7 @@
|
|||
|
||||
#include "i915_drv.h"
|
||||
#include "i915_reg.h"
|
||||
#include "i915_wait_util.h"
|
||||
#include "intel_pcode.h"
|
||||
|
||||
static int gen6_check_mailbox_status(u32 mbox)
|
||||
|
|
|
|||
|
|
@ -21,19 +21,20 @@
|
|||
* IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
#include <drm/drm_managed.h>
|
||||
#include <linux/pm_runtime.h>
|
||||
|
||||
#include "display/intel_display_core.h"
|
||||
#include <drm/drm_managed.h>
|
||||
|
||||
#include "gt/intel_gt.h"
|
||||
#include "display/intel_display_core.h"
|
||||
#include "gt/intel_engine_regs.h"
|
||||
#include "gt/intel_gt.h"
|
||||
#include "gt/intel_gt_regs.h"
|
||||
|
||||
#include "i915_drv.h"
|
||||
#include "i915_iosf_mbi.h"
|
||||
#include "i915_reg.h"
|
||||
#include "i915_vgpu.h"
|
||||
#include "i915_wait_util.h"
|
||||
#include "intel_uncore_trace.h"
|
||||
|
||||
#define FORCEWAKE_ACK_TIMEOUT_MS 50
|
||||
|
|
|
|||
|
|
@ -2,15 +2,15 @@
|
|||
/*
|
||||
* Copyright(c) 2020 Intel Corporation.
|
||||
*/
|
||||
|
||||
#include <linux/workqueue.h>
|
||||
|
||||
#include "gem/i915_gem_context.h"
|
||||
|
||||
#include "gt/intel_context.h"
|
||||
#include "gt/intel_gt.h"
|
||||
|
||||
#include "i915_drv.h"
|
||||
|
||||
#include "i915_wait_util.h"
|
||||
#include "intel_pxp.h"
|
||||
#include "intel_pxp_gsccs.h"
|
||||
#include "intel_pxp_irq.h"
|
||||
|
|
|
|||
|
|
@ -22,14 +22,13 @@
|
|||
*
|
||||
*/
|
||||
|
||||
#include <linux/prime_numbers.h>
|
||||
#include <linux/pm_qos.h>
|
||||
#include <linux/prime_numbers.h>
|
||||
#include <linux/sort.h>
|
||||
|
||||
#include "gem/i915_gem_internal.h"
|
||||
#include "gem/i915_gem_pm.h"
|
||||
#include "gem/selftests/mock_context.h"
|
||||
|
||||
#include "gt/intel_engine_heartbeat.h"
|
||||
#include "gt/intel_engine_pm.h"
|
||||
#include "gt/intel_engine_user.h"
|
||||
|
|
@ -40,11 +39,11 @@
|
|||
|
||||
#include "i915_random.h"
|
||||
#include "i915_selftest.h"
|
||||
#include "i915_wait_util.h"
|
||||
#include "igt_flush_test.h"
|
||||
#include "igt_live_test.h"
|
||||
#include "igt_spinner.h"
|
||||
#include "lib_sw_fence.h"
|
||||
|
||||
#include "mock_drm.h"
|
||||
#include "mock_gem_device.h"
|
||||
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@
|
|||
#include "i915_driver.h"
|
||||
#include "i915_drv.h"
|
||||
#include "i915_selftest.h"
|
||||
|
||||
#include "i915_wait_util.h"
|
||||
#include "igt_flush_test.h"
|
||||
|
||||
struct i915_selftest i915_selftest __read_mostly = {
|
||||
|
|
|
|||
|
|
@ -3,12 +3,13 @@
|
|||
*
|
||||
* Copyright © 2018 Intel Corporation
|
||||
*/
|
||||
#include "gt/intel_gpu_commands.h"
|
||||
#include "gt/intel_gt.h"
|
||||
|
||||
#include "gem/i915_gem_internal.h"
|
||||
#include "gem/selftests/igt_gem_utils.h"
|
||||
#include "gt/intel_gpu_commands.h"
|
||||
#include "gt/intel_gt.h"
|
||||
|
||||
#include "i915_wait_util.h"
|
||||
#include "igt_spinner.h"
|
||||
|
||||
int igt_spinner_init(struct igt_spinner *spin, struct intel_gt *gt)
|
||||
|
|
|
|||
|
|
@ -8,16 +8,17 @@
|
|||
|
||||
#include <drm/drm_print.h>
|
||||
|
||||
#include "gt/intel_gt_regs.h"
|
||||
|
||||
#include "i915_drv.h"
|
||||
#include "i915_reg.h"
|
||||
#include "i915_trace.h"
|
||||
#include "i915_utils.h"
|
||||
#include "i915_wait_util.h"
|
||||
#include "intel_clock_gating.h"
|
||||
#include "intel_uncore_trace.h"
|
||||
#include "vlv_suspend.h"
|
||||
|
||||
#include "gt/intel_gt_regs.h"
|
||||
|
||||
struct vlv_s0ix_state {
|
||||
/* GAM */
|
||||
u32 wr_watermark;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue