1. 21 3月, 2018 2 次提交
    • T
      drm/vmwgfx: Fix a destoy-while-held mutex problem. · 73a88250
      Thomas Hellstrom 提交于
      When validating legacy surfaces, the backup bo might be destroyed at
      surface validate time. However, the kms resource validation code may have
      the bo reserved, so we will destroy a locked mutex. While there shouldn't
      be any other users of that mutex when it is destroyed, it causes a lock
      leak and thus throws a lockdep error.
      
      Fix this by having the kms resource validation code hold a reference to
      the bo while we have it reserved. We do this by introducing a validation
      context which might come in handy when the kms code is extended to validate
      multiple resources or buffers.
      
      Cc: <stable@vger.kernel.org>
      Signed-off-by: NThomas Hellstrom <thellstrom@vmware.com>
      Reviewed-by: NBrian Paul <brianp@vmware.com>
      Reviewed-by: NSinclair Yeh <syeh@vmware.com>
      73a88250
    • T
      drm/vmwgfx: Fix black screen and device errors when running without fbdev · 140bcaa2
      Thomas Hellstrom 提交于
      When we are running without fbdev, transitioning from the login screen to
      X or gnome-shell/wayland will cause a vt switch and the driver will disable
      svga mode, losing all modesetting resources. However, the kms atomic state
      does not reflect that and may think that a crtc is still turned on, which
      will cause device errors when we try to bind an fb to the crtc, and the
      screen will remain black.
      
      Fix this by turning off all kms resources before disabling svga mode.
      
      Cc: <stable@vger.kernel.org>
      Signed-off-by: NThomas Hellstrom <thellstrom@vmware.com>
      Reviewed-by: NSinclair Yeh <syeh@vmware.com>
      140bcaa2
  2. 17 1月, 2018 1 次提交
  3. 09 1月, 2018 1 次提交
    • T
      drm/vmwgfx: Don't cache framebuffer maps · 98648ae6
      Thomas Hellstrom 提交于
      Buffer objects need to be either pinned or reserved while a map is active,
      that's not the case here, so avoid caching the framebuffer map.
      This will cause increasing mapping activity mainly when we don't do
      page flipping.
      
      This fixes occasional garbage filled screens when the framebuffer has been
      evicted after the map.
      
      Since in-kernel mapping of whole buffer objects is error-prone on 32-bit
      architectures and also quite inefficient, we will revisit this later.
      Signed-off-by: NThomas Hellstrom <thellstrom@vmware.com>
      Reviewed-by: NSinclair Yeh <syeh@vmware.com>
      Cc: <stable@vger.kernel.org>
      98648ae6
  4. 21 11月, 2017 5 次提交
  5. 12 10月, 2017 1 次提交
  6. 30 8月, 2017 1 次提交
  7. 28 8月, 2017 1 次提交
  8. 18 7月, 2017 1 次提交
  9. 13 7月, 2017 1 次提交
  10. 27 6月, 2017 1 次提交
  11. 07 6月, 2017 2 次提交
  12. 22 5月, 2017 1 次提交
  13. 06 4月, 2017 1 次提交
  14. 01 4月, 2017 11 次提交
  15. 27 1月, 2017 2 次提交
  16. 15 12月, 2016 1 次提交
  17. 03 12月, 2016 1 次提交
  18. 12 11月, 2016 1 次提交
  19. 18 10月, 2016 1 次提交
  20. 02 7月, 2016 2 次提交
    • S
      drm/vmwgfx: Add an option to change assumed FB bpp · 04319d89
      Sinclair Yeh 提交于
      Offer an option for advanced users who want larger modes at 16bpp.
      
      This becomes necessary after the fix: "Work around mode set
      failure in 2D VMs."  Without this patch, there would be no way
      for existing advanced users to get to a high res mode, and the
      regression is they will likely get a black screen after a software
      update on their current VM.
      Signed-off-by: NSinclair Yeh <syeh@vmware.com>
      Reviewed-by: NThomas Hellstrom <thellstrom@vmware.com>
      Cc: <stable@vger.kernel.org>
      04319d89
    • S
      drm/vmwgfx: Work around mode set failure in 2D VMs · 7c20d213
      Sinclair Yeh 提交于
      In a low-memory 2D VM, fbdev can take up a large percentage of
      available memory, making them unavailable for other DRM clients.
      
      Since we do not take fbdev into account when filtering modes,
      we end up claiming to support more modes than we actually do.
      
      As a result, users get a black screen when setting a mode too
      large for current available memory.  In a low-memory VM
      configuration, users can get a black screen for a mode as low
      as 1024x768.
      
      The current mode filtering mechanism keys off of
      SVGA_REG_SUGGESTED_GBOBJECT_MEM_SIZE_KB, i.e. the maximum amount
      of surface memory we have.  Since this value is a performance
      suggestion, not a hard limit, and since there should not be much
      of a performance impact for a 2D VM, rather than filtering out
      more modes, we will just allow ourselves to exceed the SVGA's
      performance suggestion.
      
      Also changed assumed bpp to 32 from 16 to make sure we can
      actually support all the modes listed.
      Signed-off-by: NSinclair Yeh <syeh@vmware.com>
      Reviewed-by: NThomas Hellstrom <thellstrom@vmware.com>
      Cc: <stable@vger.kernel.org>
      7c20d213
  21. 07 6月, 2016 1 次提交
  22. 20 5月, 2016 1 次提交