aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2015-08-31drm/i915: Enable HDMI on DDI-EXiong Zhang3-4/+47
DDI-E doesn't have the correspondent GMBUS pin. We rely on VBT to tell us which one it being used instead. The DVI/HDMI on shared port couldn't exist. This patch isn't tested without hardware wchich has HDMI on DDI-E. v2: fix trailing whitespace v3: MISSING_CASE take place of BUG() Signed-off-by: Xiong Zhang <[email protected]> Reviewed-by: Rodrigo Vivi <[email protected]> Signed-off-by: Jani Nikula <[email protected]>
2015-08-31drm/i915: apply the PCI_D0/D3 hibernation workaround everywhere on pre GEN6Imre Deak1-6/+9
commit da2bc1b9db3351addd293e5b82757efe1f77ed1d Author: Imre Deak <[email protected]> Date: Thu Oct 23 19:23:26 2014 +0300 drm/i915: add poweroff_late handler introduced a regression on old platforms during hibernation. A workaround was added in commit ab3be73fa7b43f4c3648ce29b5fd649ea54d3adb Author: Imre Deak <[email protected]> Date: Mon Mar 2 13:04:41 2015 +0200 drm/i915: gen4: work around hang during hibernation using an explicit blacklist for the GENs/BIOS vendors where the issue was reported. Later there we had reports of the same failure on platforms not on this list. To my best knowledge the correct thing to do is still to put the device to PCI D3 state during hibernation, see [1] and [2] for the reasons. This also aligns with our future plans to unify more the runtime and system suspend/resume paths. Since an exact blacklist seems to be impractical (multiple GENs and BIOS vendors are affected) apply the workaround on everything pre GEN6. [1] http://lists.freedesktop.org/archives/intel-gfx/2015-February/060710.html [2] https://lkml.org/lkml/2015/6/22/274 Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=95061 Reported-by: Ilya Tumaykin <[email protected]> Reported-by: Dirk Griesbach <[email protected]> Reported-by: Pavel Machek <[email protected]> Reported-by: Mikko Rapeli <[email protected]> Tested-by: Mikko Rapeli <[email protected]> Reported-by: Paul Bolle <[email protected]> CC: [email protected] Signed-off-by: Imre Deak <[email protected]> Signed-off-by: Jani Nikula <[email protected]>
2015-08-31drm/i915: Check DP link status on long hpd tooVille Syrjälä1-6/+5
We are no longer checkling the DP link status on long hpd. We used to do that from the .hot_plug() handler, but it was removed when MST got introduced. If there's no userspace we now fail to retrain the link if the sink power is toggled (or cable yanked and replugged), meaning the user is left staring at a blank screen. With the retraining put back that should be fixed. Also remove the leftover comment that referred to the old retraining from .hot_plug(). Fixes a regression introduced in: commit 0e32b39ceed665bfa4a77a4bc307b6652b991632 Author: Dave Airlie <[email protected]> Date: Fri May 2 14:02:48 2014 +1000 drm/i915: add DP 1.2 MST support (v0.7) Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=89453 Tested-by: Palmer Dabbelt <[email protected]> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=91407 Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=89461 Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=89594 Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=85641 Cc: Dave Airlie <[email protected]> Cc: [email protected] Signed-off-by: Ville Syrjälä <[email protected]> Reviewed-by: Daniel Vetter <[email protected]> Signed-off-by: Jani Nikula <[email protected]>
2015-08-31Merge branch 'exynos-drm-next' of ↵Dave Airlie14-153/+452
git://git.kernel.org/pub/scm/linux/kernel/git/daeinki/drm-exynos into drm-next This is a second pull-request which adds last part of atomic modeset/pageflip support, render node support, clean-up, and fix-up. * 'exynos-drm-next' of git://git.kernel.org/pub/scm/linux/kernel/git/daeinki/drm-exynos: drm/exynos: fix build warning to exynos_drm_gem.c drm/exynos: Properly report supported formats for each device drm/exynos: add render node support drm/exynos: implement atomic_{begin/flush} of DECON drm/exynos: remove legacy ->suspend()/resume() drm/exynos: Enable atomic modesetting feature drm/exynos: remove wait queue for pending page flip drm/exynos: wait all planes updates to finish drm/exynos: add atomic asynchronous commit drm/exynos: fimd: only finish update if START == START_S drm/exynos: add macro to get the address of START_S reg drm/exynos: check for pending fb before finish update drm/exynos: fimd: move window protect code to prepare/cleanup_plane drm/exynos: add prepare and cleanup phases for planes drm/exynos: fimd: unify call to exynos_drm_crtc_finish_pageflip() drm/exynos: don't track enabled state at exynos_crtc
2015-08-31Merge tag 'drm-intel-next-fixes-2015-08-28' of ↵Dave Airlie10-94/+165
git://anongit.freedesktop.org/drm-intel into drm-next Some i915 fixes headed for v4.3. SKL DDI-E is a wip, but here's the first in a series. * tag 'drm-intel-next-fixes-2015-08-28' of git://anongit.freedesktop.org/drm-intel: drm/i915/skl: enable DDI-E hotplug drm/i915: Fix build warning on 32-bit drm/i915/skl: Update DDI buffer translation programming. drm/i915: Allow parsing of variable size child device entries from VBT drm/i915: fix link rates reported for SKL drm/i915: fix VBT parsing for SDVO child device mapping
2015-08-31Merge tag 'drm-amdkfd-next-fixes-2015-08-30' of ↵Dave Airlie2-2/+2
git://people.freedesktop.org/~gabbayo/linux into drm-next Just one small fix before 4.3 merge window: - Use linux/mman.h instead of uapi's mman-common.h inside the driver. * tag 'drm-amdkfd-next-fixes-2015-08-30' of git://people.freedesktop.org/~gabbayo/linux: amdkfd: use <linux/mman.h> instead of <uapi/asm-generic/mman-common.h>
2015-08-31drm/exynos: fix build warning to exynos_drm_gem.cInki Dae1-1/+1
Signed-off-by: Inki Dae <[email protected]>
2015-08-31drm/exynos: Properly report supported formats for each deviceMarek Szyprowski7-14/+73
Exynos DRM reported that all planes for all supported sub-devices supports only three pixel formats: XRGB24, ARGB24 and NV12. This patch lets each Exynos DRM sub-drivers to provide the list of supported pixel formats and registers this list to DRM core. Signed-off-by: Marek Szyprowski <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2015-08-31drm/exynos: add render node supportJoonyoung Shim1-19/+19
This patch allows clients who want to use render node to access rendering relevant ioctls - g2d, post processor and gem allocation. Signed-off-by: Joonyoung Shim <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2015-08-31drm/exynos: implement atomic_{begin/flush} of DECONHyungwon Hwang2-13/+51
Each CRTC's atomic_{begin/flush} must stop/start the update of shadow registers to active register in the functions. This patch achieves these purpose by moving the setting of protection bits to those functions from decon_update_plane. v2: rebased to the branch exynos-drm-next Signed-off-by: Hyungwon Hwang <[email protected]> Reviewed-by: Daniel Stone <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2015-08-31drm/exynos: remove legacy ->suspend()/resume()Gustavo Padovan1-2/+0
These legacy helpers should only be used by shadow-attaching drivers. KMS drivers has its own way to handle suspend/resume and don't need to use these two helpers. Signed-off-by: Gustavo Padovan <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2015-08-31drm/exynos: Enable atomic modesetting featureGustavo Padovan1-1/+2
From: Gustavo Padovan <[email protected]> Now that atomic modesetting is implemented for exynos enable the DRIVER_ATOMIC flag on the driver's features. Signed-off-by: Gustavo Padovan <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2015-08-31drm/exynos: remove wait queue for pending page flipGustavo Padovan2-11/+1
Exynos atomic commit procedures already does this job of waiting for pending updates to finish, that means using pending_flip_queue is pointless now because the disable CRTC procedure will never happen during a page_flip. Signed-off-by: Gustavo Padovan <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2015-08-31drm/exynos: wait all planes updates to finishGustavo Padovan4-6/+61
Add infrastructure to wait for all planes updates to finish by using an atomic_t variable to track how many pending updates we are waiting plus a wait_queue for the wait part. It also changes vblank behaviour and keeps it enabled for all types of updates Signed-off-by: Gustavo Padovan <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2015-08-31drm/exynos: add atomic asynchronous commitGustavo Padovan3-35/+124
The atomic modesetting interfaces supports async commits that should be implemented by the drivers. If drm core requests an async commit exynos_atomic_commit() will now schedule a work task to run the update later. It also serializes commits that needs to run on the same crtc, putting the following commit to wait until the current one is finished. Signed-off-by: Gustavo Padovan <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2015-08-31drm/exynos: fimd: only finish update if START == START_SGustavo Padovan1-2/+6
fimd_update_plane() programs BUF_START[win] and during the update BUF_START[win] is copied to BUF_START_S[win] (its shadow register) and starts scanning out, then it raises a irq. The fimd_irq_handler, in the case we have a pending_fb, will check the fb value was copied to START_S register and finish the update in case of success. Based on patch from Daniel Kurtz <[email protected]> Signed-off-by: Gustavo Padovan <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2015-08-31drm/exynos: add macro to get the address of START_S regGustavo Padovan1-0/+1
This macro is need to get the value of the START shadow register, that will tell if an framebuffer is currently displayed on the screen or not. Signed-off-by: Gustavo Padovan <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2015-08-31drm/exynos: check for pending fb before finish updateGustavo Padovan9-9/+54
The current code was ignoring the end of update for all overlay planes, caring only for the primary plane update in case of pageflip. This change adds a change to start to check for pending updates for all planes through exynos_plane->pending_fb. At the start of plane update the pending_fb is set with the fb to be shown on the screen. Then only when to fb is already presented in the screen we set pending_fb to NULL to signal that the update was finished. Signed-off-by: Gustavo Padovan <[email protected]> Signed-off-by: Inki Dae <[email protected]> fixup! drm/exynos: check for pending fb before finish update
2015-08-31drm/exynos: fimd: move window protect code to prepare/cleanup_planeGustavo Padovan1-23/+34
Only set/clear the update bit in the CRTC's .atomic_begin()/flush() so all planes are really committed at the same time. Signed-off-by: Gustavo Padovan <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2015-08-31drm/exynos: add prepare and cleanup phases for planesGustavo Padovan2-0/+25
From: Gustavo Padovan <[email protected]> .prepare_plane() and .cleanup_plane() allows to perform extra operations before and after the update of planes. For FIMD for example this will be used to enable disable the shadow protection bit. Signed-off-by: Gustavo Padovan <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2015-08-31drm/exynos: fimd: unify call to exynos_drm_crtc_finish_pageflip()Gustavo Padovan1-5/+5
Unify handling of finished plane update to prepare for a following patch that will check for the START and START_S regs to really make sure that the plane was updated. Signed-off-by: Gustavo Padovan <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2015-08-31drm/exynos: don't track enabled state at exynos_crtcGustavo Padovan2-17/+0
struct drm_crtc already stores the enabled state of the crtc thus we don't need to replicate enabled in exynos_drm_crtc. Signed-off-by: Gustavo Padovan <[email protected]> Signed-off-by: Inki Dae <[email protected]>
2015-08-30amdkfd: use <linux/mman.h> instead of <uapi/asm-generic/mman-common.h>Christoph Hellwig2-2/+2
The latter is a default version of <asm/mman.h> and not for driver use. Signed-off-by: Christoph Hellwig <[email protected]> Signed-off-by: Oded Gabbay <[email protected]>
2015-08-28drm/amdgpu: use IB for fill_buffer instead of direct commandChunming Zhou4-20/+20
Signed-off-by: Chunming Zhou <[email protected]> Reviewed-by: Christian K?nig <[email protected]> Reviewed-by: Alex Deucher <[email protected]>
2015-08-28drm/amdgpu: stop trying to suspend UVD sessions v2Christian König2-24/+19
Saving the current UVD state on suspend and restoring it on resume just doesn't work reliable. Just close cleanup all sessions on suspend. Ported from radeon commit "12e49feadff6d7b7ebbe852b36943a71524d8d34". v2: rebased Signed-off-by: Christian König <[email protected]> Reviewed-by: Alex Deucher <[email protected]> (v1)
2015-08-28drm/amdgpu: add scheduler dependency callback v2Christian König5-0/+55
This way the scheduler doesn't wait in it's work thread any more. v2: fix race conditions Signed-off-by: Christian König <[email protected]> Reviewed-by: Chunming Zhou <[email protected]> Reviewed-by: Jammy Zhou <[email protected]>
2015-08-28drm/amdgpu: let the scheduler work more with jobs v2Christian König1-24/+37
v2: fix another race condition Signed-off-by: Christian König <[email protected]> Reviewed-by: Chunming Zhou <[email protected]> Reviewed-by: Jammy Zhou <[email protected]>
2015-08-28drm/radeon: fix HDMI quantization_range for pre-DCE5 asicsAlex Deucher1-7/+9
Support for output_csc is only available on DCE5 and newer so don't mess with the HDMI quantization_range on pre-DCE5 asics. bug: https://bugs.freedesktop.org/show_bug.cgi?id=83226 Signed-off-by: Alex Deucher <[email protected]> Cc: [email protected]
2015-08-28drm/i915: set CDCLK if DPLL0 enabled during resuming from S3Gary Wang1-8/+5
Since BIOS RC 1.4 it would enable CDCLK PLL during BIOS S3 resume, then driver needs to set CDCLK to avoid display corruption if DPLL0 enabled. References: https://bugs.freedesktop.org/show_bug.cgi?id=91697 Reviewed-by: Rodrigo Vivi <[email protected]> Reviewed-by: Damien Lespiau <[email protected]> Reviewed-by: Cooper Chiou <[email protected]> Reviewed-by: Wei Shun Chang <[email protected]> Tested-by: Gary Wang <[email protected]> Cc: Daniel Vetter <[email protected]> Cc: Gavin Hindman <[email protected]> Cc: Chris Wilson <[email protected]> Cc: Xiong Y Zhang <[email protected]> Signed-off-by: Gary Wang <[email protected]> Signed-off-by: Jani Nikula <[email protected]>
2015-08-28drm/nouveau/dispnv04: fix build on powerpcDave Airlie1-1/+1
align with mask code in overlay.c, Ben can clean the naming up later if necessary. Signed-off-by: Dave Airlie <[email protected]>
2015-08-28nouveau: fix powerpc buildDave Airlie1-2/+2
Reported-by: Ilia Mirkin on irc. Signed-off-by: Dave Airlie <[email protected]>
2015-08-28Merge branch 'linux-4.3' of ↵Dave Airlie728-37930/+43062
git://anongit.freedesktop.org/git/nouveau/linux-2.6 into drm-next Rather large pull request this time around, due to the long-pending cleanup of the kernel driver being here. There's a stupidly large number of commits for that, as I wanted to have the series be bisectable at a fairly fine-grained level. That said, a very large portion of the churn in the rework was automated, and a very large number of boards from right across the whole range we support have been tested. I'm fairly confident there shouldn't be (too many) issues from this. Beyond correcting some not-so-great design decisions and making the code a lot easier to work with, there's not much exciting (lower memory usage, GPU VM should be a lot faster, etc) to be gained by the end-user as a result of the cleanup, it mostly lays the groundwork for future improvements. A big thanks goes to Alexandre Courbot for testing/debugging the GK20A codepaths for me :) Highlights: - A heap of perfmon work, providing a more useful userspace interface and specifying counters for a bunch of boards - Support for GT200 reclocking + other misc pm improvements - Initial patches towards supporting GM20B (Tegra X1) - Maxwell DisplayPort fixes - Cleanup of the kernel driver - The usual collection of random fixes * 'linux-4.3' of git://anongit.freedesktop.org/git/nouveau/linux-2.6: (312 commits) drm/nouveau: bump driver version for release drm/nouveau/tegra: merge platform setup from nouveau drm drm/nouveau/pci: merge agp handling from nouveau drm drm/nouveau/device: remove pci/platform_device from common struct drm/nouveau/device: import pciid list and integrate quirks with it drm/nouveau/device: cleaner abstraction for device resource functions drm/nouveau/mc: move device irq handling to platform-specific code drm/nouveau/mc/gf100-: handle second interrupt tree drm/nouveau/mc: abstract interface to master intr registers drm/nouveau/pci: new subdev drm/nouveau/object: merge with handle drm/nouveau/core: remove the remainder of the previous style drm/nouveau/mpeg: convert to new-style nvkm_engine drm/nouveau/sw: convert to new-style nvkm_engine drm/nouveau/pm: convert to new-style nvkm_engine drm/nouveau/gr: convert to new-style nvkm_engine drm/nouveau/fifo: convert to new-style nvkm_engine drm/nouveau/disp: convert to new-style nvkm_engine drm/nouveau/dma: convert to new-style nvkm_engine drm/nouveau/cipher: convert to new-style nvkm_engine ...
2015-08-28drm/nouveau: bump driver version for releaseBen Skeggs1-2/+5
Signed-off-by: Ben Skeggs <[email protected]>
2015-08-28drm/nouveau/tegra: merge platform setup from nouveau drmBen Skeggs9-285/+221
The copyright header in nvkm/engine/device/platform.c has been replaced with the NVIDIA one from drm/nouveau_platform.c, as most of the actual code is now theirs. Signed-off-by: Ben Skeggs <[email protected]>
2015-08-28drm/nouveau/pci: merge agp handling from nouveau drmBen Skeggs18-239/+271
This commit reinstates the pre-DEVINIT AGP fiddling that was broken in an earlier commit. Signed-off-by: Ben Skeggs <[email protected]>
2015-08-28drm/nouveau/device: remove pci/platform_device from common structBen Skeggs27-108/+106
Signed-off-by: Ben Skeggs <[email protected]>
2015-08-28drm/nouveau/device: import pciid list and integrate quirks with itBen Skeggs5-26/+1577
PCI IDs taken from the NVIDIA binary driver, with permission. Signed-off-by: Ben Skeggs <[email protected]>
2015-08-28drm/nouveau/device: cleaner abstraction for device resource functionsBen Skeggs18-62/+71
Signed-off-by: Ben Skeggs <[email protected]>
2015-08-28drm/nouveau/mc: move device irq handling to platform-specific codeBen Skeggs19-324/+182
Signed-off-by: Ben Skeggs <[email protected]>
2015-08-28drm/nouveau/mc/gf100-: handle second interrupt treeBen Skeggs4-9/+38
Doesn't fix any known issue, but best be safe in case control is handed to us from firmware with these left enabled. Signed-off-by: Ben Skeggs <[email protected]>
2015-08-28drm/nouveau/mc: abstract interface to master intr registersBen Skeggs13-11/+84
Signed-off-by: Ben Skeggs <[email protected]>
2015-08-28drm/nouveau/pci: new subdevBen Skeggs15-39/+491
Signed-off-by: Ben Skeggs <[email protected]>
2015-08-28drm/nouveau/object: merge with handleBen Skeggs18-442/+219
Signed-off-by: Ben Skeggs <[email protected]>
2015-08-28drm/nouveau/core: remove the remainder of the previous styleBen Skeggs68-1856/+496
Signed-off-by: Ben Skeggs <[email protected]>
2015-08-28drm/nouveau/mpeg: convert to new-style nvkm_engineBen Skeggs14-363/+166
Signed-off-by: Ben Skeggs <[email protected]>
2015-08-28drm/nouveau/sw: convert to new-style nvkm_engineBen Skeggs19-292/+115
Signed-off-by: Ben Skeggs <[email protected]>
2015-08-28drm/nouveau/pm: convert to new-style nvkm_engineBen Skeggs21-400/+219
Signed-off-by: Ben Skeggs <[email protected]>
2015-08-28drm/nouveau/gr: convert to new-style nvkm_engineBen Skeggs59-1847/+1744
Signed-off-by: Ben Skeggs <[email protected]>
2015-08-28drm/nouveau/fifo: convert to new-style nvkm_engineBen Skeggs56-801/+640
Signed-off-by: Ben Skeggs <[email protected]>
2015-08-28drm/nouveau/disp: convert to new-style nvkm_engineBen Skeggs32-890/+696
Signed-off-by: Ben Skeggs <[email protected]>