1. 10 12月, 2009 2 次提交
    • J
      drm/ttm: Rework validation & memory space allocation (V3) · ca262a99
      Jerome Glisse 提交于
      This change allow driver to pass sorted memory placement,
      from most prefered placement to least prefered placement.
      In order to avoid long function prototype a structure is
      used to gather memory placement informations such as range
      restriction (if you need a buffer to be in given range).
      Range restriction is determined by fpfn & lpfn which are
      the first page and last page number btw which allocation
      can happen. If those fields are set to 0 ttm will assume
      buffer can be put anywhere in the address space (thus it
      avoids putting a burden on the driver to always properly
      set those fields).
      
      This patch also factor few functions like evicting first
      entry of lru list or getting a memory space. This avoid
      code duplication.
      
      V2: Change API to use placement flags and array instead
          of packing placement order into a quadword.
      V3: Make sure we set the appropriate mem.placement flag
          when validating or allocation memory space.
      
      [Pending Thomas Hellstrom further review but okay
      from preliminary review so far].
      Signed-off-by: NJerome Glisse <jglisse@redhat.com>
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      ca262a99
    • J
      drm: Add search/get functions to get a block in a specific range · a2e68e92
      Jerome Glisse 提交于
      These are required for changes to TTM.
      Signed-off-by: NJerome Glisse <jglisse@redhat.com>
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      a2e68e92
  2. 08 12月, 2009 4 次提交
  3. 07 12月, 2009 4 次提交
  4. 04 12月, 2009 7 次提交
  5. 02 12月, 2009 4 次提交
  6. 25 11月, 2009 1 次提交
    • E
      drm/i915: Replace a calloc followed by copying data over it with malloc. · c8e0f93a
      Eric Anholt 提交于
      Execbufs involve quite a bit of payload, to the extent that cache misses
      show up in the profiles here, and a suspicion that some of those cachelines
      may get evicted and then reloaded in the subsequent copy.
      
      This is still abstracted like drm_calloc_large since we want to check for
      size overflow, and because we want to choose between kmalloc and vmalloc
      on the fly.  cairo's interface for malloc-with-calloc's-args was used as
      the model.
      Signed-off-by: NEric Anholt <eric@anholt.net>
      c8e0f93a
  7. 19 11月, 2009 1 次提交
  8. 18 11月, 2009 4 次提交
  9. 06 11月, 2009 3 次提交
    • 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: 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
  10. 26 10月, 2009 1 次提交
  11. 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
  12. 05 10月, 2009 2 次提交
  13. 28 9月, 2009 1 次提交
  14. 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
  15. 23 9月, 2009 1 次提交
  16. 21 9月, 2009 1 次提交
    • D
      drm/vgaarb: add VGA arbitration support to the drm and kms. · 28d52043
      Dave Airlie 提交于
      VGA arb requires DRM support for non-kms drivers, to turn on/off
      irqs when disabling the mem/io regions.
      
      VGA arb requires KMS support for GPUs where we can turn off VGA
      decoding. Currently we know how to do this for intel and radeon
      kms drivers, which allows them to be removed from the arbiter.
      
      This patch comes from Fedora rawhide kernel.
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      28d52043
  17. 20 9月, 2009 1 次提交
  18. 18 9月, 2009 1 次提交