1. 20 2月, 2013 1 次提交
    • M
      drm/nouveau/therm: implement support for temperature alarms · 0083b91d
      Martin Peres 提交于
      For now, we only boost the fan speed to the maximum and auto-mode
      when hitting the FAN_BOOST threshold and halt the computer when it
      reaches the shutdown temperature. The downclock and critical thresholds
      do nothing.
      
      On nv43:50 and nva3+, temperature is polled because of the limited hardware.
      I'll improve the nva3+ situation by implementing alarm management in PDAEMON
      whenever I can but polling once every second shouldn't be such a problem.
      
      v2 (Ben Skeggs):
      - rebased
      
      v3: fixed false-detections and threshold reprogrammation handling on nv50:nvc0
      Signed-off-by: NBen Skeggs <bskeggs@redhat.com>
      Signed-off-by: NMartin Peres <martin.peres@labri.fr>
      0083b91d
  2. 03 10月, 2012 4 次提交
    • B
      d38ac521
    • 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/bios: pull in basic vbios subdev, more to come later · 70c0f263
      Ben Skeggs 提交于
      v2: Ben Skeggs <bskeggs@redhat.com>
      - use unaligned macros to access vbios image
      - endianness fixes
      Signed-off-by: NBen Skeggs <bskeggs@redhat.com>
      70c0f263
    • 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