• Home
  • Raw
  • Download

Lines Matching refs:cptr

28 static int pvr2_ctrl_range_check(struct pvr2_ctrl *cptr,int val)  in pvr2_ctrl_range_check()  argument
30 if (cptr->info->check_value) { in pvr2_ctrl_range_check()
31 if (!cptr->info->check_value(cptr,val)) return -ERANGE; in pvr2_ctrl_range_check()
32 } else if (cptr->info->type == pvr2_ctl_enum) { in pvr2_ctrl_range_check()
34 if (val >= cptr->info->def.type_enum.count) return -ERANGE; in pvr2_ctrl_range_check()
37 lim = cptr->info->def.type_int.min_value; in pvr2_ctrl_range_check()
38 if (cptr->info->get_min_value) { in pvr2_ctrl_range_check()
39 cptr->info->get_min_value(cptr,&lim); in pvr2_ctrl_range_check()
42 lim = cptr->info->def.type_int.max_value; in pvr2_ctrl_range_check()
43 if (cptr->info->get_max_value) { in pvr2_ctrl_range_check()
44 cptr->info->get_max_value(cptr,&lim); in pvr2_ctrl_range_check()
53 int pvr2_ctrl_set_value(struct pvr2_ctrl *cptr,int val) in pvr2_ctrl_set_value() argument
55 return pvr2_ctrl_set_mask_value(cptr,~0,val); in pvr2_ctrl_set_value()
60 int pvr2_ctrl_set_mask_value(struct pvr2_ctrl *cptr,int mask,int val) in pvr2_ctrl_set_mask_value() argument
63 if (!cptr) return -EINVAL; in pvr2_ctrl_set_mask_value()
64 LOCK_TAKE(cptr->hdw->big_lock); do { in pvr2_ctrl_set_mask_value()
65 if (cptr->info->set_value) { in pvr2_ctrl_set_mask_value()
66 if (cptr->info->type == pvr2_ctl_bitmask) { in pvr2_ctrl_set_mask_value()
67 mask &= cptr->info->def.type_bitmask.valid_bits; in pvr2_ctrl_set_mask_value()
68 } else if ((cptr->info->type == pvr2_ctl_int)|| in pvr2_ctrl_set_mask_value()
69 (cptr->info->type == pvr2_ctl_enum)) { in pvr2_ctrl_set_mask_value()
70 ret = pvr2_ctrl_range_check(cptr,val); in pvr2_ctrl_set_mask_value()
72 } else if (cptr->info->type != pvr2_ctl_bool) { in pvr2_ctrl_set_mask_value()
75 ret = cptr->info->set_value(cptr,mask,val); in pvr2_ctrl_set_mask_value()
79 } while(0); LOCK_GIVE(cptr->hdw->big_lock); in pvr2_ctrl_set_mask_value()
85 int pvr2_ctrl_get_value(struct pvr2_ctrl *cptr,int *valptr) in pvr2_ctrl_get_value() argument
88 if (!cptr) return -EINVAL; in pvr2_ctrl_get_value()
89 LOCK_TAKE(cptr->hdw->big_lock); do { in pvr2_ctrl_get_value()
90 ret = cptr->info->get_value(cptr,valptr); in pvr2_ctrl_get_value()
91 } while(0); LOCK_GIVE(cptr->hdw->big_lock); in pvr2_ctrl_get_value()
97 enum pvr2_ctl_type pvr2_ctrl_get_type(struct pvr2_ctrl *cptr) in pvr2_ctrl_get_type() argument
99 if (!cptr) return pvr2_ctl_int; in pvr2_ctrl_get_type()
100 return cptr->info->type; in pvr2_ctrl_get_type()
105 int pvr2_ctrl_get_max(struct pvr2_ctrl *cptr) in pvr2_ctrl_get_max() argument
108 if (!cptr) return 0; in pvr2_ctrl_get_max()
109 LOCK_TAKE(cptr->hdw->big_lock); do { in pvr2_ctrl_get_max()
110 if (cptr->info->get_max_value) { in pvr2_ctrl_get_max()
111 cptr->info->get_max_value(cptr,&ret); in pvr2_ctrl_get_max()
112 } else if (cptr->info->type == pvr2_ctl_int) { in pvr2_ctrl_get_max()
113 ret = cptr->info->def.type_int.max_value; in pvr2_ctrl_get_max()
115 } while(0); LOCK_GIVE(cptr->hdw->big_lock); in pvr2_ctrl_get_max()
121 int pvr2_ctrl_get_min(struct pvr2_ctrl *cptr) in pvr2_ctrl_get_min() argument
124 if (!cptr) return 0; in pvr2_ctrl_get_min()
125 LOCK_TAKE(cptr->hdw->big_lock); do { in pvr2_ctrl_get_min()
126 if (cptr->info->get_min_value) { in pvr2_ctrl_get_min()
127 cptr->info->get_min_value(cptr,&ret); in pvr2_ctrl_get_min()
128 } else if (cptr->info->type == pvr2_ctl_int) { in pvr2_ctrl_get_min()
129 ret = cptr->info->def.type_int.min_value; in pvr2_ctrl_get_min()
131 } while(0); LOCK_GIVE(cptr->hdw->big_lock); in pvr2_ctrl_get_min()
137 int pvr2_ctrl_get_def(struct pvr2_ctrl *cptr, int *valptr) in pvr2_ctrl_get_def() argument
140 if (!cptr) return -EINVAL; in pvr2_ctrl_get_def()
141 LOCK_TAKE(cptr->hdw->big_lock); do { in pvr2_ctrl_get_def()
142 if (cptr->info->get_def_value) { in pvr2_ctrl_get_def()
143 ret = cptr->info->get_def_value(cptr, valptr); in pvr2_ctrl_get_def()
145 *valptr = cptr->info->default_value; in pvr2_ctrl_get_def()
147 } while(0); LOCK_GIVE(cptr->hdw->big_lock); in pvr2_ctrl_get_def()
153 int pvr2_ctrl_get_cnt(struct pvr2_ctrl *cptr) in pvr2_ctrl_get_cnt() argument
156 if (!cptr) return 0; in pvr2_ctrl_get_cnt()
157 LOCK_TAKE(cptr->hdw->big_lock); do { in pvr2_ctrl_get_cnt()
158 if (cptr->info->type == pvr2_ctl_enum) { in pvr2_ctrl_get_cnt()
159 ret = cptr->info->def.type_enum.count; in pvr2_ctrl_get_cnt()
161 } while(0); LOCK_GIVE(cptr->hdw->big_lock); in pvr2_ctrl_get_cnt()
167 int pvr2_ctrl_get_mask(struct pvr2_ctrl *cptr) in pvr2_ctrl_get_mask() argument
170 if (!cptr) return 0; in pvr2_ctrl_get_mask()
171 LOCK_TAKE(cptr->hdw->big_lock); do { in pvr2_ctrl_get_mask()
172 if (cptr->info->type == pvr2_ctl_bitmask) { in pvr2_ctrl_get_mask()
173 ret = cptr->info->def.type_bitmask.valid_bits; in pvr2_ctrl_get_mask()
175 } while(0); LOCK_GIVE(cptr->hdw->big_lock); in pvr2_ctrl_get_mask()
181 const char *pvr2_ctrl_get_name(struct pvr2_ctrl *cptr) in pvr2_ctrl_get_name() argument
183 if (!cptr) return NULL; in pvr2_ctrl_get_name()
184 return cptr->info->name; in pvr2_ctrl_get_name()
189 const char *pvr2_ctrl_get_desc(struct pvr2_ctrl *cptr) in pvr2_ctrl_get_desc() argument
191 if (!cptr) return NULL; in pvr2_ctrl_get_desc()
192 return cptr->info->desc; in pvr2_ctrl_get_desc()
197 int pvr2_ctrl_get_valname(struct pvr2_ctrl *cptr,int val, in pvr2_ctrl_get_valname() argument
202 if (!cptr) return 0; in pvr2_ctrl_get_valname()
204 LOCK_TAKE(cptr->hdw->big_lock); do { in pvr2_ctrl_get_valname()
205 if (cptr->info->type == pvr2_ctl_enum) { in pvr2_ctrl_get_valname()
207 names = cptr->info->def.type_enum.value_names; in pvr2_ctrl_get_valname()
208 if (pvr2_ctrl_range_check(cptr,val) == 0) { in pvr2_ctrl_get_valname()
218 } else if (cptr->info->type == pvr2_ctl_bitmask) { in pvr2_ctrl_get_valname()
222 names = cptr->info->def.type_bitmask.bit_names; in pvr2_ctrl_get_valname()
223 val &= cptr->info->def.type_bitmask.valid_bits; in pvr2_ctrl_get_valname()
233 } while(0); LOCK_GIVE(cptr->hdw->big_lock); in pvr2_ctrl_get_valname()
239 int pvr2_ctrl_get_v4lid(struct pvr2_ctrl *cptr) in pvr2_ctrl_get_v4lid() argument
241 if (!cptr) return 0; in pvr2_ctrl_get_v4lid()
242 return cptr->info->v4l_id; in pvr2_ctrl_get_v4lid()
246 unsigned int pvr2_ctrl_get_v4lflags(struct pvr2_ctrl *cptr) in pvr2_ctrl_get_v4lflags() argument
250 if (cptr->info->get_v4lflags) { in pvr2_ctrl_get_v4lflags()
251 flags = cptr->info->get_v4lflags(cptr); in pvr2_ctrl_get_v4lflags()
254 if (cptr->info->set_value) { in pvr2_ctrl_get_v4lflags()
265 int pvr2_ctrl_is_writable(struct pvr2_ctrl *cptr) in pvr2_ctrl_is_writable() argument
267 if (!cptr) return 0; in pvr2_ctrl_is_writable()
268 return cptr->info->set_value != NULL; in pvr2_ctrl_is_writable()
273 int pvr2_ctrl_has_custom_symbols(struct pvr2_ctrl *cptr) in pvr2_ctrl_has_custom_symbols() argument
275 if (!cptr) return 0; in pvr2_ctrl_has_custom_symbols()
276 if (!cptr->info->val_to_sym) return 0; in pvr2_ctrl_has_custom_symbols()
277 if (!cptr->info->sym_to_val) return 0; in pvr2_ctrl_has_custom_symbols()
283 int pvr2_ctrl_custom_value_to_sym(struct pvr2_ctrl *cptr, in pvr2_ctrl_custom_value_to_sym() argument
288 if (!cptr) return -EINVAL; in pvr2_ctrl_custom_value_to_sym()
289 if (!cptr->info->val_to_sym) return -EINVAL; in pvr2_ctrl_custom_value_to_sym()
290 return cptr->info->val_to_sym(cptr,mask,val,buf,maxlen,len); in pvr2_ctrl_custom_value_to_sym()
295 int pvr2_ctrl_custom_sym_to_value(struct pvr2_ctrl *cptr, in pvr2_ctrl_custom_sym_to_value() argument
299 if (!cptr) return -EINVAL; in pvr2_ctrl_custom_sym_to_value()
300 if (!cptr->info->sym_to_val) return -EINVAL; in pvr2_ctrl_custom_sym_to_value()
301 return cptr->info->sym_to_val(cptr,buf,len,maskptr,valptr); in pvr2_ctrl_custom_sym_to_value()
490 int pvr2_ctrl_sym_to_value(struct pvr2_ctrl *cptr, in pvr2_ctrl_sym_to_value() argument
510 LOCK_TAKE(cptr->hdw->big_lock); do { in pvr2_ctrl_sym_to_value()
511 if (cptr->info->type == pvr2_ctl_int) { in pvr2_ctrl_sym_to_value()
514 ret = pvr2_ctrl_range_check(cptr,*valptr); in pvr2_ctrl_sym_to_value()
517 } else if (cptr->info->type == pvr2_ctl_bool) { in pvr2_ctrl_sym_to_value()
526 } else if (cptr->info->type == pvr2_ctl_enum) { in pvr2_ctrl_sym_to_value()
529 cptr->info->def.type_enum.value_names, in pvr2_ctrl_sym_to_value()
530 cptr->info->def.type_enum.count); in pvr2_ctrl_sym_to_value()
532 ret = pvr2_ctrl_range_check(cptr,*valptr); in pvr2_ctrl_sym_to_value()
535 } else if (cptr->info->type == pvr2_ctl_bitmask) { in pvr2_ctrl_sym_to_value()
538 cptr->info->def.type_bitmask.bit_names, in pvr2_ctrl_sym_to_value()
539 cptr->info->def.type_bitmask.valid_bits); in pvr2_ctrl_sym_to_value()
541 } while(0); LOCK_GIVE(cptr->hdw->big_lock); in pvr2_ctrl_sym_to_value()
547 int pvr2_ctrl_value_to_sym_internal(struct pvr2_ctrl *cptr, in pvr2_ctrl_value_to_sym_internal() argument
555 if (cptr->info->type == pvr2_ctl_int) { in pvr2_ctrl_value_to_sym_internal()
558 } else if (cptr->info->type == pvr2_ctl_bool) { in pvr2_ctrl_value_to_sym_internal()
561 } else if (cptr->info->type == pvr2_ctl_enum) { in pvr2_ctrl_value_to_sym_internal()
563 names = cptr->info->def.type_enum.value_names; in pvr2_ctrl_value_to_sym_internal()
565 (val < cptr->info->def.type_enum.count)) { in pvr2_ctrl_value_to_sym_internal()
575 } else if (cptr->info->type == pvr2_ctl_bitmask) { in pvr2_ctrl_value_to_sym_internal()
577 val & mask & cptr->info->def.type_bitmask.valid_bits, in pvr2_ctrl_value_to_sym_internal()
579 cptr->info->def.type_bitmask.bit_names, in pvr2_ctrl_value_to_sym_internal()
587 int pvr2_ctrl_value_to_sym(struct pvr2_ctrl *cptr, in pvr2_ctrl_value_to_sym() argument
593 LOCK_TAKE(cptr->hdw->big_lock); do { in pvr2_ctrl_value_to_sym()
594 ret = pvr2_ctrl_value_to_sym_internal(cptr,mask,val, in pvr2_ctrl_value_to_sym()
596 } while(0); LOCK_GIVE(cptr->hdw->big_lock); in pvr2_ctrl_value_to_sym()