Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
at master 62 lines 2.0 kB view raw
1/* SPDX-License-Identifier: GPL-2.0 */ 2/* 3 * camss-format.h 4 * 5 * Qualcomm MSM Camera Subsystem - Format helpers 6 * 7 * Copyright (c) 2023, The Linux Foundation. All rights reserved. 8 * Copyright (c) 2023 Qualcomm Technologies, Inc. 9 */ 10#ifndef __CAMSS_FORMAT_H__ 11#define __CAMSS_FORMAT_H__ 12 13#include <linux/types.h> 14 15#define PER_PLANE_DATA(plane, h_fract_num, h_fract_den, v_fract_num, v_fract_den, _bpp) \ 16 .hsub[(plane)].numerator = (h_fract_num), \ 17 .hsub[(plane)].denominator = (h_fract_den), \ 18 .vsub[(plane)].numerator = (v_fract_num), \ 19 .vsub[(plane)].denominator = (v_fract_den), \ 20 .bpp[(plane)] = (_bpp) 21 22/* 23 * struct fract - Represents a fraction 24 * @numerator: Store the numerator part of the fraction 25 * @denominator: Store the denominator part of the fraction 26 */ 27struct fract { 28 u8 numerator; 29 u8 denominator; 30}; 31 32/* 33 * struct camss_format_info - ISP media bus format information 34 * @code: V4L2 media bus format code 35 * @mbus_bpp: Media bus bits per pixel 36 * @pixelformat: V4L2 pixel format FCC identifier 37 * @planes: Number of planes 38 * @hsub: Horizontal subsampling (for each plane) 39 * @vsub: Vertical subsampling (for each plane) 40 * @bpp: Bits per pixel when stored in memory (for each plane) 41 */ 42struct camss_format_info { 43 u32 code; 44 u32 mbus_bpp; 45 u32 pixelformat; 46 u8 planes; 47 struct fract hsub[3]; 48 struct fract vsub[3]; 49 unsigned int bpp[3]; 50}; 51 52struct camss_formats { 53 unsigned int nformats; 54 const struct camss_format_info *formats; 55}; 56 57u8 camss_format_get_bpp(const struct camss_format_info *formats, unsigned int nformats, u32 code); 58u32 camss_format_find_code(u32 *code, unsigned int n_code, unsigned int index, u32 req_code); 59int camss_format_find_format(u32 code, u32 pixelformat, const struct camss_format_info *formats, 60 unsigned int nformats); 61 62#endif /* __CAMSS_FORMAT_H__ */