1. 28 8月, 2015 5 次提交
  2. 22 1月, 2015 7 次提交
    • B
      drm/nouveau/mc: namespace + nvidia gpu names (no binary change) · d7e5fcd2
      Ben Skeggs 提交于
      The namespace of NVKM is being changed to nvkm_ instead of nouveau_,
      which will be used for the DRM part of the driver.  This is being
      done in order to make it very clear as to what part of the driver a
      given symbol belongs to, and as a minor step towards splitting the
      DRM driver out to be able to stand on its own (for virt).
      
      Because there's already a large amount of churn here anyway, this is
      as good a time as any to also switch to NVIDIA's device and chipset
      naming to ease collaboration with them.
      
      A comparison of objdump disassemblies proves no code changes.
      Signed-off-by: NBen Skeggs <bskeggs@redhat.com>
      d7e5fcd2
    • B
      drm/nouveau/mspdec: separate from vp · 37a5d028
      Ben Skeggs 提交于
      Switch to NVIDIA's name for the device.
      
      The namespace of NVKM is being changed to nvkm_ instead of nouveau_,
      which will be used for the DRM part of the driver.  This is being
      done in order to make it very clear as to what part of the driver a
      given symbol belongs to, and as a minor step towards splitting the
      DRM driver out to be able to stand on its own (for virt).
      
      Because there's already a large amount of churn here anyway, this is
      as good a time as any to also switch to NVIDIA's device and chipset
      naming to ease collaboration with them.
      Signed-off-by: NBen Skeggs <bskeggs@redhat.com>
      37a5d028
    • B
      drm/nouveau/msppp: rename from ppp (no binary change) · fd8666f7
      Ben Skeggs 提交于
      Switch to NVIDIA's name for the device.
      
      The namespace of NVKM is being changed to nvkm_ instead of nouveau_,
      which will be used for the DRM part of the driver.  This is being
      done in order to make it very clear as to what part of the driver a
      given symbol belongs to, and as a minor step towards splitting the
      DRM driver out to be able to stand on its own (for virt).
      
      Because there's already a large amount of churn here anyway, this is
      as good a time as any to also switch to NVIDIA's device and chipset
      naming to ease collaboration with them.
      
      A comparison of objdump disassemblies proves no code changes.
      Signed-off-by: NBen Skeggs <bskeggs@redhat.com>
      fd8666f7
    • B
      drm/nouveau/ce: rename from copy (no binary change) · aedf24ff
      Ben Skeggs 提交于
      Switch to NVIDIA's name for the device.
      
      The namespace of NVKM is being changed to nvkm_ instead of nouveau_,
      which will be used for the DRM part of the driver.  This is being
      done in order to make it very clear as to what part of the driver a
      given symbol belongs to, and as a minor step towards splitting the
      DRM driver out to be able to stand on its own (for virt).
      
      Because there's already a large amount of churn here anyway, this is
      as good a time as any to also switch to NVIDIA's device and chipset
      naming to ease collaboration with them.
      
      A comparison of objdump disassemblies proves no code changes.
      Signed-off-by: NBen Skeggs <bskeggs@redhat.com>
      aedf24ff
    • B
      drm/nouveau/msvld: separate from bsp · eccf7e8a
      Ben Skeggs 提交于
      Switch to NVIDIA's name for the device.
      
      The namespace of NVKM is being changed to nvkm_ instead of nouveau_,
      which will be used for the DRM part of the driver.  This is being
      done in order to make it very clear as to what part of the driver a
      given symbol belongs to, and as a minor step towards splitting the
      DRM driver out to be able to stand on its own (for virt).
      
      Because there's already a large amount of churn here anyway, this is
      as good a time as any to also switch to NVIDIA's device and chipset
      naming to ease collaboration with them.
      Signed-off-by: NBen Skeggs <bskeggs@redhat.com>
      eccf7e8a
    • B
      drm/nouveau/pmu: rename from pwr (no binary change) · ebb58dc2
      Ben Skeggs 提交于
      Switch to NVIDIA's name for the device.
      
      The namespace of NVKM is being changed to nvkm_ instead of nouveau_,
      which will be used for the DRM part of the driver.  This is being
      done in order to make it very clear as to what part of the driver a
      given symbol belongs to, and as a minor step towards splitting the
      DRM driver out to be able to stand on its own (for virt).
      
      Because there's already a large amount of churn here anyway, this is
      as good a time as any to also switch to NVIDIA's device and chipset
      naming to ease collaboration with them.
      
      A comparison of objdump disassemblies proves no code changes.
      Signed-off-by: NBen Skeggs <bskeggs@redhat.com>
      ebb58dc2
    • B
      drm/nouveau: remove symlinks, move core/ to nvkm/ (no code changes) · c39f472e
      Ben Skeggs 提交于
      The symlinks were annoying some people, and they're not used anywhere
      else in the kernel tree.  The include directory structure has been
      changed so that symlinks aren't needed anymore.
      
      NVKM has been moved from core/ to nvkm/ to make it more obvious as to
      what the directory is for, and as some minor prep for when NVKM gets
      split out into its own module (virt) at a later date.
      Signed-off-by: NBen Skeggs <bskeggs@redhat.com>
      c39f472e
  3. 10 8月, 2014 2 次提交
  4. 11 6月, 2014 1 次提交
  5. 10 6月, 2014 1 次提交
    • M
      drm/nv50-/mc: fix kms pageflip events by reordering irq handling order. · dcfb1009
      Mario Kleiner 提交于
      Whenever a single nouveau_mc_intr() main gpu irq-handler invocation was
      responsible for calling both, the vblank-irq handler (display engine irq)
      and kms-pageflip completion handler (from fifo irq), the order of
      invocation was wrong. nouveau_finish_flip() was called before
      drm_handle_vblank() for the vblank of pageflip completion, so the
      emitted pageflip event contained stale vblank count and timestamp
      from previous vblank. This caused failure in userspace to timestamp
      properly.
      
      Reorder order of invocation of engine irq handlers: Put
      NVDEV_ENGINE_DISP always on top, and thereby before NVDEV_ENGINE_FIFO,
      so that drm_handle_vblank() gets called to update vblank timestamps
      and count before potential pageflip events make use of that
      information.
      
      This works on nv-50 and later, where kms-pageflip completion triggers
      an irq either after a separate vblank irq, or both pageflip and vblank
      trigger one common irq invocation, but never before vblank irqs.
      
      v2 (Ben):
      - removed mods for nv04-nv40, it doesn't help there anyway
      - this is considered a hack, and a better solution should be found
      Signed-off-by: NMario Kleiner <mario.kleiner.de@gmail.com>
      Signed-off-by: NBen Skeggs <bskeggs@redhat.com>
      Cc: <stable@vger.kernel.org> # 3.13+
      dcfb1009
  6. 23 1月, 2014 1 次提交
  7. 08 11月, 2013 3 次提交
  8. 21 8月, 2013 1 次提交
  9. 01 7月, 2013 1 次提交
  10. 26 4月, 2013 1 次提交
  11. 20 2月, 2013 1 次提交
    • M
      drm/nouveau/pbus: add a PBUS subdev that hands IRQs to the right subdevs · a10220bb
      Martin Peres 提交于
      We are going to use PTHERM's IRQs for thermal monitoring but we need to route
      them first.
      
      On nv31-50, PBUS's IRQ line is shared with GPIOs IRQs.
      
      It seems like nv10-31 GPIO interruptions aren't well handled. I kept the
      original behaviour but it is wrong and may lead to an IRQ storm.
      
      Since we enable all PBUS IRQs, we need a way to avoid being stormed if we
      don't handle them. The solution I used was to mask the IRQs that have not been
      handled. This will also print one message in the logs to let us know.
      
      v2: drop the shared intr handler because of was racy
      v3: style fixes
      v4: drop a useless construct in the chipset-dependent INTR
      v5: add BUS to the disable mask
      v6 (Ben Skeggs):
      - general tidy to match the rest of the driver's style
      - nva3->nvc0, nva3 can be serviced just fine with nv50.c, rnndb even notes
        that the THERM_ALARM bit got left in the hw until fermi anyway.. so, it's
        not going to conflict
      - removed the peephole and user stuff, for the moment.. will handle them
        later if we find a good reason to actually care..
      - limited INTR_EN to just what we can handle for now, mostly to prevent
        spam of unknown status bits (seen on at least nv4x)
      Signed-off-by: NBen Skeggs <bskeggs@redhat.com>
      Signed-off-by: NMartin Peres <martin.peres@labri.fr>
      a10220bb
  12. 29 11月, 2012 1 次提交
  13. 03 10月, 2012 7 次提交
    • B
      2c1a425e
    • B
      861d2107
    • B
      drm/nouveau/mc: port to subdev interfaces · 7d9115de
      Ben Skeggs 提交于
      Signed-off-by: NBen Skeggs <bskeggs@redhat.com>
      7d9115de
    • B
      drm/nouveau/clock: pull in the implementation from all over the place · 70790f4f
      Ben Skeggs 提交于
      Still missing the main bits we use to change performance levels, I'll get
      to it after all the hard yakka has been finished.
      Signed-off-by: NBen Skeggs <bskeggs@redhat.com>
      70790f4f
    • B
      drm/nouveau/clk: implement stub clock subdev · 8aceb7de
      Ben Skeggs 提交于
      Signed-off-by: NBen Skeggs <bskeggs@redhat.com>
      8aceb7de
    • B
      drm/nouveau/core: pull in most of the new core infrastructure · 9274f4a9
      Ben Skeggs 提交于
      This commit provides most of the infrastructure to support a major overhaul
      of Nouveau's internals coming in the following commits.  This work aims to
      take all the things we've learned over the last several years, and turn that
      into a cleaner architecture that's more maintainable going forward.
      
      RAMHT and MM bits of the new core have been left out for the moment, and
      will be pulled in as I go through the process of porting the code to
      become either subdev or engine modules.
      
      There are several main goals I wanted to achieve through this work:
      
      -- Reduce complexity
      
      The goal here was to make each component of the driver as independent as
      possible, which will ease maintainability and readability, and provide a
      good base for resetting locked up GPU units in the future.
      
      -- Better tracking of GPU units that are required at any given time
      
      This is for future PM work, we'll be able to tell exactly what parts of the
      GPU we need powered at any given point (etc).
      
      -- Expose all available NVIDIA GPUs to the client
      
      In order to support things such as multi-GPU channels, we want to be able
      to expose all the NVIDIA GPUs to the client over a single file descriptor
      so it can send a single push buffer to multiple GPUs.
      
      -- Untangle the core hardware support code from the DRM implementation
      
      This happened initially as an unexpected side-effect of developing the
      initial core infrastructure in userspace, but it turned into a goal of
      the whole project.  Initial benefits will be the availablility of a
      number of userspace tools and tests using the same code as the driver
      itself, but will also be important as I look into some virtualisation
      ideas.
      
      v2: Ben Skeggs <bskeggs@redhat.com>
      - fix duplicate assignments noticed by clang
      - implement some forgotten yelling in error path
      - ensure 64-bit engine mask is used everywhere
      
      v3: Marcin Slusarz <marcin.slusarz@gmail.com>
      - sparse fixes
      - inline nv_printk into nv_assert to prevent recursive inlining issues
      
      v4: Ben Skeggs <bskeggs@redhat.com>
      - fixed minor memory leak on gpuobj destruction
      Signed-off-by: NBen Skeggs <bskeggs@redhat.com>
      9274f4a9
    • 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
  14. 20 9月, 2011 2 次提交
  15. 23 6月, 2011 1 次提交
    • B
      drm/nouveau: rework vram init/fini ordering a little · 24f246ac
      Ben Skeggs 提交于
      Commit "drm/nouveau: add some debug output if nouveau_mm busy at destroy time"
      revealed an issue where vram mm takedown would actually fail due to there
      still being nodes present, causing nouveau to leak a small amount of memory
      on module unload.
      
      This splits TTM/nouveau_mm a bit more cleanly and ensures nouveau_mm fini
      isn't done until all gpuobjs are also destroyed.
      Signed-off-by: NBen Skeggs <bskeggs@redhat.com>
      24f246ac
  16. 25 2月, 2011 1 次提交
  17. 17 1月, 2011 1 次提交
  18. 21 12月, 2010 1 次提交
  19. 08 12月, 2010 2 次提交
    • B
      drm/nouveau: kick vram functions out into an "engine" · 60d2a88a
      Ben Skeggs 提交于
      NVC0 will be able to share some of nv50's paths this way.  This also makes
      it the card-specific vram code responsible for deciding if a given set
      of tile_flags is valid, rather than duplicating the allowed types in
      nv50_vram.c and nouveau_gem.c
      Signed-off-by: NBen Skeggs <bskeggs@redhat.com>
      60d2a88a
    • B
      drm/nv50: implement custom vram mm · 573a2a37
      Ben Skeggs 提交于
      This is required on nv50 as we need to be able to have more precise control
      over physical VRAM allocations to avoid buffer corruption when using
      buffers of mixed memory types.
      
      This removes some nasty overallocation/alignment that we were previously
      using to "control" this problem.
      Signed-off-by: NBen Skeggs <bskeggs@redhat.com>
      573a2a37