aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2015-09-02drm/dp: Define AUX_RETRY_INTERVAL as 500 usVille Syrjälä1-3/+5
Currently we react to native and i2c defers by waiting either 400-500 us or 500-600 us, depending on which code path we take. Consolidate them all to one define AUX_RETRY_INTERVAL which defines the minimum interval. Since we've been using two different intervals pick the longer of them and define AUX_RETRY_INTERVAL as 500 us. For the maximum just use AUX_RETRY_INTERVAL+100 us. I want to have a define for this so that I can use it when calculating the estimated duration of i2c-over-aux transfers. Without a define it would be very easy to change the sleep duration and neglect to update the i2c-over-aux estimates. Cc: Simon Farnsworth <[email protected]> Cc: [email protected] Signed-off-by: Ville Syrjälä <[email protected]> Reviewed-by: Simon Farnsworth <[email protected]> Reviewed-by: Daniel Vetter <[email protected]> Signed-off-by: Jani Nikula <[email protected]>
2015-09-01drm/atomic: Fix bookkeeping with TEST_ONLY, v3.Maarten Lankhorst1-16/+23
Commit ec9f932ed41622d120de52a5b525e4d77b9ef17e "drm/atomic: Cleanup on error properly in the atomic ioctl." cleaned up some error paths, but didn't fix the TEST_ONLY path. In the check only case plane->fb shouldn't be updated, and the vblank events should be cleared as on failure. Changes since v1: - Fix -EDEADLK handling of vblank events too. - Free state last with CHECK_ONLY. Changes since v2: - Add comment about freeing crtc_state->event with TEST_ONLY. (Daniel Stone) Signed-off-by: Maarten Lankhorst <[email protected]> Reviewed-by: Daniel Stone <[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/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]>
2015-08-28drm/nouveau/dma: convert to new-style nvkm_engineBen Skeggs22-242/+162
Signed-off-by: Ben Skeggs <[email protected]>
2015-08-28drm/nouveau/cipher: convert to new-style nvkm_engineBen Skeggs4-61/+27
Signed-off-by: Ben Skeggs <[email protected]>
2015-08-28drm/nouveau/ce: convert to new-style nvkm_engineBen Skeggs9-278/+86
Signed-off-by: Ben Skeggs <[email protected]>
2015-08-28drm/nouveau/xtensa: convert to new-style nvkm_engineBen Skeggs8-148/+84
Signed-off-by: Ben Skeggs <[email protected]>
2015-08-28drm/nouveau/falcon: convert to new-style nvkm_engineBen Skeggs36-771/+640
Signed-off-by: Ben Skeggs <[email protected]>
2015-08-28drm/nouveau/volt: convert to new-style nvkm_subdevBen Skeggs12-253/+161
Signed-off-by: Ben Skeggs <[email protected]>
2015-08-28drm/nouveau/tmr: convert to new-style nvkm_subdevBen Skeggs27-427/+501
Signed-off-by: Ben Skeggs <[email protected]>