1. 19 Dec, 2012 3 commits
    • Jerome Glisse's avatar
      drm/radeon: avoid deadlock in pm path when waiting for fence · 5f8f635e
      Jerome Glisse authored
      radeon_fence_wait_empty_locked should not trigger GPU reset as no
      place where it's call from would benefit from such thing and it
      actually lead to a kernel deadlock in case the reset is triggered
      from pm codepath. Instead force ring completion in place where it
      makes sense or return early in others.
      Signed-off-by: default avatarJerome Glisse <jglisse@redhat.com>
      Reviewed-by: default avatarChristian König <christian.koenig@amd.com>
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      Cc: stable@vger.kernel.org
      5f8f635e
    • Jerome Glisse's avatar
      drm/radeon: don't leave fence blocked process on failed GPU reset · 76903b96
      Jerome Glisse authored
      Force all fence to signal if GPU reset failed so no process get stuck
      on waiting fence.
      Signed-off-by: default avatarJerome Glisse <jglisse@redhat.com>
      Reviewed-by: default avatarChristian König <christian.koenig@amd.com>
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      Cc: stable@vger.kernel.org
      76903b96
    • Maarten Lankhorst's avatar
      drm/ttm: fix delayed ttm_bo_cleanup_refs_and_unlock delayed handling · 0953e76e
      Maarten Lankhorst authored
      Fix regression introduced by 85b144f8
      "drm/ttm: call ttm_bo_cleanup_refs with reservation and lru lock held, v3"
      
      Slowpath ttm_bo_cleanup_refs_and_unlock accidentally tried to increase
      refcount on &bo->sync_obj instead of bo->sync_obj.
      
      The compiler didn't complain since sync_obj_ref takes a void pointer,
      so it was still valid c.
      
      This could result in lockups, memory corruptions, and warnings like
      these when graphics card VRAM usage is high:
      
      ------------[ cut here ]------------
      WARNING: at include/linux/kref.h:42 radeon_fence_ref+0x2c/0x40()
      Hardware name: System Product Name
      Pid: 157, comm: X Not tainted 3.7.0-rc7-00520-g85b144f8-dirty #174
      Call Trace:
      [<ffffffff81058c84>] ? warn_slowpath_common+0x74/0xb0
      [<ffffffff8129273c>] ? radeon_fence_ref+0x2c/0x40
      [<ffffffff8125e95c>] ? ttm_bo_cleanup_refs_and_unlock+0x18c/0x2d0
      [<ffffffff8125f17c>] ? ttm_mem_evict_first+0x1dc/0x2a0
      [<ffffffff81264452>] ? ttm_bo_man_get_node+0x62/0xb0
      [<ffffffff8125f4ce>] ? ttm_bo_mem_space+0x28e/0x340
      [<ffffffff8125fb0c>] ? ttm_bo_move_buffer+0xfc/0x170
      [<ffffffff810de172>] ? kmem_cache_alloc+0xb2/0xc0
      [<ffffffff8125fc15>] ? ttm_bo_validate+0x95/0x110
      [<ffffffff8125ff7c>] ? ttm_bo_init+0x2ec/0x3b0
      [<ffffffff8129419a>] ? radeon_bo_create+0x18a/0x200
      [<ffffffff81293e80>] ? radeon_bo_clear_va+0x40/0x40
      [<ffffffff812a5342>] ? radeon_gem_object_create+0x92/0x160
      [<ffffffff812a575c>] ? radeon_gem_create_ioctl+0x6c/0x150
      [<ffffffff812a529f>] ? radeon_gem_object_free+0x2f/0x40
      [<ffffffff81246b60>] ? drm_ioctl+0x420/0x4f0
      [<ffffffff812a56f0>] ? radeon_gem_pwrite_ioctl+0x20/0x20
      [<ffffffff810f53a4>] ? do_vfs_ioctl+0x2e4/0x4e0
      [<ffffffff810e5588>] ? vfs_read+0x118/0x160
      [<ffffffff810f55ec>] ? sys_ioctl+0x4c/0xa0
      [<ffffffff810e5851>] ? sys_read+0x51/0xa0
      [<ffffffff814b0612>] ? system_call_fastpath+0x16/0x1b
      Signed-off-by: default avatarMaarten Lankhorst <maarten.lankhorst@canonical.com>
      Reported-by: default avatarMarkus Trippelsdorf <markus@trippelsdorf.de>
      Acked-by: default avatarPaul Menzel <paulepanter@users.sourceforge.net>
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      0953e76e
  2. 16 Dec, 2012 2 commits
    • Dave Airlie's avatar
      Merge branch 'drm-intel-fixes' of git://people.freedesktop.org/~danvet/drm-intel into drm-next · 55bde6b1
      Dave Airlie authored
      Daniel writes:
      A few leftover fixes for 3.8:
      - VIC support for hdmi infoframes with the associated drm helper, fixes
        some black TVs (Paulo Zanoni)
      - Modeset state check (and fixup if the BIOS messed with the hw) for
        lid-open. modeset-rework fallout. Somehow the original reporter went
        awol, so this stalled for way too long until we've found a new
        victim^Wreporter with broken BIOS.
      - seqno wrap fixes from Mika and Chris.
      - Some minor fixes all over from various people.
      - Another race fix in the pageflip vs. unpin code from Chris.
      - hsw vga resume support and a few more fdi link fixes (only used for vga
        on hsw) from Paulo.
      - Regression fix for DMAR from Zhenyu Wang - I've scavenged memory from my
        DMAR for a while and it broke right away :(
      - Regression fix from Takashi Iwai for ivb lvds - some w/a needs to be
        (partially) moved back into place. Note that these are regressions in
        -next.
      - One more fix for ivb 3 pipe support - it now actually seems to work.
      
      * 'drm-intel-fixes' of git://people.freedesktop.org/~danvet/drm-intel: (25 commits)
        drm/i915: Fix missed needs_dmar setting
        drm/i915: Fix shifted screen on top of LVDS on IVY laptop
        drm/i915: disable cpt phase pointer fdi rx workaround
        drm/i915: set the LPT FDI RX polarity reversal bit when needed
        drm/i915: add lpt_init_pch_refclk
        drm/i915: add support for mPHY destination on intel_sbi_{read, write}
        drm/i915: reject modes the LPT FDI receiver can't handle
        drm/i915: fix hsw_fdi_link_train "retry" code
        drm/i915: Close race between processing unpin task and queueing the flip
        drm/i915: fixup l3 parity sysfs access check
        drm/i915: Clear the existing watermarks for g4x when modifying the cursor sr
        drm/i915: do not access BLC_PWM_CTL2 on pre-gen4 hardware
        drm/i915: Don't allow ring tail to reach the same cacheline as head
        drm/i915: Decouple the object from the unbound list before freeing pages
        drm/i915: Set sync_seqno properly after seqno wrap
        drm/i915: Include the last semaphore sync point in the error-state
        drm/i915: Rearrange code to only have a single method for waiting upon the ring
        drm/i915: Simplify flushing activity on the ring
        drm/i915: Preallocate next seqno before touching the ring
        drm/i915: force restore on lid open
        ...
      55bde6b1
    • Dave Airlie's avatar
      Merge branch 'exynos-drm-next' of... · 2f3f2406
      Dave Airlie authored
      Merge branch 'exynos-drm-next' of git://git.kernel.org/pub/scm/linux/kernel/git/daeinki/drm-exynos into drm-next
      
      Inki writes:
      "- add dmabuf attach/detach feature
        . This patch would resolve performance deterioration issue
          when v4l2-based driver is using the buffer imported from gem.
      - drm/exynos: use DMA_ATTR_NO_KERNEL_MAPPING attribute
        . With gem allocation, kernel space mapping isn't allocated and
          also physical pages aren't mapped with the kernel space.
          The physical pages are mapped with kernel space though vmap
          function only for console framebuffer.
      - add the below two patches I missed.
        drm: exynos: moved exynos drm device registration to drm driver
        drm: exynos: moved exynos drm hdmi device registration to drm driver
      - add IPP subsystem framework and its-based device drivers.
        . This patch set includes fimc, rotator and gsc drivers to perform
          image scaling, rotation and color space conversion.
      - add runtime pm support to hdmi driver.
      - And fixups and cleanups."
      
      * 'exynos-drm-next' of git://git.kernel.org/pub/scm/linux/kernel/git/daeinki/drm-exynos: (30 commits)
        drm/exynos: add gsc ipp driver
        drm/exynos: add rotator ipp driver
        drm/exynos: add fimc ipp driver
        drm/exynos: add iommu support for ipp
        drm/exynos: add ipp subsystem
        drm/exynos: support device tree for fimd
        drm/exynos: support extended screen coordinate of fimd
        drm/exynos: fix x, y coordinates for right bottom pixel
        drm/exynos: fix fb offset calculation for plane
        drm/exynos: hdmi: Fix potential NULL pointer dereference error
        drm/exynos: hdmi: Add CONFIG_OF and use of_match_ptr() macro
        drm/exynos: add support for hdmiphy power control for exynos5
        drm/exynos: add runtime pm support for mixer
        drm/exynos: added runtime pm support for hdmi
        drm/exynos: fix allocation and cache mapping type
        drm/exynos: reorder framebuffer init sequence
        drm/exynos/iommu: fix return value check in drm_create_iommu_mapping()
        drm/exynos: remove unused vaddr member
        drm/exynos: use DMA_ATTR_NO_KERNEL_MAPPING attribute
        drm/exynos: add exception codes to exynos_drm_fbdev_create()
        ...
      2f3f2406
  3. 15 Dec, 2012 1 commit
    • Dave Airlie's avatar
      Merge branch 'drm-next-3.8' of git://people.freedesktop.org/~agd5f/linux into drm-next · 652a1876
      Dave Airlie authored
      Fix regression, and some locking races, also as CS support
      for the DMA engines.
      
      * 'drm-next-3.8' of git://people.freedesktop.org/~agd5f/linux:
        radeon: fix regression with eviction since evict caching changes
        drm/radeon: add more pedantic checks in the CP DMA checker
        drm/radeon: bump version for CS ioctl support for async DMA
        drm/radeon: enable the async DMA rings in the CS ioctl
        drm/radeon: add VM CS parser support for async DMA on cayman/TN/SI
        drm/radeon/kms: add evergreen/cayman CS parser for async DMA (v2)
        drm/radeon/kms: add 6xx/7xx CS parser for async DMA (v2)
        drm/radeon: fix htile buffer size computation for command stream checker
        drm/radeon: fix fence locking in the pageflip callback
        drm/radeon: make indirect register access concurrency-safe
        drm/radeon: add W|RREG32_IDX for MM_INDEX|DATA based mmio accesss
      652a1876
  4. 14 Dec, 2012 27 commits
  5. 13 Dec, 2012 7 commits