summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm
AgeCommit message (Collapse)Author
2015-10-19drm/amdgpu/dce: simplify suspend/resumeAlex Deucher
We were basically opencoding the same thing in both hw_init and resume and hw_fini and suspend. Reviewed-by: Christian König <christian.koenig@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2015-10-19drm/i915: Use round to closest when computing the CEA 1.001 pixel clocksVille Syrjälä
drm_edid.c now computes the alternate CEA clocks using DIV_ROUND_CLOSEST(), so follow suit in the N/CTS setup to make sure we pick the right setting for the mode. Unfortunately we can't actually use DIV_ROUND_CLOSEST() here due to the ({}) construct used, so just stick in raw numbers instead. Cc: Clint Taylor <clinton.a.taylor@intel.com> Cc: Libin Yang <libin.yang@intel.com> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Reviewed-by: Adam Jackson <ajax@redhat.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2015-10-19drm/amdgpu/gfx8: set TC_WB_ACTION_EN in RELEASE_MEM packetAlex Deucher
This is the recommended setting from the hw team for newer versions of the firmware. Reviewed-by: Christian König <christian.koenig@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com> Cc: stable@vger.kernel.org
2015-10-19drm/fb-helper: Fix fb refcounting in pan_display_atomicDaniel Vetter
In commit bbb1e52402b2a288b09ae37e8182599931c7e9df Author: Rob Clark <robdclark@gmail.com> Date: Tue Aug 25 15:35:58 2015 -0400 drm/fb-helper: atomic restore_fbdev_mode().. we've forgotten to do the plane->old_fb refcount dance for pan_display_atomic, which can result in refcount leaks if the current configuration is not from fbcon. Which apparently can happen when vt-switching - fbcon does a pan first before a set_par. OCD-align function parameters while at it. v2: Actually git add the OCD. Cc: Rob Clark <robdclark@gmail.com> Cc: Rodrigo Vivi <rodrigo.vivi@gmail.com> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=92483 Signed-off-by: Daniel Vetter <daniel.vetter@intel.com> Link: http://patchwork.freedesktop.org/patch/msgid/1445015490-27682-1-git-send-email-daniel.vetter@ffwll.ch Tested-by: Rodrigo Vivi <rodrigo.vivi@intel.com> Reviewed-by: Rob Clark <robdclark@gmail.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2015-10-19drm/fb-helper: Set plane rotation directlyDaniel Vetter
The point behind standardizing properties into core drm state structures is also that internal code looks prettiers. Take advantage of that and set rotation directly in the fbdev atomic code. Cc: Rob Clark <robdclark@gmail.com> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com> Link: http://patchwork.freedesktop.org/patch/msgid/1445012594-25988-1-git-send-email-daniel.vetter@ffwll.ch Acked-by: Rob Clark <robdclark@gmail.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2015-10-19drm: fix mutex leak in drm_dp_get_mst_branch_deviceAdam Richter
In Linux 4.3-rc5, there is an error case in drm_dp_get_branch_device that returns without releasing mgr->lock, resulting a spew of kernel messages about a kernel work function possibly having leaked a mutex and presumably more serious adverse consequences later. This patch changes the error to "goto out" to unlock the mutex before returning. Signed-off-by: Adam J. Richter <adam_richter2004@yahoo.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2015-10-19drm: Check plane src coordinates correctly during page flip for atomic driversVille Syrjälä
Instead of relying on the old crtc-{x,y,mode} gunk, dig out the primary plane coordinates from the plane state when checking them against the new framebuffer during page flip. Cc: Matt Roper <matthew.d.roper@intel.com> Cc: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com> Cc: Daniel Vetter <daniel@ffwll.ch> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Link: http://patchwork.freedesktop.org/patch/msgid/1444930802-8515-5-git-send-email-ville.syrjala@linux.intel.com Reviewed-by: Matt Roper <matthew.d.roper@intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2015-10-19drm: Check crtc viewport correctly with rotated primary plane on atomic driversVille Syrjälä
On atomic drivers we can dig out the primary plane rotation from the plane state instead of looking at the legacy crtc->invert_dimensions flag. The flag is not set by anyone except omapdrm, and it would be racy to set it the same way in the atomic helpers. v2: Kill crtc->invert_dimensions totally since omap is state based already and no one else ever used it (Matt) Cc: Matt Roper <matthew.d.roper@intel.com> Cc: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com> Cc: Daniel Vetter <daniel@ffwll.ch> Cc: Tomi Valkeinen <tomi.valkeinen@ti.com> Cc: Rob Clark <robdclark@gmail.com> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Link: http://patchwork.freedesktop.org/patch/msgid/1445009919-22746-1-git-send-email-ville.syrjala@linux.intel.com Reviewed-by: Matt Roper <matthew.d.roper@intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2015-10-19drm: Refactor plane src coordinate checksVille Syrjälä
Pull the plane src coordinate checks into a separate function so that we can share them for the legacy and new stuff. Cc: Matt Roper <matthew.d.roper@intel.com> Cc: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com> Cc: Daniel Vetter <daniel@ffwll.ch> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Link: http://patchwork.freedesktop.org/patch/msgid/1444930802-8515-3-git-send-email-ville.syrjala@linux.intel.com Reviewed-by: Matt Roper <matthew.d.roper@intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2015-10-19drm: Swap w/h when converting the mode to src coordidates for a rotated ↵Ville Syrjälä
primary plane When converting the mode hdisplay/vdisplay to primary plane src coordinates we need to take into account the current plane rotation. Cc: Matt Roper <matthew.d.roper@intel.com> Cc: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com> Cc: Daniel Vetter <daniel@ffwll.ch> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Link: http://patchwork.freedesktop.org/patch/msgid/1444930802-8515-2-git-send-email-ville.syrjala@linux.intel.com Reviewed-by: Matt Roper <matthew.d.roper@intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2015-10-19drm: Don't leak fb when plane crtc coodinates are badVille Syrjälä
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Reviewed-by: Matt Roper <matthew.d.roper@intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2015-10-19drm/gem: Use kref_get_unless_zero for the weak mmap referencesDaniel Vetter
Compared to wrapping the final kref_put with dev->struct_mutex this allows us to only acquire the offset manager look both in the final cleanup and in the lookup. Which has the upside that no locks leak out of the core abstractions. But it means that we need to hold a temporary reference to the object while checking mmap constraints, to make sure the object doesn't disappear. Extended the critical region would have worked too, but would result in more leaky locking. Also, this is the final bit which required dev->struct_mutex in gem core, now modern drivers can be completely struct_mutex free! This needs a new drm_vma_offset_exact_lookup_locked and makes both drm_vma_offset_exact_lookup and drm_vma_offset_lookup unused. v2: Don't leak object references in failure paths (David). v3: Add a comment from Chris explaining how the ordering works, with the slight adjustment that I dropped any mention of struct_mutex since with this patch it's now immaterial ot core gem. Cc: David Herrmann <dh.herrmann@gmail.com> Reviewed-by: David Herrmann <dh.herrmann@gmail.com> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> Link: http://mid.gmane.org/1444901623-18918-1-git-send-email-daniel.vetter@ffwll.ch Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
2015-10-19drm/vgem: Drop vgem_drm_gem_mmapDaniel Vetter
It's duplicating (without using some of the helpers) drm_gem_mmap with the addition that it can redirect to drm-buf mmap support. But prime import/export was dropped in commit 990ed2720717173bbdea4cfb2bad37cc7aa91495 Author: Rob Clark <robdclark@gmail.com> Date: Thu May 21 11:58:30 2015 -0400 drm/vgem: drop DRIVER_PRIME (v2) for now, so this is dead code. And since I want to rework the locking for drm_gem_mmap it seems simpler to de-dupe this code for now and then start over with the reworked one again, if we want to resurrect this all indeed. Signed-off-by: Daniel Vetter <daniel.vetter@intel.com> Link: http://mid.gmane.org/1444894601-5200-8-git-send-email-daniel.vetter@ffwll.ch Acked-by: Rob Clark <robdclark@gmail.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2015-10-19drm: Fix return value of drm_framebuffer_init()Lukas Wunner
In its original version, drm_framebuffer_init() returned a negative int if drm_mode_object_get() failed (f453ba046074, "DRM: add mode setting support"). This was accidentally disabled by commit 4b096ac10da0 ("drm: revamp locking around fb creation/destruction"). Thus, drm_framebuffer_init() pretends success if drm_mode_object_get() failed. Reinstate the original behaviour. Also fix erroneous kernel-doc of drm_mode_object_get(). Fixes: 4b096ac10da0 ("drm: revamp locking around fb creation/ destruction") Cc: Daniel Vetter <daniel.vetter@ffwll.ch> Signed-off-by: Lukas Wunner <lukas@wunner.de> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2015-10-19drm/gem: Use container_of in drm_gem_object_freeDaniel Vetter
Just a random thing I spotted while reading code - better safe than sorry. Link: http://mid.gmane.org/1444894601-5200-11-git-send-email-daniel.vetter@ffwll.ch Reviewed-by: David Herrmann <dh.herrmann@gmail.com> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
2015-10-19Merge branch 'virtio-gpu-for-drm-next' of git://git.kraxel.org/linux into ↵Dave Airlie
drm-next Add 3D support to the virtio-gpu. * 'virtio-gpu-for-drm-next' of git://git.kraxel.org/linux: virtio-gpu: add page flip support virtio-gpu: mark as a render gpu virtio-gpu: add basic prime support virtio-gpu: add 3d/virgl support virtio-gpu: don't free things on ttm_bo_init failure virtio-gpu: wait for cursor updates finish virtio-gpu: add & use virtio_gpu_queue_fenced_ctrl_buffer virtio-gpu: add virtio_gpu_queue_ctrl_buffer_locked
2015-10-16drm/gem: Drop struct_mutex requirement from drm_gem_mmap_objDaniel Vetter
Since commit 131e663bd6f1055caaff128f9aa5071d227eeb72 Author: Daniel Vetter <daniel.vetter@ffwll.ch> Date: Thu Jul 9 23:32:33 2015 +0200 drm/gem: rip out drm vma accounting for gem mmaps there is no need for this any more. v2: Fixup compile noise spotted by 0-day build. Link: http://mid.gmane.org/1444894601-5200-9-git-send-email-daniel.vetter@ffwll.ch Reviewed-by: David Herrmann <dh.herrmann@gmail.com> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
2015-10-16drm: misc cleanupRob Clark
Drop unused drm_atomic and fix comment for drm_debug. Signed-off-by: Rob Clark <robdclark@gmail.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2015-10-16drm: Add DRM_DEBUG_VBL()Ville Syrjälä
Add a new debug class for _verbose_ debug message from the vblank code. That is message we spew out potentially for every vblank interrupt. Thierry already got annoyed at the spew, and now I managed to lock up my box with these debug prints (seems serial console + a few debug prints every vblank aren't a good combination). Or should I maybe call it DRM_DEBUG_IRQ? Cc: Thierry Reding <thierry.reding@gmail.com> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2015-10-16drm: Don't use '\' for string literal concatenationVille Syrjälä
String literals get concatenated just fine on their own, no need to use '\'. Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2015-10-16drm/<drivers>: Drop DRM_UNLOCKED from modeset driversDaniel Vetter
Just one special case (since i915 lost its ums code, yay): - radeon: Has slots for the old ums ioctls which don't have DRM_UNLOCKED, but all filled with drm_invalid_op. So ok to drop it everywhere. Every other kms driver just has DRM_UNLOCKED for all their ioctls, as they should. v2: admgpu happened, include that one too. And i915 lost its UMS support which means we can change all the i915 ioctls too. v3: Rebased on top of new vmwgfx DX interface extensions. v4: Rebase on top of render-node support in exynos. Signed-off-by: Daniel Vetter <daniel.vetter@intel.com> Reviewed-by: David Herrmann <dh.herrmann@gmail.com> Reviewed-by: Christian König <christian.koenig@amd.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2015-10-16drm: Enforce unlocked ioctl operation for kms driver ioctlsDaniel Vetter
With the prep patches for i915 all kms drivers either have DRM_UNLOCKED on all their ioctls. Or the ioctl always directly returns with an invariant return value when in modeset mode. But that's only the case for i915 and radeon. The drm core ioctls are unfortunately too much a mess still to dare this. Follow-up patches will remove DRM_UNLOCKED from all kms drivers to prove that this is indeed the case. Also update the documentation. v2: Really only do this for driver ioctls, spotted by David Herrmann. And drop spurious whitespace change. Cc: David Herrmann <dh.herrmann@gmail.com> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com> Reviewed-by: David Herrmann <dh.herrmann@gmail.com> Reviewed-by: Christian König <christian.koenig@amd.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2015-10-16drm/i915: Mark getparam ioctl as DRM_UNLOCKEDDaniel Vetter
With kms all the data getparam looks at is actually invariant, and certainly not protected by the global kms mutex. With ums all the setup code is already racy as hell, so this won't make things any worse. I've done this change so that all ioctl still used by kms drivers are marked as DRM_UNLOCKED, besides that we obviously don't need it any more in kms mode. Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2015-10-16virtio-gpu: add page flip supportGerd Hoffmann
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
2015-10-16virtio-gpu: mark as a render gpuDave Airlie
Also add DRM_RENDER_ALLOW to the ioctls. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
2015-10-16virtio-gpu: add basic prime supportDave Airlie
This is enough to enable DRI3. Signed-off-by: Dave Airlie <airlied@redhat.com> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
2015-10-16virtio-gpu: add 3d/virgl supportGerd Hoffmann
Add the bits needed for opengl rendering support: query capabilities, new virtio commands, drm ioctls. Signed-off-by: Dave Airlie <airlied@redhat.com> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
2015-10-16virtio-gpu: don't free things on ttm_bo_init failureDave Airlie
ttm_bo_init will call the destroy callback which will do all this, this was causing a double free. Signed-off-by: Dave Airlie <airlied@redhat.com>
2015-10-16virtio-gpu: wait for cursor updates finishGerd Hoffmann
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
2015-10-16virtio-gpu: add & use virtio_gpu_queue_fenced_ctrl_bufferGerd Hoffmann
Add helper function to handle the submission of fenced control requests. Make sure we initialize the fence while holding the virtqueue lock, so requests can't be reordered. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
2015-10-16virtio-gpu: add virtio_gpu_queue_ctrl_buffer_lockedGerd Hoffmann
Add virtio_gpu_queue_ctrl_buffer_locked function, which does the same as virtio_gpu_queue_ctrl_buffer but does not take the virtqueue lock. The caller must hold the lock instead. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
2015-10-16drm/virtio: use %llu format string form atomic64_tArnd Bergmann
The virtgpu driver prints the last_seq variable using the %ld or %lu format string, which does not work correctly on all architectures and causes this compiler warning on ARM: drivers/gpu/drm/virtio/virtgpu_fence.c: In function 'virtio_timeline_value_str': drivers/gpu/drm/virtio/virtgpu_fence.c:64:22: warning: format '%lu' expects argument of type 'long unsigned int', but argument 4 has type 'long long int' [-Wformat=] snprintf(str, size, "%lu", atomic64_read(&fence->drv->last_seq)); ^ drivers/gpu/drm/virtio/virtgpu_debugfs.c: In function 'virtio_gpu_debugfs_irq_info': drivers/gpu/drm/virtio/virtgpu_debugfs.c:37:16: warning: format '%ld' expects argument of type 'long int', but argument 3 has type 'long long int' [-Wformat=] seq_printf(m, "fence %ld %lld\n", ^ In order to avoid the warnings, this changes the format strings to %llu and adds a cast to u64, which makes it work the same way everywhere. Signed-off-by: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Dave Airlie <airlied@redhat.com>
2015-10-16via_drm.h: move struct via_file_private definition to ↵Mikko Rapeli
drivers/gpu/drm/via/via_drv.h Fixes userspace compile error since list_head is not exported to userspace headers. Suggested by Emil Velikov <emil.l.velikov@gmail.com> at https://lkml.org/lkml/2015/6/3/792 Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi> Signed-off-by: Dave Airlie <airlied@redhat.com>
2015-10-16include/uapi/drm/sis_drm.h: move sis_file_private to ↵Mikko Rapeli
drivers/gpu/drm/sis/sis_drv.h Fixes userspace compile error: drm/sis_drm.h:68:19: error: field ‘obj_list’ has incomplete type struct list_head obj_list; Suggested by Emil Velikov <emil.l.velikov@gmail.com> at https://lkml.org/lkml/2015/6/3/792 Signed-off-by: Mikko Rapeli <mikko.rapeli@iki.fi> Signed-off-by: Dave Airlie <airlied@redhat.com>
2015-10-16Merge branch 'drm-dwhdmi-devel' of git://ftp.arm.linux.org.uk/~rmk/linux-arm ↵Dave Airlie
into drm-next This series: * adds support for interlaced video modes to the ipu-v3 driver and dw_hdmi bridge. * reworks the dw_hdmi connector enable/disable support, to ensure that when DRM disables the output, it stays disabled irrespective of the hotplug state. * adds support for connector forcing, so we can force the hotplug state for this connector. * adds the ALSA AHB audio driver to the bridge: Iwai has acked the audio driver. * a few fixes to the ACR calculations to allow more modes to work with audio on iMX6. Fabio has independently tested this series, so all patches here carry his tested-by tag. * 'drm-dwhdmi-devel' of git://ftp.arm.linux.org.uk/~rmk/linux-arm: drm: bridge/dw_hdmi: replace CTS calculation for the ACR drm: bridge/dw_hdmi: remove ratio support from ACR code drm: bridge/dw_hdmi: adjust pixel clock values in N calculation drm: bridge/dw_hdmi: avoid being recursive in N calculation drm: bridge/dw_hdmi-ahb-audio: allow larger buffer sizes drm: bridge/dw_hdmi-ahb-audio: basic support for multi-channel PCM audio drm: bridge/dw_hdmi-ahb-audio: parse ELD from HDMI driver drm: bridge/dw_hdmi-ahb-audio: add audio driver drm: bridge/dw_hdmi: improve HDMI enable/disable handling drm: bridge/dw_hdmi: add connector mode forcing drm: bridge/dw_hdmi: add support for interlaced video modes gpu: imx: fix support for interlaced modes gpu: imx: simplify sync polarity setting
2015-10-16Merge commit '06d1ee32a4d25356a710b49d5e95dbdd68bdf505' of ↵Dave Airlie
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux into drm-next Backmerge the drm-fixes pull from Linus's tree into drm-next. This is to fix some conflicts and make future pulls cleaner
2015-10-16Merge tag 'topic/drm-misc-2015-10-08' of ↵Dave Airlie
git://anongit.freedesktop.org/drm-intel into drm-next Another round of drm-misc. Unfortunately the DRM_UNLOCKED removal for DRIVER_MODESET isn't complete yet for lack of review on 1-2 patches. Otherwise just various stuff all over. * tag 'topic/drm-misc-2015-10-08' of git://anongit.freedesktop.org/drm-intel: drm: Stop using drm_vblank_count() as the hw frame counter drm/irq: Use unsigned int pipe in public API drm: Use DRM_ROTATE_MASK and DRM_REFLECT_MASK drm: Add DRM_ROTATE_MASK and DRM_REFLECT_MASK vga_switcheroo: Add missing locking vgaarb: use kzalloc in vga_arbiter_add_pci_device() drm: Don't zero vblank timestamps from the irq handler drm: Hack around CONFIG_AGP=m build failures drm/i915: Remove setparam ioctl drm: Remove dummy agp ioctl wrappers drm/vmwgfx: Stop checking for DRM_UNLOCKED drm/drm_ioctl.c: kerneldoc drm: Define a drm_invalid_op ioctl implementation drm: Remove __OS_HAS_AGP drm/doc: Update docs about device instance setup
2015-10-16Merge branch 'drm-fixes-4.3' of git://people.freedesktop.org/~agd5f/linux ↵Dave Airlie
into drm-fixes Just two fixes for amdgpu: - fix pageflip interrupt issue - fix display clock handling on certain fiji boards * 'drm-fixes-4.3' of git://people.freedesktop.org/~agd5f/linux: drm/amdgpu: Keep the pflip interrupts always enabled v7 drm/amdgpu: adjust default dispclk (v2)
2015-10-16Merge tag 'drm-intel-next-2015-09-28-merged' of ↵Dave Airlie
git://anongit.freedesktop.org/drm-intel into drm-next drm-intel-next-2015-09-28: - fastboot by default for some systems (Maarten Lankhorts) - piles of workarounds for bxt and skl - more fbc work from Paulo - fix hdmi hotplug detection (Sonika) - first few patches from Ville to parametrize register macros, prep work for typesafe mmio functions - prep work for nv12 rotation (Tvrtko Ursulin) - various other bugfixes and improvements all over I have another backmerge here since things became messy and I didn't realize you resolved some of them already (usually you complain when there's a conflict ...). For 4.4 I plan one more feature round after this and then that's it. * tag 'drm-intel-next-2015-09-28-merged' of git://anongit.freedesktop.org/drm-intel: (80 commits) drm/i915: Update DRIVER_DATE to 20150928 drm/i915: fix task reference leak in i915_debugfs.c drm/i915: Defer adding preallocated stolen objects to the VM list drm/i915: Remove extraneous request cancel. drm/i915: Enable querying offset of UV plane with intel_plane_obj_offset drm/i915: Support NV12 in rotated GGTT mapping drm/i915: Support appending to the rotated pages mapping drm/i915: Support planar formats in tile height calculations drm/i915/bxt: Update revision id for BXT C0 drm/i915: Parametrize CSR_PROGRAM registers drm/i915: Parametrize DDI_BUF_TRANS registers drm/i915: Parametrize TV luma/chroma filter registers drm/i915: Replace raw numbers with the approproate register name in ILK turbo code drm/i915: Parametrize ILK turbo registers drm/i915: Parametrize FBC_TAG registers drm/i915: Parametrize GEN7_GT_SCRATCH and GEN7_LRA_LIMITS drm/i915: Parametrize LRC registers drm/i915: Don't pass sdvo_reg to intel_sdvo_select_{ddc, i2c}_bus() drm/i915: Ignore "digital output" and "not HDMI output" bits for eDP detection drm/i915: Make sure we don't detect eDP on g4x ...
2015-10-16Merge branch 'drm-next-4.4' of git://people.freedesktop.org/~agd5f/linux ↵Dave Airlie
into drm-next This is the first radeon and amdgpu pull for drm-next. Highlights include: - Efficiency improvements to the CS checker for pre-SI asics - Cursor fixes ported from radeon to amdgpu - Enable GPU scheduler by default - Add a bunch of GPUVM debugging options - Add support for some new atombios opcodes - Misc cleanups and fixes * 'drm-next-4.4' of git://people.freedesktop.org/~agd5f/linux: (42 commits) drm/amdgpu: fix lockup when clean pending fences drm/amdgpu: add timer to fence to detect scheduler lockup drm/amdgpu: add VM CS mapping trace point drm/amdgpu: add option to clear VM page tables after every submit drm/amdgpu: add option to stop on VM fault drm/amdgpu: only print meaningful VM faults drm/amdgpu: also trace already allocated VMIDs drm/amdgpu: Drop unnecessary #include <linux/vga_switcheroo.h> drm/radeon: Drop unnecessary #include <linux/vga_switcheroo.h> drm/amdgpu: clean up pageflip interrupt handling drm/amdgpu: rework sdma structures drm/amdgpu: unpin cursor BOs on suspend and pin them again on resume drm/amdgpu/dce8: Fold set_cursor() into show_cursor() drm/amdgpu/dce8: Clean up reference counting and pinning of the cursor BOs drm/amdgpu/dce8: Move hotspot handling out of set_cursor drm/amdgpu/dce8: Re-show the cursor after a modeset (v2) drm/amdgpu/dce8: Use cursor_set2 hook for enabling / disabling the HW cursor drm/amdgpu/dce11: Fold set_cursor() into show_cursor() drm/amdgpu/dce11: Clean up reference counting and pinning of the cursor BOs drm/amdgpu/dce11: Move hotspot handling out of set_cursor ...
2015-10-16Merge tag 'vmwgfx-fixes-4.3-151014' of ↵Dave Airlie
git://people.freedesktop.org/~thomash/linux into drm-fixes Pull request of 2015-10-14 * tag 'vmwgfx-fixes-4.3-151014' of git://people.freedesktop.org/~thomash/linux: drm/vmwgfx: Fix kernel NULL pointer dereference on older hardware
2015-10-15drm/i915: Kill the leftover RMW from ivb_sprite_disable()Ville Syrjälä
We still had one lingering RMW in ivb_sprite_disable(), all the other RMWs were killed off from the sprite code some time ago. Kill the straggler too. Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2015-10-15drm/radeon: Use rdev->gem.mutex to protect hyperz/cmask ownersDaniel Vetter
This removes the last depency of radeon for dev->struct_mutex! Also the locking scheme for hyperz/cmask owners seems a bit unsound, there's no protection in the preclose handler (and that never did hold dev->struct_mutex while being called). So grab the same lock there, too. There's also all the checks in the cs checker, but since the overall design seems to never stall for the previous owner I figured it's ok if I leave this racy. It was racy even before I touched it after all too. Reviewed-by: Christian König <christian.koenig@amd.com> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2015-10-15drm/amdgpu: Keep the pflip interrupts always enabled v7Michel Dänzer
This fixes flickering issues caused by prematurely firing pflip interrupts. v2 (chk): add commit message, fix DCE V10/V11 and DM as well v3: Re-enable pflip interrupt wherever we re-enable a CRTC v4: Enable pflip interrupt in DAL as well v5: drop DAL changes for upstream v6: (agd): only enable interrupts on crtcs that exist v7: (agd): integrate suggestions from Michel Signed-off-by: Michel Dänzer <michel.daenzer@amd.com> Signed-off-by: Christian König <christian.koenig@amd.com> Reviewed-by: Alex Deucher <alexander.deucher@amd.com> Cc: stable@vger.kernel.org
2015-10-15drm/amdgpu: adjust default dispclk (v2)Alex Deucher
Set the default to 600Mhz if it's not set in the bios, and bump the default to 600Mhz if it's lower than that. Port of radeon commit: 9368931db826d57b6b88b3145a00276626b48df0 v2: clean up the code a bit bug: https://bugs.freedesktop.org/show_bug.cgi?id=91896 Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2015-10-15drm/i915: restore ggtt double-bind avoidanceDaniel Vetter
This was accidentally lost in commit 75d04a3773ecee617847de963ae4195d6aa74c28 Author: Mika Kuoppala <mika.kuoppala@linux.intel.com> Date: Tue Apr 28 17:56:17 2015 +0300 drm/i915/gtt: Allocate va range only if vma is not bound While at it implement an improved version suggested by Chris which avoids the double-bind irrespective of what type of bind is done first. Note that this exact bug was already addressed in commit d0e30adc42d979e4adc36b6c112b57337423b70c Author: Chris Wilson <chris@chris-wilson.co.uk> Date: Wed Jul 29 20:02:48 2015 +0100 drm/i915: Mark PIN_USER binding as GLOBAL_BIND without the aliasing ppgtt but the problem is still that originally in commit 0875546c5318c85c13d07014af5350e9000bc9e9 Author: Daniel Vetter <daniel.vetter@ffwll.ch> Date: Mon Apr 20 09:04:05 2015 -0700 drm/i915: Fix up the vma aliasing ppgtt binding if forgotten to take into account there case where we have a GLOBAL_BIND before a LOCAL_BIND. This patch here fixes that. v2: Pimp commit message and revert the partial fix. v3: Split into two functions to specialize on aliasing_ppgtt y/n. v4: WARN_ON for paranoia in the init sequence, since the ggtt probe and aliasing ppgtt setup are far apart. v5: Style nits. Cc: Chris Wilson <chris@chris-wilson.co.uk> Cc: Michel Thierry <michel.thierry@intel.com> Cc: Mika Kuoppala <mika.kuoppala@intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com> Link: http://mid.gmane.org/1444911781-32607-1-git-send-email-daniel.vetter@ffwll.ch Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2015-10-15drm/i915/skl: Enable pipe gamma for sprite planes.Bob Paauwe
Since SKL has universal planes, we should configure the sprite planes and the primary plane the same. For the primary plane we do enable the pipe gamma on the plane so do the same for the non-primary planes. Without this, the pipe CRC values will be different for something displayed on the primary plane and something displayed on a sprite plane when the ARGB8888 format is used. Signed-off-by: Bob Paauwe <bob.j.paauwe@intel.com> Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2015-10-15drm/i915/skl+: Enable pipe CSC on cursor planes. (v2)Bob Paauwe
Extend this to SKL and BXT as it's needed for these platforms as well. v2: Change if condition to HAS_DDI() instead of listing each platform Signed-off-by: Bob Paauwe <bob.j.paauwe@intel.com> Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2015-10-15Merge branch 'drm-tda998x-devel' of ↵Dave Airlie
git://ftp.arm.linux.org.uk/~rmk/linux-arm into drm-next * removes the now unused DRM slave encoder support, which all users have migrated away from, allowing us to simplify the code. * ensure all pending interrupts are processed together, rather than needing the handler to be re-entered each time. * use more HDMI helpers to setup the info frames. * fix EDID read handling by ensuring that we always wait the specified time before attempting to read the EDID, no matter where the EDID read request came from. * 'drm-tda998x-devel' of git://ftp.arm.linux.org.uk/~rmk/linux-arm: drm/i2c: tda998x: clean up after struct tda998x_priv2 removal drm/i2c: tda998x: kill struct tda998x_priv2 drm/i2c: tda998x: move connector into struct tda998x_priv drm/i2c: tda998x: remove encoder pointer drm/i2c: tda998x: remove DRM slave encoder support drm/i2c: tda998x: use more HDMI helpers drm/i2c: tda998x: handle all outstanding interrupts drm/i2c: tda998x: convert to u8/u16/u32 types drm/i2c: tda998x: re-implement "Fix EDID read timeout on HDMI connect" drm/i2c: tda998x: report whether we actually handled the IRQ drm/i2c: tda998x: remove useless NULL checks
2015-10-15Merge branch 'drm-armada-devel' of git://ftp.arm.linux.org.uk/~rmk/linux-arm ↵Dave Airlie
into drm-next * remove support for the non-component support from the Armada DRM driver, switching it to component-only mode. * create a "armada plane" to allow the primary and overlay planes to share some code. * increase efficiency by using inherently atomic operations, rather than spinlocking to achieve atomicity. Eg, if we want to exchange a value, using xchg(). * increase PM savings by stopping the external pixel clock when we're in DPMS mode. * 'drm-armada-devel' of git://ftp.arm.linux.org.uk/~rmk/linux-arm: drm/armada: move frame wait wakeup into plane work drm/armada: convert overlay plane vbl worker to a armada plane worker drm/armada: move CRTC flip work to primary plane work drm/armada: move frame wait into armada_frame drm/armada: move the locking for armada_drm_vbl_event_remove() drm/armada: move the update of dplane->ctrl0 out of spinlock drm/armada: move write to dma_ctrl0 to armada_drm_crtc_plane_disable() drm/armada: provide a common helper to disable a plane drm/armada: allocate primary plane ourselves drm/armada: add primary plane creation drm/armada: introduce generic armada_plane struct drm/armada: update armada overlay to use drm_universal_plane_init() drm/armada: use xchg() to atomically update dplane->old_fb drm/armada: factor out retirement of old fb drm/armada: rename overlay identifiers drm/armada: redo locking and atomics for armada_drm_crtc_complete_frame_work() drm/armada: disable CRTC clock during DPMS drm/armada: use drm_plane_force_disable() to disable the overlay plane drm/armada: move vbl code into armada_crtc drm/armada: remove non-component support