xref: /aosp_15_r20/bionic/libc/kernel/uapi/linux/media/raspberrypi/pisp_common.h (revision 8d67ca893c1523eb926b9080dbe4e2ffd2a27ba1)
1 /*
2  * This file is auto-generated. Modifications will be lost.
3  *
4  * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
5  * for more information.
6  */
7 #ifndef _UAPI_PISP_COMMON_H_
8 #define _UAPI_PISP_COMMON_H_
9 #include <linux/types.h>
10 struct pisp_image_format_config {
11   __u16 width;
12   __u16 height;
13   __u32 format;
14   __s32 stride;
15   __s32 stride2;
16 } __attribute__((packed));
17 enum pisp_bayer_order {
18   PISP_BAYER_ORDER_RGGB = 0,
19   PISP_BAYER_ORDER_GBRG = 1,
20   PISP_BAYER_ORDER_BGGR = 2,
21   PISP_BAYER_ORDER_GRBG = 3,
22   PISP_BAYER_ORDER_GREYSCALE = 128
23 };
24 enum pisp_image_format {
25   PISP_IMAGE_FORMAT_BPS_8 = 0x00000000,
26   PISP_IMAGE_FORMAT_BPS_10 = 0x00000001,
27   PISP_IMAGE_FORMAT_BPS_12 = 0x00000002,
28   PISP_IMAGE_FORMAT_BPS_16 = 0x00000003,
29   PISP_IMAGE_FORMAT_BPS_MASK = 0x00000003,
30   PISP_IMAGE_FORMAT_PLANARITY_INTERLEAVED = 0x00000000,
31   PISP_IMAGE_FORMAT_PLANARITY_SEMI_PLANAR = 0x00000010,
32   PISP_IMAGE_FORMAT_PLANARITY_PLANAR = 0x00000020,
33   PISP_IMAGE_FORMAT_PLANARITY_MASK = 0x00000030,
34   PISP_IMAGE_FORMAT_SAMPLING_444 = 0x00000000,
35   PISP_IMAGE_FORMAT_SAMPLING_422 = 0x00000100,
36   PISP_IMAGE_FORMAT_SAMPLING_420 = 0x00000200,
37   PISP_IMAGE_FORMAT_SAMPLING_MASK = 0x00000300,
38   PISP_IMAGE_FORMAT_ORDER_NORMAL = 0x00000000,
39   PISP_IMAGE_FORMAT_ORDER_SWAPPED = 0x00001000,
40   PISP_IMAGE_FORMAT_SHIFT_0 = 0x00000000,
41   PISP_IMAGE_FORMAT_SHIFT_1 = 0x00010000,
42   PISP_IMAGE_FORMAT_SHIFT_2 = 0x00020000,
43   PISP_IMAGE_FORMAT_SHIFT_3 = 0x00030000,
44   PISP_IMAGE_FORMAT_SHIFT_4 = 0x00040000,
45   PISP_IMAGE_FORMAT_SHIFT_5 = 0x00050000,
46   PISP_IMAGE_FORMAT_SHIFT_6 = 0x00060000,
47   PISP_IMAGE_FORMAT_SHIFT_7 = 0x00070000,
48   PISP_IMAGE_FORMAT_SHIFT_8 = 0x00080000,
49   PISP_IMAGE_FORMAT_SHIFT_MASK = 0x000f0000,
50   PISP_IMAGE_FORMAT_BPP_32 = 0x00100000,
51   PISP_IMAGE_FORMAT_UNCOMPRESSED = 0x00000000,
52   PISP_IMAGE_FORMAT_COMPRESSION_MODE_1 = 0x01000000,
53   PISP_IMAGE_FORMAT_COMPRESSION_MODE_2 = 0x02000000,
54   PISP_IMAGE_FORMAT_COMPRESSION_MODE_3 = 0x03000000,
55   PISP_IMAGE_FORMAT_COMPRESSION_MASK = 0x03000000,
56   PISP_IMAGE_FORMAT_HOG_SIGNED = 0x04000000,
57   PISP_IMAGE_FORMAT_HOG_UNSIGNED = 0x08000000,
58   PISP_IMAGE_FORMAT_INTEGRAL_IMAGE = 0x10000000,
59   PISP_IMAGE_FORMAT_WALLPAPER_ROLL = 0x20000000,
60   PISP_IMAGE_FORMAT_THREE_CHANNEL = 0x40000000,
61   PISP_IMAGE_FORMAT_SINGLE_16 = PISP_IMAGE_FORMAT_BPS_16,
62   PISP_IMAGE_FORMAT_THREE_16 = PISP_IMAGE_FORMAT_BPS_16 | PISP_IMAGE_FORMAT_THREE_CHANNEL
63 };
64 #define PISP_IMAGE_FORMAT_BPS_8(fmt) (((fmt) & PISP_IMAGE_FORMAT_BPS_MASK) == PISP_IMAGE_FORMAT_BPS_8)
65 #define PISP_IMAGE_FORMAT_BPS_10(fmt) (((fmt) & PISP_IMAGE_FORMAT_BPS_MASK) == PISP_IMAGE_FORMAT_BPS_10)
66 #define PISP_IMAGE_FORMAT_BPS_12(fmt) (((fmt) & PISP_IMAGE_FORMAT_BPS_MASK) == PISP_IMAGE_FORMAT_BPS_12)
67 #define PISP_IMAGE_FORMAT_BPS_16(fmt) (((fmt) & PISP_IMAGE_FORMAT_BPS_MASK) == PISP_IMAGE_FORMAT_BPS_16)
68 #define PISP_IMAGE_FORMAT_BPS(fmt) (((fmt) & PISP_IMAGE_FORMAT_BPS_MASK) ? 8 + (2 << (((fmt) & PISP_IMAGE_FORMAT_BPS_MASK) - 1)) : 8)
69 #define PISP_IMAGE_FORMAT_SHIFT(fmt) (((fmt) & PISP_IMAGE_FORMAT_SHIFT_MASK) / PISP_IMAGE_FORMAT_SHIFT_1)
70 #define PISP_IMAGE_FORMAT_THREE_CHANNEL(fmt) ((fmt) & PISP_IMAGE_FORMAT_THREE_CHANNEL)
71 #define PISP_IMAGE_FORMAT_SINGLE_CHANNEL(fmt) (! ((fmt) & PISP_IMAGE_FORMAT_THREE_CHANNEL))
72 #define PISP_IMAGE_FORMAT_COMPRESSED(fmt) (((fmt) & PISP_IMAGE_FORMAT_COMPRESSION_MASK) != PISP_IMAGE_FORMAT_UNCOMPRESSED)
73 #define PISP_IMAGE_FORMAT_SAMPLING_444(fmt) (((fmt) & PISP_IMAGE_FORMAT_SAMPLING_MASK) == PISP_IMAGE_FORMAT_SAMPLING_444)
74 #define PISP_IMAGE_FORMAT_SAMPLING_422(fmt) (((fmt) & PISP_IMAGE_FORMAT_SAMPLING_MASK) == PISP_IMAGE_FORMAT_SAMPLING_422)
75 #define PISP_IMAGE_FORMAT_SAMPLING_420(fmt) (((fmt) & PISP_IMAGE_FORMAT_SAMPLING_MASK) == PISP_IMAGE_FORMAT_SAMPLING_420)
76 #define PISP_IMAGE_FORMAT_ORDER_NORMAL(fmt) (! ((fmt) & PISP_IMAGE_FORMAT_ORDER_SWAPPED))
77 #define PISP_IMAGE_FORMAT_ORDER_SWAPPED(fmt) ((fmt) & PISP_IMAGE_FORMAT_ORDER_SWAPPED)
78 #define PISP_IMAGE_FORMAT_INTERLEAVED(fmt) (((fmt) & PISP_IMAGE_FORMAT_PLANARITY_MASK) == PISP_IMAGE_FORMAT_PLANARITY_INTERLEAVED)
79 #define PISP_IMAGE_FORMAT_SEMIPLANAR(fmt) (((fmt) & PISP_IMAGE_FORMAT_PLANARITY_MASK) == PISP_IMAGE_FORMAT_PLANARITY_SEMI_PLANAR)
80 #define PISP_IMAGE_FORMAT_PLANAR(fmt) (((fmt) & PISP_IMAGE_FORMAT_PLANARITY_MASK) == PISP_IMAGE_FORMAT_PLANARITY_PLANAR)
81 #define PISP_IMAGE_FORMAT_WALLPAPER(fmt) ((fmt) & PISP_IMAGE_FORMAT_WALLPAPER_ROLL)
82 #define PISP_IMAGE_FORMAT_BPP_32(fmt) ((fmt) & PISP_IMAGE_FORMAT_BPP_32)
83 #define PISP_IMAGE_FORMAT_HOG(fmt) ((fmt) & (PISP_IMAGE_FORMAT_HOG_SIGNED | PISP_IMAGE_FORMAT_HOG_UNSIGNED))
84 #define PISP_WALLPAPER_WIDTH 128
85 struct pisp_bla_config {
86   __u16 black_level_r;
87   __u16 black_level_gr;
88   __u16 black_level_gb;
89   __u16 black_level_b;
90   __u16 output_black_level;
91   __u8 pad[2];
92 } __attribute__((packed));
93 struct pisp_wbg_config {
94   __u16 gain_r;
95   __u16 gain_g;
96   __u16 gain_b;
97   __u8 pad[2];
98 } __attribute__((packed));
99 struct pisp_compress_config {
100   __u16 offset;
101   __u8 pad;
102   __u8 mode;
103 } __attribute__((packed));
104 struct pisp_decompress_config {
105   __u16 offset;
106   __u8 pad;
107   __u8 mode;
108 } __attribute__((packed));
109 enum pisp_axi_flags {
110   PISP_AXI_FLAG_ALIGN = 128,
111   PISP_AXI_FLAG_PAD = 64,
112   PISP_AXI_FLAG_PANIC = 32,
113 };
114 struct pisp_axi_config {
115   __u8 maxlen_flags;
116   __u8 cache_prot;
117   __u16 qos;
118 } __attribute__((packed));
119 #endif
120