OpenCloudOS-Kernel/drivers/gpu/drm/i915/gt
Rodrigo Vivi 55fd7e0222 drm/i915: Include asm sources for {ivb, hsw}_clear_kernel.c
Alexandre Oliva has recently removed these files from Linux Libre
with concerns that the sources weren't available.

The sources are available on IGT repository, and only open source
tools are used to generate the {ivb,hsw}_clear_kernel.c files.

However, the remaining concern from Alexandre Oliva was around
GPL license and the source not been present when distributing
the code.

So, it looks like 2 alternatives are possible, the use of
linux-firmware.git repository to store the blob or making sure
that the source is also present in our tree. Since the goal
is to limit the i915 firmware to only the micro-controller blobs
let's make sure that we do include the asm sources here in our tree.

Btw, I tried to have some diligence here and make sure that the
asms that these commits are adding are truly the source for
the mentioned files:

igt$ ./scripts/generate_clear_kernel.sh -g ivb \
     -m ~/mesa/build/src/intel/tools/i965_asm
Output file not specified - using default file "ivb-cb_assembled"

Generating gen7 CB Kernel assembled file "ivb_clear_kernel.c"
for i915 driver...

igt$ diff ~/i915/drm-tip/drivers/gpu/drm/i915/gt/ivb_clear_kernel.c \
     ivb_clear_kernel.c

<  * Generated by: IGT Gpu Tools on Fri 21 Feb 2020 05:29:32 AM UTC
>  * Generated by: IGT Gpu Tools on Mon 08 Jun 2020 10:00:54 AM PDT
61c61
< };
> };
\ No newline at end of file

igt$ ./scripts/generate_clear_kernel.sh -g hsw \
     -m ~/mesa/build/src/intel/tools/i965_asm
Output file not specified - using default file "hsw-cb_assembled"

Generating gen7.5 CB Kernel assembled file "hsw_clear_kernel.c"
for i915 driver...

igt$ diff ~/i915/drm-tip/drivers/gpu/drm/i915/gt/hsw_clear_kernel.c \
     hsw_clear_kernel.c
5c5
<  * Generated by: IGT Gpu Tools on Fri 21 Feb 2020 05:30:13 AM UTC
>  * Generated by: IGT Gpu Tools on Mon 08 Jun 2020 10:01:42 AM PDT
61c61
< };
> };
\ No newline at end of file

Used IGT and Mesa master repositories from Fri Jun 5 2020)
IGT: 53e8c878a6fb ("tests/kms_chamelium: Force reprobe after replugging
     the connector")
Mesa: 5d13c7477eb1 ("radv: set keep_statistic_info with
      RADV_DEBUG=shaderstats")
Mesa built with: meson build -D platforms=drm,x11 -D dri-drivers=i965 \
                 -D gallium-drivers=iris -D prefix=/usr \
		 -D libdir=/usr/lib64/ -Dtools=intel \
		 -Dkulkan-drivers=intel && ninja -C build

v2: Header clean-up and include build instructions in a readme (Chris)
    Modified commit message to respect check-patch

Reference: http://www.fsfla.org/pipermail/linux-libre/2020-June/003374.html
Reference: http://www.fsfla.org/pipermail/linux-libre/2020-June/003375.html
Fixes: 47f8253d2b ("drm/i915/gen7: Clear all EU/L3 residual contexts")
Cc: <stable@vger.kernel.org> # v5.7+
Cc: Alexandre Oliva <lxoliva@fsfla.org>
Cc: Prathap Kumar Valsan <prathap.kumar.valsan@intel.com>
Cc: Akeem G Abodunrin <akeem.g.abodunrin@intel.com>
Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Jani Nikula <jani.nikula@intel.com>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Reviewed-by: Jon Bloomfield <jon.bloomfield@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20200610201807.191440-1-rodrigo.vivi@intel.com
(cherry picked from commit 5a7eeb8ba1)
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
2020-06-29 11:29:12 +03:00
..
selftests drm/i915: Serialise i915_active_fence_set() with itself 2019-11-27 17:02:14 +00:00
shaders drm/i915: Include asm sources for {ivb, hsw}_clear_kernel.c 2020-06-29 11:29:12 +03:00
uc drm/i915: Remove wait priority boosting 2020-05-07 20:08:58 +01:00
debugfs_engines.c drm/i915/gt: allow setting generic data pointer 2020-03-26 21:20:51 +00:00
debugfs_engines.h drm/i915/gt: Move pm debug files into a gt aware debugfs 2019-12-22 15:25:10 +00:00
debugfs_gt.c drm/i915/uc: Move uC debugfs to its own folder under GT 2020-03-26 21:23:03 +00:00
debugfs_gt.h drm/i915/gt: allow setting generic data pointer 2020-03-26 21:20:51 +00:00
debugfs_gt_pm.c drm/i915/gt: Move rps.enabled/active to flags 2020-04-30 00:57:35 +01:00
debugfs_gt_pm.h drm/i915/gt: Move pm debug files into a gt aware debugfs 2019-12-22 15:25:10 +00:00
gen6_ppgtt.c drm pull for 5.6-rc1 2020-01-30 08:04:01 -08:00
gen6_ppgtt.h drm/i915/gtt: split up i915_gem_gtt 2020-01-07 19:27:36 +00:00
gen6_renderstate.c
gen7_renderclear.c drm/i915/gen7: Clear all EU/L3 residual contexts 2020-03-06 08:59:06 +00:00
gen7_renderclear.h drm/i915/gen7: Clear all EU/L3 residual contexts 2020-03-06 08:59:06 +00:00
gen7_renderstate.c
gen8_ppgtt.c drm/i915: Remove duplicate inline specifier on write_pte 2020-05-13 20:01:28 +01:00
gen8_ppgtt.h drm/i915/gtt: split up i915_gem_gtt 2020-01-07 19:27:36 +00:00
gen8_renderstate.c
gen9_renderstate.c
hsw_clear_kernel.c drm/i915/gen7: Clear all EU/L3 residual contexts 2020-03-06 08:59:06 +00:00
intel_breadcrumbs.c drm/i915/gt: Transfer old virtual breadcrumbs to irq_worker 2020-05-14 10:09:31 +01:00
intel_context.c drm/i915/gt: Remove errant assertion in __intel_context_do_pin 2020-05-25 15:40:31 +03:00
intel_context.h drm/i915: Use explicit flag to mark unreachable intel_context 2020-03-26 10:21:04 -07:00
intel_context_param.c drm/i915: Allow userspace to specify ringsize on construction 2020-02-25 19:23:19 +00:00
intel_context_param.h drm/i915: Allow userspace to specify ringsize on construction 2020-02-25 19:23:19 +00:00
intel_context_sseu.c drm/i915: Make define for lrc state offset 2020-04-24 00:52:14 +01:00
intel_context_types.h drm/i915/execlists: Avoid reusing the same logical CCID 2020-04-28 22:17:36 +01:00
intel_engine.h drm/i915/gt: Transfer old virtual breadcrumbs to irq_worker 2020-05-14 10:09:31 +01:00
intel_engine_cs.c drm/i915/gt: Incrementally check for rewinding 2020-06-16 11:34:23 +03:00
intel_engine_heartbeat.c drm/i915/gt: Always reschedule the new heartbeat 2020-03-17 18:26:15 +00:00
intel_engine_heartbeat.h drm/i915/gt: Replace hangcheck by heartbeats 2019-10-23 23:52:10 +01:00
intel_engine_pm.c drm/i915/gt: Stop holding onto the pinned_default_state 2020-05-05 21:12:33 +01:00
intel_engine_pm.h drm/i915: Extend intel_wakeref to support delayed puts 2020-03-23 12:51:05 +00:00
intel_engine_types.h drm/i915/gt: Transfer old virtual breadcrumbs to irq_worker 2020-05-14 10:09:31 +01:00
intel_engine_user.c drm/i915/gt: Make WARN* drm specific where drm_priv ptr is available 2020-01-22 17:53:37 +02:00
intel_engine_user.h
intel_ggtt.c drm/i915: Refactor setting dma info to a common helper 2020-04-18 07:49:11 +01:00
intel_ggtt_fencing.c drm/i915/gt: Make fence revocation unequivocal 2020-04-01 23:34:17 +01:00
intel_ggtt_fencing.h drm/i915/gt: Store the fence details on the fence 2020-04-01 23:34:16 +01:00
intel_gpu_commands.h drm/i915/gen12: Fix HDC pipeline flush 2020-05-07 07:44:41 +01:00
intel_gt.c drm/i915/gt: Move the batch buffer pool from the engine to the gt 2020-04-30 19:12:02 +01:00
intel_gt.h drm/i915/gt: Drop rogue space in the middle of GT_TRACE 2020-01-16 15:41:34 +00:00
intel_gt_buffer_pool.c drm/i915/gt: Move the batch buffer pool from the engine to the gt 2020-04-30 19:12:02 +01:00
intel_gt_buffer_pool.h drm/i915/gt: Move the batch buffer pool from the engine to the gt 2020-04-30 19:12:02 +01:00
intel_gt_buffer_pool_types.h drm/i915/gt: Move the batch buffer pool from the engine to the gt 2020-04-30 19:12:02 +01:00
intel_gt_clock_utils.c drm/i915/gt: Fix up clock frequency 2020-04-27 17:34:33 +01:00
intel_gt_clock_utils.h drm/i915/gt: Use the RPM config register to determine clk frequencies 2020-04-24 19:10:17 +01:00
intel_gt_irq.c drm/i915/gt: Yield the timeslice if caught waiting on a user semaphore 2020-04-07 14:43:58 +01:00
intel_gt_irq.h drm/i915/gt: Reorganise gen8+ interrupt handler 2020-01-28 12:30:00 +00:00
intel_gt_pm.c drm/i915/gt: Suspend tasklets before resume sanitization 2020-05-13 17:13:16 +01:00
intel_gt_pm.h drm/i915/gt: Apply sanitiization just before resume 2019-12-26 12:37:30 +00:00
intel_gt_pm_irq.c
intel_gt_pm_irq.h
intel_gt_requests.c drm/i915/gt: Check carefully for an idle engine in wait-for-idle 2020-04-23 16:16:32 +01:00
intel_gt_requests.h drm/i915/gt: Schedule request retirement when timeline idles 2019-11-25 16:39:07 +02:00
intel_gt_types.h drm/i915/gt: Move the batch buffer pool from the engine to the gt 2020-04-30 19:12:02 +01:00
intel_gtt.c drm/i915/gt: Pull marking vm as closed underneath the vm->mutex 2020-02-28 12:33:07 +00:00
intel_gtt.h drm/i915/gt: Allocate i915_fence_reg array 2020-03-16 20:28:29 +00:00
intel_llc.c drm/i915/gt: Do not attempt to reprogram IA/ring frequencies for dgfx 2020-02-19 22:27:10 +00:00
intel_llc.h drm/i915: Extract GT ring management 2019-10-20 20:45:18 +01:00
intel_llc_types.h drm/i915: Extract GT ring management 2019-10-20 20:45:18 +01:00
intel_lrc.c drm/i915/gt: Incrementally check for rewinding 2020-06-16 11:34:23 +03:00
intel_lrc.h drm/i915: Make define for lrc state offset 2020-04-24 00:52:14 +01:00
intel_lrc_reg.h drm/i915/selftests: Add context batchbuffers registers to live_lrc_fixed 2020-04-24 00:36:13 +01:00
intel_mocs.c drm/i915/gt: Refactor l3cc/mocs availability 2020-02-19 14:09:18 +00:00
intel_mocs.h drm/i915: Do initial mocs configuration directly 2019-10-16 19:35:37 +01:00
intel_ppgtt.c drm/i915/gtt: split up i915_gem_gtt 2020-01-07 19:27:36 +00:00
intel_rc6.c drm/i915: Remove cnl pre-prod workarounds 2020-05-04 18:44:52 +03:00
intel_rc6.h drm/i915/gt: Simplify rc6 w/a application 2019-12-02 21:57:22 +00:00
intel_rc6_types.h drm/i915/gt: Only ignore rc6 parking for PCU on byt/bsw 2019-12-12 08:35:48 +00:00
intel_renderstate.c drm/i915: Emit await(batch) before MI_BB_START 2020-05-11 16:50:04 +01:00
intel_renderstate.h drm/i915: Lift i915_vma_pin() out of intel_renderstate_emit() 2019-12-03 13:23:00 +00:00
intel_reset.c drm/i915/gt: prefer struct drm_device based logging 2020-04-08 13:49:35 +03:00
intel_reset.h drm/i915: Don't mix srcu tag and negative error codes 2019-10-07 10:44:48 -07:00
intel_reset_types.h drm/i915: Define explicit wedged on init reset state 2019-09-26 18:44:35 +01:00
intel_ring.c drm/i915/gt: Incrementally check for rewinding 2020-06-16 11:34:23 +03:00
intel_ring.h drm/i915/gt: Mark up racy read of intel_ring.head 2020-04-08 13:40:07 +01:00
intel_ring_submission.c drm/i915/gt: Keep a no-frills swappable copy of the default context state 2020-04-29 19:02:37 +01:00
intel_ring_types.h drm/i915/gt: Avoid resetting ring->head outside of its timeline mutex 2020-02-11 12:03:22 +00:00
intel_rps.c drm/i915/gt: Sanitize RPS interrupts upon resume 2020-05-03 08:24:36 +01:00
intel_rps.h drm/i915/gt: Sanitize RPS interrupts upon resume 2020-05-03 08:24:36 +01:00
intel_rps_types.h drm/i915/gt: Switch to manual evaluation of RPS 2020-04-30 00:57:37 +01:00
intel_sseu.c drm/i915/perf: introduce global sseu pinning 2020-03-17 15:27:55 +02:00
intel_sseu.h drm/i915/tgl: s/ss/eu fuse reading support 2019-09-21 08:31:08 +01:00
intel_timeline.c drm/i915: Make intel_timeline_init static 2020-05-11 12:52:08 +01:00
intel_timeline.h drm/i915: Make intel_timeline_init static 2020-05-11 12:52:08 +01:00
intel_timeline_types.h drm/i915/gt: Pull GT initialisation under intel_gt_init() 2019-12-22 12:51:32 +00:00
intel_workarounds.c drm/i915/gt: Move gen4 GT workarounds from init_clock_gating to workarounds 2020-06-16 11:34:24 +03:00
intel_workarounds.h
intel_workarounds_types.h drm/i915/gt: Skip rmw for masked registers 2020-02-01 09:21:57 +00:00
ivb_clear_kernel.c drm/i915/gen7: Clear all EU/L3 residual contexts 2020-03-06 08:59:06 +00:00
mock_engine.c drm/i915/gt: Move the batch buffer pool from the engine to the gt 2020-04-30 19:12:02 +01:00
mock_engine.h
selftest_context.c drm/i915: Drop no-semaphore boosting 2020-05-14 06:14:33 +01:00
selftest_engine.c
selftest_engine.h
selftest_engine_cs.c drm/i915/selftests: fix uninitialized variable sum when summing up values 2019-12-10 14:35:24 +00:00
selftest_engine_heartbeat.c drm/i915/selftests: Disable heartbeat around manual pulse tests 2020-02-28 09:25:41 +00:00
selftest_engine_pm.c drm/i915: Mark up the calling context for intel_wakeref_put() 2019-11-25 15:29:17 +02:00
selftest_gt_pm.c drm/i915/gt: Fix up clock frequency 2020-04-27 17:34:33 +01:00
selftest_hangcheck.c drm/i915/selftests: Restore to default heartbeat 2020-06-16 11:34:23 +03:00
selftest_llc.c drm/i915/gt: Do not attempt to reprogram IA/ring frequencies for dgfx 2020-02-19 22:27:10 +00:00
selftest_llc.h drm/i915: Extract GT ring management 2019-10-20 20:45:18 +01:00
selftest_lrc.c drm/i915/gt: Prevent timeslicing into unpreemptable requests 2020-06-16 11:34:23 +03:00
selftest_mocs.c drm/i915/gt: Incrementally check for rewinding 2020-06-16 11:34:23 +03:00
selftest_rc6.c drm/i915/selftests: Move gpu energy measurement into its own little lib 2020-04-17 18:48:51 +01:00
selftest_rc6.h drm/i915/gt: Manual rc6 entry upon parking 2019-11-27 12:53:27 +00:00
selftest_reset.c drm/i915/guc: Kill USES_GUC_SUBMISSION macro 2020-02-20 17:48:03 +00:00
selftest_ring.c drm/i915/gt: Incrementally check for rewinding 2020-06-16 11:34:23 +03:00
selftest_ring_submission.c drm/i915/selftests: Always flush before unpining after writing 2020-05-11 16:50:04 +01:00
selftest_rps.c drm/i915/selftests: Restore to default heartbeat 2020-06-16 11:34:23 +03:00
selftest_rps.h drm/i915/gt: Fix up clock frequency 2020-04-27 17:34:33 +01:00
selftest_timeline.c drm/i915/selftests: Restore to default heartbeat 2020-06-16 11:34:23 +03:00
selftest_workarounds.c drm/i915: work around false-positive maybe-uninitialized warning 2020-06-15 12:36:07 +03:00
shmem_utils.c drm/i915/gt: Keep a no-frills swappable copy of the default context state 2020-04-29 19:02:37 +01:00
shmem_utils.h drm/i915/gt: Keep a no-frills swappable copy of the default context state 2020-04-29 19:02:37 +01:00
st_shmem_utils.c drm/i915/gt: Keep a no-frills swappable copy of the default context state 2020-04-29 19:02:37 +01:00
sysfs_engines.c drm/i915: Show per-engine default property values in sysfs 2020-05-14 08:25:05 +01:00
sysfs_engines.h drm/i915/gt: Expose engine properties via sysfs 2020-02-28 22:03:19 +00:00