1. 02 11月, 2015 1 次提交
  2. 16 10月, 2015 1 次提交
  3. 30 9月, 2015 1 次提交
  4. 14 9月, 2015 1 次提交
    • T
      drm/vmwgfx: Map the fifo as cached · 2e586a7e
      Thomas Hellstrom 提交于
      On the guest kernel side, previously the FIFO has been mapped write-
      combined. This has worked since VMs up to now has not honored the mapping
      type and mapped the FIFO cached anyway. Since the FIFO is accessed cached
      by the CPU on the virtual device side, this leads to inconsistent
      mappings once the guest starts to honor the mapping types.
      
      So ask for cached mappings when we map the FIFO. We do this by
      using ioremap_cache() instead of ioremap_wc(), and remove the MTRR setup.
      On the TTM side, MOBs, GMRs and VRAM buffers are already requesting
      cached mappings for kernel- and user-space.
      
      Cc: <stable@vger.kernel.org>
      Signed-off-by: NThomas Hellstrom <thellstrom@vmware.com>
      Reviewed-by: NSinclair Yeh <syeh@vmware.com>
      2e586a7e
  5. 01 9月, 2015 1 次提交
  6. 21 8月, 2015 1 次提交
  7. 13 8月, 2015 5 次提交
  8. 06 8月, 2015 1 次提交
  9. 05 8月, 2015 7 次提交
  10. 27 3月, 2015 1 次提交
  11. 12 3月, 2015 2 次提交
  12. 19 1月, 2015 1 次提交
    • T
      drm/vmwgfx: Replace the hw mutex with a hw spinlock · 496eb6fd
      Thomas Hellstrom 提交于
      Fixes a case where we call vmw_fifo_idle() from within a wait function with
      task state !TASK_RUNNING, which is illegal.
      
      In addition, make the locking fine-grained, so that it is performed once
      for every read- and write operation. This is of course more costly, but we
      don't perform much register access in the timing critical paths anyway. Instead
      we have the extra benefit of being sure that we don't forget the hw lock around
      register accesses. I think currently the kms code was quite buggy w r t this.
      
      This fixes Red Hat Bugzilla Bug 1180796
      
      Cc: stable@vger.kernel.org
      Signed-off-by: NThomas Hellstrom <thellstrom@vmware.com>
      Reviewed-by: NJakob Bornecrantz <jakob@vmware.com>
      496eb6fd
  13. 03 12月, 2014 1 次提交
  14. 21 11月, 2014 1 次提交
  15. 31 10月, 2014 1 次提交
  16. 10 9月, 2014 1 次提交
  17. 08 8月, 2014 1 次提交
    • D
      Revert "drm: drop redundant drm_file->is_master" · 7963e9db
      Dave Airlie 提交于
      This reverts commit 48ba8137.
      
      Thanks to Chris:
      "drm_file->is_master is not synomous with having drm_file->master ==
      drm_file->minor->master. This is because drm_file->master is the same
      for all drm_files of the same generation and so when there is a master,
      every drm_file believes itself to be the master. Confusion ensues and
      things go pear shaped when one file is closed and there is no master
      anymore."
      
      Conflicts:
      	drivers/gpu/drm/drm_drv.c
      	drivers/gpu/drm/drm_stub.c
      7963e9db
  18. 05 8月, 2014 1 次提交
    • D
      drm: drop redundant drm_file->is_master · 48ba8137
      David Herrmann 提交于
      The drm_file->is_master field is redundant as it's equivalent to:
          drm_file->master && drm_file->master == drm_file->minor->master
      
      1) "=>"
        Whenever we set drm_file->is_master, we also set:
            drm_file->minor->master = drm_file->master;
      
        Whenever we clear drm_file->is_master, we also call:
            drm_master_put(&drm_file->minor->master);
        which implicitly clears it to NULL.
      
      2) "<="
        minor->master cannot be set if it is non-NULL. Therefore, it stays as
        is unless a file drops it.
      
        If minor->master is NULL, it is only set by places that also adjust
        drm_file->is_master.
      
      Therefore, we can safely drop is_master and replace it by an inline helper
      that matches:
          drm_file->master && drm_file->master == drm_file->minor->master
      Reviewed-by: NAlex Deucher <alexander.deucher@amd.com>
      Reviewed-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      Signed-off-by: NDavid Herrmann <dh.herrmann@gmail.com>
      48ba8137
  19. 22 7月, 2014 1 次提交
  20. 04 7月, 2014 1 次提交
  21. 10 6月, 2014 1 次提交
  22. 23 4月, 2014 1 次提交
  23. 03 4月, 2014 1 次提交
  24. 28 3月, 2014 4 次提交
  25. 16 3月, 2014 2 次提交
    • D
      drm: init TTM dev_mapping in ttm_bo_device_init() · 44d847b7
      David Herrmann 提交于
      With dev->anon_inode we have a global address_space ready for operation
      right from the beginning. Therefore, there is no need to do a delayed
      setup with TTM. Instead, set dev_mapping during initialization in
      ttm_bo_device_init() and remove any "if (dev_mapping)" conditions.
      
      Cc: Dave Airlie <airlied@redhat.com>
      Cc: Ben Skeggs <bskeggs@redhat.com>
      Cc: Maarten Lankhorst <maarten.lankhorst@canonical.com>
      Cc: Alex Deucher <alexdeucher@gmail.com>
      Cc: Thomas Hellstrom <thellstrom@vmware.com>
      Signed-off-by: NDavid Herrmann <dh.herrmann@gmail.com>
      44d847b7
    • D
      drm: use anon-inode instead of relying on cdevs · 6796cb16
      David Herrmann 提交于
      DRM drivers share a common address_space across all character-devices of a
      single DRM device. This allows simple buffer eviction and mapping-control.
      However, DRM core currently waits for the first ->open() on any char-dev
      to mark the underlying inode as backing inode of the device. This delayed
      initialization causes ugly conditions all over the place:
        if (dev->dev_mapping)
          do_sth();
      
      To avoid delayed initialization and to stop reusing the inode of the
      char-dev, we allocate an anonymous inode for each DRM device and reset
      filp->f_mapping to it on ->open().
      Signed-off-by: NDavid Herrmann <dh.herrmann@gmail.com>
      6796cb16