/* SPDX-License-Identifier: GPL-2.0 */ /* * Imagination E5010 JPEG Encoder driver. * * Copyright (C) 2023 Texas Instruments Incorporated - https://www.ti.com/ * * Author: David Huang <[email protected]> * Author: Devarsh Thakkar <[email protected]> */ #include <media/v4l2-ctrls.h> #include <media/v4l2-device.h> #include <media/v4l2-fh.h> #ifndef _E5010_JPEG_ENC_H #define _E5010_JPEG_ENC_H #define MAX_PLANES … #define HEADER_SIZE … #define MIN_DIMENSION … #define MAX_DIMENSION … #define DEFAULT_WIDTH … #define DEFAULT_HEIGHT … #define E5010_MODULE_NAME … #define JPEG_MAX_BYTES_PER_PIXEL … /* JPEG marker definitions */ #define START_OF_IMAGE … #define SOF_BASELINE_DCT … #define END_OF_IMAGE … #define START_OF_SCAN … /* Definitions for the huffman table specification in the Marker segment */ #define DHT_MARKER … #define LH_DC … #define LH_AC … /* Definitions for the quantization table specification in the Marker segment */ #define DQT_MARKER … #define ACMAX … #define DCMAX … /* Length and precision of the quantization table parameters */ #define LQPQ … #define QMAX … /* Misc JPEG header definitions */ #define UC_NUM_COMP … #define PRECISION … #define HORZ_SAMPLING_FACTOR … #define VERT_SAMPLING_FACTOR_422 … #define VERT_SAMPLING_FACTOR_420 … #define COMPONENTS_IN_SCAN … #define PELS_IN_BLOCK … /* Used for Qp table generation */ #define LUMINOSITY … #define CONTRAST … #define INCREASE … #define QP_TABLE_SIZE … #define QP_TABLE_FIELD_OFFSET … /* * vb2 queue structure * contains queue data information * * @fmt: format info * @width: frame width * @height: frame height * @bytesperline: bytes per line in memory * @size_image: image size in memory */ struct e5010_q_data { … }; /* * Driver device structure * Holds all memory handles and global parameters * Shared by all instances */ struct e5010_dev { … }; /* * Driver context structure * One of these exists for every m2m context * Holds context specific data */ struct e5010_context { … }; /* * Buffer structure * Contains info for all buffers */ struct e5010_buffer { … }; enum { … }; enum { … }; /* * e5010 format structure * contains format information */ struct e5010_fmt { … }; /* * struct e5010_ctrl - contains info for each supported v4l2 control */ struct e5010_ctrl { … }; #endif