drm/i915: move bsd dispatch index somewhere better
Adding stuff at the bottom is really no how this should be done, since
that's the place for ums/dri dungeons.
This was added in
commit a8ebba75b3
Author: Zhao Yakui <yakui.zhao@intel.com>
Date:   Thu Apr 17 10:37:40 2014 +0800
    drm/i915: Use the coarse ping-pong mechanism based on drm fd to dispatch the BSD command on BDW GT3
Also add a note to prevent this from happening again - people really
should be less lazy and take more time to look for a good home of
their new driver-global state.
Cc: Imre Deak <imre.deak@intel.com>
Cc: Zhao Yakui <yakui.zhao@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
			
			
This commit is contained in:
		
							parent
							
								
									4a3436e85c
								
							
						
					
					
						commit
						bdf1e7e3db
					
				| @ -1571,7 +1571,6 @@ int i915_driver_load(struct drm_device *dev, unsigned long flags) | ||||
| 	spin_lock_init(&dev_priv->backlight_lock); | ||||
| 	spin_lock_init(&dev_priv->uncore.lock); | ||||
| 	spin_lock_init(&dev_priv->mm.object_stat_lock); | ||||
| 	dev_priv->ring_index = 0; | ||||
| 	mutex_init(&dev_priv->dpio_lock); | ||||
| 	mutex_init(&dev_priv->modeset_restore_lock); | ||||
| 
 | ||||
|  | ||||
| @ -1098,6 +1098,9 @@ struct i915_gem_mm { | ||||
| 	 */ | ||||
| 	bool busy; | ||||
| 
 | ||||
| 	/* the indicator for dispatch video commands on two BSD rings */ | ||||
| 	int bsd_ring_dispatch_index; | ||||
| 
 | ||||
| 	/** Bit 6 swizzling required for X tiling */ | ||||
| 	uint32_t bit_6_swizzle_x; | ||||
| 	/** Bit 6 swizzling required for Y tiling */ | ||||
| @ -1553,8 +1556,11 @@ struct drm_i915_private { | ||||
| 	struct i915_dri1_state dri1; | ||||
| 	/* Old ums support infrastructure, same warning applies. */ | ||||
| 	struct i915_ums_state ums; | ||||
| 	/* the indicator for dispatch video commands on two BSD rings */ | ||||
| 	int ring_index; | ||||
| 
 | ||||
| 	/*
 | ||||
| 	 * NOTE: This is the dri1/ums dungeon, don't add stuff here. Your patch | ||||
| 	 * will be rejected. Instead look for a better place. | ||||
| 	 */ | ||||
| }; | ||||
| 
 | ||||
| static inline struct drm_i915_private *to_i915(const struct drm_device *dev) | ||||
|  | ||||
| @ -1027,12 +1027,12 @@ static int gen8_dispatch_bsd_ring(struct drm_device *dev, | ||||
| 		int ring_id; | ||||
| 
 | ||||
| 		mutex_lock(&dev->struct_mutex); | ||||
| 		if (dev_priv->ring_index == 0) { | ||||
| 		if (dev_priv->mm.bsd_ring_dispatch_index == 0) { | ||||
| 			ring_id = VCS; | ||||
| 			dev_priv->ring_index = 1; | ||||
| 			dev_priv->mm.bsd_ring_dispatch_index = 1; | ||||
| 		} else { | ||||
| 			ring_id = VCS2; | ||||
| 			dev_priv->ring_index = 0; | ||||
| 			dev_priv->mm.bsd_ring_dispatch_index = 0; | ||||
| 		} | ||||
| 		file_priv->bsd_ring = &dev_priv->ring[ring_id]; | ||||
| 		mutex_unlock(&dev->struct_mutex); | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user