Lines Matching refs:chain

891 static struct uvc_control *uvc_find_control(struct uvc_video_chain *chain,  in uvc_find_control()  argument
904 list_for_each_entry(entity, &chain->entities, chain) { in uvc_find_control()
917 static int uvc_ctrl_populate_cache(struct uvc_video_chain *chain, in uvc_ctrl_populate_cache() argument
923 ret = uvc_query_ctrl(chain->dev, UVC_GET_DEF, ctrl->entity->id, in uvc_ctrl_populate_cache()
924 chain->dev->intfnum, ctrl->info.selector, in uvc_ctrl_populate_cache()
932 ret = uvc_query_ctrl(chain->dev, UVC_GET_MIN, ctrl->entity->id, in uvc_ctrl_populate_cache()
933 chain->dev->intfnum, ctrl->info.selector, in uvc_ctrl_populate_cache()
940 ret = uvc_query_ctrl(chain->dev, UVC_GET_MAX, ctrl->entity->id, in uvc_ctrl_populate_cache()
941 chain->dev->intfnum, ctrl->info.selector, in uvc_ctrl_populate_cache()
948 ret = uvc_query_ctrl(chain->dev, UVC_GET_RES, ctrl->entity->id, in uvc_ctrl_populate_cache()
949 chain->dev->intfnum, ctrl->info.selector, in uvc_ctrl_populate_cache()
961 uvc_warn_once(chain->dev, UVC_WARN_XU_GET_RES, in uvc_ctrl_populate_cache()
973 static int __uvc_ctrl_get(struct uvc_video_chain *chain, in __uvc_ctrl_get() argument
985 ret = uvc_query_ctrl(chain->dev, UVC_GET_CUR, ctrl->entity->id, in __uvc_ctrl_get()
986 chain->dev->intfnum, ctrl->info.selector, in __uvc_ctrl_get()
1011 static int __uvc_query_v4l2_ctrl(struct uvc_video_chain *chain, in __uvc_query_v4l2_ctrl() argument
1037 int ret = __uvc_ctrl_get(chain, master_ctrl, master_map, &val); in __uvc_query_v4l2_ctrl()
1046 int ret = uvc_ctrl_populate_cache(chain, ctrl); in __uvc_query_v4l2_ctrl()
1103 int uvc_query_v4l2_ctrl(struct uvc_video_chain *chain, in uvc_query_v4l2_ctrl() argument
1110 ret = mutex_lock_interruptible(&chain->ctrl_mutex); in uvc_query_v4l2_ctrl()
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()
1122 mutex_unlock(&chain->ctrl_mutex); in uvc_query_v4l2_ctrl()
1135 int uvc_query_v4l2_menu(struct uvc_video_chain *chain, in uvc_query_v4l2_menu() argument
1149 ret = mutex_lock_interruptible(&chain->ctrl_mutex); in uvc_query_v4l2_menu()
1153 ctrl = uvc_find_control(chain, query_menu->id, &mapping); in uvc_query_v4l2_menu()
1171 ret = uvc_ctrl_populate_cache(chain, ctrl); in uvc_query_v4l2_menu()
1187 mutex_unlock(&chain->ctrl_mutex); in uvc_query_v4l2_menu()
1195 static void uvc_ctrl_fill_event(struct uvc_video_chain *chain, in uvc_ctrl_fill_event() argument
1203 __uvc_query_v4l2_ctrl(chain, ctrl, mapping, &v4l2_ctrl); in uvc_ctrl_fill_event()
1228 uvc_ctrl_fill_event(handle->chain, &ev, ctrl, mapping, value, changes); in uvc_ctrl_send_event()
1261 if (__uvc_ctrl_get(handle->chain, ctrl, mapping, &val) == 0) in uvc_ctrl_send_slave_event()
1277 ctrl = uvc_find_control(handle->chain, xctrls[i].id, &mapping); in uvc_ctrl_send_events()
1312 ret = mutex_lock_interruptible(&handle->chain->ctrl_mutex); in uvc_ctrl_add_event()
1316 ctrl = uvc_find_control(handle->chain, sev->id, &mapping); 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()
1340 mutex_unlock(&handle->chain->ctrl_mutex); in uvc_ctrl_add_event()
1348 mutex_lock(&handle->chain->ctrl_mutex); in uvc_ctrl_del_event()
1350 mutex_unlock(&handle->chain->ctrl_mutex); in uvc_ctrl_del_event()
1384 int uvc_ctrl_begin(struct uvc_video_chain *chain) in uvc_ctrl_begin() argument
1386 return mutex_lock_interruptible(&chain->ctrl_mutex) ? -ERESTARTSYS : 0; in uvc_ctrl_begin()
1443 struct uvc_video_chain *chain = handle->chain; in __uvc_ctrl_commit() local
1448 list_for_each_entry(entity, &chain->entities, chain) { in __uvc_ctrl_commit()
1449 ret = uvc_ctrl_commit_entity(chain->dev, entity, rollback); in __uvc_ctrl_commit()
1457 mutex_unlock(&chain->ctrl_mutex); in __uvc_ctrl_commit()
1461 int uvc_ctrl_get(struct uvc_video_chain *chain, in uvc_ctrl_get() argument
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()
1474 int uvc_ctrl_set(struct uvc_video_chain *chain, in uvc_ctrl_set() argument
1485 ctrl = uvc_find_control(chain, xctrl->id, &mapping); in uvc_ctrl_set()
1495 ret = uvc_ctrl_populate_cache(chain, ctrl); in uvc_ctrl_set()
1534 ret = uvc_ctrl_populate_cache(chain, ctrl); in uvc_ctrl_set()
1561 ret = uvc_query_ctrl(chain->dev, UVC_GET_CUR, in uvc_ctrl_set()
1562 ctrl->entity->id, chain->dev->intfnum, in uvc_ctrl_set()
1719 int uvc_xu_ctrl_query(struct uvc_video_chain *chain, in uvc_xu_ctrl_query() argument
1731 list_for_each_entry(entity, &chain->entities, chain) { in uvc_xu_ctrl_query()
1758 if (mutex_lock_interruptible(&chain->ctrl_mutex)) in uvc_xu_ctrl_query()
1761 ret = uvc_ctrl_init_xu_ctrl(chain->dev, ctrl); in uvc_xu_ctrl_query()
1823 ret = uvc_query_ctrl(chain->dev, xqry->query, xqry->unit, in uvc_xu_ctrl_query()
1824 chain->dev->intfnum, xqry->selector, data, size); in uvc_xu_ctrl_query()
1833 mutex_unlock(&chain->ctrl_mutex); in uvc_xu_ctrl_query()
1955 int uvc_ctrl_add_mapping(struct uvc_video_chain *chain, in uvc_ctrl_add_mapping() argument
1958 struct uvc_device *dev = chain->dev; in uvc_ctrl_add_mapping()
1973 list_for_each_entry(entity, &chain->entities, chain) { in uvc_ctrl_add_mapping()
1994 if (mutex_lock_interruptible(&chain->ctrl_mutex)) in uvc_ctrl_add_mapping()
2029 mutex_unlock(&chain->ctrl_mutex); in uvc_ctrl_add_mapping()