1. 17 Sep, 2019 5 commits
    • Thierry Reding's avatar
      drm/nouveau/bar/gm20b: Avoid BAR1 teardown during init · b568db62
      Thierry Reding authored
      Writing the 0x1704 (BUS_BAR1_BLOCK) register causes the GPU to probe the
      memory region at the programmed address. The result is an address decode
      error in the external memory controller because address 0, which is what
      is written to the register, is not designated as accessible to devices.
      
      Avoid triggering DMA from the GPU by removing teardown of the BAR1.
      Signed-off-by: default avatarThierry Reding <treding@nvidia.com>
      Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
      b568db62
    • Thierry Reding's avatar
      drm/nouveau: Fix ordering between TTM and GEM release · 641f53c0
      Thierry Reding authored
      When the last reference to a TTM BO is dropped, ttm_bo_release() will
      acquire the DMA reservation object's wound/wait mutex while trying to
      clean up (ttm_bo_cleanup_refs_or_queue() via ttm_bo_release()). It is
      therefore essential that drm_gem_object_release() be called after the
      TTM BO has been uninitialized, otherwise drm_gem_object_release() has
      already destroyed the wound/wait mutex (via dma_resv_fini()).
      Signed-off-by: default avatarThierry Reding <treding@nvidia.com>
      Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
      641f53c0
    • Thierry Reding's avatar
      drm/nouveau/prime: Extend DMA reservation object lock · 0bb21c96
      Thierry Reding authored
      Prior to commit 019cbd4a ("drm/nouveau: Initialize GEM object before
      TTM object"), the reservation object was locked across all of the buffer
      object creation.
      
      After splitting nouveau_bo_new() into separate nouveau_bo_alloc() and
      nouveau_bo_init() functions, the reservation object is passed to the
      latter, so the lock needs to be held across that function as well.
      
      Fixes: 019cbd4a ("drm/nouveau: Initialize GEM object before TTM object")
      Signed-off-by: default avatarThierry Reding <treding@nvidia.com>
      Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
      0bb21c96
    • Thierry Reding's avatar
      drm/nouveau: Fix fallout from reservation object rework · 9ca7f796
      Thierry Reding authored
      Commit 019cbd4a ("drm/nouveau: Initialize GEM object before TTM
      object") introduced a subtle change in how the buffer allocation size is
      handled. Prior to that change, the size would get aligned to at least a
      page, whereas after that change a non-page-aligned size would get passed
      through unmodified. This ultimately causes a BUG_ON() to trigger in
      drm_gem_private_object_init() and crashes the system.
      
      Fix this by restoring the code that align the allocation size.
      
      Fixes: 019cbd4a ("drm/nouveau: Initialize GEM object before TTM object")
      Reported-by: default avatarIlia Mirkin <imirkin@alum.mit.edu>
      Signed-off-by: default avatarThierry Reding <treding@nvidia.com>
      Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
      9ca7f796
    • Lyude Paul's avatar
      drm/nouveau/kms/nv50-: Don't create MSTMs for eDP connectors · 698c1aa9
      Lyude Paul authored
      On the ThinkPad P71, we have one eDP connector exposed along with 5 DP
      connectors, resulting in a total of 11 TMDS encoders. Since the GPU on
      this system is also capable of MST, we create an additional 4 fake MST
      encoders for each DP port. Unfortunately, we also do this for the eDP
      port as well, resulting in:
      
        1 eDP port: +1 TMDS encoder
                    +4 DPMST encoders
        5 DP ports: +2 TMDS encoders
                    +4 DPMST encoders
      	      *5 ports
      	      == 35 encoders
      
      Which breaks things, since DRM has a hard coded limit of 32 encoders.
      So, fix this by not creating MSTMs for any eDP connectors. This brings
      us down to 31 encoders, although we can do better.
      
      This fixes driver probing for nouveau on the ThinkPad P71.
      Signed-off-by: default avatarLyude Paul <lyude@redhat.com>
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
      698c1aa9
  2. 06 Sep, 2019 2 commits
  3. 03 Sep, 2019 1 commit
  4. 02 Sep, 2019 1 commit
  5. 01 Sep, 2019 1 commit
    • Sam Ravnborg's avatar
      drm/exynos: drop use of drmP.h · 226024b1
      Sam Ravnborg authored
      There was a few uses of drmP that was missed in the last
      patch removing this header from exynos.
      
      Remove the final uses of this header.
      Signed-off-by: default avatarSam Ravnborg <sam@ravnborg.org>
      Cc: Inki Dae <inki.dae@samsung.com>
      Cc: Joonyoung Shim <jy0922.shim@samsung.com>
      Cc: Seung-Woo Kim <sw0312.kim@samsung.com>
      Cc: Kyungmin Park <kyungmin.park@samsung.com>
      Cc: David Airlie <airlied@linux.ie>
      Cc: Daniel Vetter <daniel@ffwll.ch>
      Cc: Kukjin Kim <kgene@kernel.org>
      Cc: Krzysztof Kozlowski <krzk@kernel.org>
      Cc: Jingoo Han <jingoohan1@gmail.com>
      Signed-off-by: default avatarInki Dae <inki.dae@samsung.com>
      226024b1
  6. 30 Aug, 2019 6 commits
  7. 29 Aug, 2019 24 commits