Lines Matching refs:mapping
368 static __s32 uvc_ctrl_get_zoom(struct uvc_control_mapping *mapping, in uvc_ctrl_get_zoom() argument
386 static void uvc_ctrl_set_zoom(struct uvc_control_mapping *mapping, in uvc_ctrl_set_zoom() argument
393 static __s32 uvc_ctrl_get_rel_speed(struct uvc_control_mapping *mapping, in uvc_ctrl_get_rel_speed() argument
396 unsigned int first = mapping->offset / 8; in uvc_ctrl_get_rel_speed()
413 static void uvc_ctrl_set_rel_speed(struct uvc_control_mapping *mapping, in uvc_ctrl_set_rel_speed() argument
416 unsigned int first = mapping->offset / 8; in uvc_ctrl_set_rel_speed()
767 static __s32 uvc_get_le_value(struct uvc_control_mapping *mapping, in uvc_get_le_value() argument
770 int bits = mapping->size; in uvc_get_le_value()
771 int offset = mapping->offset; in uvc_get_le_value()
788 if (mapping->data_type == UVC_CTRL_DATA_TYPE_SIGNED) in uvc_get_le_value()
789 value |= -(value & (1 << (mapping->size - 1))); in uvc_get_le_value()
797 static void uvc_set_le_value(struct uvc_control_mapping *mapping, in uvc_set_le_value() argument
800 int bits = mapping->size; in uvc_set_le_value()
801 int offset = mapping->offset; in uvc_set_le_value()
809 if (mapping->v4l2_type == V4L2_CTRL_TYPE_BUTTON) in uvc_set_le_value()
860 struct uvc_control_mapping **mapping, struct uvc_control **control, in __uvc_find_control() argument
878 *mapping = map; in __uvc_find_control()
882 if ((*mapping == NULL || (*mapping)->id > map->id) && in __uvc_find_control()
885 *mapping = map; in __uvc_find_control()
892 __u32 v4l2_id, struct uvc_control_mapping **mapping) in uvc_find_control() argument
898 *mapping = NULL; in uvc_find_control()
905 __uvc_find_control(entity, v4l2_id, mapping, &ctrl, next); in uvc_find_control()
974 struct uvc_control *ctrl, struct uvc_control_mapping *mapping, in __uvc_ctrl_get() argument
995 *value = mapping->get(mapping, UVC_GET_CUR, in __uvc_ctrl_get()
998 if (mapping->v4l2_type == V4L2_CTRL_TYPE_MENU) { in __uvc_ctrl_get()
999 menu = mapping->menu_info; in __uvc_ctrl_get()
1000 for (i = 0; i < mapping->menu_count; ++i, ++menu) { in __uvc_ctrl_get()
1013 struct uvc_control_mapping *mapping, in __uvc_query_v4l2_ctrl() argument
1022 v4l2_ctrl->id = mapping->id; in __uvc_query_v4l2_ctrl()
1023 v4l2_ctrl->type = mapping->v4l2_type; in __uvc_query_v4l2_ctrl()
1024 strlcpy(v4l2_ctrl->name, mapping->name, sizeof v4l2_ctrl->name); in __uvc_query_v4l2_ctrl()
1032 if (mapping->master_id) in __uvc_query_v4l2_ctrl()
1033 __uvc_find_control(ctrl->entity, mapping->master_id, in __uvc_query_v4l2_ctrl()
1041 if (val != mapping->master_manual) in __uvc_query_v4l2_ctrl()
1052 v4l2_ctrl->default_value = mapping->get(mapping, UVC_GET_DEF, in __uvc_query_v4l2_ctrl()
1056 switch (mapping->v4l2_type) { in __uvc_query_v4l2_ctrl()
1059 v4l2_ctrl->maximum = mapping->menu_count - 1; in __uvc_query_v4l2_ctrl()
1062 menu = mapping->menu_info; in __uvc_query_v4l2_ctrl()
1063 for (i = 0; i < mapping->menu_count; ++i, ++menu) { in __uvc_query_v4l2_ctrl()
1089 v4l2_ctrl->minimum = mapping->get(mapping, UVC_GET_MIN, in __uvc_query_v4l2_ctrl()
1093 v4l2_ctrl->maximum = mapping->get(mapping, UVC_GET_MAX, in __uvc_query_v4l2_ctrl()
1097 v4l2_ctrl->step = mapping->get(mapping, UVC_GET_RES, in __uvc_query_v4l2_ctrl()
1107 struct uvc_control_mapping *mapping; in uvc_query_v4l2_ctrl() local
1114 ctrl = uvc_find_control(chain, v4l2_ctrl->id, &mapping); in uvc_query_v4l2_ctrl()
1120 ret = __uvc_query_v4l2_ctrl(chain, ctrl, mapping, v4l2_ctrl); in uvc_query_v4l2_ctrl()
1139 struct uvc_control_mapping *mapping; in uvc_query_v4l2_menu() local
1153 ctrl = uvc_find_control(chain, query_menu->id, &mapping); in uvc_query_v4l2_menu()
1154 if (ctrl == NULL || mapping->v4l2_type != V4L2_CTRL_TYPE_MENU) { in uvc_query_v4l2_menu()
1159 if (query_menu->index >= mapping->menu_count) { in uvc_query_v4l2_menu()
1164 menu_info = &mapping->menu_info[query_menu->index]; in uvc_query_v4l2_menu()
1166 if (mapping->data_type == UVC_CTRL_DATA_TYPE_BITMASK && in uvc_query_v4l2_menu()
1176 bitmap = mapping->get(mapping, UVC_GET_RES, in uvc_query_v4l2_menu()
1198 struct uvc_control_mapping *mapping, in uvc_ctrl_fill_event() argument
1203 __uvc_query_v4l2_ctrl(chain, ctrl, mapping, &v4l2_ctrl); in uvc_ctrl_fill_event()
1219 struct uvc_control *ctrl, struct uvc_control_mapping *mapping, in uvc_ctrl_send_event() argument
1225 if (list_empty(&mapping->ev_subs)) in uvc_ctrl_send_event()
1228 uvc_ctrl_fill_event(handle->chain, &ev, ctrl, mapping, value, changes); in uvc_ctrl_send_event()
1230 list_for_each_entry(sev, &mapping->ev_subs, node) { in uvc_ctrl_send_event()
1242 struct uvc_control_mapping *mapping = NULL; in uvc_ctrl_send_slave_event() local
1257 __uvc_find_control(master->entity, slave_id, &mapping, &ctrl, 0); in uvc_ctrl_send_slave_event()
1261 if (__uvc_ctrl_get(handle->chain, ctrl, mapping, &val) == 0) in uvc_ctrl_send_slave_event()
1264 uvc_ctrl_send_event(handle, ctrl, mapping, val, changes); in uvc_ctrl_send_slave_event()
1270 struct uvc_control_mapping *mapping; in uvc_ctrl_send_events() local
1277 ctrl = uvc_find_control(handle->chain, xctrls[i].id, &mapping); in uvc_ctrl_send_events()
1279 for (j = 0; j < ARRAY_SIZE(mapping->slave_ids); ++j) { in uvc_ctrl_send_events()
1280 if (!mapping->slave_ids[j]) in uvc_ctrl_send_events()
1283 mapping->slave_ids[j], in uvc_ctrl_send_events()
1291 if (mapping->master_id) { in uvc_ctrl_send_events()
1293 if (xctrls[j].id == mapping->master_id) { in uvc_ctrl_send_events()
1300 uvc_ctrl_send_event(handle, ctrl, mapping, xctrls[i].value, in uvc_ctrl_send_events()
1308 struct uvc_control_mapping *mapping; in uvc_ctrl_add_event() local
1316 ctrl = uvc_find_control(handle->chain, sev->id, &mapping); in uvc_ctrl_add_event()
1322 list_add_tail(&sev->node, &mapping->ev_subs); in uvc_ctrl_add_event()
1328 if (__uvc_ctrl_get(handle->chain, ctrl, mapping, &val) == 0) in uvc_ctrl_add_event()
1331 uvc_ctrl_fill_event(handle->chain, &ev, ctrl, mapping, val, in uvc_ctrl_add_event()
1465 struct uvc_control_mapping *mapping; in uvc_ctrl_get() local
1467 ctrl = uvc_find_control(chain, xctrl->id, &mapping); in uvc_ctrl_get()
1471 return __uvc_ctrl_get(chain, ctrl, mapping, &xctrl->value); in uvc_ctrl_get()
1478 struct uvc_control_mapping *mapping; in uvc_ctrl_set() local
1485 ctrl = uvc_find_control(chain, xctrl->id, &mapping); in uvc_ctrl_set()
1492 switch (mapping->v4l2_type) { in uvc_ctrl_set()
1500 min = mapping->get(mapping, UVC_GET_MIN, in uvc_ctrl_set()
1502 max = mapping->get(mapping, UVC_GET_MAX, in uvc_ctrl_set()
1504 step = mapping->get(mapping, UVC_GET_RES, in uvc_ctrl_set()
1511 if (mapping->data_type == UVC_CTRL_DATA_TYPE_SIGNED) in uvc_ctrl_set()
1524 if (xctrl->value < 0 || xctrl->value >= mapping->menu_count) in uvc_ctrl_set()
1526 value = mapping->menu_info[xctrl->value].value; in uvc_ctrl_set()
1531 if (mapping->data_type == UVC_CTRL_DATA_TYPE_BITMASK && in uvc_ctrl_set()
1539 step = mapping->get(mapping, UVC_GET_RES, in uvc_ctrl_set()
1556 if (!ctrl->loaded && (ctrl->info.size * 8) != mapping->size) { in uvc_ctrl_set()
1580 mapping->set(mapping, value, in uvc_ctrl_set()
1920 struct uvc_control *ctrl, const struct uvc_control_mapping *mapping) in __uvc_ctrl_add_mapping() argument
1929 map = kmemdup(mapping, sizeof(*mapping), GFP_KERNEL); in __uvc_ctrl_add_mapping()
1935 size = sizeof(*mapping->menu_info) * mapping->menu_count; in __uvc_ctrl_add_mapping()
1936 map->menu_info = kmemdup(mapping->menu_info, size, GFP_KERNEL); in __uvc_ctrl_add_mapping()
1956 const struct uvc_control_mapping *mapping) in uvc_ctrl_add_mapping() argument
1965 if (mapping->id & ~V4L2_CTRL_ID_MASK) { in uvc_ctrl_add_mapping()
1967 "id 0x%08x is invalid.\n", mapping->name, in uvc_ctrl_add_mapping()
1968 mapping->id); in uvc_ctrl_add_mapping()
1977 !uvc_entity_match_guid(entity, mapping->entity)) in uvc_ctrl_add_mapping()
1982 if (ctrl->index == mapping->selector - 1) { in uvc_ctrl_add_mapping()
2005 if (mapping->id == map->id) { in uvc_ctrl_add_mapping()
2008 mapping->name, mapping->id); in uvc_ctrl_add_mapping()
2018 "mappings count (%u) exceeded.\n", mapping->name, in uvc_ctrl_add_mapping()
2024 ret = __uvc_ctrl_add_mapping(dev, ctrl, mapping); in uvc_ctrl_add_mapping()
2103 const struct uvc_control_mapping *mapping = uvc_ctrl_mappings; in uvc_ctrl_init_ctrl() local
2105 mapping + ARRAY_SIZE(uvc_ctrl_mappings); in uvc_ctrl_init_ctrl()
2126 for (; mapping < mend; ++mapping) { in uvc_ctrl_init_ctrl()
2127 if (uvc_entity_match_guid(ctrl->entity, mapping->entity) && in uvc_ctrl_init_ctrl()
2128 ctrl->info.selector == mapping->selector) in uvc_ctrl_init_ctrl()
2129 __uvc_ctrl_add_mapping(dev, ctrl, mapping); in uvc_ctrl_init_ctrl()
2195 struct uvc_control_mapping *mapping, *nm; in uvc_ctrl_cleanup_mappings() local
2197 list_for_each_entry_safe(mapping, nm, &ctrl->info.mappings, list) { in uvc_ctrl_cleanup_mappings()
2198 list_del(&mapping->list); in uvc_ctrl_cleanup_mappings()
2199 kfree(mapping->menu_info); in uvc_ctrl_cleanup_mappings()
2200 kfree(mapping); in uvc_ctrl_cleanup_mappings()