1 /* SPDX-License-Identifier: GPL-2.0 */
2 /*
3  * Support for Intel Camera Imaging ISP subsystem.
4  * Copyright (c) 2015, Intel Corporation.
5  */
6 
7 #ifndef __TAG_GLOBAL_H_INCLUDED__
8 #define __TAG_GLOBAL_H_INCLUDED__
9 
10 /* offsets for encoding/decoding the tag into an uint32_t */
11 
12 #define TAG_CAP	1
13 #define TAG_EXP	2
14 
15 #define TAG_NUM_CAPTURES_SIGN_SHIFT	 6
16 #define TAG_OFFSET_SIGN_SHIFT		 7
17 #define TAG_NUM_CAPTURES_SHIFT		 8
18 #define TAG_OFFSET_SHIFT		16
19 #define TAG_SKIP_SHIFT			24
20 
21 #define TAG_EXP_ID_SHIFT		 8
22 
23 /* Data structure containing the tagging information which is used in
24  * continuous mode to specify which frames should be captured.
25  * num_captures		The number of RAW frames to be processed to
26  *                      YUV. Setting this to -1 will make continuous
27  *                      capture run until it is stopped.
28  * skip			Skip N frames in between captures. This can be
29  *                      used to select a slower capture frame rate than
30  *                      the sensor output frame rate.
31  * offset		Start the RAW-to-YUV processing at RAW buffer
32  *                      with this offset. This allows the user to
33  *                      process RAW frames that were captured in the
34  *                      past or future.
35  * exp_id		Exposure id of the RAW frame to tag.
36  *
37  * NOTE: Either exp_id = 0 or all other fields are 0
38  *	 (so yeah, this could be a union)
39  */
40 
41 struct sh_css_tag_descr {
42 	int num_captures;
43 	unsigned int skip;
44 	int offset;
45 	unsigned int exp_id;
46 };
47 
48 #endif /* __TAG_GLOBAL_H_INCLUDED__ */
49