IB/mlx5: Fix mlx5_ib_alloc_mr error flow
[sfrench/cifs-2.6.git] / drivers / staging / media / atomisp / pci / atomisp2 / css2400 / ia_css_stream_format.h
1 /*
2  * Support for Intel Camera Imaging ISP subsystem.
3  * Copyright (c) 2015, Intel Corporation.
4  *
5  * This program is free software; you can redistribute it and/or modify it
6  * under the terms and conditions of the GNU General Public License,
7  * version 2, as published by the Free Software Foundation.
8  *
9  * This program is distributed in the hope it will be useful, but WITHOUT
10  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
12  * more details.
13  */
14
15 #ifndef __IA_CSS_STREAM_FORMAT_H
16 #define __IA_CSS_STREAM_FORMAT_H
17
18 /** @file
19  * This file contains formats usable for ISP streaming input
20  */
21
22 #include <type_support.h> /* bool */
23
24 /** The ISP streaming input interface supports the following formats.
25  *  These match the corresponding MIPI formats.
26  */
27 enum ia_css_stream_format {
28         IA_CSS_STREAM_FORMAT_YUV420_8_LEGACY,    /**< 8 bits per subpixel */
29         IA_CSS_STREAM_FORMAT_YUV420_8,  /**< 8 bits per subpixel */
30         IA_CSS_STREAM_FORMAT_YUV420_10, /**< 10 bits per subpixel */
31         IA_CSS_STREAM_FORMAT_YUV420_16, /**< 16 bits per subpixel */
32         IA_CSS_STREAM_FORMAT_YUV422_8,  /**< UYVY..UYVY, 8 bits per subpixel */
33         IA_CSS_STREAM_FORMAT_YUV422_10, /**< UYVY..UYVY, 10 bits per subpixel */
34         IA_CSS_STREAM_FORMAT_YUV422_16, /**< UYVY..UYVY, 16 bits per subpixel */
35         IA_CSS_STREAM_FORMAT_RGB_444,  /**< BGR..BGR, 4 bits per subpixel */
36         IA_CSS_STREAM_FORMAT_RGB_555,  /**< BGR..BGR, 5 bits per subpixel */
37         IA_CSS_STREAM_FORMAT_RGB_565,  /**< BGR..BGR, 5 bits B and R, 6 bits G */
38         IA_CSS_STREAM_FORMAT_RGB_666,  /**< BGR..BGR, 6 bits per subpixel */
39         IA_CSS_STREAM_FORMAT_RGB_888,  /**< BGR..BGR, 8 bits per subpixel */
40         IA_CSS_STREAM_FORMAT_RAW_6,    /**< RAW data, 6 bits per pixel */
41         IA_CSS_STREAM_FORMAT_RAW_7,    /**< RAW data, 7 bits per pixel */
42         IA_CSS_STREAM_FORMAT_RAW_8,    /**< RAW data, 8 bits per pixel */
43         IA_CSS_STREAM_FORMAT_RAW_10,   /**< RAW data, 10 bits per pixel */
44         IA_CSS_STREAM_FORMAT_RAW_12,   /**< RAW data, 12 bits per pixel */
45         IA_CSS_STREAM_FORMAT_RAW_14,   /**< RAW data, 14 bits per pixel */
46         IA_CSS_STREAM_FORMAT_RAW_16,   /**< RAW data, 16 bits per pixel, which is
47                                             not specified in CSI-MIPI standard*/
48         IA_CSS_STREAM_FORMAT_BINARY_8, /**< Binary byte stream, which is target at
49                                             JPEG. */
50
51         /** CSI2-MIPI specific format: Generic short packet data. It is used to
52          *  keep the timing information for the opening/closing of shutters,
53          *  triggering of flashes and etc.
54          */
55         IA_CSS_STREAM_FORMAT_GENERIC_SHORT1,  /**< Generic Short Packet Code 1 */
56         IA_CSS_STREAM_FORMAT_GENERIC_SHORT2,  /**< Generic Short Packet Code 2 */
57         IA_CSS_STREAM_FORMAT_GENERIC_SHORT3,  /**< Generic Short Packet Code 3 */
58         IA_CSS_STREAM_FORMAT_GENERIC_SHORT4,  /**< Generic Short Packet Code 4 */
59         IA_CSS_STREAM_FORMAT_GENERIC_SHORT5,  /**< Generic Short Packet Code 5 */
60         IA_CSS_STREAM_FORMAT_GENERIC_SHORT6,  /**< Generic Short Packet Code 6 */
61         IA_CSS_STREAM_FORMAT_GENERIC_SHORT7,  /**< Generic Short Packet Code 7 */
62         IA_CSS_STREAM_FORMAT_GENERIC_SHORT8,  /**< Generic Short Packet Code 8 */
63
64         /** CSI2-MIPI specific format: YUV data.
65          */
66         IA_CSS_STREAM_FORMAT_YUV420_8_SHIFT,  /**< YUV420 8-bit (Chroma Shifted Pixel Sampling) */
67         IA_CSS_STREAM_FORMAT_YUV420_10_SHIFT, /**< YUV420 8-bit (Chroma Shifted Pixel Sampling) */
68
69         /** CSI2-MIPI specific format: Generic long packet data
70          */
71         IA_CSS_STREAM_FORMAT_EMBEDDED, /**< Embedded 8-bit non Image Data */
72
73         /** CSI2-MIPI specific format: User defined byte-based data. For example,
74          *  the data transmitter (e.g. the SoC sensor) can keep the JPEG data as
75          *  the User Defined Data Type 4 and the MPEG data as the
76          *  User Defined Data Type 7.
77          */
78         IA_CSS_STREAM_FORMAT_USER_DEF1,  /**< User defined 8-bit data type 1 */
79         IA_CSS_STREAM_FORMAT_USER_DEF2,  /**< User defined 8-bit data type 2 */
80         IA_CSS_STREAM_FORMAT_USER_DEF3,  /**< User defined 8-bit data type 3 */
81         IA_CSS_STREAM_FORMAT_USER_DEF4,  /**< User defined 8-bit data type 4 */
82         IA_CSS_STREAM_FORMAT_USER_DEF5,  /**< User defined 8-bit data type 5 */
83         IA_CSS_STREAM_FORMAT_USER_DEF6,  /**< User defined 8-bit data type 6 */
84         IA_CSS_STREAM_FORMAT_USER_DEF7,  /**< User defined 8-bit data type 7 */
85         IA_CSS_STREAM_FORMAT_USER_DEF8,  /**< User defined 8-bit data type 8 */
86 };
87
88 #define IA_CSS_STREAM_FORMAT_NUM        IA_CSS_STREAM_FORMAT_USER_DEF8
89
90 unsigned int ia_css_util_input_format_bpp(
91         enum ia_css_stream_format format,
92         bool two_ppc);
93
94 #endif /* __IA_CSS_STREAM_FORMAT_H */