diff options
author | Guennadi Liakhovetski <g.liakhovetski@gmx.de> | 2011-05-13 13:21:36 -0300 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2011-05-20 12:04:22 -0300 |
commit | 93f116d595e9aa7dca5f6507376d6995f217d420 (patch) | |
tree | 683617d71b12678ed976cc5c2eaa7a2e5bcb9d11 /include/media | |
parent | ee1b6f4bf3aa827b0daf65d7441e75212604b1c9 (diff) | |
download | kernel-common-93f116d595e9aa7dca5f6507376d6995f217d420.tar.gz kernel-common-93f116d595e9aa7dca5f6507376d6995f217d420.tar.bz2 kernel-common-93f116d595e9aa7dca5f6507376d6995f217d420.zip |
[media] V4L: soc-camera: avoid huge arrays, caused by changed format codes
Recently mediabus pixel format codes have become a part of the user-
space API, at which time their values also have been changed from
contiguous numbers, running from 0 to sparse numbers with values
around 0x1000, 0x2000, 0x3000... This made them unsuitable for the
use as array indices. This patch switches soc-camera internal format
look-ups to not depend on values of those macros.
Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'include/media')
-rw-r--r-- | include/media/soc_mediabus.h | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/include/media/soc_mediabus.h b/include/media/soc_mediabus.h index 3b5a70b97528..3eed98ed02f2 100644 --- a/include/media/soc_mediabus.h +++ b/include/media/soc_mediabus.h @@ -58,6 +58,20 @@ struct soc_mbus_pixelfmt { u8 bits_per_sample; }; +/** + * struct soc_mbus_lookup - Lookup FOURCC IDs by mediabus codes for pass-through + * @code: mediabus pixel-code + * @fmt: pixel format description + */ +struct soc_mbus_lookup { + enum v4l2_mbus_pixelcode code; + struct soc_mbus_pixelfmt fmt; +}; + +const struct soc_mbus_pixelfmt *soc_mbus_find_fmtdesc( + enum v4l2_mbus_pixelcode code, + const struct soc_mbus_lookup *lookup, + int n); const struct soc_mbus_pixelfmt *soc_mbus_get_fmtdesc( enum v4l2_mbus_pixelcode code); s32 soc_mbus_bytes_per_line(u32 width, const struct soc_mbus_pixelfmt *mf); |