• Linus Torvalds's avatar
    Merge tag 'drm-for-v4.15-amd-dc' of git://people.freedesktop.org/~airlied/linux · f6705bf9
    Linus Torvalds authored
    Pull amdgpu DC display code for Vega from Dave Airlie:
     "This is the pull request for the AMD DC (display code) layer which is
      a requirement to program the display engines on the new Vega and Raven
      based GPUs. It also contains support for all amdgpu supported GPUs
      (CIK, VI, Polaris), which has to be enabled. It is also a kms atomic
      modesetting compatible driver (unlike the current in-tree display
      code).
    
      I've kept it separate from drm-next because it may have some things
      that cause you to reject it.
    
      Background story:
    
      AMD have an internal team creating a shared OS codebase for display at
      hw bring up time using information from their hardware teams. This
      process doesn't lead to the most Linux friendly/looking code but we
      have worked together on cleaning a lot of it up and dealing with
      sparse/smatch/checkpatch, and having their team internally adhere to
      Linux coding standards.
    
      This tree is a complete history rebased since they started opening it,
      we decided not to squash it down as the history may have some value.
      Some of the commits therefore might not reach kernel standards, and we
      are steadily training people in AMD to better write commit msgs.
    
      There is a major bunch of generated bandwidth calculation and
      verification code that comes from their hardware team. On Vega and
      before this is float calculations, on Raven (DCN10) this is double
      based. They do the required things to do FP in the kernel, and I could
      understand this might raise some issues. Rewriting the bandwidth would
      be a major undertaken in reverification, it's non-trivial to work out
      if a display can handle the complete set of mode information thrown at
      it.
    
      Future story:
    
      There is a TODO list with this, and it address most of the remaining
      things that would be nice to refine/remove. The DCN10 code is still
      under development internally and they push out a lot of patches quite
      regularly and are supporting this code base with their display team. I
      think we've reached the point where keeping it out of tree is going to
      motivate distributions to start carrying the code, so I'd prefer we
      get it in tree. I think this code is slightly better than STAGING
      quality but not massively so, I'd really like to see that float/double
      magic gone and fixed point used, but AMD don't seem to think the
      accuracy and revalidation of the code is worth the effort"
    
    * tag 'drm-for-v4.15-amd-dc' of git://people.freedesktop.org/~airlied/linux: (1110 commits)
      drm/amd/display: fix MST link training fail division by 0
      drm/amd/display: Fix formatting for null pointer dereference fix
      drm/amd/display: Remove dangling planes on dc commit state
      drm/amd/display: add flip_immediate to commit update for stream
      drm/amd/display: Miss register MST encoder cbs
      drm/amd/display: Fix warnings on S3 resume
      drm/amd/display: use num_timing_generator instead of pipe_count
      drm/amd/display: use configurable FBC option in dm
      drm/amd/display: fix AZ clock not enabled before program AZ endpoint
      amdgpu/dm: Don't use DRM_ERROR in amdgpu_dm_atomic_check
      amd/display: Fix potential null dereference in dce_calcs.c
      amdgpu/dm: Remove unused forward declaration
      drm/amdgpu: Remove unused dc_stream from amdgpu_crtc
      amdgpu/dc: Fix double unlock in amdgpu_dm_commit_planes
      amdgpu/dc: Fix missing null checks in amdgpu_dm.c
      amdgpu/dc: Fix potential null dereferences in amdgpu_dm.c
      amdgpu/dc: fix more indentation warnings
      amdgpu/dc: handle allocation failures in dc_commit_planes_to_stream.
      amdgpu/dc: fix indentation warning from smatch.
      amdgpu/dc: fix non-ansi function decls.
      ...
    f6705bf9
amdgpu_kms.c 35.8 KB