mirror of
https://github.com/torvalds/linux.git
synced 2026-05-01 04:52:32 -04:00
drm/i915: Move context management under GEM
Keep track of the GEM contexts underneath i915->gem.contexts and assign them their own lock for the purposes of list management. v2: Focus on lock tracking; ctx->vm is protected by ctx->mutex v3: Correct split with removal of logical HW ID Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20191004134015.13204-15-chris@chris-wilson.co.uk
This commit is contained in:
@@ -1536,13 +1536,6 @@ struct drm_i915_private {
|
||||
int audio_power_refcount;
|
||||
u32 audio_freq_cntrl;
|
||||
|
||||
struct {
|
||||
struct mutex mutex;
|
||||
struct list_head list;
|
||||
struct llist_head free_list;
|
||||
struct work_struct free_work;
|
||||
} contexts;
|
||||
|
||||
u32 fdi_rx_config;
|
||||
|
||||
/* Shadow for DISPLAY_PHY_CONTROL which can't be safely read */
|
||||
@@ -1698,6 +1691,14 @@ struct drm_i915_private {
|
||||
|
||||
struct {
|
||||
struct notifier_block pm_notifier;
|
||||
|
||||
struct i915_gem_contexts {
|
||||
spinlock_t lock; /* locks list */
|
||||
struct list_head list;
|
||||
|
||||
struct llist_head free_list;
|
||||
struct work_struct free_work;
|
||||
} contexts;
|
||||
} gem;
|
||||
|
||||
/* For i945gm vblank irq vs. C3 workaround */
|
||||
|
||||
Reference in New Issue
Block a user