linux/drivers/media/platform/s5p-mfc
Sylwester Nawrocki 4faeaf9c0f media: s5p-mfc: Fix buffer look up in s5p_mfc_handle_frame_{new, copy_time} functions
Look up of buffers in s5p_mfc_handle_frame_new, s5p_mfc_handle_frame_copy_time
functions is not working properly for DMA addresses above 2 GiB. As a result
flags and timestamp of returned buffers are not set correctly and it breaks
operation of GStreamer/OMX plugins which rely on the CAPTURE buffer queue
flags.

Due to improper return type of the get_dec_y_adr, get_dspl_y_adr callbacks
and sign bit extension these callbacks return incorrect address values,
e.g. 0xfffffffffefc0000 instead of 0x00000000fefc0000. Then the statement:

"if (vb2_dma_contig_plane_dma_addr(&dst_buf->b->vb2_buf, 0) == dec_y_addr)"

is always false, which breaks looking up capture queue buffers.

To ensure proper matching by address u32 type is used for the DMA
addresses. This should work on all related SoCs, since the MFC DMA
address width is not larger than 32-bit.

Changes done in this patch are minimal as there is a larger patch series
pending refactoring the whole driver.

Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
2018-07-27 13:09:40 -04:00
..
Makefile License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
regs-mfc-v6.h [media] s5p-mfc: Reduce firmware buffer size for MFC v6+ variants 2017-04-05 15:55:39 -03:00
regs-mfc-v7.h [media] s5p-mfc: Reduce firmware buffer size for MFC v6+ variants 2017-04-05 15:55:39 -03:00
regs-mfc-v8.h media: s5p-mfc: Use min scratch buffer size as provided by F/W 2018-03-22 07:08:26 -04:00
regs-mfc-v10.h media: s5p-mfc: Add support for HEVC encoder 2018-03-22 07:19:23 -04:00
regs-mfc.h [media] s5p-mfc: Skip incomplete frame 2016-11-16 16:39:35 -02:00
s5p_mfc_cmd_v5.c [media] s5p-mfc: Put firmware to private buffer structure 2017-04-05 15:53:06 -03:00
s5p_mfc_cmd_v5.h
s5p_mfc_cmd_v6.c media: s5p-mfc: Add support for HEVC encoder 2018-03-22 07:19:23 -04:00
s5p_mfc_cmd_v6.h
s5p_mfc_cmd.c
s5p_mfc_cmd.h
s5p_mfc_common.h media: s5p-mfc: Add support for HEVC encoder 2018-03-22 07:19:23 -04:00
s5p_mfc_ctrl.c media: s5p-mfc: Use real device for request_firmware() call 2018-03-22 07:19:52 -04:00
s5p_mfc_ctrl.h [media] s5p-mfc: Remove unused structures and dead code 2017-04-05 15:45:43 -03:00
s5p_mfc_debug.h [media] s5p-mfc: Use printk_ratelimited for reporting ioctl errors 2016-11-30 09:16:23 -02:00
s5p_mfc_dec.c media: s5p-mfc: fix two sparse warnings 2018-05-25 15:31:00 -04:00
s5p_mfc_dec.h [media] s5p-mfc: constify s5p_mfc_codec_ops structures 2015-12-23 13:52:30 -02:00
s5p_mfc_enc.c media: v4l2-ctrl: Change control for VP8 profile to menu control 2018-07-04 09:28:38 -04:00
s5p_mfc_enc.h [media] s5p-mfc: constify s5p_mfc_codec_ops structures 2015-12-23 13:52:30 -02:00
s5p_mfc_intr.c
s5p_mfc_intr.h
s5p_mfc_iommu.h [media] s5p-mfc: Remove special configuration of IOMMU domain 2017-04-05 16:02:26 -03:00
s5p_mfc_opr_v5.c [media] s5p-mfc: fix spelling mistake: "destionation" -> "destination" 2017-06-13 14:01:10 -03:00
s5p_mfc_opr_v5.h
s5p_mfc_opr_v6.c media: s5p-mfc: Add support for HEVC encoder 2018-03-22 07:19:23 -04:00
s5p_mfc_opr_v6.h media: s5p-mfc: Add support for HEVC encoder 2018-03-22 07:19:23 -04:00
s5p_mfc_opr.c [media] s5p-mfc: Don't allocate codec buffers from pre-allocated region 2017-04-05 16:36:53 -03:00
s5p_mfc_opr.h media: s5p-mfc: Add support for HEVC encoder 2018-03-22 07:19:23 -04:00
s5p_mfc_pm.c [media] s5p-mfc: Rework clock handling 2016-11-30 09:21:30 -02:00
s5p_mfc_pm.h
s5p_mfc.c media: s5p-mfc: Fix buffer look up in s5p_mfc_handle_frame_{new, copy_time} functions 2018-07-27 13:09:40 -04:00