• Chris Wilson's avatar
    drm: Store the plane's index · 490d3d1b
    Chris Wilson authored
    Currently the plane's index is determined by walking the list of all
    planes in the mode and finding the position of that plane in the list. A
    linear walk, especially a linear walk within a linear walk as frequently
    conceived by i915.ko [O(N^2)] quickly comes to dominate profiles.
    
    The plane's index is constant for as long as no earlier planes are
    removed from the list. For all drivers, planes are static, determined
    at boot and then untouched until shutdown. In fact, there is no locking
    provided to allow for dynamic removal of planes/encoders/crtcs.
    
    v2: Convert drm_crtc_index() and drm_encoder_index() as well.
    v3: Stop adjusting the indices upon removal; consider the list
    construct-only.
    Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
    Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
    Cc: Matt Roper <matthew.d.roper@intel.com>
    Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
    Reviewed-by: default avatarMatt Roper <matthew.d.roper@intel.com>
    [danvet: Fixup typo in kerneldoc that Matt spotted.]
    Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
    Link: http://patchwork.freedesktop.org/patch/msgid/1464375900-2542-1-git-send-email-chris@chris-wilson.co.uk
    490d3d1b
drm_crtc.c 162 KB