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