• Chandra Konduru's avatar
    drm/i915: setup scalers for crtc_compute_config · d03c93d4
    Chandra Konduru authored
    Added intel_atomic_setup_scalers to setup scalers based on
    staged scaling requests from a crtc and its planes. If staged
    requests are supportable, this function assigns scalers to
    requested planes and crtc. Note that the scaler assignement
    itself is staged into crtc_state and respective plane_states
    for later commit after all checks have been done.
    
    overall high level flow:
     - scaler requests are staged into crtc_state by planes/crtc
     - check whether staged scaling requests can be supported
     - add planes using scalers that aren't in current transaction
     - assign scalers to requested users
     - as part of plane commit, scalers will be committed
       (i.e., either attached or detached) to respective planes in hw
     - as part of crtc_commit, scaler will be either attached or detached
       to crtc in hw
    
    crtc_compute_config calls intel_atomic_setup_scalers() to start
    scaler assignments as per scaler state in crtc config. This call
    should be moved to atomic crtc once it is available.
    
    v2:
    -removed a log message (me)
    -changed input parameter to crtc_state (me)
    
    v3:
    -remove assigning plane_state returned by drm_atomic_get_plane_state (Matt)
    -fail if there is an error from drm_atomic_get_plane_state (Matt)
    
    v4:
    -changes to align with updated scaler structure (Matt, me)
    
    v5:
    -added addtional checks before enabling HQ mode (me)
    -added comments to enable HQ mode (Matt)
    Signed-off-by: default avatarChandra Konduru <chandra.konduru@intel.com>
    Reviewed-by: default avatarMatt Roper <matthew.d.roper@intel.com>
    Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
    d03c93d4
intel_atomic.c 11.6 KB