1. 15 Jan, 2020 4 commits
    • Lyude Paul's avatar
      drm/nouveau/kms/nv50-: Use less encoders by making mstos per-head · 5ff0cb1c
      Lyude Paul authored
      Currently, for every single MST capable DRM connector we create a set of
      fake encoders, one for each possible head. Unfortunately this ends up
      being a huge waste of encoders. While this currently isn't causing us
      any problems, it's extremely close to doing so.
      
      The ThinkPad P71 is a good example of this. Originally when trying to
      figure out why nouveau was failing to load on this laptop, I discovered
      it was because nouveau was creating too many encoders. This ended up
      being because we were mistakenly creating MST encoders for the eDP port,
      however we are still extremely close to hitting the encoder limit on
      this machine as it exposes 1 eDP port and 5 DP ports, resulting in 31
      encoders.
      
      So while this fix didn't end up being necessary to fix the P71, we still
      need to implement this so that we avoid hitting the encoder limit for
      valid display configurations in the event that some machine with more
      connectors then this becomes available. Plus, we don't want to let good
      code go to waste :)
      
      So, use less encoders by only creating one MSTO per head. Then, attach
      each new MSTC to each MSTO which corresponds to a head that it's parent
      DP port is capable of using. This brings the number of encoders we
      register on the ThinkPad P71 from 31, down to just 15. Yay!
      Signed-off-by: default avatarLyude Paul <lyude@redhat.com>
      Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
      5ff0cb1c
    • Lyude Paul's avatar
      drm/nouveau/kms/nv50-: Remove nv50_mstc_best_encoder() · 122c1639
      Lyude Paul authored
      When drm_connector_helper_funcs->atomic_best_encoder is defined,
      ->best_encoder is ignored by the atomic modesetting helpers. That being
      said, this hook is completely broken anyway - it always returns the
      first msto for a given mstc, despite the fact it might already be in
      use.
      
      So, just get rid of it. We'll need this in a moment anyway, when we make
      mstos per-head as opposed to per-connector.
      
      Changes since v1:
      * Fix typo in documentation - imirkin
      Signed-off-by: default avatarLyude Paul <lyude@redhat.com>
      Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
      122c1639
    • Ilia Mirkin's avatar
      drm/nouveau/kms/gf119-: allow both 256- and 1024-sized LUTs to be used · 13199270
      Ilia Mirkin authored
      The hardware supports either size. Also add checks to ensure that only
      these two sizes may be used for supplying a LUT.
      Signed-off-by: default avatarIlia Mirkin <imirkin@alum.mit.edu>
      Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
      13199270
    • Ben Skeggs's avatar
      drm/nouveau/gr/gk208-gm10x: regenerate built-in firmware · 11a86309
      Ben Skeggs authored
      Commit 5fde30a2684041f9820aa9dc4fbd0009a45076a9 in envytools modified
      some of the Falcon V5 encodings, regenerate the relevant FW with this.
      
      Also modify build rules to include SPDX header in generated files.
      
      Tested on GM107, with no issues noted.
      Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
      11a86309
  2. 13 Jan, 2020 3 commits
  3. 10 Jan, 2020 1 commit
  4. 09 Jan, 2020 32 commits