linux/drivers/media/platform
Pawel Osciak a0517f5d4d [media] s5p-mfc: Copy timestamps only when a frame is produced
Timestamps for destination buffers are assigned by copying them from
corresponding source buffers when the decode operation results in a frame
being outputted to a destination buffer. But the decision when to do this, i.e.
whether the decode operation on current source buffer produced a destination
frame, is wrongly based on "display status". Display status reflects the status
of the destination buffer, not source.

This used to work for firmwares version <= 6, because in addition to the above,
we'd check the decoded frame type register, which was set to "skipped" if
a destination frame was not produced, exiting early from
s5p_mfc_handle_frame_new().
Firmware >=7 does not set the frame type register for frames that were not
decoded anymore though, which results in us wrongly overwriting timestamps of
previously decoded buffers (firmware reports the same destination buffer address
as previously decoded one if a frame wasn't decoded during current operation).

To do it properly, we should be basing our decision to copy the timestamp on the
status of the source buffer, i.e. "decode status". The decode status register
values are confusing, because in its case "display" means "a frame has been
outputted to a destination buffer". We should copy if "decode and display"
is returned in it. This also works on <= v6 firmware, which behaves in the same
way with regards to decode status register.

Signed-off-by: Pawel Osciak <posciak@chromium.org>
Signed-off-by: Arun Kumar K <arun.kk@samsung.com>
Signed-off-by: Kamil Debski <k.debski@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
2014-05-23 14:58:40 -03:00
..
blackfin [media] bfin_capture: drop unnecessary vb2_is_streaming check 2014-04-23 10:13:23 -03:00
davinci [media] media: davinci: vpbe: release buffers in case start_streaming call back fails 2014-05-23 12:20:33 -03:00
exynos4-is [media] s5p-fimc: Reuse calculated sizes 2014-05-13 20:06:58 -03:00
exynos-gsc [media] vb2: stop_streaming should return void 2014-04-23 10:12:51 -03:00
marvell-ccic [media] vb2: stop_streaming should return void 2014-04-23 10:12:51 -03:00
omap [media] omap_vout: Add DVI display type support 2014-03-11 12:10:06 -03:00
omap3isp [media] omap3isp: Fix kerneldoc for _module_sync_is_stopping and isp_isr() 2014-03-05 17:02:07 -03:00
s3c-camif [media] vb2: stop_streaming should return void 2014-04-23 10:12:51 -03:00
s5p-g2d [media] v4l: Copy timestamp source flags to destination on m2m devices 2014-03-05 16:47:15 -03:00
s5p-jpeg [media] s5p-jpeg: Fix NV12 format entry related to S5C2120 SoC 2014-05-13 20:23:03 -03:00
s5p-mfc [media] s5p-mfc: Copy timestamps only when a frame is produced 2014-05-23 14:58:40 -03:00
s5p-tv [media] vb2: stop_streaming should return void 2014-04-23 10:12:51 -03:00
soc_camera [media] soc_camera: disable STD ioctls if no tvnorms are set 2014-05-13 19:56:09 -03:00
ti-vpe [media] v4l: ti-vpe: Rename csc memory resource name 2014-05-23 14:33:17 -03:00
vsp1 [media] vb2: stop_streaming should return void 2014-04-23 10:12:51 -03:00
arv.c [media] arv: fix sleep_on race 2014-03-11 09:23:10 -03:00
coda.c [media] media: coda: Use full device name for request_irq() 2014-05-23 12:21:09 -03:00
coda.h [media] coda: add CODA7541 decoding support 2013-07-31 15:56:44 -03:00
fsl-viu.c fsl-viu: adjust for OF based clock lookup 2014-01-12 18:53:05 +01:00
indycam.c [media] indycam: remove g_chip_ident op 2013-06-17 08:49:47 -03:00
indycam.h
Kconfig platform: Fix timberdale dependencies 2014-04-16 11:57:27 +05:30
m2m-deinterlace.c [media] v4l: Copy timestamp source flags to destination on m2m devices 2014-03-05 16:47:15 -03:00
Makefile [media] omap24xx/tcm825x: move to staging for future removal 2013-12-20 13:45:22 -02:00
mem2mem_testdev.c [media] vb2: stop_streaming should return void 2014-04-23 10:12:51 -03:00
mx2_emmaprp.c [media] media: mx2-emmaprp: Add missing mutex_destroy() 2014-05-23 14:57:35 -03:00
sh_veu.c sh_veu: Replace PTR_RET with PTR_ERR_OR_ZERO 2013-07-16 16:06:01 +09:30
sh_vou.c [media] sh_vou: comment unused vars 2014-01-13 11:30:26 -02:00
timblogiw.c [media] timblogiw: Introduce the use of the managed version of kzalloc 2014-05-23 12:19:19 -03:00
via-camera.c [media] via-camera: replace current_norm by g_std 2013-06-17 09:33:49 -03:00
via-camera.h
vino.c [media] v4l2: pass std by value to the write-only s_std ioctl 2013-03-24 06:47:00 -03:00
vino.h
vivi.c [media] vb2: stop_streaming should return void 2014-04-23 10:12:51 -03:00