/* SPDX-License-Identifier: GPL-2.0 */ /* * Copyright (C) STMicroelectronics SA 2015 * Author: Hugues Fruchet <[email protected]> for STMicroelectronics. */ #ifndef DELTA_MJPEG_FW_H #define DELTA_MJPEG_FW_H /* * struct jpeg_decoded_buffer_address_t * * defines the addresses where the decoded picture/additional * info related to the block structures will be stored * * @display_luma_p: address of the luma buffer * @display_chroma_p: address of the chroma buffer */ struct jpeg_decoded_buffer_address_t { … }; /* * struct jpeg_display_buffer_address_t * * defines the addresses (used by the Display Reconstruction block) * where the pictures to be displayed will be stored * * @struct_size: size of the structure in bytes * @display_luma_p: address of the luma buffer * @display_chroma_p: address of the chroma buffer * @display_decimated_luma_p: address of the decimated luma buffer * @display_decimated_chroma_p: address of the decimated chroma buffer */ struct jpeg_display_buffer_address_t { … }; /* * used for enabling main/aux outputs for both display & * reference reconstruction blocks */ enum jpeg_rcn_ref_disp_enable_t { … }; /* identifies the horizontal decimation factor */ enum jpeg_horizontal_deci_factor_t { … }; /* identifies the vertical decimation factor */ enum jpeg_vertical_deci_factor_t { … }; /* status of the decoding process */ enum jpeg_decoding_error_t { … }; /* identifies the decoding mode */ enum jpeg_decoding_mode_t { … }; enum jpeg_additional_flags_t { … }; /* * struct jpeg_video_decode_init_params_t - initialization command parameters * * @circular_buffer_begin_addr_p: start address of fw circular buffer * @circular_buffer_end_addr_p: end address of fw circular buffer */ struct jpeg_video_decode_init_params_t { … }; /* * struct jpeg_decode_params_t - decode command parameters * * @picture_start_addr_p: start address of jpeg picture * @picture_end_addr_p: end address of jpeg picture * @decoded_buffer_addr: decoded picture buffer * @display_buffer_addr: display picture buffer * @main_aux_enable: enable main and/or aux outputs * @horizontal_decimation_factor:horizontal decimation factor * @vertical_decimation_factor: vertical decimation factor * @xvalue0: the x(0) coordinate for subregion decoding * @xvalue1: the x(1) coordinate for subregion decoding * @yvalue0: the y(0) coordinate for subregion decoding * @yvalue1: the y(1) coordinate for subregion decoding * @decoding_mode: decoding mode * @additional_flags: additional flags * @field_flag: determines frame/field scan * @is_jpeg_image: 1 = still jpeg, 0 = motion jpeg */ struct jpeg_decode_params_t { … }; /* * struct jpeg_decode_return_params_t * * status returned by firmware after decoding * * @decode_time_in_us: decoding time in microseconds * @pm_cycles: profiling information * @pm_dmiss: profiling information * @pm_imiss: profiling information * @pm_bundles: profiling information * @pm_pft: profiling information * @error_code: status of the decoding process * @ceh_registers: array where values of the Contrast Enhancement * Histogram (CEH) registers will be stored. * ceh_registers[0] correspond to register MBE_CEH_0_7, * ceh_registers[1] correspond to register MBE_CEH_8_15 * ceh_registers[2] correspond to register MBE_CEH_16_23 * Note that elements of this array will be updated only * if additional_flags has JPEG_ADDITIONAL_FLAG_CEH set. */ struct jpeg_decode_return_params_t { … }; #endif /* DELTA_MJPEG_FW_H */