linux/drivers/gpu/drm
Liviu Dudau 1cb3cbe732 drm/mali-dp: Add writeback support for DP500.
Mali DP500 behaves differently from the rest of the Mali DP IP,
in that it does not have a one-shot mode and keeps writing the
content of the current frame to the provided memory area until
stopped. As a way of emulating the one-shot behaviour, we are
going to use the CVAL interrupt that is being raised at the
start of each frame, during prefetch phase, to act as End-of-Write
signal, but with a twist: we are going to disable the memory
write engine right after we're notified that it has been enabled,
using the knowledge that the bit controlling the enabling will
only be acted upon on the next vblank/prefetch.

CVAL interrupt will fire durint the next prefetch phase every time
the global CVAL bit gets set, so we need a state byte to track
the memory write enabling. We also need to pay attention during the
disabling of the memory write engine as that requires the CVAL bit
to be set in the control register, but we don't want to do that
during an atomic commit, as it will write into the hardware a partial
state.

Reviewed-by: Brian Starkey <brian.starkey@arm.com>
Signed-off-by: Liviu Dudau <liviu.dudau@arm.com>
2018-07-05 15:19:02 +01:00
..
amd Merge v4.18-rc3 into drm-next 2018-07-04 10:27:12 +10:00
arc drm/arc: Stop consulting plane->fb 2018-05-25 20:08:27 +03:00
arm drm/mali-dp: Add writeback support for DP500. 2018-07-05 15:19:02 +01:00
armada dma-buf: remove kmap_atomic interface 2018-06-20 15:59:34 +02:00
ast drm/ast: fix mode_valid's return type 2018-04-25 09:09:22 +02:00
atmel-hlcdc Merge v4.18-rc3 into drm-next 2018-07-04 10:27:12 +10:00
bochs drm/bochs: fix mode_valid's return type 2018-04-25 09:34:00 +02:00
bridge Merge v4.18-rc3 into drm-next 2018-07-04 10:27:12 +10:00
cirrus drm/cirrus: cirrus_framebuffer -> drm_framebuffer 2018-05-18 14:52:30 +01:00
etnaviv Merge branch 'etnaviv/next' of https://git.pengutronix.de/git/lst/linux into drm-next 2018-05-22 10:43:27 +10:00
exynos drm-misc-next for 4.19: 2018-06-22 12:58:08 +10:00
fsl-dcu
gma500 drm-misc-next for 4.19: 2018-06-28 13:29:07 +10:00
hisilicon drm: kirin: Remove useless "Scale not support" error message 2018-06-25 18:09:38 +02:00
i2c Merge drm-upstream/drm-next into drm-misc-next 2018-06-20 13:22:22 -03:00
i810
i915 Merge v4.18-rc3 into drm-next 2018-07-04 10:27:12 +10:00
imx Linux 4.16-rc7 2018-03-28 14:30:41 +10:00
lib
mediatek Merge drm-upstream/drm-next into drm-misc-next 2018-06-20 13:22:22 -03:00
meson drm/meson: Fix an un-handled error path in 'meson_drv_bind_master()' 2018-06-26 10:22:29 +02:00
mga
mgag200 drm/mgag200: fix mode_valid's return type 2018-04-25 09:09:22 +02:00
msm drm-misc-next for 4.19: 2018-06-22 12:58:08 +10:00
mxsfb drm/mxsfb: Use simple_display_pipe prepare_fb helper 2018-04-24 13:58:43 +02:00
nouveau Merge branch 'linux-4.18' of git://github.com/skeggsb/linux into drm-fixes 2018-06-20 16:57:09 +10:00
omapdrm drm/omap: remove now unused functions 2018-06-25 13:28:06 +10:00
panel drm/panel: Add Ilitek ILI9881c panel driver 2018-06-25 20:03:40 +02:00
pl111 drm/pl111: Fix module probe bug 2018-05-04 00:13:41 +02:00
qxl Only a small qxl fix that was queued for v4.17. 2018-06-20 16:58:49 +10:00
r128 r128: don't open-code memdup_user() 2017-12-27 19:00:09 -05:00
radeon Merge branch 'drm-next-4.19' of git://people.freedesktop.org/~agd5f/linux into drm-next 2018-06-22 13:19:05 +10:00
rcar-du DeviceTree updates for v4.18: 2018-06-07 14:06:31 -07:00
rockchip drm/rockchip: vop: fixup linebuffer mode calc error 2018-06-27 14:07:40 +02:00
savage treewide: kmalloc() -> kmalloc_array() 2018-06-12 16:19:22 -07:00
scheduler drm/scheduler: Avoid using wait_event_killable for dying process (V4) 2018-06-15 12:20:33 -05:00
selftests drm-misc-next for 4.19: 2018-06-22 12:58:08 +10:00
shmobile drm: shmobile: remove unused MERAM support 2018-05-14 15:47:30 +02:00
sis
sti drm/sti: Stop consulting plane->crtc 2018-05-25 20:08:27 +03:00
stm drm/stm: ltdc: fix warnings in ltdc_plane_create() 2018-04-27 11:02:58 +02:00
sun4i Merge v4.18-rc3 into drm-next 2018-07-04 10:27:12 +10:00
tdfx
tegra Merge drm-upstream/drm-next into drm-misc-next 2018-06-20 13:22:22 -03:00
tilcdc drm/tilcdc: Fix setting clock divider for omap-l138 2018-05-09 19:55:18 +03:00
tinydrm drm-misc-next for 4.19: 2018-06-28 13:29:07 +10:00
ttm Merge branch 'drm-next-4.19' of git://people.freedesktop.org/~agd5f/linux into drm-next 2018-06-22 13:19:05 +10:00
tve200 drm/tve200: Use simple_display_pipe prepare_fb helper 2018-04-24 13:58:06 +02:00
udl dma-buf: remove kmap_atomic interface 2018-06-20 15:59:34 +02:00
v3d drm/v3d: Remove the bad signaled() implementation. 2018-06-21 14:46:05 -07:00
vc4 drm-misc-next for 4.19: 2018-06-28 13:29:07 +10:00
vgem gpu: drm: vgem: Change return type to vm_fault_t 2018-05-24 14:56:57 +02:00
via treewide: Use array_size() in vzalloc() 2018-06-12 16:19:22 -07:00
virtio drm/virtio: Stop updating plane->crtc 2018-06-11 20:22:44 +03:00
vmwgfx drm-misc-next for 4.19: 2018-06-22 12:58:08 +10:00
xen drm-misc-next for 4.19: 2018-06-22 12:58:08 +10:00
zte drm/zte: Stop consulting plane->crtc 2018-03-29 19:14:21 +03:00
ati_pcigart.c
drm_agpsupport.c
drm_atomic_helper.c drm: Add writeback connector type 2018-06-20 15:27:49 +01:00
drm_atomic.c Merge drm-upstream/drm-next into drm-misc-next 2018-06-20 13:22:22 -03:00
drm_auth.c drm: Check for lessee in DROP_MASTER ioctl 2018-01-31 09:27:51 +01:00
drm_blend.c drm/blend: Add a generic alpha property 2018-04-16 21:17:29 +02:00
drm_bridge.c
drm_bufs.c drm: dma_bufs: Fixed checkpatch issues 2018-03-19 09:31:20 -04:00
drm_cache.c
drm_color_mgmt.c kernel.h: Retain constant expression output for max()/min() 2018-04-05 14:17:16 -07:00
drm_connector.c drm: Add writeback connector type 2018-06-20 15:27:49 +01:00
drm_context.c
drm_crtc_helper_internal.h
drm_crtc_helper.c
drm_crtc_internal.h drm: Make ioctls available for in-kernel clients 2018-06-25 16:20:14 +02:00
drm_crtc.c drm: Add checks for atomic_[duplicate/destroy]_state with atomic drivers 2018-06-18 09:20:51 +02:00
drm_debugfs_crc.c drm/crc: Add support for polling on the data fd. 2018-02-05 13:22:44 +01:00
drm_debugfs.c
drm_dma.c
drm_dp_aux_dev.c sched/wait, drivers/drm: Convert wait_on_atomic_t() usage to the new wait_var_event() API 2018-03-20 08:23:18 +01:00
drm_dp_dual_mode_helper.c drm/i915: Fix LSPCON TMDS output buffer enabling from low-power state 2018-04-18 16:33:14 +03:00
drm_dp_helper.c drm for v4.18-rc1 2018-06-06 08:16:33 -07:00
drm_dp_mst_topology.c drm/dp/mst: Fix off-by-one typo when dump payload table 2018-03-28 09:12:16 +03:00
drm_drv.c Single fix for v4.18: 2018-06-20 16:58:31 +10:00
drm_dumb_buffers.c drm-misc-next for 4.19: 2018-06-28 13:29:07 +10:00
drm_edid_load.c
drm_edid.c drm-misc-next for 4.19: 2018-06-22 12:58:08 +10:00
drm_encoder_slave.c
drm_encoder.c drm: Warn if plane/crtc/encoder/connector index exceeds our 32bit bitmasks 2018-01-29 18:46:53 +02:00
drm_fb_cma_helper.c
drm_fb_helper.c drm: Stop updating plane->crtc/fb/old_fb on atomic drivers 2018-06-11 20:22:44 +03:00
drm_file.c drm/file: Don't set master on in-kernel clients 2018-06-25 16:18:39 +02:00
drm_flip_work.c
drm_fourcc.c drm/fourcc: Add a alpha field to drm_format_info 2018-01-29 12:07:47 +01:00
drm_framebuffer.c drm: Make ioctls available for in-kernel clients 2018-06-25 16:20:14 +02:00
drm_gem_cma_helper.c
drm_gem_framebuffer_helper.c drm/gem-fb-helper: Always do implicit sync 2018-06-20 14:43:13 +02:00
drm_gem.c drm/gem: Document that handle_create must be the last step 2018-03-26 17:42:06 +02:00
drm_global.c
drm_hashtab.c treewide: Use array_size() in vzalloc() 2018-06-12 16:19:22 -07:00
drm_info.c
drm_internal.h drm: provide management functions for drm_file 2018-06-25 16:17:03 +02:00
drm_ioc32.c drm: Drop DRM_CONTROL_ALLOW from ioctls 2018-05-03 11:28:02 +02:00
drm_ioctl.c drm: Make ioctls available for in-kernel clients 2018-06-25 16:20:14 +02:00
drm_irq.c
drm_kms_helper_common.c
drm_lease.c gpu: drm/lease:: Use list_{next/prev}_entry instead of list_entry 2018-03-26 10:38:06 +02:00
drm_legacy.h
drm_lock.c
drm_memory.c treewide: Use array_size() in vmalloc() 2018-06-12 16:19:22 -07:00
drm_mipi_dsi.c drm/dsi: Fix improper use of mipi_dsi_device_transfer() return value 2018-01-16 17:10:14 -05:00
drm_mm.c drm/mm: Add a search-by-address variant to only inspect a single hole 2018-05-24 15:04:30 +01:00
drm_mode_config.c drm: writeback: Add client capability for exposing writeback connectors 2018-06-20 15:30:20 +01:00
drm_mode_object.c
drm_modes.c drm: Print bad user modes 2018-06-15 23:31:07 +03:00
drm_modeset_helper.c
drm_modeset_lock.c drm/atomic: Call ww_acquire_done after drm_modeset_lock_all 2018-03-05 10:35:32 +01:00
drm_of.c drm: of: Export and rename drm_crtc_port_mask() 2018-06-27 21:44:04 +02:00
drm_panel_orientation_quirks.c drm: panel-orientation-quirks: Convert to use match_string() helper 2018-05-10 11:36:25 -04:00
drm_panel.c drm/panel: Add device_link from panel device to DRM device 2018-05-18 11:22:06 +02:00
drm_pci.c
drm_plane_helper.c drm: Stop updating plane->crtc/fb/old_fb on atomic drivers 2018-06-11 20:22:44 +03:00
drm_plane.c drm: Add checks for atomic_[duplicate/destroy]_state with atomic drivers 2018-06-18 09:20:51 +02:00
drm_prime.c dma-buf: remove kmap_atomic interface 2018-06-20 15:59:34 +02:00
drm_print.c drm: Reduce object size of DRM_DEV_<LEVEL> uses 2018-03-19 15:15:42 +01:00
drm_probe_helper.c Linux 4.16-rc7 2018-03-28 14:30:41 +10:00
drm_property.c drm: Don't pass the index to drm_property_add_enum() 2018-04-27 16:46:50 +03:00
drm_rect.c drm/rect: Handle rounding errors in drm_rect_clip_scaled, v3. 2018-05-04 11:09:54 +02:00
drm_scatter.c
drm_scdc_helper.c drm/scdc-helper: Convert errors into debug messages 2018-03-26 21:37:24 +03:00
drm_simple_kms_helper.c drm/simple-kms-helper: Plumb plane state to the enable hook 2018-03-28 19:19:32 +03:00
drm_syncobj.c Revert 190c462d5be19ba622a82f5fd0625087c870a1e6..bf3012ada1b2222e770de5c35c1bb16f73b3a01d" 2018-05-03 12:38:39 +02:00
drm_sysfs.c drm: remove all control node code 2018-05-03 21:26:32 +02:00
drm_trace_points.c
drm_trace.h
drm_vblank.c Merge tag 'drm-intel-next-2018-03-08' of git://anongit.freedesktop.org/drm/drm-intel into drm-next 2018-03-14 14:53:01 +10:00
drm_vm.c gpu: drm: drm_vm: Adding new typedef vm_fault_t 2018-05-29 08:58:46 +02:00
drm_vma_manager.c
drm_writeback.c drm: writeback: Add out-fences for writeback connectors 2018-06-20 15:29:18 +01:00
Kconfig drm/selftests: Add drm helper selftest 2018-05-04 11:36:45 +02:00
Makefile drm: Add writeback connector type 2018-06-20 15:27:49 +01:00