android_kernel_motorola_sm6225/drivers/media
Kieran Bingham 5e0594fd77 drm: rcar-du: Repair vblank for DRM page flips using the VSP
The driver recently switched from handling page flip completion in the
DU vertical blanking handler to the VSP frame end handler to fix a race
condition. This unfortunately resulted in incorrect timestamps in the
vertical blanking events sent to userspace as vertical blanking is now
handled after sending the event.

To fix this we must reverse the order of the two operations. The easiest
way is to handle vertical blanking in the VSP frame end handler before
sending the event. The VSP frame end interrupt occurs approximately 50µs
earlier than the DU frame end interrupt, but this should not cause any
undue harm.

As we need to handle vertical blanking even when page flip completion is
delayed, the VSP driver now needs to call the frame end completion
callback unconditionally, with a new argument to report whether page
flip has completed.

With this new scheme the DU vertical blanking interrupt isn't needed
anymore, so we can stop enabling it.

Fixes: d503a43ac0 ("drm: rcar-du: Register a completion callback with VSP1")
Signed-off-by: Kieran Bingham <kieran.bingham+renesas@ideasonboard.com>
Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Acked-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
2017-08-03 16:17:30 +03:00
..
cec Linux 4.12-rc6 2017-06-20 08:51:56 -03:00
common [media] b2c2: constify nxt200x_config structure 2017-04-17 12:18:18 -03:00
dvb-core media updates for v4.13-rc1 2017-07-06 11:15:19 -07:00
dvb-frontends [media] af9013: refactor power control 2017-06-20 10:35:08 -03:00
firewire [media] firewire: don't break long lines 2016-10-21 10:06:00 -02:00
i2c [media] media: i2c: ov772x: Force use of SCCB protocol 2017-06-23 08:28:05 -03:00
mmc [media] siano: register media controller earlier 2015-02-26 09:10:39 -03:00
pci media updates for v4.13-rc1 2017-07-06 11:15:19 -07:00
platform drm: rcar-du: Repair vblank for DRM page flips using the VSP 2017-08-03 16:17:30 +03:00
radio networking: make skb_put & friends return void pointers 2017-06-16 11:48:39 -04:00
rc [media] rc-core: cleanup rc_register_device pt2 2017-06-13 13:55:01 -03:00
spi [media] gs1662: drop kfree for memory allocated with devm_kzalloc 2016-10-24 17:59:08 -02:00
tuners [media] xc5000: Don't spin waiting for analog lock 2017-06-06 07:51:05 -03:00
usb [media] af9015: move 2nd demod power-up wait different location 2017-06-20 10:26:13 -03:00
v4l2-core [media] v4l2-ioctl/exynos: fix G/S_SELECTION's type handling 2017-06-23 09:20:42 -03:00
Kconfig [media] cec: rename MEDIA_CEC_NOTIFIER to CEC_NOTIFIER 2017-06-04 15:23:35 -03:00
Makefile [media] cec: select CEC_CORE instead of depend on it 2017-06-04 15:23:33 -03:00
media-device.c [media] media: Rename graph and pipeline structs and functions 2017-01-27 16:13:24 -02:00
media-devnode.c media: utilize new cdev_device_add helper function 2017-03-21 06:44:33 +01:00
media-entity.c [media] media: entity: Catch unbalanced media_pipeline_stop calls 2017-06-23 09:23:36 -03:00