diff options
Diffstat (limited to 'include/media/nvc_focus.h')
-rw-r--r-- | include/media/nvc_focus.h | 53 |
1 files changed, 49 insertions, 4 deletions
diff --git a/include/media/nvc_focus.h b/include/media/nvc_focus.h index bed9df11a34a..e37d897d8323 100644 --- a/include/media/nvc_focus.h +++ b/include/media/nvc_focus.h @@ -33,6 +33,8 @@ #define NVC_FOCUS_CAP_VER2 2 #define NVC_FOCUS_CAP_VER 2 /* latest version */ +#define AF_POS_INVALID_VALUE INT_MAX + enum nvc_focus_sts { NVC_FOCUS_STS_UNKNOWN = 1, NVC_FOCUS_STS_NO_DEVICE, @@ -52,12 +54,55 @@ struct nvc_focus_nvc { struct nvc_focus_cap { __u32 version; - __u32 actuator_range; + __s32 actuator_range; + __u32 settle_time; + __s32 focus_macro; + __s32 focus_hyper; + __s32 focus_infinity; + __u32 slew_rate; + __u32 position_translate; +} __packed; + + +#define NV_FOCUSER_SET_MAX 10 +#define NV_FOCUSER_SET_DISTANCE_PAIR 16 + +struct nv_focuser_set_dist_pairs { + __s32 fdn; + __s32 distance; +} __packed; + +struct nv_focuser_set { + __s32 posture; + __s32 macro; + __s32 hyper; + __s32 inf; + __s32 hysteresis; __u32 settle_time; - __u32 focus_macro; - __u32 focus_hyper; - __u32 focus_infinity; + __s32 macro_offset; + __s32 inf_offset; + __u32 num_dist_pairs; + struct nv_focuser_set_dist_pairs + dist_pair[NV_FOCUSER_SET_DISTANCE_PAIR]; } __packed; +struct nv_focuser_config { + __u32 focal_length; + __u32 fnumber; + __u32 max_aperture; + __s32 actuator_range; + __u32 settle_time; + __u32 range_ends_reversed; + __s32 pos_working_low; + __s32 pos_working_high; + __s32 pos_actual_low; + __s32 pos_actual_high; + __u32 slew_rate; + __u32 circle_of_confusion; + __u32 num_focuser_sets; + struct nv_focuser_set focuser_set[NV_FOCUSER_SET_MAX]; +} __packed; + + #endif /* __NVC_FOCUS_H__ */ |