linux/drivers/media
Laurent Pinchart 4d346be55d [media] v4l: vsp1: Don't configure RPF memory buffers before calculating offsets
The RPF source memory pointers need to be offset to take the crop
rectangle into account. Offsets are computed in the RPF stream start,
which can happen (when using the DRM pipeline) after calling the RPF
.set_memory() operation that programs the buffer addresses.

The .set_memory() operation tries to guard against the problem by
skipping programming of the registers when the module isn't streaming.
This will however only protect the first use of an RPF in a DRM
pipeline, as in all subsequent uses the module streaming flag will be
set and the .set_memory() operation will use potentially incorrect
offsets.

Fix this by allowing the caller to decide whether to program the
hardware immediately or just cache the addresses. While at it refactor
the memory set code and create a new vsp1_rwpf_set_memory() that cache
addresses and calls the .set_memory() operation to apply them to the
hardware.

As a side effect the driver now writes all three DMA address registers
regardless of the number of planes, and initializes unused addresses to
zero.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
2016-04-13 17:43:57 -03:00
..
common [media] siano: firmware buffer is too small 2016-02-16 09:29:13 -02:00
dvb-core [media] dvb-core: fix return code checking for devices with CA 2016-03-03 14:33:33 -03:00
dvb-frontends [media] cx24120: make sure tuner is locked at get_frontend 2016-03-03 14:26:55 -03:00
firewire [media] dvb: modify core to implement interfaces/entities at MC new gen 2016-01-11 12:18:52 -02:00
i2c [media] m5mols: potential uninitialized variable 2016-04-13 17:10:59 -03:00
mmc [media] siano: register media controller earlier 2015-02-26 09:10:39 -03:00
pci [media] cx23885: uninitialized variable in cx23885_av_work_handler() 2016-04-13 17:10:32 -03:00
platform [media] v4l: vsp1: Don't configure RPF memory buffers before calculating offsets 2016-04-13 17:43:57 -03:00
radio [media] tea575x: convert to library 2016-02-10 09:34:28 -02:00
rc [media] mceusb: use %*ph for small buffer dumps 2016-03-10 13:37:44 -03:00
tuners [media] xc4000: shut up a bogus smatch message 2016-02-23 07:14:02 -03:00
usb [media] au0828: remove unused macro 2016-04-13 17:13:00 -03:00
v4l2-core [media] v4l: subdev: Add pad config allocator and init 2016-04-13 17:23:37 -03:00
Kconfig [media] Kconfig: Re-enable Media controller support for DVB 2016-01-11 12:18:40 -02:00
Makefile [media] bq/c-qcam, w9966, pms: move to staging in preparation for removal 2014-12-16 23:21:44 -02:00
media-device.c Merge commit '840f5b0572ea' into v4l_for_linus 2016-03-15 07:48:28 -03:00
media-devnode.c [media] media-devnode: add missing mutex lock in error handler 2016-04-06 05:39:56 -07:00
media-entity.c [media] media: add prefixes to interface types 2016-03-05 09:03:16 -03:00