mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 10:40:15 +02:00 
			
		
		
		
	drm/omapdrm: Annotate dma-fence critical section in commit path
Nothing special, just put the end right after hw_done(). Note that in one path there's a wait for the flip/update to complete. But as far as I understand from comments and code that's only relevant for modesets, and skipped if there wasn't a modeset done on a given crtc. For a bit more clarity pull the hw_done() call out of the if/else, that way it's a bit clearer flow. But happy to shuffle this around as is seen fit. Reviewed-by: Tomi Valkeinen <tomi.valkeinen@ti.com> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com> Cc: Tomi Valkeinen <tomi.valkeinen@ti.com> Link: https://patchwork.freedesktop.org/patch/msgid/20210121152959.1725404-9-daniel.vetter@ffwll.ch
This commit is contained in:
		
							parent
							
								
									a1891b9136
								
							
						
					
					
						commit
						250aa22920
					
				
					 1 changed files with 5 additions and 4 deletions
				
			
		| 
						 | 
					@ -68,6 +68,7 @@ static void omap_atomic_commit_tail(struct drm_atomic_state *old_state)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	struct drm_device *dev = old_state->dev;
 | 
						struct drm_device *dev = old_state->dev;
 | 
				
			||||||
	struct omap_drm_private *priv = dev->dev_private;
 | 
						struct omap_drm_private *priv = dev->dev_private;
 | 
				
			||||||
 | 
						bool fence_cookie = dma_fence_begin_signalling();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	dispc_runtime_get(priv->dispc);
 | 
						dispc_runtime_get(priv->dispc);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -90,8 +91,6 @@ static void omap_atomic_commit_tail(struct drm_atomic_state *old_state)
 | 
				
			||||||
		omap_atomic_wait_for_completion(dev, old_state);
 | 
							omap_atomic_wait_for_completion(dev, old_state);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		drm_atomic_helper_commit_planes(dev, old_state, 0);
 | 
							drm_atomic_helper_commit_planes(dev, old_state, 0);
 | 
				
			||||||
 | 
					 | 
				
			||||||
		drm_atomic_helper_commit_hw_done(old_state);
 | 
					 | 
				
			||||||
	} else {
 | 
						} else {
 | 
				
			||||||
		/*
 | 
							/*
 | 
				
			||||||
		 * OMAP3 DSS seems to have issues with the work-around above,
 | 
							 * OMAP3 DSS seems to have issues with the work-around above,
 | 
				
			||||||
| 
						 | 
					@ -101,9 +100,11 @@ static void omap_atomic_commit_tail(struct drm_atomic_state *old_state)
 | 
				
			||||||
		drm_atomic_helper_commit_planes(dev, old_state, 0);
 | 
							drm_atomic_helper_commit_planes(dev, old_state, 0);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		drm_atomic_helper_commit_modeset_enables(dev, old_state);
 | 
							drm_atomic_helper_commit_modeset_enables(dev, old_state);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	drm_atomic_helper_commit_hw_done(old_state);
 | 
						drm_atomic_helper_commit_hw_done(old_state);
 | 
				
			||||||
	}
 | 
					
 | 
				
			||||||
 | 
						dma_fence_end_signalling(fence_cookie);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	/*
 | 
						/*
 | 
				
			||||||
	 * Wait for completion of the page flips to ensure that old buffers
 | 
						 * Wait for completion of the page flips to ensure that old buffers
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in a new issue