1. 26 6月, 2013 10 次提交
  2. 12 6月, 2013 5 次提交
  3. 10 6月, 2013 7 次提交
  4. 05 6月, 2013 4 次提交
  5. 04 6月, 2013 1 次提交
  6. 03 6月, 2013 10 次提交
    • A
      drm/radeon: don't allow audio on DCE6 · 1cbcca30
      Alex Deucher 提交于
      It's not supported yet.  Fixes display issues when
      users force it on.
      Signed-off-by: NAlex Deucher <alexander.deucher@amd.com>
      Cc: stable@vger.kernel.org
      1cbcca30
    • S
      drm/radeon: Use direct mapping for fast fb access on RS780/RS880 (v2) · 65337e60
      Samuel Li 提交于
      v2: fix trailing whitespace
      Signed-off-by: NSamuel Li <samuel.li@amd.com>
      Signed-off-by: NAlex Deucher <alexander.deucher@amd.com>
      65337e60
    • A
      radeon: Fix system hang issue when using KMS with older cards · e49f3959
      Adis Hamzić 提交于
      The current radeon driver initialization routines, when using KMS, are written
      so that the IRQ installation routine is called before initializing the WB buffer
      and the CP rings. With some ASICs, though, the IRQ routine tries to access the
      GFX_INDEX ring causing a call to RREG32 with the value of -1 in
      radeon_fence_read. This, in turn causes the system to completely hang with some
      cards, requiring a hard reset.
      
      A call stack that can cause such a hang looks like this (using rv515 ASIC for the
      example here):
       * rv515_init (rv515.c)
       * radeon_irq_kms_init (radeon_irq_kms.c)
       * drm_irq_install (drm_irq.c)
       * radeon_driver_irq_preinstall_kms (radeon_irq_kms.c)
       * rs600_irq_process (rs600.c)
       * radeon_fence_process - due to SW interrupt (radeon_fence.c)
       * radeon_fence_read (radeon_fence.c)
       * hang due to RREG32(-1)
      
      The patch moves the IRQ installation to the card startup routine, after the ring
      has been initialized, but before the IRQ has been set. This fixes the issue, but
      requires a check to see if the IRQ is already installed, as is the case in the
      system resume codepath.
      I have tested the patch on three machines using the rv515, the rv770 and the
      evergreen ASIC. They worked without issues.
      
      This seems to be a known issue and has been reported on several bug tracking
      sites by various distributions (see links below). Most of reports recommend
      booting the system with KMS disabled and then enabling KMS by reloading the
      radeon module. For some reason, this was indeed a usable workaround, however,
      UMS is now deprecated and disabled by default.
      
      Bug reports:
      https://bugzilla.redhat.com/show_bug.cgi?id=845745
      https://bugs.launchpad.net/ubuntu/+source/linux/+bug/561789
      https://bbs.archlinux.org/viewtopic.php?id=156964Signed-off-by: NAdis Hamzić <adis@hamzadis.com>
      Signed-off-by: NAlex Deucher <alexander.deucher@amd.com>
      Cc: stable@vger.kernel.org
      e49f3959
    • B
      drm/i915: no lvds quirk for hp t5740 · 45a211d7
      Ben Mesman 提交于
      Last year, a patch was made for the "HP t5740e Thin Client" (see
      http://lists.freedesktop.org/archives/dri-devel/2012-May/023245.html).
      This device reports an lvds panel, but does not really have one.
      
      The predecessor of this device is the "hp t5740", which also does not have
      an lvds panel. This patch will add the same quirk for this device.
      Signed-off-by: NBen Mesman <ben@bnc.nl>
      Cc: stable@vger.kernel.org
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      45a211d7
    • D
      drm/i915: Quirk the pipe A quirk in the modeset state checker · d62cf62a
      Daniel Vetter 提交于
      If we always force the pipe A to on we can't use the hw state to
      decide whether it should be on. Hence quirk the quirk.
      
      The problem is that crtc->active tracks the state of the entire
      display pipe, i.e. including planes, encoders and all. But our hw
      state readout simply looks at the pipe. But with the pipe A quirk we
      force-enable that (together with it's pll). To fix that mismatch we
      have two options:
      - Quirk the checked state to match what our sw tracking states if the
        pipe A quirk is in effect.
      - Improve the hw state readout to not get fooled by the pipe A quirk.
      
      Since we already have similar state clamping in e.g. assert_pipe I've
      opted for the first variant. Also note that we don't really loose any
      state checking: Individual pieces of the abstract crtc pipe are
      checked in the enable/disable functions with the various asssert_*
      checks we have, and the hw state check code doesn't check anything if
      the pipe is off anyway.
      
      v2: Pimp commit message after discussion with Chris and only apply the
      quirk for the quirk if we're checking pipe A. Otherwise we'll miss
      state checking for pipe B on i830M ...
      
      v3: Make the code comment consistent with the improved commit message,
      too (Chris).
      
      Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=64764
      Cc: stable@vger.kernel.org
      Cc: Chris Wilson <chris@chris-wilson.co.uk>
      Reported-and-Tested-by: mlsemon35@gmail.com (v1)
      Reviewed-by: NChris Wilson <chris@chris-wilson.co.uk>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      d62cf62a
    • D
      drm/i915: Fix spurious -EIO/SIGBUS on wedged gpus · 7abb690a
      Daniel Vetter 提交于
      Chris Wilson noticed that since
      
      commit 1f83fee0 [v3.9]
      Author: Daniel Vetter <daniel.vetter@ffwll.ch>
      Date:   Thu Nov 15 17:17:22 2012 +0100
      
          drm/i915: clear up wedged transitions
      
      X can again get -EIO when it does not expect it. And even worse score
      a SIGBUS when accessing gtt mmaps. The established ABI is that we
      _only_ return an -EIO from execbuf - all other ioctls should just
      work. And since the reset code moves all bos out of gpu domains and
      clears out all the last_seqno/ring tracking there really shouldn't be
      any reason for non-execbuf code to ever touch the hw and see an -EIO.
      
      After some extensive discussions we've noticed that these spurios -EIO
      are caused by i915_gem_wait_for_error:
      
      http://www.mail-archive.com/intel-gfx@lists.freedesktop.org/msg20540.html
      
      That is easy to fix by returning 0 instead of -EIO, since grabbing the
      dev->struct_mutex does not yet mean that we actually want to touch the
      hw. And so there is no reason at all to fail with -EIO.
      
      But that's not the entire since, since often (at least it's easily
      googleable) dmesg indicates that the reset fails and we declare the
      gpu wedged. Then, quite a bit later X wakes up with the "Timed out
      waiting for the gpu reset to complete" DRM_ERROR message in
      wait_for_errror and brings down the desktop with an -EIO/SIGBUS.
      
      So clearly we're missing a wakeup somewhere, since the gpu reset just
      doesn't take 10 seconds to complete. And indeed we're do handle the
      terminally wedged state wrong.
      
      Fix this all up.
      
      References: https://bugs.freedesktop.org/show_bug.cgi?id=63921
      References: https://bugs.freedesktop.org/show_bug.cgi?id=64073
      Cc: Chris Wilson <chris@chris-wilson.co.uk>
      Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
      Cc: Damien Lespiau <damien.lespiau@intel.com>
      Cc: stable@vger.kernel.org
      Reviewed-by: NChris Wilson <chris@chris-wilson.co.uk>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      7abb690a
    • C
      drm/mgag200: Add missing write to index before accessing data register · 91f8f105
      Christopher Harvey 提交于
      This is a bug fix for some versions of g200se cards while doing
      mode-setting.
      Signed-off-by: NChristopher Harvey <charvey@matrox.com>
      Tested-by: NJulia Lemire <jlemire@matrox.com>
      Acked-by: NJulia Lemire <jlemire@matrox.com>
      Cc: stable@vger.kernel.org
      Signed-off-by: NDave Airlie <airlied@gmail.com>
      91f8f105
    • A
      drm/nouveau: use mdelay instead of large udelay constants · b06f6a9d
      Arnd Bergmann 提交于
      ARM cannot handle udelay for more than 2 miliseconds, so we
      should use mdelay instead for those.
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      Cc: David Airlie <airlied@linux.ie>
      Cc: Ben Skeggs <bskeggs@redhat.com>
      Cc: dri-devel@lists.freedesktop.org
      Signed-off-by: NDave Airlie <airlied@gmail.com>
      b06f6a9d
    • A
      drm/tilcd: select BACKLIGHT_LCD_SUPPORT · 1ed7fad6
      Arnd Bergmann 提交于
      The dependecies for BACKLIGHT_CLASS_DEVICE are defined a bit
      strange, but it seems one has to always select both BACKLIGHT_CLASS_DEVICE
      and BACKLIGHT_LCD_SUPPORT to avoid this error:
      
      drivers/gpu/drm/tilcdc/tilcdc_panel.c:396:
       undefined reference to `of_find_backlight_by_node'
      
      Cc: Rob Clark <robdclark@gmail.com>
      Cc: dri-devel@lists.freedesktop.org
      Cc: Dave Airlie <airlied@redhat.com>
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      Signed-off-by: NDave Airlie <airlied@gmail.com>
      1ed7fad6
    • H
      drm: fix a use-after-free when GPU acceleration disabled · b7ea85a4
      Huacai Chen 提交于
      When GPU acceleration is disabled, drm_vblank_cleanup() will free the
      vblank-related data, such as vblank_refcount, vblank_inmodeset, etc.
      But we found that drm_vblank_post_modeset() may be called after the
      cleanup, which use vblank_refcount and vblank_inmodeset. And this will
      cause a kernel panic.
      
      Fix this by return immediately if dev->num_crtcs is zero. This is the
      same thing that drm_vblank_pre_modeset() does.
      
      Call trace of a drm_vblank_post_modeset() after drm_vblank_cleanup():
      [   62.628906] [<ffffffff804868d0>] drm_vblank_post_modeset+0x34/0xb4
      [   62.628906] [<ffffffff804c7008>] atombios_crtc_dpms+0xb4/0x174
      [   62.628906] [<ffffffff804c70e0>] atombios_crtc_commit+0x18/0x38
      [   62.628906] [<ffffffff8047f038>] drm_crtc_helper_set_mode+0x304/0x3cc
      [   62.628906] [<ffffffff8047f92c>] drm_crtc_helper_set_config+0x6d8/0x988
      [   62.628906] [<ffffffff8047dd40>] drm_fb_helper_set_par+0x94/0x104
      [   62.628906] [<ffffffff80439d14>] fbcon_init+0x424/0x57c
      [   62.628906] [<ffffffff8046a638>] visual_init+0xb8/0x118
      [   62.628906] [<ffffffff8046b9f8>] take_over_console+0x238/0x384
      [   62.628906] [<ffffffff80436df8>] fbcon_takeover+0x7c/0xdc
      [   62.628906] [<ffffffff8024fa20>] notifier_call_chain+0x44/0x94
      [   62.628906] [<ffffffff8024fcbc>] __blocking_notifier_call_chain+0x48/0x68
      [   62.628906] [<ffffffff8042d990>] register_framebuffer+0x228/0x260
      [   62.628906] [<ffffffff8047e010>] drm_fb_helper_single_fb_probe+0x260/0x314
      [   62.628906] [<ffffffff8047e2c4>] drm_fb_helper_initial_config+0x200/0x234
      [   62.628906] [<ffffffff804e5560>] radeon_fbdev_init+0xd4/0xf4
      [   62.628906] [<ffffffff804e0e08>] radeon_modeset_init+0x9bc/0xa18
      [   62.628906] [<ffffffff804bfc14>] radeon_driver_load_kms+0xdc/0x12c
      [   62.628906] [<ffffffff8048b548>] drm_get_pci_dev+0x148/0x238
      [   62.628906] [<ffffffff80423564>] local_pci_probe+0x5c/0xd0
      [   62.628906] [<ffffffff80241ac4>] work_for_cpu_fn+0x1c/0x30
      [   62.628906] [<ffffffff802427c8>] process_one_work+0x274/0x3bc
      [   62.628906] [<ffffffff80242934>] process_scheduled_works+0x24/0x44
      [   62.628906] [<ffffffff8024515c>] worker_thread+0x31c/0x3f4
      [   62.628906] [<ffffffff802497a8>] kthread+0x88/0x90
      [   62.628906] [<ffffffff80206794>] kernel_thread_helper+0x10/0x18
      Signed-off-by: NHuacai Chen <chenhc@lemote.com>
      Signed-off-by: NBinbin Zhou <zhoubb@lemote.com>
      Cc: <stable@vger.kernel.org>
      Reviewed-by: NMichel Dänzer <michel.daenzer@amd.com>
      Acked-by: NPaul Menzel <paulepanter@users.sourceforge.net>
      Signed-off-by: NDave Airlie <airlied@gmail.com>
      b7ea85a4
  7. 31 5月, 2013 1 次提交
  8. 30 5月, 2013 2 次提交