16 Feb, 2018
1 commit
-
drm-misc-next for 4.17:
UAPI Changes:
- drm/vc4: Expose performance counters to userspace (Boris)Cross-subsystem Changes:
- MAINTAINERS: Linus to maintain panel-arm-versatile in -misc (Linus)Core Changes:
- Only use swiotlb when necessary (Chunming)Driver Changes:
- drm/panel: Add support for ARM Versatile panels (Linus)
- pl111: Improvements around versatile panel support (Linus)----------------------------------------
Tagged on 2018-02-06:
drm-misc-next for 4.17:UAPI Changes:
- Validate mode flags + type (Ville)
- Deprecate unused mode flags PIXMUX, BCAST (Ville)
- Deprecate unused mode types BUILTIN, CRTC_C, CLOCK_C, DEFAULT (Ville)Cross-subsystem Changes:
- MAINTAINERS: s/Daniel/Maarten/ for drm-misc (Daniel)Core Changes:
- gem: Export gem functions for drivers to use (Samuel)
- bridge: Introduce bridge timings in drm_bridge (Linus)
- dma-buf: Allow exclusive fence to be bundled in fence array when
calling reservation_object_get_fences_rcu (Christian)
- dp: Add training pattern 4 and HBR3 support to dp helpers (Manasi)
- fourcc: Add alpha bit to formats to avoid driver format LUTs (Maxime)
- mode: Various cleanups + add new device-wide .mode_valid hook (Ville)
- atomic: Fix state leak when non-blocking commits fail (Leo)
NOTE: IIRC, this was cross-picked to -fixes so it might fall out
- crc: Allow polling on the data fd (Maarten)Driver Changes:
- bridge/vga-dac: Add THS8134* support (Linus)
- tinydrm: Various MIPI DBI improvements/cleanups (Noralf)
- bridge/dw-mipi-dsi: Cleanups + use create_packet helper (Brian)
- drm/sun4i: Add Display Engine frontend support (Maxime)
- drm/sun4i: Add zpos support + increase num planes from 2 to 4 (Maxime)
- various: Use drm_mode_get_hv_timing() to fill plane clip rectangle (Ville)
- stm: Add 8-bit clut support, add dsi phy v1.31 support, +fixes (Phillipe)Cc: Boris Brezillon
Cc: Chunming Zhou
Cc: Samuel Li
Cc: Linus Walleij
Cc: Noralf Trønnes
Cc: Brian Norris
Cc: Maxime Ripard
Cc: Ville Syrjala
Cc: Christian König
Cc: Manasi Navare
Cc: Philippe Cornu
Cc: Leo (Sunpeng) Li
Cc: Daniel Vetter
Cc: Maarten Lankhorst* tag 'drm-misc-next-2018-02-13' of git://anongit.freedesktop.org/drm/drm-misc: (115 commits)
drm/radeon: only enable swiotlb path when need v2
drm/amdgpu: only enable swiotlb alloc when need v2
drm: add func to get max iomem address v2
drm/vc4: Expose performance counters to userspace
drm: Print the pid when debug logging an ioctl error.
drm/stm: ltdc: remove non-alpha color formats on layer 2 for older hw
drm/stm: ltdc: add non-alpha color formats
drm/bridge/synopsys: dsi: Add 1.31 version support
drm/bridge/synopsys: dsi: Add read feature
drm/pl111: Support multiple endpoints on the CLCD
drm/pl111: Support variants with broken VBLANK
drm/pl111: Support variants with broken clock divider
drm/pl111: Handle the Versatile RGB/BGR565 mode
drm/pl111: Properly detect the ARM PL110 variants
drm/panel: Add support for ARM Versatile panels
drm/panel: Device tree bindings for ARM Versatile panels
drm/bridge: Rename argument from crtc to bridge
drm/crc: Add support for polling on the data fd.
drm/sun4i: Use drm_mode_get_hv_timing() to populate plane clip rectangle
drm/rcar-du: Use drm_mode_get_hv_timing() to populate plane clip rectangle
...
24 Jan, 2018
1 commit
-
Change reservation_object_get_fences_rcu to make the exclusive fence
pointer optional.If not specified the exclusive fence is put into the fence array as
well.This is helpful for a couple of cases where we need all fences in a
single array.Reviewed-by: Chunming Zhou
Acked-by: Daniel Vetter
Signed-off-by: Christian König
Signed-off-by: Alex Deucher
Link: https://patchwork.freedesktop.org/patch/msgid/20180110125341.3618-1-christian.koenig@amd.com
23 Jan, 2018
1 commit
-
We need to set shared_count even if we already have a fence to wait for.
v2: init i to -1 as well
Signed-off-by: Christian König
Cc: stable@vger.kernel.org
Tested-by: Lyude Paul
Reviewed-by: Lyude Paul
Reviewed-by: Chris Wilson
Signed-off-by: Alex Deucher
Link: https://patchwork.freedesktop.org/patch/msgid/20180122200003.6665-1-christian.koenig@amd.com
15 Nov, 2017
2 commits
-
The amdgpu issue to also need signaled fences in the reservation objects should
be fixed by now.Optimize the handling by replacing a signaled fence when adding a new
shared one.Signed-off-by: Christian König
Reviewed-by: Chris Wilson
Signed-off-by: Alex Deucher
Link: https://patchwork.freedesktop.org/patch/msgid/20171114142436.1360-2-christian.koenig@amd.com -
The amdgpu issue to also need signaled fences in the reservation objects
should be fixed by now.Optimize the list by keeping only the not signaled yet fences around.
v2: temporary put the signaled fences at the end of the new container
v3: put the old fence at the end of the new container as well.Signed-off-by: Christian König
Reviewed-by: Chris Wilson
Tested-by: Chris Wilson
Signed-off-by: Alex Deucher
Link: https://patchwork.freedesktop.org/patch/msgid/20171114142436.1360-1-christian.koenig@amd.com
10 Nov, 2017
1 commit
-
Use rcu_assign_pointer() when setting an rcu protected pointer.
This gets rid of another sparse warning.Cc: Dave Airlie
Cc: Jason Ekstrand
Cc: linaro-mm-sig@lists.linaro.org
Cc: linux-media@vger.kernel.org
Cc: Alex Deucher
Cc: Christian König
Cc: Sumit Semwal
Cc: Chris Wilson
Signed-off-by: Ville Syrjälä
Link: https://patchwork.freedesktop.org/patch/msgid/20171102200336.23347-5-ville.syrjala@linux.intel.com
Reviewed-by: Daniel Vetter
Reviewed-by: Christian König .
Acked-by: Sumit Semwal
09 Oct, 2017
1 commit
-
Stop requiring that the src reservation object is locked for this operation.
Acked-by: Chunming Zhou
Signed-off-by: Christian König
Signed-off-by: Alex Deucher
Link: https://patchwork.freedesktop.org/patch/msgid/1504551766-5093-1-git-send-email-deathsimple@vodafone.de
15 Aug, 2017
2 commits
-
With hardware resets in mind it is possible that all shared fences are
signaled, but the exlusive isn't. Fix waiting for everything in this situation.v2: make sure we always wait for the exclusive fence
Acked-by: Sumit Semwal
Signed-off-by: Christian König
Reviewed-by: Alex Deucher
Reviewed-by: Chunming Zhou
Signed-off-by: Alex Deucher
Link: https://patchwork.freedesktop.org/patch/msgid/1502384509-10465-3-git-send-email-alexander.deucher@amd.com -
Allows us to copy all the fences in a reservation object to another one.
v2: handle NULL src_list
Signed-off-by: Christian König
Reviewed-by: Alex Deucher
Signed-off-by: Alex Deucher
Link: https://patchwork.freedesktop.org/patch/msgid/1502384509-10465-2-git-send-email-alexander.deucher@amd.com
10 Aug, 2017
1 commit
-
No need to check.
Acked-by: Sumit Semwal
Signed-off-by: Christian König
Reviewed-by: Alex Deucher
Signed-off-by: Alex Deucher
Link: https://patchwork.freedesktop.org/patch/msgid/1502141543-13455-2-git-send-email-alexander.deucher@amd.com
09 Nov, 2016
1 commit
-
Reverts commit fb8b7d2b9d80
("reservation: wait only with non-zero timeout specified (v3)")Otherwise signaling might never be activated on the fences. This can
result in infinite waiting with hardware which has unreliable interrupts.v2: still return one when the timeout is zero and we don't have any fences.
Reviewed-by: Alex Deucher
Signed-off-by: Christian König
Reviewed-by: Chunming Zhou (v1)
Signed-off-by: Alex Deucher
Reviewed-by: Gustavo Padovan
Signed-off-by: Sumit Semwal
[sumits: fix checkpatch warnings]
Link: http://patchwork.freedesktop.org/patch/msgid/1478553376-18575-4-git-send-email-alexander.deucher@amd.com
25 Oct, 2016
1 commit
-
I plan to usurp the short name of struct fence for a core kernel struct,
and so I need to rename the specialised fence/timeline for DMA
operations to make room.A consensus was reached in
https://lists.freedesktop.org/archives/dri-devel/2016-July/113083.html
that making clear this fence applies to DMA operations was a good thing.
Since then the patch has grown a bit as usage increases, so hopefully it
remains a good thing!(v2...: rebase, rerun spatch)
v3: Compile on msm, spotted a manual fixup that I broke.
v4: Try again for msm, sorry Danielcoccinelle script:
@@@@
- struct fence
+ struct dma_fence
@@@@
- struct fence_ops
+ struct dma_fence_ops
@@@@
- struct fence_cb
+ struct dma_fence_cb
@@@@
- struct fence_array
+ struct dma_fence_array
@@@@
- enum fence_flag_bits
+ enum dma_fence_flag_bits
@@@@
(
- fence_init
+ dma_fence_init
|
- fence_release
+ dma_fence_release
|
- fence_free
+ dma_fence_free
|
- fence_get
+ dma_fence_get
|
- fence_get_rcu
+ dma_fence_get_rcu
|
- fence_put
+ dma_fence_put
|
- fence_signal
+ dma_fence_signal
|
- fence_signal_locked
+ dma_fence_signal_locked
|
- fence_default_wait
+ dma_fence_default_wait
|
- fence_add_callback
+ dma_fence_add_callback
|
- fence_remove_callback
+ dma_fence_remove_callback
|
- fence_enable_sw_signaling
+ dma_fence_enable_sw_signaling
|
- fence_is_signaled_locked
+ dma_fence_is_signaled_locked
|
- fence_is_signaled
+ dma_fence_is_signaled
|
- fence_is_later
+ dma_fence_is_later
|
- fence_later
+ dma_fence_later
|
- fence_wait_timeout
+ dma_fence_wait_timeout
|
- fence_wait_any_timeout
+ dma_fence_wait_any_timeout
|
- fence_wait
+ dma_fence_wait
|
- fence_context_alloc
+ dma_fence_context_alloc
|
- fence_array_create
+ dma_fence_array_create
|
- to_fence_array
+ to_dma_fence_array
|
- fence_is_array
+ dma_fence_is_array
|
- trace_fence_emit
+ trace_dma_fence_emit
|
- FENCE_TRACE
+ DMA_FENCE_TRACE
|
- FENCE_WARN
+ DMA_FENCE_WARN
|
- FENCE_ERR
+ DMA_FENCE_ERR
)
(
...
)Signed-off-by: Chris Wilson
Reviewed-by: Gustavo Padovan
Acked-by: Sumit Semwal
Acked-by: Christian König
Signed-off-by: Daniel Vetter
Link: http://patchwork.freedesktop.org/patch/msgid/20161025120045.28839-1-chris@chris-wilson.co.uk
12 Oct, 2016
3 commits
-
In order to be completely generic, we have to double check the read
seqlock after acquiring a reference to the fence. If the driver is
allocating fences from a SLAB_DESTROY_BY_RCU, or similar freelist, then
within an RCU grace period a fence may be freed and reallocated. The RCU
read side critical section does not prevent this reallocation, instead
we have to inspect the reservation's seqlock to double check if the
fences have been reassigned as we were acquiring our reference.Signed-off-by: Chris Wilson
Cc: Daniel Vetter
Cc: Maarten Lankhorst
Cc: Christian König
Cc: Alex Deucher
Cc: Sumit Semwal
Cc: linux-media@vger.kernel.org
Cc: dri-devel@lists.freedesktop.org
Cc: linaro-mm-sig@lists.linaro.org
Reviewed-by: Daniel Vetter
Signed-off-by: Sumit Semwal
Link: http://patchwork.freedesktop.org/patch/msgid/20160829070834.22296-9-chris@chris-wilson.co.uk -
In order to be completely generic, we have to double check the read
seqlock after acquiring a reference to the fence. If the driver is
allocating fences from a SLAB_DESTROY_BY_RCU, or similar freelist, then
within an RCU grace period a fence may be freed and reallocated. The RCU
read side critical section does not prevent this reallocation, instead
we have to inspect the reservation's seqlock to double check if the
fences have been reassigned as we were acquiring our reference.Signed-off-by: Chris Wilson
Cc: Daniel Vetter
Cc: Maarten Lankhorst
Cc: Christian König
Cc: Alex Deucher
Cc: Sumit Semwal
Cc: linux-media@vger.kernel.org
Cc: dri-devel@lists.freedesktop.org
Cc: linaro-mm-sig@lists.linaro.org
Reviewed-by: Daniel Vetter
Signed-off-by: Sumit Semwal
Link: http://patchwork.freedesktop.org/patch/msgid/20160829070834.22296-8-chris@chris-wilson.co.uk -
In order to be completely generic, we have to double check the read
seqlock after acquiring a reference to the fence. If the driver is
allocating fences from a SLAB_DESTROY_BY_RCU, or similar freelist, then
within an RCU grace period a fence may be freed and reallocated. The RCU
read side critical section does not prevent this reallocation, instead
we have to inspect the reservation's seqlock to double check if the
fences have been reassigned as we were acquiring our reference.Signed-off-by: Chris Wilson
Cc: Daniel Vetter
Cc: Maarten Lankhorst
Cc: Christian König
Cc: Alex Deucher
Cc: Sumit Semwal
Cc: linux-media@vger.kernel.org
Cc: dri-devel@lists.freedesktop.org
Cc: linaro-mm-sig@lists.linaro.org
Reviewed-by: Daniel Vetter
Signed-off-by: Sumit Semwal
Link: http://patchwork.freedesktop.org/patch/msgid/20160829070834.22296-7-chris@chris-wilson.co.uk
22 Aug, 2016
1 commit
-
Signed-off-by: Rob Clark
[danvet: Mark up as function for proper cross-linking.]
Signed-off-by: Daniel Vetter
Link: http://patchwork.freedesktop.org/patch/msgid/1471640134-30888-1-git-send-email-robdclark@gmail.com
01 Jun, 2016
1 commit
-
Signed-off-by: Rob Clark
Signed-off-by: Sumit Semwal
21 May, 2015
1 commit
-
- WARNING: Missing a blank line after declarations
- WARNING: line over 80 characters
- WARNING: please, no space before tabsSigned-off-by: Jagan Teki
Cc: Sumit Semwal
Signed-off-by: Sumit Semwal
22 Jan, 2015
2 commits
-
It was causing the return value of fence_is_signaled to be ignored, making
reservation objects signal too early.Cc: stable@vger.kernel.org
Reviewed-by: Maarten Lankhorst
Reviewed-by: Alex Deucher
Signed-off-by: Michel Dänzer
Signed-off-by: Sumit Semwal -
When the timeout value passed to reservation_object_wait_timeout_rcu
is zero, no wait should be done if the fences are not signaled.Return '1' for idle and '0' for busy if the specified timeout is '0'
to keep consistent with the case of non-zero timeout.v2: call fence_put if not signaled in the case of timeout==0
v3: switch to reservation_object_test_signaled_rcu
Signed-off-by: Jammy Zhou
Reviewed-by: Christian König
Reviewed-by: Alex Deucher
Reviewed-By: Maarten Lankhorst
Signed-off-by: Sumit Semwal
09 Jul, 2014
3 commits
-
This adds some extra functions to deal with rcu.
reservation_object_get_fences_rcu() will obtain the list of shared
and exclusive fences without obtaining the ww_mutex.reservation_object_wait_timeout_rcu() will wait on all fences of the
reservation_object, without obtaining the ww_mutex.reservation_object_test_signaled_rcu() will test if all fences of the
reservation_object are signaled without using the ww_mutex.reservation_object_get_excl and reservation_object_get_list require
the reservation object to be held, updating requires
write_seqcount_begin/end. If only the exclusive fence is needed,
rcu_dereference followed by fence_get_rcu can be used, if the shared
fences are needed it's recommended to use the supplied functions.Signed-off-by: Maarten Lankhorst
Acked-by: Sumit Semwal
Acked-by: Daniel Vetter
Reviewed-By: Thomas Hellstrom
Signed-off-by: Greg Kroah-Hartman -
Move the list of shared fences to a struct, and return it in
reservation_object_get_list().
Add reservation_object_get_excl to get the exclusive fence.Add reservation_object_reserve_shared(), which reserves space
in the reservation_object for 1 more shared fence.reservation_object_add_shared_fence() and
reservation_object_add_excl_fence() are used to assign a new
fence to a reservation_object pointer, to complete a reservation.Changes since v1:
- Add reservation_object_get_excl, reorder code a bit.Signed-off-by: Maarten Lankhorst
Acked-by: Sumit Semwal
Acked-by: Daniel Vetter
Signed-off-by: Greg Kroah-Hartman -
Signed-off-by: Maarten Lankhorst
Acked-by: Sumit Semwal
Acked-by: Daniel Vetter
Signed-off-by: Greg Kroah-Hartman