diff options
author | Hans de Goede <hdegoede@redhat.com> | 2022-09-26 20:43:54 +0100 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@kernel.org> | 2022-11-25 08:12:17 +0000 |
commit | 391e14183ace47a4fc8d880a1693182f789dcfde (patch) | |
tree | 3bbda4f7ad8c7c784d53907c756a38aba960dc5d /drivers/staging/media | |
parent | 931d87d204aa17d1ee853c1c327d025ec9f7f4f7 (diff) | |
download | linux-391e14183ace47a4fc8d880a1693182f789dcfde.tar.bz2 |
media: atomisp: Add ia_css_frame_init_from_info() function
Add a function to initialize (rather then alloc/create) a
ia_css_frame struct based on an ia_css_frame_info struct.
This is a preparation patch for adding videobuf2 support.
Reviewed-by: Andy Shevchenko <andy@kernel.org>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
Diffstat (limited to 'drivers/staging/media')
-rw-r--r-- | drivers/staging/media/atomisp/pci/ia_css_frame_public.h | 11 | ||||
-rw-r--r-- | drivers/staging/media/atomisp/pci/runtime/frame/src/frame.c | 16 |
2 files changed, 27 insertions, 0 deletions
diff --git a/drivers/staging/media/atomisp/pci/ia_css_frame_public.h b/drivers/staging/media/atomisp/pci/ia_css_frame_public.h index 514d933f934d..5727bd175330 100644 --- a/drivers/staging/media/atomisp/pci/ia_css_frame_public.h +++ b/drivers/staging/media/atomisp/pci/ia_css_frame_public.h @@ -220,6 +220,17 @@ ia_css_frame_allocate(struct ia_css_frame **frame, unsigned int stride, unsigned int raw_bit_depth); +/* @brief Initialize a CSS frame structure using a frame info structure. + * + * @param frame The allocated frame. + * @param[in] info The frame info structure. + * @return The error code. + * + * Initialize a frame using the resolution and format from a frame info struct. + */ +int ia_css_frame_init_from_info(struct ia_css_frame *frame, + const struct ia_css_frame_info *info); + /* @brief Allocate a CSS frame structure using a frame info structure. * * @param frame The allocated frame. diff --git a/drivers/staging/media/atomisp/pci/runtime/frame/src/frame.c b/drivers/staging/media/atomisp/pci/runtime/frame/src/frame.c index 5a7058320ee6..c20a4527c842 100644 --- a/drivers/staging/media/atomisp/pci/runtime/frame/src/frame.c +++ b/drivers/staging/media/atomisp/pci/runtime/frame/src/frame.c @@ -847,3 +847,19 @@ void ia_css_resolution_to_sp_resolution( to->width = (uint16_t)from->width; to->height = (uint16_t)from->height; } + +int ia_css_frame_init_from_info(struct ia_css_frame *frame, + const struct ia_css_frame_info *frame_info) +{ + frame->info.res.width = frame_info->res.width; + frame->info.res.height = frame_info->res.height; + frame->info.format = frame_info->format; + frame->info.padded_width = frame_info->padded_width; + frame->info.raw_bit_depth = frame_info->raw_bit_depth; + frame->valid = true; + /* To indicate it is not valid frame. */ + frame->dynamic_queue_id = SH_CSS_INVALID_QUEUE_ID; + frame->buf_type = IA_CSS_BUFFER_TYPE_INVALID; + + return ia_css_frame_init_planes(frame); +} |