kernel: Fix build breaks
[linux-3.10.git] / include / media / nvc_torch.h
1 /* Copyright (C) 2011 NVIDIA Corporation.
2  *
3  * This program is free software; you can redistribute it and/or modify
4  * it under the terms of the GNU General Public License version 2 as
5  * published by the Free Software Foundation.
6  *
7  * This program is distributed in the hope that it will be useful,
8  * but WITHOUT ANY WARRANTY; without even the implied warranty of
9  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
10  * GNU General Public License for more details.
11  *
12  * You should have received a copy of the GNU General Public License
13  * along with this program; if not, write to the Free Software
14  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
15  * 02111-1307, USA
16  */
17
18 #ifndef __NVC_TORCH_H__
19 #define __NVC_TORCH_H__
20
21 struct nvc_torch_level_info {
22         __s32 guidenum;
23         __u32 sustaintime;
24         __s32 rechargefactor;
25 } __packed;
26
27 struct nvc_torch_pin_state {
28         __u16 mask;
29         __u16 values;
30 } __packed;
31
32 struct nvc_torch_flash_capabilities {
33         __u32 numberoflevels;
34         struct nvc_torch_level_info levels[];
35 } __packed;
36
37 struct nvc_torch_torch_capabilities {
38         __u32 numberoflevels;
39         __s32 guidenum[];
40 } __packed;
41
42 /* advanced flash/torch capability settings */
43 /* use version number to distinguish between different capability structures */
44 #define NVC_TORCH_LED_ATTR_FLASH_SYNC   1
45 #define NVC_TORCH_LED_ATTR_IND_FTIMER   (1 << 1)
46 #define NVC_TORCH_LED_ATTR_TORCH_SYNC   (1 << 16)
47 #define NVC_TORCH_LED_ATTR_IND_TTIMER   (1 << 17)
48
49 struct nvc_torch_capability_query {
50         __u8 version;
51         __u8 flash_num;         /* number of flashes supported by this device */
52         __u8 torch_num;         /* number of torches supported by this device */
53         __u8 reserved;
54         __u32 led_attr;
55 };
56
57 #define NVC_TORCH_CAPABILITY_LEGACY     0
58 #define NVC_TORCH_CAPABILITY_VER_1      1
59
60 struct nvc_torch_set_level_v1 {
61         __u16 ledmask;
62         __u16 timeout;
63         /* flash/torch levels mapped to ledmask for lsb to msb respectively */
64         __u16 levels[2];
65 };
66
67 struct nvc_torch_lumi_level_v1 {
68         __u16 guidenum;
69         __u32 luminance;
70         __u32 reserved;
71 };
72
73 struct nvc_torch_timeout_v1 {
74         __u32 timeout;
75         __u32 reserved1;
76 };
77
78 struct nvc_torch_timer_capabilities_v1 {
79         __u32 timeout_num;
80         /* time out durations in uS */
81         struct nvc_torch_timeout_v1 timeouts[];
82 };
83
84 struct nvc_torch_flash_capabilities_v1 {
85         __u8 version;           /* fixed number 1 */
86         __u8 led_idx;
87         __u8 reserved1;
88         __u8 reserved2;
89         __u32 attribute;
90         __u16 granularity;      /* 1, 10, 100, ... to carry float settings */
91         __u16 flash_torch_ratio;
92         __u32 timeout_num;
93         __u32 timeout_off;
94         __u32 numberoflevels;
95         struct nvc_torch_lumi_level_v1 levels[];
96 };
97
98 struct nvc_torch_torch_capabilities_v1 {
99         __u8 version;           /* fixed number 1 */
100         __u8 led_idx;
101         __u8 reserved1;
102         __u8 reserved2;
103         __u32 attribute;
104         __u16 granularity;      /* 1, 10, 100, ... to carry float settings */
105         __u16 reserved4;
106         __u32 timeout_num;
107         __u32 timeout_off;
108         __u32 numberoflevels;
109         struct nvc_torch_lumi_level_v1 levels[];
110 };
111
112 #endif /* __NVC_TORCH_H__ */
113