Dave Airlie [Fri, 4 Sep 2015 03:07:18 +0000 (13:07 +1000)]
Merge branch 'exynos-drm-next' of git://git./linux/kernel/git/daeinki/drm-exynos into drm-next
This is a last pull request, which includes two g2d patches
I missed, and more cleanup series of Exynos drm driver.
The cleanup series makes Exynos drm driver more simple,
and removes unnecessary codes, and considers multiple plane format
of framebuffer. I hope this not to be late.
* 'exynos-drm-next' of git://git.kernel.org/pub/scm/linux/kernel/git/daeinki/drm-exynos:
drm/exynos: remove buf_cnt from struct exynos_drm_fb
drm/exynos: remove exynos_drm_fb_get_buf_cnt()
drm/exynos: cleanup exynos_user_fb_create()
drm/exynos: update exynos_drm_framebuffer_init() for multiple buffers
drm/exynos: cleanup to get gem object for fb
drm/exynos: update fb_info via only one function
drm/exynos: cleanup exynos_drm_fbdev_update()
drm/exynos: s/exynos_gem_obj/obj in exynos_drm_fbdev.c
drm/exynos: remove exynos_drm_fb_set_buf_cnt()
drm/exynos: remove superfluous checks in g2d_check_reg_offset()
drm/exynos: fix size check in g2d_check_buf_desc_is_valid()
Dave Airlie [Fri, 4 Sep 2015 03:06:29 +0000 (13:06 +1000)]
Merge branch 'drm-next-4.3' of git://people.freedesktop.org/~agd5f/linux into drm-next
More fixes for radeon and amdgpu for 4.3:
- Send full DP aux address fixes for radeon and amdgpu
- Fix an HDMI display regression for pre-DCE5 parts
- UVD suspend fixes for amdgpu
- Add an rs480 suspend quirk
- Fix bo reserve handling in amdgpu GEM_OP ioctl
- GPU scheduler fixes
- SDMA optimizations
- MEC fix for Fiji
* 'drm-next-4.3' of git://people.freedesktop.org/~agd5f/linux: (21 commits)
drm/amdgpu: set MEC doorbell range for Fiji
drm/amdgpu: implement burst NOP for SDMA
drm/amdgpu: add insert_nop ring func and default implementation
drm/amdgpu: add amdgpu_get_sdma_instance helper function
drm/amdgpu: add AMDGPU_MAX_SDMA_INSTANCES
drm/amdgpu: add burst_nop flag for sdma
drm/amdgpu: add count field for the SDMA NOP packet v2
drm/amdgpu: use PT for VM sync on unmap
drm/amdgpu: make wait_event uninterruptible in push_job
drm/amdgpu: fix amdgpu_bo_unreserve order in GEM_OP IOCTL v2
drm/amdgpu: partially revert "modify amdgpu_fence_wait_any() to amdgpu_fence_wait_multiple()" v2
Add radeon suspend/resume quirk for HP Compaq dc5750.
drm/amdgpu: re-work sync_resv
drm/amdgpu/atom: Send out the full AUX address
drm/radeon/native: Send out the full AUX address
drm/radeon/atom: Send out the full AUX address
drm/amdgpu: use IB for fill_buffer instead of direct command
drm/amdgpu: stop trying to suspend UVD sessions v2
drm/amdgpu: add scheduler dependency callback v2
drm/amdgpu: let the scheduler work more with jobs v2
...
Jammy Zhou [Tue, 1 Sep 2015 08:44:11 +0000 (16:44 +0800)]
drm/amdgpu: set MEC doorbell range for Fiji
Signed-off-by: Jammy Zhou <Jammy.Zhou@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Jammy Zhou [Tue, 1 Sep 2015 05:13:54 +0000 (13:13 +0800)]
drm/amdgpu: implement burst NOP for SDMA
Customize the insert_nop func for SDMA rings, and use burst NOP for
ring/IB submissions in other places as well
Signed-off-by: Jammy Zhou <Jammy.Zhou@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Jammy Zhou [Tue, 1 Sep 2015 05:04:08 +0000 (13:04 +0800)]
drm/amdgpu: add insert_nop ring func and default implementation
The insert_nop function is added to amdgpu_ring_funcs structure as
well as the default implementation
Signed-off-by: Jammy Zhou <Jammy.Zhou@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Jammy Zhou [Tue, 1 Sep 2015 04:56:17 +0000 (12:56 +0800)]
drm/amdgpu: add amdgpu_get_sdma_instance helper function
This function is added to map the ring to sdma instance
Signed-off-by: Jammy Zhou <Jammy.Zhou@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Jammy Zhou [Tue, 1 Sep 2015 04:54:27 +0000 (12:54 +0800)]
drm/amdgpu: add AMDGPU_MAX_SDMA_INSTANCES
Remove the hardcoded usage
Signed-off-by: Jammy Zhou <Jammy.Zhou@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Jammy Zhou [Mon, 31 Aug 2015 06:06:39 +0000 (14:06 +0800)]
drm/amdgpu: add burst_nop flag for sdma
The burst NOP is supported for SDMA when feature_version is >= 20.
Signed-off-by: Jammy Zhou <Jammy.Zhou@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Jammy Zhou [Mon, 31 Aug 2015 06:01:05 +0000 (14:01 +0800)]
drm/amdgpu: add count field for the SDMA NOP packet v2
This is added to support the burst NOP
v2: squash the typo fix
Signed-off-by: Jammy Zhou <Jammy.Zhou@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Christian König [Tue, 1 Sep 2015 13:33:25 +0000 (15:33 +0200)]
drm/amdgpu: use PT for VM sync on unmap
Instead of the array which is used for ID management.
Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Jammy Zhou <Jammy.Zhou@amd.com>
Reviewed-by: Chunming Zhou <david1.zhou@amd.com>
Chunming Zhou [Mon, 31 Aug 2015 07:46:12 +0000 (15:46 +0800)]
drm/amdgpu: make wait_event uninterruptible in push_job
with interruptible, the push_job maybe return -ERESTARTSYS,
then result in push_job error.
E.g. bug trace:
[ 181.618860] *****amdgpu_copy_buffer:fence->seq:0x0000000048d8758b, contxt:
1207959552, ref:
683967304, r:-512
[ 181.618929] BUG: unable to handle kernel paging request at
ffffffff811aa266
[ 181.625887] IP: [<
ffffffff81548ffc>] reservation_object_add_excl_fence+0x3c/0x120
...
[ 181.859767] [<
ffffffff811aa266>] ? unmap_mapping_range+0x66/0x110
[ 181.865928] [<
ffffffffc0608ac1>] ttm_bo_move_accel_cleanup+0x41/0x3c0 [ttm]
[ 181.872971] [<
ffffffffc062d382>] amdgpu_move_blit.isra.18+0x122/0x150 [amdgpu]
[ 181.880254] [<
ffffffff811aa266>] ? unmap_mapping_range+0x66/0x110
[ 181.886420] [<
ffffffffc062d709>] amdgpu_bo_move+0xa9/0x200 [amdgpu]
[ 181.892753] [<
ffffffffc0606e8d>] ttm_bo_handle_move_mem+0x26d/0x5c0 [ttm]
Signed-off-by: Chunming Zhou <david1.zhou@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
Christian König [Fri, 28 Aug 2015 15:27:54 +0000 (17:27 +0200)]
drm/amdgpu: fix amdgpu_bo_unreserve order in GEM_OP IOCTL v2
No copy_(to|from)_user while BO is reserved.
v2: handle default path as well
Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Chunming Zhou <david1.zhou@amd.com>
Christian König [Wed, 2 Sep 2015 16:14:57 +0000 (12:14 -0400)]
drm/amdgpu: partially revert "modify amdgpu_fence_wait_any() to amdgpu_fence_wait_multiple()" v2
That isn't used any more.
v2: rebase
Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Chunming Zhou <david1.zhou@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Jeffery Miller [Tue, 1 Sep 2015 15:23:02 +0000 (11:23 -0400)]
Add radeon suspend/resume quirk for HP Compaq dc5750.
With the radeon driver loaded the HP Compaq dc5750
Small Form Factor machine fails to resume from suspend.
Adding a quirk similar to other devices avoids
the problem and the system resumes properly.
Signed-off-by: Jeffery Miller <jmiller@neverware.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Cc: stable@vger.kernel.org
Chunming Zhou [Mon, 24 Aug 2015 08:59:54 +0000 (16:59 +0800)]
drm/amdgpu: re-work sync_resv
sync_resv is to handle both amdgpu_fence and sched_fence.
Signed-off-by: Chunming Zhou <david1.zhou@amd.com>
Reviewed-by: Jammy Zhou <Jammy.Zhou@amd.com>
Reviewed-by: Christian K?nig <christian.koenig@amd.com>
Alex Deucher [Mon, 31 Aug 2015 15:08:44 +0000 (11:08 -0400)]
drm/amdgpu/atom: Send out the full AUX address
AUX addresses are 20 bits long. Send out the entire address instead of
just the low 16 bits.
Port of:
drm/radeon/atom: Send out the full AUX address
to amdgpu
Reviewed-by: Jammy Zhou <Jammy.Zhou@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Cc: stable@vger.kernel.org
Joonyoung Shim [Tue, 1 Sep 2015 07:22:55 +0000 (16:22 +0900)]
drm/exynos: remove buf_cnt from struct exynos_drm_fb
Looking other drm drivers, there is no the restriction that framebuffer
has only one buffer in .create_handle() callback. They use just first
buffer.
If this limitation is removed, there is no reason keeping buffer count
for framebuffer, so we can remove buf_cnt from struct exynos_drm_fb.
Signed-off-by: Joonyoung Shim <jy0922.shim@samsung.com>
Reviewed-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Joonyoung Shim [Tue, 1 Sep 2015 07:22:54 +0000 (16:22 +0900)]
drm/exynos: remove exynos_drm_fb_get_buf_cnt()
We can get buffer count of framebuffer using drm_format_num_planes(), so
keeping exynos_drm_fb_get_buf_cnt() is unnecessary.
Signed-off-by: Joonyoung Shim <jy0922.shim@samsung.com>
Reviewed-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Joonyoung Shim [Tue, 1 Sep 2015 07:22:53 +0000 (16:22 +0900)]
drm/exynos: cleanup exynos_user_fb_create()
Using exynos_drm_framebuffer_init(), redundant codes can be removed.
Signed-off-by: Joonyoung Shim <jy0922.shim@samsung.com>
Reviewed-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Joonyoung Shim [Tue, 1 Sep 2015 07:22:52 +0000 (16:22 +0900)]
drm/exynos: update exynos_drm_framebuffer_init() for multiple buffers
This modifies exynos_drm_framebuffer_init() to be possible to support
multiple buffers. Then it can be used by exynos_user_fb_create().
Signed-off-by: Joonyoung Shim <jy0922.shim@samsung.com>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Joonyoung Shim [Tue, 1 Sep 2015 07:22:51 +0000 (16:22 +0900)]
drm/exynos: cleanup to get gem object for fb
Current codes get first gem object and then again get remain gem
objects. They can be unified to one routine.
Signed-off-by: Joonyoung Shim <jy0922.shim@samsung.com>
Reviewed-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Joonyoung Shim [Tue, 1 Sep 2015 07:22:50 +0000 (16:22 +0900)]
drm/exynos: update fb_info via only one function
This patch moves codes to update fb_info into exynos_drm_fbdev_update(),
so fb_info is updated via only one function.
Signed-off-by: Joonyoung Shim <jy0922.shim@samsung.com>
Reviewed-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Joonyoung Shim [Tue, 1 Sep 2015 07:22:49 +0000 (16:22 +0900)]
drm/exynos: cleanup exynos_drm_fbdev_update()
It can get exynos_gem object via function argument, so no need to call
exynos_drm_fb_gem_obj() in exynos_drm_fbdev_update.
It also can get struct drm_framebuffer *fb via helper->fb, so can remove
a function argument for it.
Signed-off-by: Joonyoung Shim <jy0922.shim@samsung.com>
Reviewed-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Joonyoung Shim [Tue, 1 Sep 2015 07:22:48 +0000 (16:22 +0900)]
drm/exynos: s/exynos_gem_obj/obj in exynos_drm_fbdev.c
The variable name "exynos_gem_obj" is too long, so some lines exceed 80
characters. It's simple to use "obj" instead of "exynos_gem_obj".
Signed-off-by: Joonyoung Shim <jy0922.shim@samsung.com>
Reviewed-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Joonyoung Shim [Tue, 1 Sep 2015 07:22:47 +0000 (16:22 +0900)]
drm/exynos: remove exynos_drm_fb_set_buf_cnt()
The exynos_drm_fb_set_buf_cnt() is used to set buffer count only in
exynos_drm_fbdev_update(). This patch sets directly buffer count in
exynos_drm_framebuffer_init() without using exynos_drm_fb_set_buf_cnt(),
so there is no any reason to keep exynos_drm_fb_set_buf_cnt().
Signed-off-by: Joonyoung Shim <jy0922.shim@samsung.com>
Reviewed-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Tobias Jakobi [Mon, 17 Aug 2015 22:51:23 +0000 (00:51 +0200)]
drm/exynos: remove superfluous checks in g2d_check_reg_offset()
The cases of the switch statement ensure that reg_type
can never be REG_TYPE_NONE here.
Signed-off-by: Tobias Jakobi <tjakobi@math.uni-bielefeld.de>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Tobias Jakobi [Mon, 17 Aug 2015 22:51:24 +0000 (00:51 +0200)]
drm/exynos: fix size check in g2d_check_buf_desc_is_valid()
The size check was incomplete. It only computed the
size of area of the drawing rectangle and checked if
the size still fit inside the buffer.
The correct check is to compute the position of the
last byte that the G2D engine is going to access and
then check if that position is still contained in the
buffer. In particular we need the stride information
to determine this.
Signed-off-by: Tobias Jakobi <tjakobi@math.uni-bielefeld.de>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Alex Deucher [Mon, 31 Aug 2015 15:15:05 +0000 (11:15 -0400)]
drm/radeon/native: Send out the full AUX address
AUX addresses are 20 bits long. Send out the entire address instead of
just the low 16 bits.
Port of:
drm/radeon/atom: Send out the full AUX address
to radeon non-atom aux path
Reviewed-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Cc: stable@vger.kernel.org
Ville Syrjälä [Thu, 27 Aug 2015 14:23:31 +0000 (17:23 +0300)]
drm/radeon/atom: Send out the full AUX address
AUX addresses are 20 bits long. Send out the entire address instead of
just the low 16 bits.
Cc: Alex Deucher <alexander.deucher@amd.com>
Cc: "Christian König" <christian.koenig@amd.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Cc: stable@vger.kernel.org
Dave Airlie [Mon, 31 Aug 2015 00:25:45 +0000 (10:25 +1000)]
Merge branch 'exynos-drm-next' of git://git./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
Dave Airlie [Mon, 31 Aug 2015 00:06:22 +0000 (10:06 +1000)]
Merge tag 'drm-intel-next-fixes-2015-08-28' of 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
Dave Airlie [Mon, 31 Aug 2015 00:05:37 +0000 (10:05 +1000)]
Merge tag 'drm-amdkfd-next-fixes-2015-08-30' of 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>
Inki Dae [Sun, 30 Aug 2015 16:11:53 +0000 (01:11 +0900)]
drm/exynos: fix build warning to exynos_drm_gem.c
Signed-off-by: Inki Dae <daeinki@gmail.com>
Marek Szyprowski [Sun, 30 Aug 2015 15:53:57 +0000 (00:53 +0900)]
drm/exynos: Properly report supported formats for each device
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 <m.szyprowski@samsung.com>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Joonyoung Shim [Sun, 30 Aug 2015 15:45:56 +0000 (00:45 +0900)]
drm/exynos: add render node support
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 <jy0922.shim@samsung.com>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Hyungwon Hwang [Thu, 27 Aug 2015 09:21:14 +0000 (18:21 +0900)]
drm/exynos: implement atomic_{begin/flush} of DECON
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 <human.hwang@samsung.com>
Reviewed-by: Daniel Stone <daniels@collabora.com>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Gustavo Padovan [Sun, 30 Aug 2015 15:33:57 +0000 (00:33 +0900)]
drm/exynos: remove legacy ->suspend()/resume()
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 <gustavo.padovan@collabora.co.uk>
Signed-off-by: Inki Dae <daeinki@gmail.com>
Gustavo Padovan [Mon, 24 Aug 2015 11:52:19 +0000 (20:52 +0900)]
drm/exynos: Enable atomic modesetting feature
From: Gustavo Padovan <gustavo.padovan@collabora.co.uk>
Now that atomic modesetting is implemented for exynos enable the
DRIVER_ATOMIC flag on the driver's features.
Signed-off-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Gustavo Padovan [Sat, 15 Aug 2015 16:26:19 +0000 (13:26 -0300)]
drm/exynos: remove wait queue for pending page flip
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 <gustavo.padovan@collabora.co.uk>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Gustavo Padovan [Sat, 15 Aug 2015 16:26:18 +0000 (13:26 -0300)]
drm/exynos: wait all planes updates to finish
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 <gustavo.padovan@collabora.co.uk>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Gustavo Padovan [Sat, 15 Aug 2015 16:26:17 +0000 (13:26 -0300)]
drm/exynos: add atomic asynchronous commit
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 <gustavo.padovan@collabora.co.uk>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Gustavo Padovan [Sat, 15 Aug 2015 16:26:16 +0000 (13:26 -0300)]
drm/exynos: fimd: only finish update if START == START_S
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 <djkurtz@chromium.org>
Signed-off-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Gustavo Padovan [Sat, 15 Aug 2015 16:26:15 +0000 (13:26 -0300)]
drm/exynos: add macro to get the address of START_S reg
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 <gustavo.padovan@collabora.co.uk>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Gustavo Padovan [Sat, 15 Aug 2015 16:26:14 +0000 (13:26 -0300)]
drm/exynos: check for pending fb before finish update
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 <gustavo.padovan@collabora.co.uk>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
fixup! drm/exynos: check for pending fb before finish update
Gustavo Padovan [Sat, 15 Aug 2015 16:26:13 +0000 (13:26 -0300)]
drm/exynos: fimd: move window protect code to prepare/cleanup_plane
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 <gustavo.padovan@collabora.co.uk>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Gustavo Padovan [Mon, 24 Aug 2015 11:36:59 +0000 (20:36 +0900)]
drm/exynos: add prepare and cleanup phases for planes
From: Gustavo Padovan <gustavo.padovan@collabora.co.uk>
.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 <gustavo.padovan@collabora.co.uk>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Gustavo Padovan [Sat, 15 Aug 2015 16:26:11 +0000 (13:26 -0300)]
drm/exynos: fimd: unify call to exynos_drm_crtc_finish_pageflip()
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 <gustavo.padovan@collabora.co.uk>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Gustavo Padovan [Sat, 15 Aug 2015 16:26:10 +0000 (13:26 -0300)]
drm/exynos: don't track enabled state at exynos_crtc
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 <gustavo.padovan@collabora.co.uk>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Christoph Hellwig [Fri, 28 Aug 2015 07:27:16 +0000 (09:27 +0200)]
amdkfd: use <linux/mman.h> instead of <uapi/asm-generic/mman-common.h>
The latter is a default version of <asm/mman.h> and not for driver use.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Oded Gabbay <oded.gabbay@gmail.com>
Chunming Zhou [Thu, 27 Aug 2015 05:46:09 +0000 (13:46 +0800)]
drm/amdgpu: use IB for fill_buffer instead of direct command
Signed-off-by: Chunming Zhou <david1.zhou@amd.com>
Reviewed-by: Christian K?nig <christian.koenig@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Christian König [Thu, 7 May 2015 13:19:25 +0000 (15:19 +0200)]
drm/amdgpu: stop trying to suspend UVD sessions v2
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 <christian.koenig@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com> (v1)
Christian König [Tue, 25 Aug 2015 09:05:36 +0000 (11:05 +0200)]
drm/amdgpu: add scheduler dependency callback v2
This way the scheduler doesn't wait in it's work thread any more.
v2: fix race conditions
Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Chunming Zhou <david1.zhou@amd.com>
Reviewed-by: Jammy Zhou <Jammy.Zhou@amd.com>
Christian König [Wed, 26 Aug 2015 09:31:23 +0000 (11:31 +0200)]
drm/amdgpu: let the scheduler work more with jobs v2
v2: fix another race condition
Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Chunming Zhou <david1.zhou@amd.com>
Reviewed-by: Jammy Zhou <Jammy.Zhou@amd.com>
Alex Deucher [Thu, 27 Aug 2015 13:52:22 +0000 (09:52 -0400)]
drm/radeon: fix HDMI quantization_range for pre-DCE5 asics
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 <alexander.deucher@amd.com>
Cc: stable@vger.kernel.org
Dave Airlie [Fri, 28 Aug 2015 10:33:58 +0000 (20:33 +1000)]
drm/nouveau/dispnv04: fix build on powerpc
align with mask code in overlay.c, Ben can clean the naming
up later if necessary.
Signed-off-by: Dave Airlie <airlied@redhat.com>
Dave Airlie [Fri, 28 Aug 2015 08:18:10 +0000 (18:18 +1000)]
nouveau: fix powerpc build
Reported-by: Ilia Mirkin on irc.
Signed-off-by: Dave Airlie <airlied@redhat.com>
Dave Airlie [Fri, 28 Aug 2015 03:20:09 +0000 (13:20 +1000)]
Merge branch 'linux-4.3' of 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
...
Ben Skeggs [Thu, 20 Aug 2015 04:54:23 +0000 (14:54 +1000)]
drm/nouveau: bump driver version for release
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Thu, 20 Aug 2015 04:54:23 +0000 (14:54 +1000)]
drm/nouveau/tegra: merge platform setup from nouveau drm
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 <bskeggs@redhat.com>
Ben Skeggs [Thu, 20 Aug 2015 04:54:23 +0000 (14:54 +1000)]
drm/nouveau/pci: merge agp handling from nouveau drm
This commit reinstates the pre-DEVINIT AGP fiddling that was broken in
an earlier commit.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Thu, 20 Aug 2015 04:54:23 +0000 (14:54 +1000)]
drm/nouveau/device: remove pci/platform_device from common struct
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Thu, 20 Aug 2015 04:54:23 +0000 (14:54 +1000)]
drm/nouveau/device: import pciid list and integrate quirks with it
PCI IDs taken from the NVIDIA binary driver, with permission.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Thu, 20 Aug 2015 04:54:23 +0000 (14:54 +1000)]
drm/nouveau/device: cleaner abstraction for device resource functions
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Thu, 20 Aug 2015 04:54:22 +0000 (14:54 +1000)]
drm/nouveau/mc: move device irq handling to platform-specific code
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Thu, 20 Aug 2015 04:54:22 +0000 (14:54 +1000)]
drm/nouveau/mc/gf100-: handle second interrupt tree
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 <bskeggs@redhat.com>
Ben Skeggs [Thu, 20 Aug 2015 04:54:22 +0000 (14:54 +1000)]
drm/nouveau/mc: abstract interface to master intr registers
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Thu, 20 Aug 2015 04:54:22 +0000 (14:54 +1000)]
drm/nouveau/pci: new subdev
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Thu, 20 Aug 2015 04:54:22 +0000 (14:54 +1000)]
drm/nouveau/object: merge with handle
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Thu, 20 Aug 2015 04:54:22 +0000 (14:54 +1000)]
drm/nouveau/core: remove the remainder of the previous style
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Thu, 20 Aug 2015 04:54:22 +0000 (14:54 +1000)]
drm/nouveau/mpeg: convert to new-style nvkm_engine
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Thu, 20 Aug 2015 04:54:22 +0000 (14:54 +1000)]
drm/nouveau/sw: convert to new-style nvkm_engine
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Thu, 20 Aug 2015 04:54:22 +0000 (14:54 +1000)]
drm/nouveau/pm: convert to new-style nvkm_engine
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Thu, 20 Aug 2015 04:54:22 +0000 (14:54 +1000)]
drm/nouveau/gr: convert to new-style nvkm_engine
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Thu, 20 Aug 2015 04:54:22 +0000 (14:54 +1000)]
drm/nouveau/fifo: convert to new-style nvkm_engine
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Thu, 20 Aug 2015 04:54:22 +0000 (14:54 +1000)]
drm/nouveau/disp: convert to new-style nvkm_engine
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Thu, 20 Aug 2015 04:54:21 +0000 (14:54 +1000)]
drm/nouveau/dma: convert to new-style nvkm_engine
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Thu, 20 Aug 2015 04:54:21 +0000 (14:54 +1000)]
drm/nouveau/cipher: convert to new-style nvkm_engine
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Thu, 20 Aug 2015 04:54:21 +0000 (14:54 +1000)]
drm/nouveau/ce: convert to new-style nvkm_engine
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Thu, 20 Aug 2015 04:54:21 +0000 (14:54 +1000)]
drm/nouveau/xtensa: convert to new-style nvkm_engine
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Thu, 20 Aug 2015 04:54:21 +0000 (14:54 +1000)]
drm/nouveau/falcon: convert to new-style nvkm_engine
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Thu, 20 Aug 2015 04:54:21 +0000 (14:54 +1000)]
drm/nouveau/volt: convert to new-style nvkm_subdev
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Thu, 20 Aug 2015 04:54:21 +0000 (14:54 +1000)]
drm/nouveau/tmr: convert to new-style nvkm_subdev
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Thu, 20 Aug 2015 04:54:21 +0000 (14:54 +1000)]
drm/nouveau/therm: convert to new-style nvkm_subdev
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Thu, 20 Aug 2015 04:54:21 +0000 (14:54 +1000)]
drm/nouveau/pmu: convert to new-style nvkm_subdev
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Thu, 20 Aug 2015 04:54:21 +0000 (14:54 +1000)]
drm/nouveau/mxm: convert to new-style nvkm_subdev
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Thu, 20 Aug 2015 04:54:21 +0000 (14:54 +1000)]
drm/nouveau/mmu: convert to new-style nvkm_subdev
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Thu, 20 Aug 2015 04:54:21 +0000 (14:54 +1000)]
drm/nouveau/mc: convert to new-style nvkm_subdev
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Thu, 20 Aug 2015 04:54:21 +0000 (14:54 +1000)]
drm/nouveau/ltc: convert to new-style nvkm_subdev
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Thu, 20 Aug 2015 04:54:20 +0000 (14:54 +1000)]
drm/nouveau/imem: convert to new-style nvkm_subdev
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Thu, 20 Aug 2015 04:54:20 +0000 (14:54 +1000)]
drm/nouveau/devinit: run devinit scripts right after preinit
This ensures we have a valid mask of disabled engines before we start
trying to execute fini()/init() on the subdevs, potentially touching
devices that don't exist.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Thu, 20 Aug 2015 04:54:20 +0000 (14:54 +1000)]
drm/nouveau/ibus: convert to new-style nvkm_subdev
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Thu, 20 Aug 2015 04:54:20 +0000 (14:54 +1000)]
drm/nouveau/i2c: convert to new-style nvkm_subdev
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Thu, 20 Aug 2015 04:54:20 +0000 (14:54 +1000)]
drm/nouveau/gpio: convert to new-style nvkm_subdev
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Thu, 20 Aug 2015 04:54:20 +0000 (14:54 +1000)]
drm/nouveau/fuse: convert to new-style nvkm_subdev
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Thu, 20 Aug 2015 04:54:20 +0000 (14:54 +1000)]
drm/nouveau/fb: convert to new-style nvkm_subdev
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Thu, 20 Aug 2015 04:54:20 +0000 (14:54 +1000)]
drm/nouveau/devinit: convert to new-style nvkm_subdev
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Thu, 20 Aug 2015 04:54:20 +0000 (14:54 +1000)]
drm/nouveau/clk: convert to new-style nvkm_subdev
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Thu, 20 Aug 2015 04:54:20 +0000 (14:54 +1000)]
drm/nouveau/bus: convert to new-style nvkm_subdev
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Thu, 20 Aug 2015 04:54:20 +0000 (14:54 +1000)]
drm/nouveau/bios: convert to new-style nvkm_subdev
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs [Thu, 20 Aug 2015 04:54:20 +0000 (14:54 +1000)]
drm/nouveau/bar: convert to new-style nvkm_subdev
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>