linux_dsm_epyc7002/drivers/gpu/drm/i915/gt
Daniele Ceraolo Spurio 8d5682f662 drm/i915/uc: Unify uC firmware upload
The way we load the firmwares is the same for both GuC and HuC, the only
difference is in the wopcm destination address and the dma flags, so we
easily can move the logic to a common function and pass in offset and
flags. The only other difference in the uplaod path are some the extra
steps that guc does before and after the xfer, but those don't require
the guc fw to be pinned in ggtt and can safely be performed before
calling the uc_upload function.

Note that this patch re-introduces the dma xfer wait for guc loading that
was removed with "drm/i915/guc: Propagate the fw xfer timeout". This is
not going to slow us down on a successful load (the dma has to complete
before fw init can start), but could slightly increase the timeout in case
of a fw init error.

v2: use _fw variants for uncore accesses (Chris), fix guc_fw status on
    failed wait.

v3: use dev_err and print DMA_CTRL (Chris)

Signed-off-by: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
Cc: Michal Wajdeczko <michal.wajdeczko@intel.com>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Link: https://patchwork.freedesktop.org/patch/msgid/20190725001813.4740-9-daniele.ceraolospurio@intel.com
2019-07-25 07:30:41 +01:00
..
selftests drm/i915: Rename i915_timeline to intel_timeline and move under gt 2019-06-21 13:48:53 +01:00
uc drm/i915/uc: Unify uC firmware upload 2019-07-25 07:30:41 +01:00
gen6_renderstate.c drm/i915: Move the renderstate setup under gt/ 2019-07-04 11:48:22 +01:00
gen7_renderstate.c drm/i915: Move the renderstate setup under gt/ 2019-07-04 11:48:22 +01:00
gen8_renderstate.c drm/i915: Move the renderstate setup under gt/ 2019-07-04 11:48:22 +01:00
gen9_renderstate.c drm/i915: Move the renderstate setup under gt/ 2019-07-04 11:48:22 +01:00
intel_breadcrumbs.c
intel_context_types.h drm/i915/execlists: Preempt-to-busy 2019-06-20 16:52:36 +01:00
intel_context.c drm/i915/gt: Hook up intel_context_fini() 2019-07-22 23:20:07 +01:00
intel_context.h drm/i915/gt: Hook up intel_context_fini() 2019-07-22 23:20:07 +01:00
intel_engine_cs.c drm/i915: Fix and improve MCR selection logic 2019-07-19 15:35:19 +01:00
intel_engine_pm.c drm/i915/gt: Use intel_gt as the primary object for handling resets 2019-07-12 21:06:56 +01:00
intel_engine_pm.h drm/i915: Lift intel_engines_resume() to callers 2019-06-26 18:01:01 +01:00
intel_engine_types.h drm/i915/guc: Remove preemption support for current fw 2019-07-11 11:09:33 +01:00
intel_engine.h drm/i915/gt: Use intel_gt as the primary object for handling resets 2019-07-12 21:06:56 +01:00
intel_gpu_commands.h drm/i915/selftests: Ensure we don't clamp a random offset to 32b 2019-07-11 10:06:37 +01:00
intel_gt_pm.c drm/i915/uc: Sanitize uC when GT is sanitized 2019-07-23 11:38:23 +01:00
intel_gt_pm.h drm/i915: Lift intel_engines_resume() to callers 2019-06-26 18:01:01 +01:00
intel_gt_types.h drm/i915/guc: prefer intel_gt in guc interrupt functions 2019-07-13 20:11:36 +01:00
intel_gt.c drm/i915/gt: Use intel_gt as the primary object for handling resets 2019-07-12 21:06:56 +01:00
intel_gt.h drm/i915/uc: prefer intel_gt over i915 in GuC/HuC paths 2019-07-13 20:08:44 +01:00
intel_hangcheck.c drm/i915/gt: Use intel_gt as the primary object for handling resets 2019-07-12 21:06:56 +01:00
intel_lrc_reg.h
intel_lrc.c drm/i915/gt: Hook up intel_context_fini() 2019-07-22 23:20:07 +01:00
intel_lrc.h
intel_mocs.c drm/i915/gt: Use caller provided forcewake for intel_mocs_init_engine 2019-07-04 14:42:38 +01:00
intel_mocs.h drm/i915: Convert intel_mocs_init_l3cc_table to intel_gt 2019-06-21 13:48:28 +01:00
intel_renderstate.c drm/i915: Move the renderstate setup under gt/ 2019-07-04 11:48:22 +01:00
intel_renderstate.h drm/i915: Move the renderstate setup under gt/ 2019-07-04 11:48:22 +01:00
intel_reset_types.h drm/i915/gt: Use intel_gt as the primary object for handling resets 2019-07-12 21:06:56 +01:00
intel_reset.c drm/i915/uc: Unify uC platform check 2019-07-25 07:30:41 +01:00
intel_reset.h drm/i915/gt: Use intel_gt as the primary object for handling resets 2019-07-12 21:06:56 +01:00
intel_ringbuffer.c drm/i915/gt: Hook up intel_context_fini() 2019-07-22 23:20:07 +01:00
intel_sseu.c
intel_sseu.h
intel_timeline_types.h drm/i915: Rename i915_timeline to intel_timeline and move under gt 2019-06-21 13:48:53 +01:00
intel_timeline.c drm/i915/gt: Always call kref_init for the timeline 2019-06-26 07:25:54 +01:00
intel_timeline.h drm/i915: Rename i915_timeline to intel_timeline and move under gt 2019-06-21 13:48:53 +01:00
intel_workarounds_types.h drm/i915: Add engine name to workaround debug print 2019-07-12 09:55:30 +01:00
intel_workarounds.c drm/i915/icl: Add Wa_1409178092 2019-07-19 15:35:21 +01:00
intel_workarounds.h drm/i915: Convert gt workarounds to intel_gt 2019-06-21 13:48:25 +01:00
Makefile drm/i915: add header search path to subdir Makefiles 2019-06-27 10:25:48 +03:00
Makefile.header-test
mock_engine.c drm/i915/gt: Hook up intel_context_fini() 2019-07-22 23:20:07 +01:00
mock_engine.h
selftest_engine_cs.c
selftest_hangcheck.c drm/i915/gt: Use intel_gt as the primary object for handling resets 2019-07-12 21:06:56 +01:00
selftest_lrc.c drm/i915/execlists: Disable preemption under GVT 2019-07-16 14:06:45 +01:00
selftest_reset.c drm/i915/gt: Use intel_gt as the primary object for handling resets 2019-07-12 21:06:56 +01:00
selftest_timeline.c drm/i915/gt: Use intel_gt as the primary object for handling resets 2019-07-12 21:06:56 +01:00
selftest_workarounds.c drm/i915/gt: Use intel_gt as the primary object for handling resets 2019-07-12 21:06:56 +01:00