linux/drivers/media
Jacopo Mondi d3a67f2747 media: renesas-ceu: Set mbus_fmt on subdev operations
The renesas-ceu driver intializes the desired mbus_format at 'complete'
time, inspecting the supported subdevice ones, and tuning some
parameters to produce the requested memory format from what the sensor
can produce. Although, the initially selected mbus_format was not
provided to the subdevice during set_fmt and try_fmt operations,
providing instead a '0' mbus format code.

As long as the sensor defaults to a compatible mbus_format when an
invalid code as '0' is provided, capture operations work correctly. If
the subdevice defaults to an unsupported format (eg. some RGB
permutations) capture does not work properly due to a mismatch on the
expected and received image format on the wire.

Fix that by re-using the initially selected mbus_format code during
set_fmt and try_fmt subdevice operation calls.

Tested by printing out the format selection procedure with ov7670
sensor.

Before this patch:
[    0.866001] ov7670_try_fmt_internal -- Looking for mbus_code 0x0000
[    0.870882] ov7670_try_fmt_internal -- Try mbus_code 0x2008
[    0.876336] ov7670_try_fmt_internal -- Try mbus_code 0x1002
[    0.881387] ov7670_try_fmt_internal -- Try mbus_code 0x1008
[    0.886537] ov7670_try_fmt_internal -- Try mbus_code 0x3001
[    0.891584] ov7670_try_fmt_internal -- mbus_code defaulted to 0x2008

With this patch applied:
[    0.867015] ov7670_try_fmt_internal -- Looking for mbus_code 0x2008
[    0.873205] ov7670_try_fmt_internal -- Try mbus_code 0x2008: match

Signed-off-by: Jacopo Mondi <jacopo+renesas@jmondi.org>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
2018-05-09 16:27:25 -04:00
..
cec media: rc: per-protocol repeat period and minimum keyup timer 2018-04-20 09:16:55 -04:00
common media: lgdt330x: convert it to the new I2C binding way 2018-05-04 11:09:26 -04:00
dvb-core media: dvb_net: fix dvb_net_tx()'s return type 2018-05-05 10:21:40 -04:00
dvb-frontends media: cxd2880: Changed version information 2018-05-05 10:38:18 -04:00
firewire vfs: do bulk POLL* -> EPOLL* replacement 2018-02-11 14:34:03 -08:00
i2c media: i2c: tvp5150: Fix open brace placement codding style 2018-05-04 15:51:49 -04:00
mmc media: move dvb kAPI headers to include/media 2017-12-28 13:16:01 -05:00
pci media: intel-ipu3: Kconfig coding style issue 2018-05-09 16:26:23 -04:00
platform media: renesas-ceu: Set mbus_fmt on subdev operations 2018-05-09 16:27:25 -04:00
radio media: radio: allow building ISA drivers with COMPILE_TEST 2018-05-04 09:08:16 -04:00
rc media: rc: allow build pnp-dependent drivers with COMPILE_TEST 2018-05-04 09:47:45 -04:00
spi media: cxd2880-spi: Modified how to declare structure 2018-05-05 10:37:12 -04:00
tuners media: tuners: add new i2c driver for Sharp qm1d1b0004 ISDB-S tuner 2018-05-05 07:21:09 -04:00
usb media: em28xx: Fix DualHD broken second tuner 2018-05-09 16:25:40 -04:00
v4l2-core media: videobuf-dma-sg: Fix dma_{sync,unmap}_sg() calls 2018-05-09 16:25:12 -04:00
Kconfig media: cec: Kconfig coding style issue 2018-05-09 16:26:50 -04:00
Makefile
media-device.c media: zero reservedX fields in media_v2_topology 2018-02-26 09:47:53 -05:00
media-devnode.c vfs: do bulk POLL* -> EPOLL* replacement 2018-02-11 14:34:03 -08:00
media-entity.c media: media.h: reorganize header to make it easier to understand 2018-02-26 10:14:46 -05:00