diff options
Diffstat (limited to 'drivers/gpu/drm/i915/i915_drv.h')
| -rw-r--r-- | drivers/gpu/drm/i915/i915_drv.h | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h index f2a825e39646..8727086cf48c 100644 --- a/drivers/gpu/drm/i915/i915_drv.h +++ b/drivers/gpu/drm/i915/i915_drv.h | |||
| @@ -2114,6 +2114,9 @@ void i915_gem_track_fb(struct drm_i915_gem_object *old, | |||
| 2114 | * number comparisons on buffer last_read|write_seqno. It also allows an | 2114 | * number comparisons on buffer last_read|write_seqno. It also allows an |
| 2115 | * emission time to be associated with the request for tracking how far ahead | 2115 | * emission time to be associated with the request for tracking how far ahead |
| 2116 | * of the GPU the submission is. | 2116 | * of the GPU the submission is. |
| 2117 | * | ||
| 2118 | * The requests are reference counted, so upon creation they should have an | ||
| 2119 | * initial reference taken using kref_init | ||
| 2117 | */ | 2120 | */ |
| 2118 | struct drm_i915_gem_request { | 2121 | struct drm_i915_gem_request { |
| 2119 | struct kref ref; | 2122 | struct kref ref; |
| @@ -2137,7 +2140,16 @@ struct drm_i915_gem_request { | |||
| 2137 | /** Position in the ringbuffer of the end of the whole request */ | 2140 | /** Position in the ringbuffer of the end of the whole request */ |
| 2138 | u32 tail; | 2141 | u32 tail; |
| 2139 | 2142 | ||
| 2140 | /** Context related to this request */ | 2143 | /** |
| 2144 | * Context related to this request | ||
| 2145 | * Contexts are refcounted, so when this request is associated with a | ||
| 2146 | * context, we must increment the context's refcount, to guarantee that | ||
| 2147 | * it persists while any request is linked to it. Requests themselves | ||
| 2148 | * are also refcounted, so the request will only be freed when the last | ||
| 2149 | * reference to it is dismissed, and the code in | ||
| 2150 | * i915_gem_request_free() will then decrement the refcount on the | ||
| 2151 | * context. | ||
| 2152 | */ | ||
| 2141 | struct intel_context *ctx; | 2153 | struct intel_context *ctx; |
| 2142 | 2154 | ||
| 2143 | /** Batch buffer related to this request if any */ | 2155 | /** Batch buffer related to this request if any */ |
| @@ -2374,6 +2386,7 @@ struct drm_i915_cmd_table { | |||
| 2374 | (INTEL_DEVID(dev) & 0xFF00) == 0x0C00) | 2386 | (INTEL_DEVID(dev) & 0xFF00) == 0x0C00) |
| 2375 | #define IS_BDW_ULT(dev) (IS_BROADWELL(dev) && \ | 2387 | #define IS_BDW_ULT(dev) (IS_BROADWELL(dev) && \ |
| 2376 | ((INTEL_DEVID(dev) & 0xf) == 0x6 || \ | 2388 | ((INTEL_DEVID(dev) & 0xf) == 0x6 || \ |
| 2389 | (INTEL_DEVID(dev) & 0xf) == 0xb || \ | ||
| 2377 | (INTEL_DEVID(dev) & 0xf) == 0xe)) | 2390 | (INTEL_DEVID(dev) & 0xf) == 0xe)) |
| 2378 | #define IS_BDW_GT3(dev) (IS_BROADWELL(dev) && \ | 2391 | #define IS_BDW_GT3(dev) (IS_BROADWELL(dev) && \ |
| 2379 | (INTEL_DEVID(dev) & 0x00F0) == 0x0020) | 2392 | (INTEL_DEVID(dev) & 0x00F0) == 0x0020) |
