An error occurred fetching the project authors.
  1. 26 Jun, 2017 1 commit
    • Lyude Paul's avatar
      drm/nouveau: Don't enabling polling twice on runtime resume · 9b50bb2b
      Lyude Paul authored
      [ Upstream commit cae9ff03 ]
      
      As it turns out, on cards that actually have CRTCs on them we're already
      calling drm_kms_helper_poll_enable(drm_dev) from
      nouveau_display_resume() before we call it in
      nouveau_pmops_runtime_resume(). This leads us to accidentally trying to
      enable polling twice, which results in a potential deadlock between the
      RPM locks and drm_dev->mode_config.mutex if we end up trying to enable
      polling the second time while output_poll_execute is running and holding
      the mode_config lock. As such, make sure we only enable polling in
      nouveau_pmops_runtime_resume() if we need to.
      
      This fixes hangs observed on the ThinkPad W541
      Signed-off-by: default avatarLyude <lyude@redhat.com>
      Cc: Hans de Goede <hdegoede@redhat.com>
      Cc: Kilian Singer <kilian.singer@quantumtechnology.info>
      Cc: Lukas Wunner <lukas@wunner.de>
      Cc: David Airlie <airlied@redhat.com>
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      Signed-off-by: default avatarSasha Levin <alexander.levin@verizon.com>
      9b50bb2b
  2. 10 Aug, 2015 1 commit
  3. 14 Apr, 2015 1 commit
  4. 22 Jan, 2015 5 commits
    • Ben Skeggs's avatar
      drm/nouveau: finalise nvkm namespace switch (no binary change) · be83cd4e
      Ben Skeggs authored
      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: default avatarBen Skeggs <bskeggs@redhat.com>
      be83cd4e
    • Ben Skeggs's avatar
      drm/nouveau/device: namespace + nvidia gpu names (no binary change) · 9719047b
      Ben Skeggs authored
      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: default avatarBen Skeggs <bskeggs@redhat.com>
      9719047b
    • Ben Skeggs's avatar
      drm/nouveau/nvif: namespace of nvkm accessors (no binary change) · 989aa5b7
      Ben Skeggs authored
      NVKM is having it's namespace switched to nvkm_, which will conflict
      with these functions (which are workarounds for the fact that as of
      yet, we still aren't able to split DRM and NVKM completely).
      
      A comparison of objdump disassemblies proves no code changes.
      Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
      989aa5b7
    • Ben Skeggs's avatar
      drm/nouveau/sw: rename from software (no binary change) · 8700287b
      Ben Skeggs authored
      Shorter device name, make consistent with our engine enums.
      
      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: default avatarBen Skeggs <bskeggs@redhat.com>
      8700287b
    • Alexandre Courbot's avatar
      drm/nouveau: merge nouveau_platform.ko into nouveau.ko · 055a65d5
      Alexandre Courbot authored
      Having the two modules separated causes various unneeded complications,
      including having to export symbols accessed between the modules. Make
      things simpler by compiling platform device support into nouveau.ko.
      Platform device support remains optional and is only compiled on Tegra.
      Signed-off-by: default avatarAlexandre Courbot <acourbot@nvidia.com>
      Reviewed-by: default avatarVince Hsu <vinceh@nvidia.com>
      Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
      055a65d5
  5. 02 Dec, 2014 2 commits
  6. 02 Oct, 2014 1 commit
  7. 15 Sep, 2014 1 commit
  8. 10 Sep, 2014 2 commits
    • Bjorn Helgaas's avatar
      PCI: Add pci_ignore_hotplug() to ignore hotplug events for a device · b440bde7
      Bjorn Helgaas authored
      Powering off a hot-pluggable device, e.g., with pci_set_power_state(D3cold),
      normally generates a hot-remove event that unbinds the driver.
      
      Some drivers expect to remain bound to a device even while they power it
      off and back on again.  This can be dangerous, because if the device is
      removed or replaced while it is powered off, the driver doesn't know that
      anything changed.  But some drivers accept that risk.
      
      Add pci_ignore_hotplug() for use by drivers that know their device cannot
      be removed.  Using pci_ignore_hotplug() tells the PCI core that hot-plug
      events for the device should be ignored.
      
      The radeon and nouveau drivers use this to switch between a low-power,
      integrated GPU and a higher-power, higher-performance discrete GPU.  They
      power off the unused GPU, but they want to remain bound to it.
      
      This is a reimplementation of f244d8b6 ("ACPIPHP / radeon / nouveau:
      Fix VGA switcheroo problem related to hotplug") but extends it to work with
      both acpiphp and pciehp.
      
      This fixes a problem where systems with dual GPUs using the radeon drivers
      become unusable, freezing every few seconds (see bugzillas below).  The
      resume of the radeon device may also fail, e.g.,
      
      This fixes problems on dual GPU systems where the radeon driver becomes
      unusable because of problems while suspending the device, as in bug 79701:
      
          [drm] radeon: finishing device.
          radeon 0000:01:00.0: Userspace still has active objects !
          radeon 0000:01:00.0: ffff8800cb4ec288 ffff8800cb4ec000 16384 4294967297 force free
          ...
          WARNING: CPU: 0 PID: 67 at /home/apw/COD/linux/drivers/gpu/drm/radeon/radeon_gart.c:234 radeon_gart_unbind+0xd2/0xe0 [radeon]()
          trying to unbind memory from uninitialized GART !
      
      or while resuming it, as in bug 77261:
      
          radeon 0000:01:00.0: ring 0 stalled for more than 10158msec
          radeon 0000:01:00.0: GPU lockup ...
          radeon 0000:01:00.0: GPU pci config reset
          pciehp 0000:00:01.0:pcie04: Card not present on Slot(1-1)
          radeon 0000:01:00.0: GPU reset succeeded, trying to resume
          *ERROR* radeon: dpm resume failed
          radeon 0000:01:00.0: Wait for MC idle timedout !
      
      Link: https://bugzilla.kernel.org/show_bug.cgi?id=77261
      Link: https://bugzilla.kernel.org/show_bug.cgi?id=79701Reported-by: default avatarShawn Starr <shawn.starr@rogers.com>
      Reported-by: default avatarJose P. <lbdkmjdf@sharklasers.com>
      Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
      Acked-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      Acked-by: default avatarRajat Jain <rajatxjain@gmail.com>
      Acked-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      Acked-by: default avatarDave Airlie <airlied@redhat.com>
      CC: stable@vger.kernel.org	# v3.15+
      b440bde7
    • David Herrmann's avatar
      drm: add driver->set_busid() callback · 915b4d11
      David Herrmann authored
      One step closer to dropping all the drm_bus_* code:
      Add a driver->set_busid() callback and make all drivers use the generic
      helpers. Nouveau is the only driver that uses two different bus-types with
      the same drm_driver. This is totally broken if both buses are available on
      the same machine (unlikely, but lets be safe). Therefore, we create two
      different drivers for each platform during module_init() and set the
      set_busid() callback respectively.
      Signed-off-by: default avatarDavid Herrmann <dh.herrmann@gmail.com>
      Reviewed-by: default avatarThierry Reding <treding@nvidia.com>
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      915b4d11
  9. 09 Aug, 2014 12 commits
  10. 08 Jul, 2014 2 commits
  11. 02 Apr, 2014 1 commit
  12. 27 Mar, 2014 1 commit
  13. 26 Mar, 2014 5 commits
  14. 18 Feb, 2014 1 commit
  15. 29 Jan, 2014 2 commits
  16. 16 Dec, 2013 1 commit
  17. 14 Nov, 2013 1 commit