Re: [PATCH v1 05/10] media: platform: mediatek: add isp_7x camsys unit
flat view
From: CK Hu (胡俊光) <hidden>
Date: 2024-10-29 02:36:01
Also in:
dri-devel, linux-devicetree, linux-media, linux-mediatek, lkml
Hi, Shu-hsiang: On Wed, 2024-10-09 at 19:15 +0800, Shu-hsiang Yang wrote:
Introduces the top media device driver for the MediaTek ISP7X CAMSYS. The driver maintains the camera system, including sub-device management, DMA operations, and integration with the V4L2 framework. It handles request stream data, buffer management, and MediaTek-specific features, and pipeline management, streaming control, error handling mechanism. Additionally, it aggregates sub-drivers for the camera interface, raw and yuv pipelines. Signed-off-by: Shu-hsiang Yang <redacted> ---
[snip]
quoted hunk
+ +/** + * MediaTek Universal Frame Buffer Compression (UFBC) buffer header + * Caller must follow the bit stream buffer size and length table buffer size. + * + * Header Size + * Fixed size of 4096 bytes. Caller SHOULD NOT edit it. + * + * Bit Stream Size + * Bit stream width must be aligned to 64 pixel. + */ + +struct ufbc_buf_header { + /** Describe image resolution, unit in pixel. */ + u32 width; + /** Describe image resolution, unit in pixel. */ + u32 height; + /** Describe UFBC data plane count, UFBC supports maximum 2 planes. */ + u32 plane_count; + /** Describe the original image data bits per pixel of the given plane. */ + u32 bits_per_pixel[3]; + + /** + * Describe the offset of the given plane bit stream data in bytes, + * including header size. + */ + u32 bitstream_offset[3]; + /** Describe the bit stream data size in bytes of the given plane. */ + u32 bitstream_size[3]; + /** Describe the encoded data size in bytes of the given plane. */ + u32 bitstream_data_size[3]; + + /** + * Describe the offset of length table of the given plane, including + * header size. + */ + u32 table_offset[3]; + /** Describe the length table size of the given plane */ + u32 table_size[3]; + /** Describe the total buffer size, including buffer header. */ + u32 buffer_size; +}; + +struct ufbc_buffer_header { + union { + struct ufbc_buf_header header;
'struct ufbc_buf_header' is never used, so drop it. Regards, CK
quoted hunk
+ u8 bits[4096]; + }; +}; +