media: rp1: cfe: Add cfe_find_16bit_code() and cfe_find_compressed_code()

Add helper functions which, given an mbus code, return the 16-bit
remapped mbus code or the compressed mbus code.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
This commit is contained in:
Tomi Valkeinen
2023-09-29 17:14:11 +03:00
committed by Phil Elwell
parent f7f4e88285
commit fa32c29b1c
2 changed files with 42 additions and 0 deletions

View File

@@ -473,6 +473,46 @@ const struct cfe_fmt *find_format_by_pix(u32 pixelformat)
return NULL; return NULL;
} }
/*
* Given the mbus code, find the 16 bit remapped code. Returns 0 if no remap
* possible.
*/
u32 cfe_find_16bit_code(u32 code)
{
const struct cfe_fmt *cfe_fmt;
cfe_fmt = find_format_by_code(code);
if (!cfe_fmt || !cfe_fmt->remap[CFE_REMAP_16BIT])
return 0;
cfe_fmt = find_format_by_pix(cfe_fmt->remap[CFE_REMAP_16BIT]);
if (!cfe_fmt)
return 0;
return cfe_fmt->code;
}
/*
* Given the mbus code, find the 8 bit compressed code. Returns 0 if no remap
* possible.
*/
u32 cfe_find_compressed_code(u32 code)
{
const struct cfe_fmt *cfe_fmt;
cfe_fmt = find_format_by_code(code);
if (!cfe_fmt || !cfe_fmt->remap[CFE_REMAP_COMPRESSED])
return 0;
cfe_fmt = find_format_by_pix(cfe_fmt->remap[CFE_REMAP_COMPRESSED]);
if (!cfe_fmt)
return 0;
return cfe_fmt->code;
}
static int cfe_calc_format_size_bpl(struct cfe_device *cfe, static int cfe_calc_format_size_bpl(struct cfe_device *cfe,
const struct cfe_fmt *fmt, const struct cfe_fmt *fmt,
struct v4l2_format *f) struct v4l2_format *f)

View File

@@ -37,5 +37,7 @@ extern const struct v4l2_mbus_framefmt cfe_default_meta_format;
const struct cfe_fmt *find_format_by_code(u32 code); const struct cfe_fmt *find_format_by_code(u32 code);
const struct cfe_fmt *find_format_by_pix(u32 pixelformat); const struct cfe_fmt *find_format_by_pix(u32 pixelformat);
u32 cfe_find_16bit_code(u32 code);
u32 cfe_find_compressed_code(u32 code);
#endif #endif