Files
linux/drivers
Oscar Mateo 48e29f5535 drm/i915/bdw: Emission of requests with logical rings
On a previous iteration of this patch, I created an Execlists
version of __i915_add_request and asbtracted it away as a
vfunc. Daniel Vetter wondered then why that was needed:

"with the clean split in command submission I expect every
function to know wether it'll submit to an lrc (everything in
intel_lrc.c) or wether it'll submit to a legacy ring (existing
code), so I don't see a need for an add_request vfunc."

The honest, hairy truth is that this patch is the glue keeping
the whole logical ring puzzle together:

- i915_add_request is used by intel_ring_idle, which in turn is
  used by i915_gpu_idle, which in turn is used in several places
  inside the eviction and gtt codes.
- Also, it is used by i915_gem_check_olr, which is littered all
  over i915_gem.c
- ...

If I were to duplicate all the code that directly or indirectly
uses __i915_add_request, I'll end up creating a separate driver.

To show the differences between the existing legacy version and
the new Execlists one, this time I have special-cased
__i915_add_request instead of adding an add_request vfunc. I
hope this helps to untangle this Gordian knot.

Signed-off-by: Oscar Mateo <oscar.mateo@intel.com>
Reviewed-by: Damien Lespiau <damien.lespiau@intel.com>
[danvet: Adjust to ringbuf->FIXME_lrc_ctx per the discussion with
Thomas Daniel.]
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2014-08-14 22:02:55 +02:00
..
2014-08-05 09:04:59 +10:00
2014-08-05 09:04:59 +10:00
2014-05-27 17:38:11 -07:00
2014-06-26 13:34:15 +01:00
2014-07-25 18:00:23 -07:00
2014-07-15 20:55:15 +02:00
2014-07-30 00:23:09 +02:00
2014-06-17 15:43:48 -07:00
2014-07-17 21:56:34 +02:00
2014-05-26 21:27:09 +02:00
2014-08-05 09:04:59 +10:00
2014-06-26 10:48:23 +01:00
2014-07-11 17:43:13 -07:00
2014-06-23 09:22:48 +03:00
2014-07-01 13:18:38 +03:00