• Ville Syrjälä's avatar
    drm/i915: Split pipe+output CSC programming to noarm+arm pair · d13dde44
    Ville Syrjälä authored
    Move most of the pipe+output CSC programming to the
    .color_commit_noarm() hook which runs before vblank evasion.
    Only PIPE_CSC_MODE (the arming register) needs to remain in
    inside the critical section.
    
    A test case that just updates the CTM in a loop produces
    the following i915_update_info numbers on ilk (w/o lockdep):
    old                                 new
    Updates: 10012			    Updates: 10008
           |			    	   |
       1us |**			       1us |**********
           |*************		    	   |*************
       4us |*********		       4us |*
           |*			    	   |**
      16us |			      16us |
           |			    	   |
      66us |			      66us |
           |			    	   |
     262us |			     262us |
           |			    	   |
       1ms |			       1ms |
           |			    	   |
       4ms |			       4ms |
           |			    	   |
      17ms |			      17ms |
           |			    	   |
    Min update: 1345ns		    Min update: 1268ns
    Max update: 16672ns		    Max update: 15656ns
    Average update: 3914ns		    Average update: 2185ns
    Overruns > 100us: 0		    Overruns > 100us: 0
    
    And here is tgl (forced to update both pipe CSC and
    output CSC, and with lockdep enabled):
    old                                 new
    Updates: 10012			    Updates: 10012
           |			    	   |
       1us |			       1us |
           |			    	   |
       4us |*			       4us |**
           |**			    	   |**********
      16us |*************		      16us |*************
           |*			    	   |
      66us |			      66us |
           |			    	   |
     262us |			     262us |
           |			    	   |
       1ms |			       1ms |
           |			    	   |
       4ms |			       4ms |
           |			    	   |
      17ms |			      17ms |
           |			    	   |
    Min update: 5204ns		    Min update: 5176ns
    Max update: 176038ns		    Max update: 186685ns
    Average update: 23931ns		    Average update: 16654ns
    Overruns > 250us: 0		    Overruns > 250us: 0
    Signed-off-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20220224165103.15682-5-ville.syrjala@linux.intel.comReviewed-by: default avatarStanislav Lisovskiy <stanislav.lisovskiy@intel.com>
    d13dde44
intel_color.c 64.5 KB