Skip to content

Commit

Permalink
drm/i915: Move GraphicsTechnology files under gt/
Browse files Browse the repository at this point in the history
Start partitioning off the code that talks to the hardware (GT) from the
uapi layers and move the device facing code under gt/

One casualty is s/intel_ringbuffer.h/intel_engine.h/ with the plan to
subdivide that header and body further (and split out the submission
code from the ringbuffer and logical context handling). This patch aims
to be simple motion so git can fixup inflight patches with little mess.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Acked-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Acked-by: Jani Nikula <jani.nikula@intel.com>
Acked-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20190424174839.7141-1-chris@chris-wilson.co.uk
  • Loading branch information
Chris Wilson committed Apr 24, 2019
1 parent 86554f4 commit 112ed2d
Show file tree
Hide file tree
Showing 59 changed files with 166 additions and 112 deletions.
46 changes: 29 additions & 17 deletions drivers/gpu/drm/i915/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -35,32 +35,53 @@ subdir-ccflags-y += \
# Extra header tests
include $(src)/Makefile.header-test

subdir-ccflags-y += -I$(src)

# Please keep these build lists sorted!

# core driver code
i915-y += i915_drv.o \
i915_irq.o \
i915_memcpy.o \
i915_mm.o \
i915_params.o \
i915_pci.o \
i915_reset.o \
i915_suspend.o \
i915_sw_fence.o \
i915_syncmap.o \
i915_sysfs.o \
i915_user_extensions.o \
intel_csr.o \
intel_device_info.o \
intel_pm.o \
intel_runtime_pm.o \
intel_workarounds.o
intel_uncore.o

# core library code
i915-y += \
i915_memcpy.o \
i915_mm.o \
i915_sw_fence.o \
i915_syncmap.o \
i915_user_extensions.o

i915-$(CONFIG_COMPAT) += i915_ioc32.o
i915-$(CONFIG_DEBUG_FS) += i915_debugfs.o intel_pipe_crc.o
i915-$(CONFIG_PERF_EVENTS) += i915_pmu.o

# GEM code
# "Graphics Technology" (aka we talk to the gpu)
obj-y += gt/
gt-y += \
gt/intel_breadcrumbs.o \
gt/intel_context.o \
gt/intel_engine_cs.o \
gt/intel_hangcheck.o \
gt/intel_lrc.o \
gt/intel_reset.o \
gt/intel_ringbuffer.o \
gt/intel_mocs.o \
gt/intel_sseu.o \
gt/intel_workarounds.o
gt-$(CONFIG_DRM_I915_SELFTEST) += \
gt/mock_engine.o
i915-y += $(gt-y)

# GEM (Graphics Execution Management) code
i915-y += \
i915_active.o \
i915_cmd_parser.o \
Expand Down Expand Up @@ -88,15 +109,6 @@ i915-y += \
i915_timeline.o \
i915_trace_points.o \
i915_vma.o \
intel_breadcrumbs.o \
intel_context.o \
intel_engine_cs.o \
intel_hangcheck.o \
intel_lrc.o \
intel_mocs.o \
intel_ringbuffer.o \
intel_sseu.o \
intel_uncore.o \
intel_wopcm.o

# general-purpose microcontroller (GuC) support
Expand Down
6 changes: 1 addition & 5 deletions drivers/gpu/drm/i915/Makefile.header-test
Original file line number Diff line number Diff line change
Expand Up @@ -13,13 +13,11 @@ header_test := \
intel_cdclk.h \
intel_color.h \
intel_connector.h \
intel_context_types.h \
intel_crt.h \
intel_csr.h \
intel_ddi.h \
intel_dp.h \
intel_dvo.h \
intel_engine_types.h \
intel_fbc.h \
intel_fbdev.h \
intel_frontbuffer.h \
Expand All @@ -33,9 +31,7 @@ header_test := \
intel_psr.h \
intel_sdvo.h \
intel_sprite.h \
intel_sseu.h \
intel_tv.h \
intel_workarounds_types.h
intel_tv.h

quiet_cmd_header_test = HDRTEST $@
cmd_header_test = echo "\#include \"$(<F)\"" > $@
Expand Down
2 changes: 2 additions & 0 deletions drivers/gpu/drm/i915/gt/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# Extra header tests
include $(src)/Makefile.header-test
16 changes: 16 additions & 0 deletions drivers/gpu/drm/i915/gt/Makefile.header-test
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# SPDX-License-Identifier: MIT
# Copyright © 2019 Intel Corporation

# Test the headers are compilable as standalone units
header_test := $(notdir $(wildcard $(src)/*.h))

quiet_cmd_header_test = HDRTEST $@
cmd_header_test = echo "\#include \"$(<F)\"" > $@

header_test_%.c: %.h
$(call cmd,header_test)

extra-$(CONFIG_DRM_I915_WERROR) += \
$(foreach h,$(header_test),$(patsubst %.h,header_test_%.o,$(h)))

clean-files += $(foreach h,$(header_test),$(patsubst %.h,header_test_%.c,$(h)))
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,9 @@
#include "i915_drv.h"
#include "i915_gem_context.h"
#include "i915_globals.h"

#include "intel_context.h"
#include "intel_ringbuffer.h"
#include "intel_engine.h"

static struct i915_global_context {
struct i915_global base;
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -25,9 +25,10 @@
#include <drm/drm_print.h>

#include "i915_drv.h"
#include "i915_reset.h"
#include "intel_ringbuffer.h"

#include "intel_engine.h"
#include "intel_lrc.h"
#include "intel_reset.h"

/* Haswell does have the CXT_SIZE register however it does not appear to be
* valid. Now, docs explain in dwords what is in the context object. The full
Expand Down Expand Up @@ -1756,6 +1757,5 @@ intel_engine_find_active_request(struct intel_engine_cs *engine)
}

#if IS_ENABLED(CONFIG_DRM_I915_SELFTEST)
#include "selftests/mock_engine.c"
#include "selftests/intel_engine_cs.c"
#include "selftest_engine_cs.c"
#endif
Original file line number Diff line number Diff line change
Expand Up @@ -14,15 +14,14 @@
#include <linux/types.h>

#include "i915_gem.h"
#include "i915_gem_batch_pool.h"
#include "i915_pmu.h"
#include "i915_priolist_types.h"
#include "i915_selftest.h"
#include "i915_timeline_types.h"
#include "intel_sseu.h"
#include "intel_workarounds_types.h"

#include "i915_gem_batch_pool.h"
#include "i915_pmu.h"

#define I915_MAX_SLICES 3
#define I915_MAX_SUBSLICES 8

Expand Down
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,8 @@
*
*/

#include "intel_reset.h"
#include "i915_drv.h"
#include "i915_reset.h"

struct hangcheck {
u64 acthd;
Expand Down Expand Up @@ -330,5 +330,5 @@ void intel_hangcheck_init(struct drm_i915_private *i915)
}

#if IS_ENABLED(CONFIG_DRM_I915_SELFTEST)
#include "selftests/intel_hangcheck.c"
#include "selftest_hangcheck.c"
#endif
Original file line number Diff line number Diff line change
Expand Up @@ -133,13 +133,12 @@
*/
#include <linux/interrupt.h>

#include <drm/i915_drm.h>
#include "i915_drv.h"
#include "i915_gem_render_state.h"
#include "i915_reset.h"
#include "i915_vgpu.h"
#include "intel_lrc_reg.h"
#include "intel_mocs.h"
#include "intel_reset.h"
#include "intel_workarounds.h"

#define RING_EXECLIST_QFULL (1 << 0x2)
Expand Down Expand Up @@ -2905,5 +2904,5 @@ void intel_lr_context_reset(struct intel_engine_cs *engine,
}

#if IS_ENABLED(CONFIG_DRM_I915_SELFTEST)
#include "selftests/intel_lrc.c"
#include "selftest_lrc.c"
#endif
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,7 @@
#ifndef _INTEL_LRC_H_
#define _INTEL_LRC_H_

#include "intel_ringbuffer.h"
#include "i915_gem_context.h"
#include "intel_engine.h"

/* Execlists regs */
#define RING_ELSP(base) _MMIO((base) + 0x230)
Expand Down Expand Up @@ -99,7 +98,6 @@ int logical_xcs_ring_init(struct intel_engine_cs *engine);
struct drm_printer;

struct drm_i915_private;
struct i915_gem_context;

void intel_execlists_set_default_submission(struct intel_engine_cs *engine);

Expand Down
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,11 @@
* SOFTWARE.
*/

#include "i915_drv.h"

#include "intel_engine.h"
#include "intel_mocs.h"
#include "intel_lrc.h"
#include "intel_ringbuffer.h"

/* structures required */
struct drm_i915_mocs_entry {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,9 @@
* context handling keep the MOCS in step.
*/

#include "i915_drv.h"
struct drm_i915_private;
struct i915_request;
struct intel_engine_cs;

int intel_rcs_context_init_mocs(struct i915_request *rq);
void intel_mocs_init_l3cc_table(struct drm_i915_private *dev_priv);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@

#include "i915_drv.h"
#include "i915_gpu_error.h"
#include "i915_reset.h"
#include "intel_reset.h"

#include "intel_guc.h"

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
#include <linux/types.h>
#include <linux/srcu.h>

#include "intel_engine_types.h"
#include "gt/intel_engine_types.h"

struct drm_i915_private;
struct i915_request;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,9 +33,8 @@

#include "i915_drv.h"
#include "i915_gem_render_state.h"
#include "i915_reset.h"
#include "i915_trace.h"
#include "intel_drv.h"
#include "intel_reset.h"
#include "intel_workarounds.h"

/* Rough estimate of the typical request size, performing a flush,
Expand Down
File renamed without changes.
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -1398,5 +1398,5 @@ int intel_engine_verify_workarounds(struct intel_engine_cs *engine,
}

#if IS_ENABLED(CONFIG_DRM_I915_SELFTEST)
#include "selftests/intel_workarounds.c"
#include "selftest_workarounds.c"
#endif
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,17 @@
* Copyright © 2014-2018 Intel Corporation
*/

#ifndef _I915_WORKAROUNDS_H_
#define _I915_WORKAROUNDS_H_
#ifndef _INTEL_WORKAROUNDS_H_
#define _INTEL_WORKAROUNDS_H_

#include <linux/slab.h>

#include "intel_workarounds_types.h"

struct drm_i915_private;
struct i915_request;
struct intel_engine_cs;

static inline void intel_wa_list_free(struct i915_wa_list *wal)
{
kfree(wal->list);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,11 @@
*
*/

#include "i915_drv.h"
#include "intel_context.h"

#include "mock_engine.h"
#include "mock_request.h"
#include "selftests/mock_request.h"

struct mock_ring {
struct intel_ring base;
Expand Down Expand Up @@ -268,8 +271,9 @@ struct intel_engine_cs *mock_engine(struct drm_i915_private *i915,
timer_setup(&engine->hw_delay, hw_delay_complete, 0);
INIT_LIST_HEAD(&engine->hw_queue);

if (pin_context(i915->kernel_context, &engine->base,
&engine->base.kernel_context))
engine->base.kernel_context =
intel_context_pin(i915->kernel_context, &engine->base);
if (IS_ERR(engine->base.kernel_context))
goto err_breadcrumbs;

return &engine->base;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@
#include <linux/spinlock.h>
#include <linux/timer.h>

#include "../intel_ringbuffer.h"
#include "gt/intel_engine.h"

struct mock_engine {
struct intel_engine_cs base;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,14 +24,14 @@

#include <linux/kthread.h>

#include "../i915_selftest.h"
#include "i915_random.h"
#include "igt_flush_test.h"
#include "igt_reset.h"
#include "igt_wedge_me.h"

#include "mock_context.h"
#include "mock_drm.h"
#include "i915_selftest.h"
#include "selftests/i915_random.h"
#include "selftests/igt_flush_test.h"
#include "selftests/igt_reset.h"
#include "selftests/igt_wedge_me.h"

#include "selftests/mock_context.h"
#include "selftests/mock_drm.h"

#define IGT_IDLE_TIMEOUT 50 /* ms; time to wait after flushing between tests */

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,13 @@

#include <linux/prime_numbers.h>

#include "../i915_reset.h"

#include "../i915_selftest.h"
#include "igt_flush_test.h"
#include "igt_live_test.h"
#include "igt_spinner.h"
#include "i915_random.h"

#include "mock_context.h"
#include "gt/intel_reset.h"
#include "i915_selftest.h"
#include "selftests/i915_random.h"
#include "selftests/igt_flush_test.h"
#include "selftests/igt_live_test.h"
#include "selftests/igt_spinner.h"
#include "selftests/mock_context.h"

static int live_sanitycheck(void *arg)
{
Expand Down
Loading

0 comments on commit 112ed2d

Please sign in to comment.