1. 10 6月, 2009 6 次提交
    • C
      drm/i915: OR in the COMMAND read domain for the batch buffer. · 5f26a2c7
      Chris Wilson 提交于
      The batch buffer may be shared with another read buffer, so we should not
      ignore any previously set domains, but just or in the command domain (and
      check that the buffer is not writable).
      Signed-off-by: NChris Wilson <chris@chris-wilson.co.uk>
      Signed-off-by: NEric Anholt <eric@anholt.net>
      5f26a2c7
    • C
      drm/i915: Sanity check execbuffer arguments before touching state. · 83d60795
      Chris Wilson 提交于
      By sending a broken execbuffer (its length was not suitably aligned) I
      triggered an operation upon a freed object. The invalid alignment was
      discovered after updating the write_domain on the object but before the
      object was placed on the active queue. So during the unwind process
      following the error, the now freed object attempts to flush its
      non-existent, but outstanding, GPU writes causing this use-after-free.
      
      [drm:i915_dispatch_gem_execbuffer] *ERROR* alignment
      [drm:i915_gem_execbuffer] *ERROR* dispatch failed -22
      WARNING: at lib/kref.c:43 warn_slowpath_null+0x10/0x15()
      Modules linked in:
      Pid: 4552, comm: lt-csi-drm Not tainted 2.6.30-rc6 #423
      Call Trace:
       [<c0119ef3>] warn_slowpath_fmt+0x57/0x6d
       [<c014de24>] ? get_pageblock_migratetype+0x18/0x1e
       [<c014e8fd>] ? free_hot_page+0xa/0xc
       [<c014e915>] ? __free_pages+0x16/0x1f
       [<c0153ebf>] ? shmem_truncate_range+0x63e/0x656
       [<c015fb2f>] ? slob_page_alloc+0x146/0x1c8
       [<c0119f19>] warn_slowpath_null+0x10/0x15
       [<c01f55f2>] kref_get+0x1b/0x21
       [<c02605db>] i915_gem_object_move_to_active+0x1f/0x56
       [<c0261302>] i915_add_request+0x156/0x19a
       [<c026136e>] i915_gem_object_flush_gpu_write_domain+0x28/0x3f
       [<c0261eca>] i915_gem_object_unbind+0x4a/0x124
       [<c0261fd7>] i915_gem_free_object+0x33/0x9b
       [<c0250d6b>] drm_gem_object_free+0x28/0x4a
       [<c0250d43>] ? drm_gem_object_free+0x0/0x4a
       [<c01f55ce>] kref_put+0x38/0x41
       [<c0250cbf>] drm_gem_object_unreference+0x11/0x13
       [<c0250d06>] drm_gem_object_handle_unreference+0x1e/0x21
       [<c0250d13>] drm_gem_object_release_handle+0xa/0xe
       [<c01f3e6b>] idr_for_each+0x5f/0x98
       [<c0250d09>] ? drm_gem_object_release_handle+0x0/0xe
       [<c0250daf>] drm_gem_release+0x22/0x34
       [<c025046f>] drm_release+0x1e8/0x3c4
       [<c0162d25>] __fput+0xaf/0x146
       [<c0162dce>] fput+0x12/0x14
       [<c01605ef>] filp_close+0x48/0x52
       [<c011b182>] put_files_struct+0x57/0x9b
       [<c011b1e4>] exit_files+0x1e/0x20
       [<c011c6b6>] do_exit+0x16d/0x511
       [<c03704ab>] ? __schedule+0x3d4/0x3e5
       [<c0103f0d>] ? handle_irq+0xd/0x69
       [<c011caa7>] do_group_exit+0x4d/0x73
       [<c011cae0>] sys_exit_group+0x13/0x17
       [<c010268c>] sysenter_do_call+0x12/0x2b
      Signed-off-by: NChris Wilson <chris@chris-wilson.co.uk>
      Signed-off-by: NEric Anholt <eric@anholt.net>
      83d60795
    • M
      drm/i915: Skip lvds with Aopen i945GTt-VFA · fa0864b2
      Michael Cousin 提交于
      Signed-off-by: NMichael Cousin <mika.cousin@gmail.com>
      Signed-off-by: NEric Anholt <eric@anholt.net>
      fa0864b2
    • Z
      drm/i915: Enable probe on new chipset · 80a538e4
      Zhenyu Wang 提交于
      Signed-off-by: NZhenyu Wang <zhenyuw@linux.intel.com>
      Signed-off-by: NEric Anholt <eric@anholt.net>
      80a538e4
    • Z
      drm/i915: handle interrupt on new chipset · 036a4a7d
      Zhenyu Wang 提交于
      Update interrupt handling methods for IGDNG with new registers
      for display and graphics interrupt functions. As we won't use
      irq-based vblank sync in dri2, so display interrupt on new chip
      will be used for hotplug only in future.
      Signed-off-by: NZhenyu Wang <zhenyuw@linux.intel.com>
      Signed-off-by: NEric Anholt <eric@anholt.net>
      036a4a7d
    • J
      drm/i915: enable MCHBAR if needed · d7658989
      Jesse Barnes 提交于
      Using the new PNP resource checking code, this patch allows the i915
      driver to allocate MCHBAR space if needed and use the BAR to determine
      current memory settings.
      
      [apw@canonical.com: moved to the new generic PNP resource interface]
      Signed-off-by: NJesse Barnes <jbarnes@virtuousgeek.org>
      Signed-off-by: NAndy Whitcroft <apw@canonical.com>
      Signed-off-by: NEric Anholt <eric@anholt.net>
      
      failure to update-index after git-am --reject to hand-apply
      Signed-off-by: NEric Anholt <eric@anholt.net>
      d7658989
  2. 05 6月, 2009 18 次提交
  3. 04 6月, 2009 3 次提交
    • E
      drm/i915: Change GEM throttling to be 20ms like the comment says. · b962442e
      Eric Anholt 提交于
      keithp didn't like the original 20ms plan because a cooperative client could
      be starved by an uncooperative client.  There may even have been problems
      with cooperative clients versus cooperative clients.  So keithp changed
      throttle to just wait for the second to last seqno emitted by that client.
      It worked well, until we started getting more round-trips to the server
      due to DRI2 -- the server throttles in BlockHandler, and so if you did more
      than one round trip after finishing your frame, you'd end up unintentionally
      syncing to the swap.
      
      Fix this by keeping track of the client's requests, so the client can wait
      when it has an outstanding request over 20ms old.  This should have
      non-starving behavior, good behavior in the presence of restarts, and less
      waiting.  Improves high-settings openarena performance on my GM45 by 50%.
      Signed-off-by: NEric Anholt <eric@anholt.net>
      Reviewed-by: NJesse Barnes <jbarnes@virtuousgeek.org>
      b962442e
    • E
      drm/i915: Save/restore cursor state on suspend/resume. · 1fd1c624
      Eric Anholt 提交于
      This may fix cursor corruption in X on resume, which would persist until
      the cursor was hidden and then shown again.
      
      V2: Also include the cursor control regs.
      Signed-off-by: NEric Anholt <eric@anholt.net>
      Reviewed-by: NJesse Barnes <jbarnes@virtuousgeek.org>
      1fd1c624
    • E
      drm/i915: Remove a bad BUG_ON in the fence management code. · 0e7ddf7e
      Eric Anholt 提交于
      This could be triggered by a gtt mapping fault on 965 that decides to
      remove the fence from another object that happens to be active currently.
      Since the other object doesn't rely on the fence reg for its execution, we
      don't wait for it to finish.  We'll soon be not waiting on 915 most of the
      time as well, so just drop the BUG_ON.
      Signed-off-by: NEric Anholt <eric@anholt.net>
      0e7ddf7e
  4. 03 6月, 2009 6 次提交
  5. 02 6月, 2009 7 次提交