aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAge
* drm/radeon: cope with foreign fences inside the reservation objectMaarten Lankhorst2014-10-03
| | | | | | | | Not the whole world is a radeon! :-) Reviewed-by: Christian König <christian.koenig@amd.com> Signed-off-by: Maarten Lankhorst <maarten.lankhorst@canonical.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
* drm/radeon: cope with foreign fences inside displayMaarten Lankhorst2014-10-03
| | | | | | Reviewed-by: Christian König <christian.koenig@amd.com> Signed-off-by: Maarten Lankhorst <maarten.lankhorst@canonical.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
* drm/radeon/cik: write gfx ucode version to ucode addr regAlex Deucher2014-10-01
| | | | | | | | Helpful for debugging as the version shows up in a register dump. Cc: Jay Cornwall <jay.cornwall@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
* drm/radeon/si: print full CS when we hit a packet 0Alex Deucher2014-10-01
| | | | | | | | | | We should never have a packet 0 in the command stream. Dump the full command stream to help debug. bug: https://bugs.freedesktop.org/show_bug.cgi?id=84500 Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
* drm/radeon: remove unecessary includesAlex Deucher2014-10-01
| | | | | | | | The requirement for these was removed in: 0a168933976eb483da91161316bbbbcb74d00486 Reviewed-by: Christian König <christian.koenig@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
* drm/radeon/combios: declare legacy_connector_convert as staticMichele Curti2014-10-01
| | | | | | | legacy_connector_convert is used in radeon_combios.c only, so declare it as static. Signed-off-by: Michele Curti <michele.curti@gmail.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
* drm/radeon/atombios: declare connector convert tables as staticMichele Curti2014-10-01
| | | | | | | | | | | The tables: * supported_devices_connector_convert * supported_devices_connector_object_id_convert * object_connector_convert are used in redeon_atombios.c only, so declare them as static. Signed-off-by: Michele Curti <michele.curti@gmail.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
* drm/radeon: drop btc_get_max_clock_from_voltage_dependency_tableAlex Deucher2014-10-01
| | | | | | | | It's no longer used now that the underlying bugs are fixed. Reviewed-by: Alexandre Demers <alexandre.f.demers@gmail.com> Tested-by: Alexandre Demers <alexandre.f.demers@gmail.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
* drm/radeon/dpm: drop clk/voltage dependency filters for BTCAlex Deucher2014-10-01
| | | | | | | | | | | | No longer needed now that the underlying bug was fixed in e07929810f0a19ddd756558290c7d72827cbfcd9 (drm/radeon/dpm: fix typo in vddci setup for eg/btc). bug: https://bugs.freedesktop.org/show_bug.cgi?id=69721 Reviewed-by: Alexandre Demers <alexandre.f.demers@gmail.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
* drm/radeon/dpm: drop clk/voltage dependency filters for CIAlex Deucher2014-10-01
| | | | | | | | | | | Not sure this was ever necessary for CI, was just done to be on the safe side. bug: https://bugs.freedesktop.org/show_bug.cgi?id=69721 Reviewed-by: Alexandre Demers <alexandre.f.demers@gmail.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
* drm/radeon/dpm: drop clk/voltage dependency filters for SIAlex Deucher2014-10-01
| | | | | | | | | | | Not sure this was ever necessary for SI, was just done to be on the safe side. bug: https://bugs.freedesktop.org/show_bug.cgi?id=69721 Reviewed-by: Alexandre Demers <alexandre.f.demers@gmail.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
* drm/radeon/dpm: drop clk/voltage dependency filters for NIAlex Deucher2014-10-01
| | | | | | | | | | | | | No longer needed now that the underlying bug was fixed in b0880e87c1fd038b84498944f52e52c3e86ebe59 (drm/radeon/dpm: fix vddci setup typo on cayman). bug: https://bugs.freedesktop.org/show_bug.cgi?id=69721 Reviewed-by: Alexandre Demers <alexandre.f.demers@gmail.com> Tested-by: Alexandre Demers <alexandre.f.demers@gmail.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
* drm/radeon: disable audio when we disable hdmi (v2)Alex Deucher2014-10-01
| | | | | | | | | This should allow the audio driver to get a better idea of whether the sink is connected or not. v2: fix copy/paste typo noticed by David Henningsson Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
* drm/radeon: split audio enable between eg and r600 (v2)Alex Deucher2014-10-01
| | | | | | | | Clean up the enable sequence as well. V2: clean up duplicate defines Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
* drm/radeon: consolidate r600_audio.c into r600_hdmi.cAlex Deucher2014-10-01
| | | | | | | Most of that functionality is only used by r600_hdmi.c and I'm planning to change that further. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
* drm/radeon: consolidate duplicate encode is digital functionAlex Deucher2014-10-01
| | | | | | Only need one copy. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
* drm/radeon: fix register name to match internal nameAlex Deucher2014-10-01
| | | | | | no functional change. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
* Merge branch 'for-airlied-next' of ↵Dave Airlie2014-10-01
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | git://people.freedesktop.org/~mlankhorst/linux into drm-next fixups for nouveau and fencing * 'for-airlied-next' of git://people.freedesktop.org/~mlankhorst/linux: drm/nouveau: export reservation_object from dmabuf to ttm drm/ttm: add reservation_object as argument to ttm_bo_init drm: Pass dma-buf as argument to gem_prime_import_sg_table drm/nouveau: assign fence_chan->name correctly drm/nouveau: specify if interruptible wait is desired in nouveau_fence_sync drm/nouveau: bump driver patchlevel to 1.2.1
| * drm/nouveau: export reservation_object from dmabuf to ttmMaarten Lankhorst2014-10-01
| | | | | | | | | | | | Adds an extra argument to nouveau_bo_new, which is only used in nouveau_prime.c. Signed-off-by: Maarten Lankhorst <maarten.lankhorst@canonical.com>
| * drm/ttm: add reservation_object as argument to ttm_bo_initMaarten Lankhorst2014-09-30
| | | | | | | | | | | | This allows importing reservation objects from dma-bufs. Signed-off-by: Maarten Lankhorst <maarten.lankhorst@canonical.com>
| * drm: Pass dma-buf as argument to gem_prime_import_sg_tableMaarten Lankhorst2014-09-30
| | | | | | | | | | | | Allows importing dma_reservation_objects from a dma-buf. Signed-off-by: Maarten Lankhorst <maarten.lankhorst@canonical.com>
| * drm/nouveau: assign fence_chan->name correctlyMaarten Lankhorst2014-09-30
| | | | | | | | | | | | | | Make nouveau_fence_chan refcounted, to make trace_fence_destroy always return the correct name without a race condition. Signed-off-by: Maarten Lankhorst <maarten.lankhorst@canonical.com>
| * drm/nouveau: specify if interruptible wait is desired in nouveau_fence_syncMaarten Lankhorst2014-09-30
| | | | | | | | Signed-off-by: Maarten Lankhorst <maarten.lankhorst@canonical.com>
| * drm/nouveau: bump driver patchlevel to 1.2.1Maarten Lankhorst2014-09-30
| | | | | | | | | | | | Allows userspace to detect shared fences are supported. Signed-off-by: Maarten Lankhorst <maarten.lankhorst@canonical.com>
* | Merge tag 'topic/core-stuff-2014-09-29' of ↵Dave Airlie2014-10-01
|\ \ | |/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | git://anongit.freedesktop.org/drm-intel into drm-next Ok, here's the update core-stuff pull request with the locking fixup patch fixed up with another patch. * tag 'topic/core-stuff-2014-09-29' of git://anongit.freedesktop.org/drm-intel: drm: Drop grab fpriv->fbs_lock in drm_fb_release drm/udl: use container_of to resolve udl_fbdev from drm_fb_helper drm/ast: use container_of to resolve ast_fbdev from drm_fb_helper drm/gma500: use container_of to resolve psb_fbdev from drm_fb_helper drm/qxl: use container_of to resolve qxl_fbdev from drm_fb_helper drm/nouveau: use container_of to resolve nouveau_plane from drm_plane drm/nouveau: use container_of to resolve nouveau_fbdev from drm_fb_helper drm/radeon: use container_of to resolve radeon_fbdev from drm_fb_helper drm/mgag200: use container_of to resolve mga_fbdev from drm_fb_helper drm/cirrus: use container_of to resolve cirrus_fbdev from drm_fb_helper drm: Improve debug output for drm_wait_one_vblank drm: Fixup locking for universal cursor planes drm: Don't update vblank timestamp when the counter didn't change
| * drm: Drop grab fpriv->fbs_lock in drm_fb_releaseDaniel Vetter2014-09-25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Paulo Zanoni reported a lockdep splat with a locking inversion between fpriv->fbs_lock and the modeset locks. This issue was introduced in commit f2b50c1161590c3bcdbf3455fe4c575f1c1bd293 Author: Daniel Vetter <daniel.vetter@ffwll.ch> Date: Fri Sep 12 17:07:32 2014 +0200 drm: Fixup locking for universal cursor planes This here is actually one of the rare cases where lockdep hits a false positive: The deadlock only happens in drm_fb_release, which cleans up the file private structure when all the references are gone. So the locking is the very last one and no one else can deadlock. It also doesn't protect anything at all, since all ioctls are guaranteed to have returned at this point - otherwise they'd still hold a reference on the file. So let's just drop it and replace it with a big comment. Cc: David Herrmann <dh.herrmann@gmail.com> Cc: Matt Roper <matthew.d.roper@intel.com> Cc: Paulo Zanoni <przanoni@gmail.com> Reported-and-Tested-by: Paulo Zanoni <przanoni@gmail.com> Reviewed-by: Matt Roper <matthew.d.roper@intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
| * drm/udl: use container_of to resolve udl_fbdev from drm_fb_helperFabian Frederick2014-09-24
| | | | | | | | | | | | | | Use container_of instead of casting first structure member. Signed-off-by: Fabian Frederick <fabf@skynet.be> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
| * drm/ast: use container_of to resolve ast_fbdev from drm_fb_helperFabian Frederick2014-09-24
| | | | | | | | | | | | | | Use container_of instead of casting first structure member. Signed-off-by: Fabian Frederick <fabf@skynet.be> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
| * drm/gma500: use container_of to resolve psb_fbdev from drm_fb_helperFabian Frederick2014-09-24
| | | | | | | | | | | | | | Use container_of instead of casting first structure member. Signed-off-by: Fabian Frederick <fabf@skynet.be> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
| * drm/qxl: use container_of to resolve qxl_fbdev from drm_fb_helperFabian Frederick2014-09-24
| | | | | | | | | | | | | | Use container_of instead of casting first structure member. Signed-off-by: Fabian Frederick <fabf@skynet.be> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
| * drm/nouveau: use container_of to resolve nouveau_plane from drm_planeFabian Frederick2014-09-24
| | | | | | | | | | | | | | Use container_of instead of casting first structure member. Signed-off-by: Fabian Frederick <fabf@skynet.be> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
| * drm/nouveau: use container_of to resolve nouveau_fbdev from drm_fb_helperFabian Frederick2014-09-24
| | | | | | | | | | | | | | Use container_of instead of casting first structure member. Signed-off-by: Fabian Frederick <fabf@skynet.be> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
| * drm/radeon: use container_of to resolve radeon_fbdev from drm_fb_helperFabian Frederick2014-09-24
| | | | | | | | | | | | | | Use container_of instead of casting first structure member. Signed-off-by: Fabian Frederick <fabf@skynet.be> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
| * drm/mgag200: use container_of to resolve mga_fbdev from drm_fb_helperFabian Frederick2014-09-24
| | | | | | | | | | | | | | Use container_of instead of casting first structure member. Signed-off-by: Fabian Frederick <fabf@skynet.be> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
| * drm/cirrus: use container_of to resolve cirrus_fbdev from drm_fb_helperFabian Frederick2014-09-24
| | | | | | | | | | | | | | Use container_of instead of casting first structure member. Signed-off-by: Fabian Frederick <fabf@skynet.be> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
| * drm: Improve debug output for drm_wait_one_vblankDaniel Vetter2014-09-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This replicates what we've done in i915 in commit 31e4b89acbd7b19c9a8557e6e660a583a0b97daa Author: Damien Lespiau <damien.lespiau@intel.com> Date: Mon Aug 18 13:51:00 2014 +0100 drm/i915: Print the pipe on which the vblank wait times out to make sure that when we switch i915 to drm_wait_one_vblank that the debug output doesn't regress. Cc: Damien Lespiau <damien.lespiau@intel.com> Cc: Thomas Wood <thomas.wood@intel.com> Reviewed-by: Damien Lespiau <damien.lespiau@intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
| * drm: Fixup locking for universal cursor planesDaniel Vetter2014-09-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Bunch of things amiss: - Updating crtc->cursor_x/y was done without any locking. Spotted by David Herrmann. - Dereferencing crtc->cursor->fb was using the wrong lock, should take the crtc lock. - Grabbing _all_ modeset locks torpedoes the reason why we added fine-grained locks originally: Cursor updates shouldn't stall on background stuff like probing outputs. Best is to just grab the crtc lock around everything and drop all the other locking. The only issue is that we can't switch planes between crtcs with that, so make sure that never happens when someone uses universal plane helpers. This shouldn't be a possible regression ever since legacy ioctls also only grabbed the crtc lock, so switching crtcs was never possible for the underlying plane object. And i915 (the only user of universal cursors thus far) has fixed cursor->crtc links. Cc: David Herrmann <dh.herrmann@gmail.com> Cc: Pallavi G<pallavi.g@intel.com> Cc: Matt Roper <matthew.d.roper@intel.com> Reviewed-by: Matt Roper <matthew.d.roper@intel.com> Tested-by: Matt Roper <matthew.d.roper@intel.com> Reviewed-by: David Herrmann <dh.herrmann@gmail.com> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
| * drm: Don't update vblank timestamp when the counter didn't changeMario Kleiner2014-09-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If we already have a timestamp for the current vblank counter, don't update it with a new timestmap. Small errors can creep in between two timestamp queries for the same vblank count, which could be confusing to userspace when it queries the timestamp for the same vblank sequence number twice. This problem gets exposed when the vblank disable timer is not used (or is set to expire quickly) and thus we can get multiple vblank disable<->enable transition during the same frame which would all attempt to update the timestamp with the latest estimate. Testcase: igt/kms_flip/flip-vs-expired-vblank Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Reviewed-by: Mario Kleiner <mario.kleiner.de@gmail.com> v2:Mario: Trivial rebase on top of current drm-next (13-Sep-2014) Signed-off-by: Mario Kleiner <mario.kleiner.de@gmail.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
* | drm/nouveau: nv84+: fix fence context seqno'sMaarten Lankhorst2014-09-30
|/ | | | | | | | | | | | | | | | | | This fixes a regression introduced by "drm/nouveau: rework to new fence interface" (commit 29ba89b2371d466). The fence sequence should not be reset after creation, the old value is used instead. On destruction the final value is written, to prevent another source of accidental wraparound in case of a channel being destroyed after a hang, and unblocking any other channel that may wait on the about-to-be-deleted channel to signal. I'm nothing if not optimistic about any hope of recovery from that. ;-) Reported-by: Ted Percival <ted@tedp.id.au> Signed-off-by: Maarten Lankhorst <maarten.lankhorst@canonical.com> Tested-by: Ted Percival <ted@tedp.id.au> Acked-by: Ben Skeggs <bskeggs@redhat.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
* drm/doc: Fixup drm_irq kerneldoc includes.Daniel Vetter2014-09-23
| | | | | | | | | Only !P can be used together with a function list. Cc: Ville Syrjälä <ville.syrjala@linux.intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com> Acked-by: Alex Deucher <alexander.deucher@amd.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
* drm: Extract <drm/drm_gem.h>Daniel Vetter2014-09-23
| | | | | | | | | | | v2: Don't forget git add, noticed by David. Cc: David Herrmann <dh.herrmann@gmail.com> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com> Acked-by: David Herrmann <dh.herrmann@gmail.com> Acked-by: Alex Deucher <alexander.deucher@amd.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
* drm: Move internal debugfs functions to drm_internal.hDaniel Vetter2014-09-23
| | | | | | | | | In my header cleanup I've missed the debugfs functions completely. Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Reviewed-by: David Herrmann <dh.herrmann@gmail.com> Acked-by: Alex Deucher <alexander.deucher@amd.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
* drm: Move leftover ioctl declarations to drm_internal.hDaniel Vetter2014-09-23
| | | | | | | | | | Somehow I've missed these three, fix this up asap. Plus move drm_master_create since while at it. Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Reviewed-by: David Herrmann <dh.herrmann@gmail.com> Acked-by: Alex Deucher <alexander.deucher@amd.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
* drm: Move drm_vm_open_locked into drm_internal.hDaniel Vetter2014-09-23
| | | | | | | | | | | | Leftover from my previous header cleanup. This depends upon the patch to rework exynos mmap support, otherwise it'll break exynos. Signed-off-by: Daniel Vetter <daniel.vetter@intel.com> Reviewed-by: David Herrmann <dh.herrmann@gmail.com> Acked-by: Alex Deucher <alexander.deucher@amd.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
* drm: move drm_mmap to <drm/drm_legacy.h>Daniel Vetter2014-09-23
| | | | | | | | | | | | | | Now that we've removed the copypasted users in gem/ttm we can relegate the legacy buffer mapping support to where it belongs. Also give it the proper drm_legacy_ prefix. While at it statify drm_mmap_locked, somehow I've missed that in my previous header rework. Signed-off-by: Daniel Vetter <daniel.vetter@intel.com> Reviewed-by: David Herrmann <dh.herrmann@gmail.com> Acked-by: Alex Deucher <alexander.deucher@amd.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
* drm/gem: Don't call drm_mmap from drm_gem_mmapDaniel Vetter2014-09-23
| | | | | | | | | | | | | | | The only user I could dig out was i915 back when ums+gem was still a thing. But we've just very much killed that, and even when someone screams about that we should resurrect that with a special hack (wrapping drm_gem_mmap) in i915, not in the core code. So good riddance to another entry point of the legacy buffer mapping code. Signed-off-by: Daniel Vetter <daniel.vetter@intel.com> Reviewed-by: David Herrmann <dh.herrmann@gmail.com> Acked-by: Alex Deucher <alexander.deucher@amd.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
* drm/<ttm-based-drivers>: Don't call drm_mmapDaniel Vetter2014-09-23
| | | | | | | | | | | | | | | | | | | | | | Really, the legacy buffer api should be dead, especially for all these newfangled drivers. I suspect this is copypasta from the transitioning days, which probably originated in radeon. Cc: "Christian König" <christian.koenig@amd.com> Cc: David Herrmann <dh.herrmann@gmail.com> Cc: Rashika <rashika.kheria@gmail.com> Cc: Josh Triplett <josh@joshtriplett.org> Cc: Daniel Vetter <daniel.vetter@ffwll.ch> Cc: Fabian Frederick <fabf@skynet.be> Cc: Gerd Hoffmann <kraxel@redhat.com> Cc: Alexandre Courbot <acourbot@nvidia.com> Cc: Maarten Lankhorst <maarten.lankhorst@canonical.com> Cc: Christian Engelmayer <cengelma@gmx.at> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com> Reviewed-by: David Herrmann <dh.herrmann@gmail.com> Acked-by: Ben Skeggs <bskeggs@redhat.com> Acked-by: Alex Deucher <alexander.deucher@amd.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
* drm: change drm_err return type to voidJoe Perches2014-09-23
| | | | | | | | | | The return value is not used by callers of this function nor by uses of the DRM_ERROR macro so change the function to return void. Signed-off-by: Joe Perches <joe@perches.com> Reviewed-by: Jani Nikula <jani.nikula@intel.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
* drm/ttm: Clean usage of ttm_io_prot() with TTM_PL_FLAG_CACHEDBenjamin Herrenschmidt2014-09-23
| | | | | | | | | | | | | | Today, most callers of ttm_io_prot() check TTM_PL_FLAG_CACHED before calling it since on some archs it will unconditionally create non-cached mappings. But not all callers do which is incorrect as far as I can tell. Instead, move that check inside ttm_io_port() itself for all archs and make powerpc use the same implementation as ia64 and arm Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Dave Airlie <airlied@redhat.com>
* drm: powerpc can use a simpler drm_io_prot()Benjamin Herrenschmidt2014-09-23
| | | | | | | | What the code does is equivalent to the x86 code, so let's use it as well Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Dave Airlie <airlied@redhat.com>