1. 31 Mar, 2017 8 commits
    • Sinclair Yeh's avatar
      drm/vmwgfx: Add and connect plane helper functions · 060e2ad5
      Sinclair Yeh authored
      Refactor previous FB and cursor plane update code into their
      atomic counterparts: check, update, prepare, cleanup, and disable.
      
      These helpers won't be called until we flip on the atomic support
      flag or set drm_crtc_funcs->set_config to using the atomic
      helper.
      
      v2:
      * Removed unnecessary pinning of cursor surface
      * Added a few function headers
      
      v3:
      * Set clip region equal to the destination region
      * Fixed surface pinning policy
      * Enable SVGA mode in vmw_sou_primary_plane_prepare_fb
      Signed-off-by: default avatarSinclair Yeh <syeh@vmware.com>
      Signed-off-by: default avatarThomas Hellstrom <thellstrom@vmware.com>
      Reviewed-by: default avatarThomas Hellstrom <thellstrom@vmware.com>
      060e2ad5
    • Sinclair Yeh's avatar
      drm/vmwgfx: Add and connect CRTC helper functions · 06ec4190
      Sinclair Yeh authored
      Atomic mode set requires us to refactor existing vmw_stdu_crtc_set_config
      code into sections that check the validity of the new mode, and sections
      that actually program the hardware state.
      
      vmw_du_crtc_atomic_check() takes CRTC-related checking code.  In a later
      patch, vmw_du_primary_plane_atomic_check() will take framebuffer-related
      checking code.
      
      These helpers won't be called until we flip on the atomic support
      flag or set drm_crtc_funcs->set_config to using the atomic
      helper.
      
      v2:
      * The state->num_connector is actually the total number of potential
        connectors, not just the one associated with the display unit.
        The proper one to check is ->connector_mask.
      
      * Add the check to only allow plane state to be the same as crtc state
        (Thanks to mlankhorst)
      
      * Make sure to turn on SVGA mode before using VRAM.  SVGA mode is
        disabled in master_drop if dbdev is not running.
      
      v3:
      * Moved dot clock override to crtc_atomic_check
      Signed-off-by: default avatarSinclair Yeh <syeh@vmware.com>
      Signed-off-by: default avatarThomas Hellstrom <thellstrom@vmware.com>
      Reviewed-by: default avatarThomas Hellstrom <thellstrom@vmware.com>
      Acked-by: default avatarDaniel Vetter <daniel@ffwll.ch>
      06ec4190
    • Sinclair Yeh's avatar
      drm/vmwgfx: Connector atomic state · d7721ca7
      Sinclair Yeh authored
      Add connector handling functions. Start tracking is_implicity in
      the connector state.  Eventually, this field should be tracked
      exclusively in a connector state.
      
      Now that plane and connector states have been created, we can also
      activate the code that use CRTC state.
      Signed-off-by: default avatarSinclair Yeh <syeh@vmware.com>
      Reviewed-by: default avatarThomas Hellstrom <thellstrom@vmware.com>
      d7721ca7
    • Sinclair Yeh's avatar
      drm/vmwgfx: Plane atomic state · cc5ec459
      Sinclair Yeh authored
      Add plane state handling functions.
      
      We have to keep track of a few plane states so we cannot use the
      DRM helper for this.
      
      Created vmw_plane_state along with functions to reset, duplicate,
      and destroty it.
      
      v2
      * Removed cursor clean up special case
      Signed-off-by: default avatarSinclair Yeh <syeh@vmware.com>
      Reviewed-by: default avatarThomas Hellstrom <thellstrom@vmware.com>
      Acked-by: default avatarDaniel Vetter <daniel@ffwll.ch>
      cc5ec459
    • Sinclair Yeh's avatar
      drm/vmwgfx: CRTC atomic state · 9c2542a4
      Sinclair Yeh authored
      Create and Add CRTC state.  We currently do not track any properties
      or custom states so we can technically use the DRM helpers.  Creating
      this code just to make potential future additions easier.
      
      Most of the new code will be compiled but not enabled until
      plane/connector state handling code is also in place.
      
      This is the first of a series to enable atomic mode set for vmwgfx.
      
      The atomic enabling effort was done in collaboration with Thomas
      Hellstrom and the VMware Graphics Team.
      Signed-off-by: default avatarSinclair Yeh <syeh@vmware.com>
      Reviewed-by: default avatarThomas Hellstrom <thellstrom@vmware.com>
      9c2542a4
    • Sinclair Yeh's avatar
      drm/vmwgfx: Add universal plane support · 36cc79bc
      Sinclair Yeh authored
      Universal support is prerequisite for atomic mode set.
      
      Explicitly create planes for the cursor and the primary FB.  With
      a functional cursor plane, the DRM will no longer use the legacy
      cursor_set2 and cursor_move entry points.
      Signed-off-by: default avatarSinclair Yeh <syeh@vmware.com>
      Signed-off-by: default avatarThomas Hellstrom <thellstrom@vmware.com>
      Reviewed-by: default avatarThomas Hellstrom <thellstrom@vmware.com>
      36cc79bc
    • Sinclair Yeh's avatar
      drm/vmwgfx: Removed unused snooper.crtc field · 27d247c6
      Sinclair Yeh authored
      This field is not being used anymore
      Signed-off-by: default avatarSinclair Yeh <syeh@vmware.com>
      Reviewed-by: default avatarThomas Hellstrom <thellstrom@vmware.com>
      27d247c6
    • Dave Airlie's avatar
      Merge branch 'drm-next-4.12' of git://people.freedesktop.org/~agd5f/linux into drm-next · 8cd3ac52
      Dave Airlie authored
      New stuff for 4.12:
      - Preliminary vega10 support
      - Support for multi-level page tables
      - GPU sensor stuff for mesa
      - job tracing improvements
      - PRT support for sparse buffers
      - Additional SR-IOV improvements
      - ttm improvements
      - misc bug fixes and code cleanups
      
      * 'drm-next-4.12' of git://people.freedesktop.org/~agd5f/linux: (315 commits)
        drm/amdgpu: Fix 32bit x86 compilation warning
        drm/amdgpu: just disallow reading untouched registers
        drm/amdgpu: remove duplicate allowed reg CP_CPF_BUSY_STAT
        drm/amdgpu/soc15: enable psp block for SRIOV
        drm/amdgpu/soc15: bypass pp block for vf
        drm/amdgpu/psp: add check sOS sign
        drm/amd/amdgpu: Correct ring wptr address in debugfs (v2)
        drm/amdgpu: Fix multi-level page table bugs for large BOs v3
        drm/amdgpu: Fix Vega10 VM initialization
        drm/amdgpu: Make max_pfn 64-bit
        drm/amdgpu: drop GB_GPU_ID from the golden settings
        drm/amdgpu: fix vm pte pde flags to 64-bit for sdma (v3)
        drm/amd/amdgpu: fix Tonga S3 resume hang on rhel6.8
        drm/ttm: decrease ttm bo priority number
        drm/amd/amdgpu: fix performance drop when VRAM pressure
        drm/amdgpu: Couple small warning fixes
        drm/amdgpu: Clean up GFX 9 VM fault messages
        drm/amdgpu: Register UTCL2 as a source of VM faults
        drm/amdgpu/soc15: drop support for reading some registers
        drm/amdgpu/soc15: return cached values for some registers (v2)
        ...
      8cd3ac52
  2. 30 Mar, 2017 32 commits