1. 13 12月, 2016 1 次提交
  2. 28 11月, 2016 1 次提交
    • M
      drm/nouveau/kms/nv50: Fix atomic pageflip events. · bd9f6605
      Mario Kleiner 提交于
      The new atomic modesetting/pageflip code for nv50+ for
      Linux 4.10+ no longer uses pageflip irq's to signal
      flip completion. Instead it polls for flip completion
      from within a kthread/work queue.
      
      This creates a race between the vblank irq handler
      updating the vblank count and timestamp for the
      vblank of flip completion, and the kthread's
      polling code detecting flip completion and sending
      out the flip completion event.
      
      Depending on who executes a few microseconds earlier,
      the flip completion event will either contain correct
      count/timestamp or a stale count/timestamp from the
      previous vblank. This error was observed for about
      50% of all executed flips, e.g., observable under DRI2
      by the Xorg.log filling with flip handler warning
      messages.
      
      Call drm_accurate_vblank_count() before sending
      out flip completion events to enforce a vblank
      count/ts update for the vblank of flip completion
      and avoid stale counts/timestamps.
      
      This fix leads to one redundant call to drm_update_vblank_count
      for each completed flip, but no other side effects. On
      a ~6 year old Core i7 M620@ 2.67GHz the redundant call
      costs about 10 usecs per flip
      
      Successfully tested on GeForce 9500/9600/330M so far.
      Signed-off-by: NMario Kleiner <mario.kleiner.de@gmail.com>
      Cc: Ben Skeggs <bskeggs@redhat.com>
      Signed-off-by: NBen Skeggs <bskeggs@redhat.com>
      bd9f6605
  3. 17 11月, 2016 2 次提交
  4. 07 11月, 2016 29 次提交
  5. 14 7月, 2016 2 次提交
  6. 07 6月, 2016 1 次提交
  7. 20 5月, 2016 1 次提交
  8. 19 5月, 2016 1 次提交
    • A
      drm: remove unused dev variables · c6740c9c
      Arnd Bergmann 提交于
      After drm_gem_object_lookup() was changed along with all its callers,
      we have several drivers that have unused variables:
      
      drm/armada/armada_crtc.c: In function 'armada_drm_crtc_cursor_set':
      drm/armada/armada_crtc.c:900:21: error: unused variable 'dev' [-Werror=unused-variable]
      drm/nouveau/nouveau_gem.c: In function 'validate_init':
      drm/nouveau/nouveau_gem.c:371:21: error: unused variable 'dev' [-Werror=unused-variable]
      drm/nouveau/nv50_display.c: In function 'nv50_crtc_cursor_set':
      drm/nouveau/nv50_display.c:1308:21: error: unused variable 'dev' [-Werror=unused-variable]
      drm/radeon/radeon_cs.c: In function 'radeon_cs_parser_relocs':
      drm/radeon/radeon_cs.c:77:21: error: unused variable 'ddev' [-Werror=unused-variable]
      
      This fixes all the instances I found with ARM randconfig builds so far.
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      Fixes: a8ad0bd8 ("drm: Remove unused drm_device from drm_gem_object_lookup()")
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      Link: http://patchwork.freedesktop.org/patch/msgid/1463587653-3035181-6-git-send-email-arnd@arndb.de
      c6740c9c
  9. 17 5月, 2016 1 次提交
  10. 14 3月, 2016 1 次提交