1. 06 11月, 2009 8 次提交
    • D
      drm/i915: implement drmmode overlay support v4 · 02e792fb
      Daniel Vetter 提交于
      This implements intel overlay support for kms via a device-specific
      ioctl. Thomas Hellstrom brought up the idea of a general ioctl (on
      dri-devel). We've reached the conclusion that such an infrastructure
      only makes sense when multiple kms overlay implementations exists,
      which atm don't (and it doesn't look like this is gonna change).
      
      Open issues:
      - Runs in sync with the gpu, i.e. unnecessary waiting. I've decided
        to wait on this because the hw tends to hang when changing something
        in this area. I left some dummy functions as infrastructure.
      - polyphase filtering uses a static table.
      - uses uninterruptible sleeps. Unfortunately the alternatives may
        unnecessarily wedged the hw if/when we timeout too early (and
        userspace only overloaded the batch buffers with stuff worth a few
        secs of gpu time).
      
      Changes since v1:
      - fix off-by-one misconception on my side. This fixes fullscreen
        playback.
      Changes since v2:
      - add underrun detection as spec'ed for i965.
      - flush caches properly, fixing visual corruptions.
      Changes since v4:
      - fix up cache flushing of overlay memory regs.
      - killed require_pipe_a logic - it hangs the chip.
      
      Tested-By: diego.abelenda@gmail.com (on a 865G)
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      [anholt: Resolved against the MADVISE ioctl going in before this one]
      Signed-off-by: NEric Anholt <eric@anholt.net>
      02e792fb
    • D
      drm/i915: kill superflous IS_I855 macro · f0f8a9ce
      Daniel Vetter 提交于
      It is identical to I85X. Use that one instead.
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      [anholt: fix conflicts against the display function pointer stuff]
      Signed-off-by: NEric Anholt <eric@anholt.net>
      f0f8a9ce
    • D
      drm/i915: add i915_lp_ring_sync helper · 48764bf4
      Daniel Vetter 提交于
      This just waits until the hw passed the current ring position with
      cmd execution. This slightly changes the existing i915_wait_request
      function to make uninterruptible waiting possible - no point in
      returning to userspace while mucking around with the overlay, that
      piece of hw is just too fragile.
      
      Also replace a magic 0 with the symbolic constant (and kill the then
      superflous comment) while I was looking at the code.
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      Signed-off-by: NEric Anholt <eric@anholt.net>
      48764bf4
    • D
      drm: make drm_mode_object_find typesafe · 7a9c9060
      Daniel Vetter 提交于
      I've wasted half a day hunting a bug that could easily be spotted by
      gcc. Prevent this from reoccurring.
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      Signed-off-by: NEric Anholt <eric@anholt.net>
      7a9c9060
    • J
      drm/i915: add render standby support · 97f5ab66
      Jesse Barnes 提交于
      Render standy allows the GPU to power down the render unit when idle.
      In order for this to work, it needs a page of graphics memory to save
      state.  This patch allocates that page and enables the feature on
      supported chipsets.
      Signed-off-by: NJesse Barnes <jbarnes@virtuousgeek.org>
      Signed-off-by: NEric Anholt <eric@anholt.net>
      97f5ab66
    • Z
      drm/i915: HDMI hardware workaround for Ironlake · d8a2d0e0
      Zhenyu Wang 提交于
      This brings some hardware workaround for HDMI port on PCH (Ibex Peak),
      which fixes unstable issues like during rotation.
      Signed-off-by: NZhenyu Wang <zhenyuw@linux.intel.com>
      Signed-off-by: NEric Anholt <eric@anholt.net>
      d8a2d0e0
    • Z
      drm/i915: Fix and cleanup DPLL calculation for Ironlake · 4bfe6b68
      Zhenyu Wang 提交于
      When the ideal error range can't be reached, this will safely use
      a most closed one. Clean up some dumb codes in DPLL function too.
      
      This fixes DPLL clock issue against one monitor at 1680x1050@60hz.
      Signed-off-by: NZhenyu Wang <zhenyuw@linux.intel.com>
      Signed-off-by: NEric Anholt <eric@anholt.net>
      4bfe6b68
    • C
      drm/i915: Avoid potential sleep whilst holding spinlock · ba86bf8b
      Chris Wilson 提交于
      Miles Lane reported the following error:
      2 locks held by cat/4179:
        #0:  (&p->lock){+.+.+.}, at: [<c10a3884>] seq_read+0x25/0x315
        #1:  (&dev_priv->mm.active_list_lock){+.+...}, at: [<c119a854>]
      i915_batchbuffer_info+0x2b/0x124
      Pid: 4179, comm: cat Not tainted 2.6.32-rc5-git1 #2
      Call Trace:
        [<c104874f>] ? __debug_show_held_locks+0x1e/0x20
        [<c1023fb0>] __might_sleep+0xf0/0xf7
        [<c101c393>] kmap+0x17/0x58
        [<c119a8d6>] i915_batchbuffer_info+0xad/0x124
        [<c10a39bf>] seq_read+0x160/0x315
        [<c108fb8c>] ? rw_verify_area+0x98/0xbb
        [<c10a385f>] ? seq_read+0x0/0x315
        [<c1090331>] vfs_read+0x75/0xa9
        [<c10903f9>] sys_read+0x3b/0x5d
        [<c1002a8f>] sysenter_do_call+0x12/0x36
      
      The fix is relatively simple, use the atomic variants of kmap() that
      avoid the potential sleep.
      Signed-off-by: NChris Wilson <chris@chris-wilson.co.uk>
      Cc: Miles Lane <miles.lane@gmail.com>
      Signed-off-by: NEric Anholt <eric@anholt.net>
      ba86bf8b
  2. 03 11月, 2009 1 次提交
    • L
      i915: fix intel graphics suspend breakage due to resume/lid event confusion · c9354c85
      Linus Torvalds 提交于
      In commit c1c7af60 ("drm/i915: force
      mode set at lid open time") the intel graphics driver was taught to
      restore the LVDS mode on lid open.
      
      That caused problems with interaction with the suspend/resume code,
      which commonly runs at the same time (suspend is often caused by the lid
      close event, while lid open is commonly a resume event), which was
      worked around with in commit 06891e27
      ("drm/i915: fix suspend/resume breakage in lid notifier").
      
      However, in the meantime the lid event code had also grown a user event
      notifier (commit 06324194: "drm/i915:
      generate a KMS uevent at lid open/close time"), and now _that_ causes
      problems with suspend/resume and some versions of Xorg reacting to those
      uevents by setting the mode.
      
      So this effectively reverts that commit 06324194, and makes the lid
      open protection logic against suspend/resume more explicit.  This fixes
      at least one laptop. See
      
      	http://bugzilla.kernel.org/show_bug.cgi?id=14484
      
      for more details.
      Acked-by: NJesse Barnes <jbarnes@virtuousgeek.org>
      Cc: Riccardo Magliocchetti <riccardo.magliocchetti@gmail.com>
      Cc: Eric Anholt <eric@anholt.net>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      c9354c85
  3. 28 10月, 2009 3 次提交
  4. 24 10月, 2009 4 次提交
  5. 20 10月, 2009 3 次提交
  6. 16 10月, 2009 2 次提交
  7. 14 10月, 2009 6 次提交
  8. 08 10月, 2009 6 次提交
  9. 07 10月, 2009 1 次提交
  10. 06 10月, 2009 2 次提交
  11. 05 10月, 2009 4 次提交