[media] media: ti-vpe: vpdma: Add RAW8 and RAW16 data types
Add RAW8 and RAW16 data type to VPDMA. To handle RAW format we are re-using the YUV CBY422 vpdma data type so that we use the vpdma to re-order the incoming bytes, as the VIP parser assumes that the first byte presented on the bus is the MSB of a 2 bytes value. RAW8 handles from 1 to 8 bits. RAW16 handles from 9 to 16 bits. Signed-off-by: Benoit Parrot <bparrot@ti.com> Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
This commit is contained in:
parent
35be6d865c
commit
ee1c02949d
@ -191,6 +191,29 @@ const struct vpdma_data_format vpdma_rgb_fmts[] = {
|
|||||||
};
|
};
|
||||||
EXPORT_SYMBOL(vpdma_rgb_fmts);
|
EXPORT_SYMBOL(vpdma_rgb_fmts);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* To handle RAW format we are re-using the CBY422
|
||||||
|
* vpdma data type so that we use the vpdma to re-order
|
||||||
|
* the incoming bytes, as the parser assumes that the
|
||||||
|
* first byte presented on the bus is the MSB of a 2
|
||||||
|
* bytes value.
|
||||||
|
* RAW8 handles from 1 to 8 bits
|
||||||
|
* RAW16 handles from 9 to 16 bits
|
||||||
|
*/
|
||||||
|
const struct vpdma_data_format vpdma_raw_fmts[] = {
|
||||||
|
[VPDMA_DATA_FMT_RAW8] = {
|
||||||
|
.type = VPDMA_DATA_FMT_TYPE_YUV,
|
||||||
|
.data_type = DATA_TYPE_CBY422,
|
||||||
|
.depth = 8,
|
||||||
|
},
|
||||||
|
[VPDMA_DATA_FMT_RAW16] = {
|
||||||
|
.type = VPDMA_DATA_FMT_TYPE_YUV,
|
||||||
|
.data_type = DATA_TYPE_CBY422,
|
||||||
|
.depth = 16,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
EXPORT_SYMBOL(vpdma_raw_fmts);
|
||||||
|
|
||||||
const struct vpdma_data_format vpdma_misc_fmts[] = {
|
const struct vpdma_data_format vpdma_misc_fmts[] = {
|
||||||
[VPDMA_DATA_FMT_MV] = {
|
[VPDMA_DATA_FMT_MV] = {
|
||||||
.type = VPDMA_DATA_FMT_TYPE_MISC,
|
.type = VPDMA_DATA_FMT_TYPE_MISC,
|
||||||
|
@ -104,12 +104,18 @@ enum vpdma_rgb_formats {
|
|||||||
VPDMA_DATA_FMT_BGRA32,
|
VPDMA_DATA_FMT_BGRA32,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
enum vpdma_raw_formats {
|
||||||
|
VPDMA_DATA_FMT_RAW8 = 0,
|
||||||
|
VPDMA_DATA_FMT_RAW16,
|
||||||
|
};
|
||||||
|
|
||||||
enum vpdma_misc_formats {
|
enum vpdma_misc_formats {
|
||||||
VPDMA_DATA_FMT_MV = 0,
|
VPDMA_DATA_FMT_MV = 0,
|
||||||
};
|
};
|
||||||
|
|
||||||
extern const struct vpdma_data_format vpdma_yuv_fmts[];
|
extern const struct vpdma_data_format vpdma_yuv_fmts[];
|
||||||
extern const struct vpdma_data_format vpdma_rgb_fmts[];
|
extern const struct vpdma_data_format vpdma_rgb_fmts[];
|
||||||
|
extern const struct vpdma_data_format vpdma_raw_fmts[];
|
||||||
extern const struct vpdma_data_format vpdma_misc_fmts[];
|
extern const struct vpdma_data_format vpdma_misc_fmts[];
|
||||||
|
|
||||||
enum vpdma_frame_start_event {
|
enum vpdma_frame_start_event {
|
||||||
|
Loading…
Reference in New Issue
Block a user