1. 06 Nov, 2013 34 commits
  2. 05 Nov, 2013 2 commits
    • Dave Airlie's avatar
      Merge branch 'drm-next-3.13' of git://people.freedesktop.org/~agd5f/linux into drm-next · bbf1f8bf
      Dave Airlie authored
      Initial pull request for radeon drm-next 3.13.  Highlights:
      - Enable DPM on a number of asics by default
      - Enable audio by default
      - Dynamically power down dGPUs on PowerXpress systems
      - Lots of bug fixes
      * 'drm-next-3.13' of git://people.freedesktop.org/~agd5f/linux: (36 commits)
        drm/radeon: don't share PPLLs on DCE4.1
        drm/radeon/dpm: fix typo in setting smc flag
        drm/radeon: fixup locking inversion between, mmap_sem and reservations
        drm/radeon: clear the page directory using the DMA
        drm/radeon: initially clear page tables
        drm/radeon: drop CP page table updates & cleanup v2
        drm/radeon: add vm_set_page tracepoint
        drm/radeon: rework and fix reset detection v2
        drm/radeon: don't use PACKET2 on CIK
        drm/radeon: fix UVD destroy IB size
        drm/radeon: activate UVD clocks before sending the destroy msg
        drm/radeon/si: fix define for MC_SEQ_TRAIN_WAKEUP_CNTL
        drm/radeon: fix endian handling in rlc buffer setup
        drm/radeon/dpm: retain user selected performance level across state changes
        drm/radeon: disable force performance state when thermal state is active
        drm/radeon: enable DPM by default on r7xx asics
        drm/radeon: enable DPM by default on evergreen asics
        drm/radeon: enable DPM by default on BTC asics
        drm/radeon: enable DPM by default on SI asics
        drm/radeon: enable DPM by default on SUMO/PALM APUs
        ...
      bbf1f8bf
    • Dave Airlie's avatar
      Merge tag 'drm/for-3.13-rc1' of git://anongit.freedesktop.org/tegra/linux into drm-next · 90c37067
      Dave Airlie authored
      drm/tegra: Changes for v3.13-rc1
      
      The biggest part of the changes is the decoupling of the host1x and DRM
      drivers followed by the move of Tegra DRM back to drivers/gpu/drm/tegra
      from whence it came. There is a lot of cleanup as well, and the drivers
      can now be properly unloaded and reloaded.
      
      HDMI support for the Tegra114 SoC was contributed by Mikko Perttunen.
      
      gr2d support was extended to Tegra114 and the gr3d driver that has been
      in the works for quite some time finally made it in. All pieces to run
      an OpenGL driver on top of an upstream kernel are now available.
      
      Support for syncpoint bases was added by Arto Merilainen. This is useful
      for synchronizing between command streams from different engines such as
      gr2d and gr3d.
      
      Erik Faye-Lund and Wei Yongjun contributed various small fixes. Thanks!
      
      * tag 'drm/for-3.13-rc1' of git://anongit.freedesktop.org/tegra/linux: (45 commits)
        drm/tegra: Reserve syncpoint base for gr3d
        drm/tegra: Reserve base for gr2d
        drm/tegra: Deliver syncpoint base to user space
        gpu: host1x: Add syncpoint base support
        gpu: host1x: Add 'flags' field to syncpt request
        drm/tegra: Disable clock on probe failure
        gpu: host1x: Disable clock on probe failure
        drm/tegra: Support bottom-up buffer objects
        drm/tegra: Add support for tiled buffer objects
        drm/tegra: Add 3D support
        drm/tegra: Introduce tegra_drm_submit()
        drm/tegra: Use symbolic names for gr2d registers
        drm/tegra: Start connectors with correct DPMS mode
        drm/tegra: hdmi: Enable VDD earlier for hotplug/DDC
        drm/tegra: hdmi: Fix build warnings
        drm/tegra: hdmi: Detect DVI-only displays
        drm/tegra: Add Tegra114 HDMI support
        drm/tegra: hdmi: Parameterize based on compatible property
        drm/tegra: hdmi: Rename tegra{2,3} to tegra{20,30}
        gpu: host1x: Add support for Tegra114
        ...
      90c37067
  3. 04 Nov, 2013 1 commit
  4. 01 Nov, 2013 3 commits
    • Alex Deucher's avatar
      drm/radeon: don't share PPLLs on DCE4.1 · 70471860
      Alex Deucher authored
      Sharing PPLLs seems to cause problems on some boards.
      
      Bug:
      https://bugs.freedesktop.org/show_bug.cgi?id=45334Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      Cc: stable@vger.kernel.org
      70471860
    • Alex Deucher's avatar
      drm/radeon/dpm: fix typo in setting smc flag · 6960394f
      Alex Deucher authored
      PPSMC_EXTRAFLAGS_AC2DC_GPIO5_POLARITY_HIGH should be
      set in extraFlags, not systemFlags.
      Noticed-by: default avatarSylvain BERTRAND <sylware@legeek.net>
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      6960394f
    • Maarten Lankhorst's avatar
      drm/radeon: fixup locking inversion between, mmap_sem and reservations · 28a326c5
      Maarten Lankhorst authored
      op 08-10-13 18:58, Thomas Hellstrom schreef:
      > On 10/08/2013 06:47 PM, Jerome Glisse wrote:
      >> On Tue, Oct 08, 2013 at 06:29:35PM +0200, Thomas Hellstrom wrote:
      >>> On 10/08/2013 04:55 PM, Jerome Glisse wrote:
      >>>> On Tue, Oct 08, 2013 at 04:45:18PM +0200, Christian König wrote:
      >>>>> Am 08.10.2013 16:33, schrieb Jerome Glisse:
      >>>>>> On Tue, Oct 08, 2013 at 04:14:40PM +0200, Maarten Lankhorst wrote:
      >>>>>>> Allocate and copy all kernel memory before doing reservations. This prevents a locking
      >>>>>>> inversion between mmap_sem and reservation_class, and allows us to drop the trylocking
      >>>>>>> in ttm_bo_vm_fault without upsetting lockdep.
      >>>>>>>
      >>>>>>> Signed-off-by: Maarten Lankhorst <maarten.lankhorst@canonical.com>
      >>>>>> I would say NAK. Current code only allocate temporary page in AGP case.
      >>>>>> So AGP case is userspace -> temp page -> cs checker -> radeon ib.
      >>>>>>
      >>>>>> Non AGP is directly memcpy to radeon IB.
      >>>>>>
      >>>>>> Your patch allocate memory memcpy userspace to it and it will then be
      >>>>>> memcpy to IB. Which means you introduce an extra memcpy in the process
      >>>>>> not something we want.
      >>>>> Totally agree. Additional to that there is no good reason to provide
      >>>>> anything else than anonymous system memory to the CS ioctl, so the
      >>>>> dependency between the mmap_sem and reservations are not really
      >>>>> clear to me.
      >>>>>
      >>>>> Christian.
      >>>> I think is that in other code path you take mmap_sem first then reserve
      >>>> bo. But here we reserve bo and then we take mmap_sem because of copy
      >>> >from user.
      >>>> Cheers,
      >>>> Jerome
      >>>>
      >>> Actually the log message is a little confusing. I think the mmap_sem
      >>> locking inversion problem is orthogonal to what's being fixed here.
      
      > >>> This patch fixes the possible recursive bo::reserve caused by
      > >>> malicious user-space handing a pointer to ttm memory so that the ttm
      > >>> fault handler is called when bos are already reserved. That may
      > >>> cause a (possibly interruptible) livelock.
      
      >>> Once that is fixed, we are free to choose the mmap_sem ->
      >>> bo::reserve locking order. Currently it's bo::reserve->mmap_sem(),
      >>> but the hack required in the ttm fault handler is admittedly a bit
      >>> ugly.  The plan is to change the locking order to
      >>> mmap_sem->bo::reserve
      
      > >>> I'm not sure if it applies to this particular case, but it should be
      > >>> possible to make sure that copy_from_user_inatomic() will always
      > >>> succeed, by making sure the pages are present using
      > >>> get_user_pages(), and release the pages after
      > >>> copy_from_user_inatomic() is done. That way there's no need for a
      > >>> double memcpy slowpath, but if the copied data is very fragmented I
      > >>> guess the resulting code may look ugly. The get_user_pages()
      > >>> function will return an error if it hits TTM pages.
      
      >>> /Thomas
      >> get_user_pages + copy_from_user_inatomic is overkill. We should just
      >> do get_user_pages which fails with ttm memory and then use copy_highpage
      >> helper.
      >>
      >> Cheers,
      >> Jerome
      > Yeah, it may well be that that's the preferred solution.
      >
      > /Thomas
      >
      I still disagree, and shuffled radeon_ib_get around to be called sooner.
      
      How does the patch below look?
      8<-------
      Allocate and copy all kernel memory before doing reservations. This prevents a locking
      inversion between mmap_sem and reservation_class, and allows us to drop the trylocking
      in ttm_bo_vm_fault without upsetting lockdep.
      
      Changes since v1:
      - Kill extra memcpy for !AGP case.
      Signed-off-by: default avatarMaarten Lankhorst <maarten.lankhorst@canonical.com>
      Reviewed-by: default avatarJerome Glisse <jglisse@redhat.com>
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      28a326c5