• D
    drm/crtc-helper: fix locking for drm_helper_disable_unused_functions · b182cc59
    Daniel Vetter 提交于
    We have two calling contexts for thise function:
    
    - In the crtc helper code itself as part of the ->set_config
      implementation. In this calling context all modeset locks are
      already held, as they should.
    
    - In drivers not implementing fastboot before the fbdev/fbcon setup
      and initialization. This has been added for all drivers in
    
      commit 76a39dbf
      Author: Daniel Vetter <daniel.vetter@ffwll.ch>
      Date:   Sun Jan 20 23:12:54 2013 +0100
    
          drm/fb-helper: don't disable everything in initial_config
    
      In this calling context we do not hold any modeset locks since the
      immediately following call to initialize the fbev emulation grabs
      all these locks themselves.
    
    - There are two exceptions to the above rule: shmob doesn't have fbdev
      emulation support. I've manually checked the callchain up to the
      driver load function and no kms locks are held.
    
    The right fix therefore is to split this helper into an internal and
    external version and add the required locking to the function exported
    to drivers.
    
    This remedies locking inconsistencies exposed by me adding locking
    WARNs as part of the recent kerneldoc abi polishing done in
    
    commit 62ff94a5
    Author: Daniel Vetter <daniel.vetter@ffwll.ch>
    Date:   Thu Jan 23 22:18:47 2014 +0100
    
        drm/crtc-helper: remove LOCKING from kerneldoc
    
    and
    
    commit 63951385
    Author: Daniel Vetter <daniel.vetter@ffwll.ch>
    Date:   Thu Jan 23 15:14:15 2014 +0100
    
        drm/doc: Repleace LOCKING kerneldoc sections in drm_modes.c
    
    v2: It helps when I actually git add the entire thing.
    
    Cc: Chris Wilson <chris@chris-wilson.co.uk>
    Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
    Reviewed-by: NChris Wilson <chris@chris-wilson.co.uk>
    Tested-by: NThierry Reding <treding@nvidia.com>
    Signed-off-by: NDave Airlie <airlied@redhat.com>
    b182cc59
drm_crtc_helper.c 37.2 KB