1. 06 11月, 2009 7 次提交
    • 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
    • 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. 24 10月, 2009 4 次提交
  4. 20 10月, 2009 3 次提交
  5. 16 10月, 2009 2 次提交
  6. 14 10月, 2009 6 次提交
  7. 06 10月, 2009 1 次提交
    • D
      drm/fb: add more correct 8/16/24/32 bpp fb support. · b8c00ac5
      Dave Airlie 提交于
      The previous patches had some unwanted side effects, I've fixed
      the lack of 32bpp working, and fixed up 16bpp so it should also work.
      
      this also adds the interface to allow the driver to set a preferred
      console depth so for example low memory rn50 can set it to 8bpp.
      It also catches 24bpp on cards that can't do it and forces 32bpp.
      
      Tested on r100/r600/i945.
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      b8c00ac5
  8. 05 10月, 2009 1 次提交
  9. 03 10月, 2009 2 次提交
  10. 29 9月, 2009 4 次提交
  11. 25 9月, 2009 1 次提交
    • D
      drm/kms: start adding command line interface using fb. · d50ba256
      Dave Airlie 提交于
      [note this requires an fb patch posted to linux-fbdev-devel already]
      
      This uses the normal video= command line option to control the kms
      output setup at boot time. It is used to override the autodetection
      done by kms.
      
      video= normally takes a framebuffer as the first parameter, in kms
      it will take a connector name, DVI-I-1, or LVDS-1 etc. If no output
      connector is specified the mode string will apply to all connectors.
      
      The mode specification used will match down the probed modes, and if
      no mode is found it will add a CVT mode that matches.
      
      video=1024x768 - all connectors match a 1024x768 mode or add a CVT on
      video=VGA-1:1024x768, VGA-1 connector gets mode only.
      
      The same strings as used in current fb modedb.c are used, except I've
      added three more letters, e, D, d, e = enable, D = enable Digital,
      d = disable, which allow a connector to be forced into a certain state.
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      d50ba256
  12. 23 9月, 2009 8 次提交