GNU Linux-libre 4.14.266-gnu1
[releases.git] / drivers / staging / media / atomisp / pci / atomisp2 / css2400 / hive_isp_css_shared / tag_global.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 __TAG_GLOBAL_H_INCLUDED__
16 #define __TAG_GLOBAL_H_INCLUDED__
17
18 /* offsets for encoding/decoding the tag into an uint32_t */
19
20 #define TAG_CAP 1
21 #define TAG_EXP 2
22
23 #define TAG_NUM_CAPTURES_SIGN_SHIFT      6
24 #define TAG_OFFSET_SIGN_SHIFT            7
25 #define TAG_NUM_CAPTURES_SHIFT           8
26 #define TAG_OFFSET_SHIFT                16
27 #define TAG_SKIP_SHIFT                  24
28
29 #define TAG_EXP_ID_SHIFT                 8
30
31 /* Data structure containing the tagging information which is used in
32  * continuous mode to specify which frames should be captured.
33  * num_captures         The number of RAW frames to be processed to
34  *                      YUV. Setting this to -1 will make continuous
35  *                      capture run until it is stopped.
36  * skip                 Skip N frames in between captures. This can be
37  *                      used to select a slower capture frame rate than
38  *                      the sensor output frame rate.
39  * offset               Start the RAW-to-YUV processing at RAW buffer
40  *                      with this offset. This allows the user to
41  *                      process RAW frames that were captured in the
42  *                      past or future.
43  * exp_id               Exposure id of the RAW frame to tag.
44  *
45  * NOTE: Either exp_id = 0 or all other fields are 0
46  *       (so yeah, this could be a union)
47  */
48
49 struct sh_css_tag_descr {
50         int num_captures;
51         unsigned int skip;
52         int offset;
53         unsigned int exp_id;
54 };
55
56 #endif /* __TAG_GLOBAL_H_INCLUDED__ */