1. 03 12月, 2013 1 次提交
  2. 14 11月, 2013 4 次提交
  3. 08 11月, 2013 2 次提交
  4. 09 10月, 2013 1 次提交
    • D
      drm/nouveau: embed gem object in nouveau_bo · 55fb74ad
      David Herrmann 提交于
      There is no reason to keep the gem object separately allocated. nouveau is
      the last user of gem_obj->driver_private, so if we embed it, we can get
      rid of 8bytes per gem-object.
      
      The implementation follows the radeon driver. bo->gem is only valid, iff
      the bo was created via the gem helpers _and_ iff the user holds a valid
      gem reference. That is, as the gem object holds a reference to the
      nouveau_bo. If you use nouveau_ref() to gain a bo reference, you are not
      guaranteed to also hold a gem reference. The gem object might get
      destroyed after the last user drops the gem-ref via
      drm_gem_object_unreference(). Use drm_gem_object_reference() to gain a
      gem-reference.
      
      For debugging, we can use bo->gem.filp != NULL to test whether a gem-bo is
      valid. However, this shouldn't be used for real functionality to avoid
      gem-internal dependencies.
      
      Note that the implementation follows the previous style. However, we no
      longer can check for bo->gem != NULL to test for a valid gem object. This
      wasn't done before, so we should be safe now.
      Signed-off-by: NDavid Herrmann <dh.herrmann@gmail.com>
      Acked-by: NMaarten Lankhorst <maarten.lankhorst@canonical.com>
      Reviewed-by: NBen Skeggs <bskeggs@redhat.com>
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      55fb74ad
  5. 17 9月, 2013 1 次提交
  6. 04 9月, 2013 1 次提交
  7. 30 8月, 2013 1 次提交
  8. 29 8月, 2013 1 次提交
    • D
      nouveau: add runtime PM support (v0.9) · 5addcf0a
      Dave Airlie 提交于
      This hooks nouveau up to the runtime PM system to enable
      dynamic power management for secondary GPUs in switchable
      and optimus laptops.
      
      a) rewrite suspend/resume printks to hide them during dynamic s/r
      to avoid cluttering logs
      b) add runtime pm suspend to irq handler, crtc display, ioctl handler,
      connector status,
      c) handle hdmi audio dynamic power on/off using magic register.
      
      v0.5:
      make sure we hit D3 properly
      fix fbdev_set_suspend locking interaction, we only will poweroff if we have no
      active crtcs/fbcon anyways.
      add reference for active crtcs.
      sprinkle mark last busy for autosuspend timeout
      
      v0.6:
      allow more flexible debugging - to avoid log spam
      add option to enable/disable dynpm
      got to D3Cold
      
      v0.7:
      add hdmi audio support.
      
      v0.8:
      call autosuspend from idle, so pci config space access doesn't go straight
      back to sleep, this makes starting X faster.
      only signal usage if we actually handle the irq, otherwise usb keeps us awake.
      fix nv50 display active powerdown
      
      v0.9:
      use masking function to enable hdmi audio
      set busy when we fail to suspend
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      5addcf0a
  9. 21 8月, 2013 1 次提交
  10. 07 8月, 2013 1 次提交
  11. 25 7月, 2013 1 次提交
    • D
      drm/ttm: convert to unified vma offset manager · 72525b3f
      David Herrmann 提交于
      Use the new vma-manager infrastructure. This doesn't change any
      implementation details as the vma-offset-manager is nearly copied 1-to-1
      from TTM.
      
      The vm_lock is moved into the offset manager so we can drop it from TTM.
      During lookup, we use the vma locking helpers to take a reference to the
      found object.
      In all other scenarios, locking stays the same as before. We always
      guarantee that drm_vma_offset_remove() is called only during destruction.
      Hence, helpers like drm_vma_node_offset_addr() are always safe as long as
      the node has a valid offset.
      
      This also drops the addr_space_offset member as it is a copy of vm_start
      in vma_node objects. Use the accessor functions instead.
      
      v4:
       - remove vm_lock
       - use drm_vma_offset_lock_lookup() to protect lookup (instead of vm_lock)
      
      Cc: Dave Airlie <airlied@redhat.com>
      Cc: Ben Skeggs <bskeggs@redhat.com>
      Cc: Maarten Lankhorst <maarten.lankhorst@canonical.com>
      Cc: Martin Peres <martin.peres@labri.fr>
      Cc: Alex Deucher <alexander.deucher@amd.com>
      Cc: Thomas Hellstrom <thellstrom@vmware.com>
      Signed-off-by: NDavid Herrmann <dh.herrmann@gmail.com>
      Reviewed-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      Signed-off-by: NDave Airlie <airlied@gmail.com>
      72525b3f
  12. 10 7月, 2013 2 次提交
  13. 01 7月, 2013 1 次提交
  14. 28 6月, 2013 1 次提交
  15. 22 5月, 2013 1 次提交
  16. 26 4月, 2013 1 次提交
    • B
      drm/nv04/disp: hide all the cruft away in its own little hole · 1a646342
      Ben Skeggs 提交于
      It'd be pretty awesome if someone would care enough to port this all
      properly to a class interface, perhaps submitting a command stream to
      the core via a sw object on PFIFO (emulating how EVO works basically,
      and also what nvidia have done forever..)..
      
      But, this seems unlikely given how old this hardware is now, so, lets
      just hide it away.
      
      There's a heap of other bits and pieces laying around that are still
      tangled.  I'll (re)move them in pieces.
      Signed-off-by: NBen Skeggs <bskeggs@redhat.com>
      1a646342
  17. 20 2月, 2013 5 次提交
  18. 20 1月, 2013 1 次提交
    • D
      drm/<drivers>: reorder framebuffer init sequence · c7d73f6a
      Daniel Vetter 提交于
      With more fine-grained locking we can no longer rely on the big
      mode_config lock to prevent concurrent access to mode resources
      like framebuffers. Instead a framebuffer becomes accessible to
      other threads as soon as it is added to the relevant lookup
      structures. Hence it needs to be fully set up by the time drivers
      call drm_framebuffer_init.
      
      This patch here is the drivers part of that reorg. Nothing really fancy
      going on safe for three special cases.
      
      - exynos needs to be careful to properly unref all handles.
      - nouveau gets a resource leak fixed for free: one of the error
        cases didn't cleanup the framebuffer, which is now moot since
        the framebuffer is only registered once it is fully set up.
      - vmwgfx requires a slight reordering of operations, I'm hoping I didn't
        break anything (but it's refcount management only, so should be safe).
      
      v2: Split out exynos, since it's a bit more hairy than expected.
      
      v3: Drop bogus cirrus hunk noticed by Richard Wilbur.
      
      v4: Split out vmwgfx since there's a small change in return values.
      
      Reviewed-by: Rob Clark <rob@ti.com> (core + omapdrm)
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      c7d73f6a
  19. 13 1月, 2013 1 次提交
    • B
      drm/nouveau: do not forcibly power on lvds panels · 1a1841d3
      Ben Skeggs 提交于
      This fix was put in place to fix a bug where the eDP panel on certain
      laptops fails to respond over the aux channel after suspend.
      
      It appears that on some systems (Dell M6600, with LVDS panel) there's a
      very bad interaction with the eDP init table that causes the SOR to get
      very confused and not drive the panel correctly, leading to bleed.
      
      A DPMS off/on cycle is enough to bring it back, but, this will avoid the
      problem by not touching the panel GPIOs at times we're not meant to.
      Signed-off-by: NBen Skeggs <bskeggs@redhat.com>
      1a1841d3
  20. 29 11月, 2012 4 次提交
  21. 31 10月, 2012 2 次提交
  22. 22 10月, 2012 1 次提交
  23. 03 10月, 2012 5 次提交
    • B
      drm/nouveau: port remainder of drm code, and rip out compat layer · 77145f1c
      Ben Skeggs 提交于
      v2: Ben Skeggs <bskeggs@redhat.com>
      - fill in nouveau_pm.dev to prevent oops
      - fix ppc issues (build + OF shadow)
      Signed-off-by: NBen Skeggs <bskeggs@redhat.com>
      77145f1c
    • B
      drm/nouveau: port all engines to new engine module format · ebb945a9
      Ben Skeggs 提交于
      This is a HUGE commit, but it's not nearly as bad as it looks - any problems
      can be isolated to a particular chipset and engine combination.  It was
      simply too difficult to port each one at a time, the compat layers are
      *already* ridiculous.
      
      Most of the changes here are simply to the glue, the process for each of the
      engine modules was to start with a standard skeleton and copy+paste the old
      code into the appropriate places, fixing up variable names etc as needed.
      
      v2: Marcin Slusarz <marcin.slusarz@gmail.com>
      - fix find/replace bug in license header
      
      v3: Ben Skeggs <bskeggs@redhat.com>
      - bump indirect pushbuf size to 8KiB, 4KiB barely enough for userspace and
        left no space for kernel's requirements during GEM pushbuf submission.
      - fix duplicate assignments noticed by clang
      
      v4: Marcin Slusarz <marcin.slusarz@gmail.com>
      - add sparse annotations to nv04_fifo_pause/nv04_fifo_start
      - use ioread32_native/iowrite32_native for fifo control registers
      
      v5: Ben Skeggs <bskeggs@redhat.com>
      - rebase on v3.6-rc4, modified to keep copy engine fix intact
      - nv10/fence: unmap fence bo before destroying
      - fixed fermi regression when using nvidia gr fuc
      - fixed typo in supported dma_mask checking
      Signed-off-by: NBen Skeggs <bskeggs@redhat.com>
      ebb945a9
    • B
      drm/nouveau/pageflip: kick flip handling out of engsw and into fence · f589be88
      Ben Skeggs 提交于
      This is all very much a policy thing, and hence will not belong in SW
      after the rework.
      
      engsw now only handles receiving the event to say "can flip now" and makes
      a callback to perform the actual work.
      Signed-off-by: NBen Skeggs <bskeggs@redhat.com>
      f589be88
    • B
      drm/nouveau/gpio: port gpio to subdev interfaces · e0996aea
      Ben Skeggs 提交于
      v2: Ben Skeggs <bskeggs@redhat.com>
      - rebase on top of v3.6-rc6 with gpio reset patch integrated already
      Signed-off-by: NBen Skeggs <bskeggs@redhat.com>
      e0996aea
    • B
      drm/nouveau: restructure source tree, split core from drm implementation · 02a841d4
      Ben Skeggs 提交于
      Future work will be headed in the way of separating the policy supplied by
      the nouveau drm module from the mechanisms provided by the driver core.
      
      There will be a couple of major classes (subdev, engine) of driver modules
      that have clearly defined tasks, and the further directory structure change
      is to reflect this.
      
      No code changes here whatsoever, aside from fixing up a couple of include
      file pathnames.
      Signed-off-by: NBen Skeggs <bskeggs@redhat.com>
      02a841d4