include/uapi/linux/media/arm/mali-c55-config.h
Source file repositories/reference/linux-study-clean/include/uapi/linux/media/arm/mali-c55-config.h
File Facts
- System
- Linux kernel
- Corpus path
include/uapi/linux/media/arm/mali-c55-config.h- Extension
.h- Size
- 32437 bytes
- Lines
- 786
- Domain
- Core OS
- Bucket
- Core Kernel Interface
- Inferred role
- Core OS: implementation source
- Status
- source implementation candidate
Why This File Exists
Core operating-system implementation surface: boot, tasks, memory, VFS, syscall-facing interfaces, synchronization, credentials, and isolation.
- Core operating-system implementation surface: boot, tasks, memory, VFS, syscall-facing interfaces, synchronization, credentials, and isolation.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
linux/types.hlinux/v4l2-controls.hlinux/media/v4l2-isp.h
Detected Declarations
struct mali_c55_ae_1024bin_histstruct mali_c55_ae_5bin_histstruct mali_c55_awb_average_ratiosstruct mali_c55_af_statisticsstruct mali_c55_stats_bufferstruct mali_c55_params_sensor_off_preshadingstruct mali_c55_params_aexp_histstruct mali_c55_params_aexp_weightsstruct mali_c55_params_digital_gainstruct mali_c55_params_awb_gainsstruct mali_c55_params_awb_configstruct mali_c55_params_mesh_shading_configstruct mali_c55_params_mesh_shading_selectionenum mali_c55_param_block_typeenum mali_c55_aexp_hist_tap_pointsenum mali_c55_aexp_skip_xenum mali_c55_aexp_skip_yenum mali_c55_aexp_row_column_offsetenum mali_c55_aexp_hist_plane_modeenum mali_c55_awb_stats_modeenum mali_c55_params_awb_tap_pointsenum mali_c55_params_mesh_alpha_bankfunction Copyright
Annotated Snippet
struct mali_c55_ae_1024bin_hist {
__u16 bins[1024];
} __attribute__((packed));
/**
* struct mali_c55_ae_5bin_hist - Auto Exposure 5-bin histogram statistics
*
* @hist0: 16-bit normalised pixel count for the 0th intensity bin
* @hist1: 16-bit normalised pixel count for the 1st intensity bin
* @hist3: 16-bit normalised pixel count for the 3rd intensity bin
* @hist4: 16-bit normalised pixel count for the 4th intensity bin
*
* The ISP generates a 5-bin histogram of normalised pixel counts within bins of
* pixel intensity for each of 225 possible zones within a frame. The centre bin
* of the histogram for each zone is not available from the hardware and must be
* calculated by subtracting the values of hist0, hist1, hist3 and hist4 from
* 0xffff as in the following equation:
*
* hist2 = 0xffff - (hist0 + hist1 + hist3 + hist4)
*/
struct mali_c55_ae_5bin_hist {
__u16 hist0;
__u16 hist1;
__u16 hist3;
__u16 hist4;
} __attribute__((packed));
/**
* struct mali_c55_awb_average_ratios - Auto White Balance colour ratios
*
* @avg_rg_gr: Average R/G or G/R ratio in Q4.8 format.
* @avg_bg_br: Average B/G or B/R ratio in Q4.8 format.
* @num_pixels: The number of pixels used in the AWB calculation
*
* The ISP calculates and collects average colour ratios for each zone in an
* image and stores them in Q4.8 format (the lowest 8 bits are fractional, with
* bits [11:8] representing the integer). The exact ratios collected (either
* R/G, B/G or G/R, B/R) are configurable through the parameters buffer. The
* value of the 4 high bits is undefined.
*/
struct mali_c55_awb_average_ratios {
__u16 avg_rg_gr;
__u16 avg_bg_br;
__u32 num_pixels;
} __attribute__((packed));
/**
* struct mali_c55_af_statistics - Auto Focus edge and intensity statistics
*
* @intensity_stats: Packed mantissa and exponent value for pixel intensity
* @edge_stats: Packed mantissa and exponent values for edge intensity
*
* The ISP collects the squared sum of pixel intensities for each zone within a
* configurable Region of Interest on the frame. Additionally, the same data are
* collected after being passed through a bandpass filter which removes high and
* low frequency components - these are referred to as the edge statistics.
*
* The intensity and edge statistics for a zone can be used to calculate the
* contrast information for a zone
*
* C = E2 / I2
*
* Where I2 is the intensity statistic for a zone and E2 is the edge statistic
* for that zone. Optimum focus is reached when C is at its maximum.
*
* The intensity and edge statistics are stored packed into a non-standard 16
* bit floating point format, where the 7 most significant bits represent the
* exponent and the 9 least significant bits the mantissa. This format can be
* unpacked with the following pseudocode::
*
* if (e == 0) {
* x = m;
* } else {
* x = 2^e-1 * (m + 2^9)
* }
*
* where
* e is the exponent value in range 0..127
* m is the mantissa value in range 0..511
*/
struct mali_c55_af_statistics {
__u16 intensity_stats;
__u16 edge_stats;
} __attribute__((packed));
/**
* struct mali_c55_stats_buffer - 3A statistics for the mali-c55 ISP
*
* @ae_1024bin_hist: 1024-bin frame-global pixel intensity histogram
* @iridix_1024bin_hist: Post-Iridix block 1024-bin histogram
Annotation
- Immediate include surface: `linux/types.h`, `linux/v4l2-controls.h`, `linux/media/v4l2-isp.h`.
- Detected declarations: `struct mali_c55_ae_1024bin_hist`, `struct mali_c55_ae_5bin_hist`, `struct mali_c55_awb_average_ratios`, `struct mali_c55_af_statistics`, `struct mali_c55_stats_buffer`, `struct mali_c55_params_sensor_off_preshading`, `struct mali_c55_params_aexp_hist`, `struct mali_c55_params_aexp_weights`, `struct mali_c55_params_digital_gain`, `struct mali_c55_params_awb_gains`.
- Atlas domain: Core OS / Core Kernel Interface.
- Implementation status: source implementation candidate.
Implementation Notes
- This generated page is the file-by-file coverage layer; curated subsystem chapters should link here when they synthesize a multi-file control flow.
- Core OS pages should be promoted from atlas-only to deep-reviewed when they explain data structures, invariants, locking, lifecycle, and C implementation snippets.
- Driver-family pages are intentionally pattern-oriented unless they are part of the selected PCIe/NVMe representative device path.