Lines Matching refs:chain

1215 	struct uvc_video_chain *chain;  in uvc_gpio_event()  local
1224 chain = list_first_entry(&dev->chains, struct uvc_video_chain, list); in uvc_gpio_event()
1225 uvc_ctrl_status_event(chain, unit->controls, &new_val); in uvc_gpio_event()
1340 static int uvc_scan_chain_entity(struct uvc_video_chain *chain, in uvc_scan_chain_entity() argument
1348 uvc_dbg(chain->dev, DESCR, in uvc_scan_chain_entity()
1359 if (chain->processing != NULL) { in uvc_scan_chain_entity()
1360 uvc_dbg(chain->dev, DESCR, in uvc_scan_chain_entity()
1365 chain->processing = entity; in uvc_scan_chain_entity()
1375 if (chain->selector != NULL) { in uvc_scan_chain_entity()
1376 uvc_dbg(chain->dev, DESCR, in uvc_scan_chain_entity()
1381 chain->selector = entity; in uvc_scan_chain_entity()
1407 uvc_dbg(chain->dev, DESCR, in uvc_scan_chain_entity()
1413 list_add_tail(&entity->chain, &chain->entities); in uvc_scan_chain_entity()
1417 static int uvc_scan_chain_forward(struct uvc_video_chain *chain, in uvc_scan_chain_forward() argument
1428 forward = uvc_entity_by_reference(chain->dev, entity->id, in uvc_scan_chain_forward()
1434 if (forward->chain.next || forward->chain.prev) { in uvc_scan_chain_forward()
1435 uvc_dbg(chain->dev, DESCR, in uvc_scan_chain_forward()
1444 uvc_dbg(chain->dev, DESCR, in uvc_scan_chain_forward()
1463 source = uvc_entity_by_id(chain->dev, in uvc_scan_chain_forward()
1466 uvc_dbg(chain->dev, DESCR, in uvc_scan_chain_forward()
1475 list_add_tail(&forward->chain, &chain->entities); in uvc_scan_chain_forward()
1488 uvc_dbg(chain->dev, DESCR, in uvc_scan_chain_forward()
1495 uvc_dbg(chain->dev, DESCR, in uvc_scan_chain_forward()
1501 list_add_tail(&forward->chain, &chain->entities); in uvc_scan_chain_forward()
1516 static int uvc_scan_chain_backward(struct uvc_video_chain *chain, in uvc_scan_chain_backward() argument
1538 chain->selector = entity; in uvc_scan_chain_backward()
1541 term = uvc_entity_by_id(chain->dev, id); in uvc_scan_chain_backward()
1543 uvc_dbg(chain->dev, DESCR, in uvc_scan_chain_backward()
1549 if (term->chain.next || term->chain.prev) { in uvc_scan_chain_backward()
1550 uvc_dbg(chain->dev, DESCR, in uvc_scan_chain_backward()
1558 list_add_tail(&term->chain, &chain->entities); in uvc_scan_chain_backward()
1559 uvc_scan_chain_forward(chain, term, entity); in uvc_scan_chain_backward()
1583 entity = uvc_entity_by_id(chain->dev, id); in uvc_scan_chain_backward()
1585 uvc_dbg(chain->dev, DESCR, in uvc_scan_chain_backward()
1594 static int uvc_scan_chain(struct uvc_video_chain *chain, in uvc_scan_chain() argument
1599 uvc_dbg(chain->dev, PROBE, "Scanning UVC chain:"); in uvc_scan_chain()
1606 if (entity->chain.next || entity->chain.prev) { in uvc_scan_chain()
1607 uvc_dbg(chain->dev, DESCR, in uvc_scan_chain()
1614 if (uvc_scan_chain_entity(chain, entity) < 0) in uvc_scan_chain()
1618 if (uvc_scan_chain_forward(chain, entity, prev) < 0) in uvc_scan_chain()
1623 if (uvc_scan_chain_backward(chain, &entity) < 0) in uvc_scan_chain()
1637 list_for_each_entry(term, terms, chain) { in uvc_print_terms()
1654 static const char *uvc_print_chain(struct uvc_video_chain *chain) in uvc_print_chain() argument
1659 p += uvc_print_terms(&chain->entities, UVC_TERM_INPUT, p); in uvc_print_chain()
1661 uvc_print_terms(&chain->entities, UVC_TERM_OUTPUT, p); in uvc_print_chain()
1668 struct uvc_video_chain *chain; in uvc_alloc_chain() local
1670 chain = kzalloc(sizeof(*chain), GFP_KERNEL); in uvc_alloc_chain()
1671 if (chain == NULL) in uvc_alloc_chain()
1674 INIT_LIST_HEAD(&chain->entities); in uvc_alloc_chain()
1675 mutex_init(&chain->ctrl_mutex); in uvc_alloc_chain()
1676 chain->dev = dev; in uvc_alloc_chain()
1677 v4l2_prio_init(&chain->prio); in uvc_alloc_chain()
1679 return chain; in uvc_alloc_chain()
1697 struct uvc_video_chain *chain; in uvc_scan_fallback() local
1725 chain = uvc_alloc_chain(dev); in uvc_scan_fallback()
1726 if (chain == NULL) in uvc_scan_fallback()
1729 if (uvc_scan_chain_entity(chain, oterm) < 0) in uvc_scan_fallback()
1749 if (uvc_scan_chain_entity(chain, entity) < 0) in uvc_scan_fallback()
1756 if (uvc_scan_chain_entity(chain, iterm) < 0) in uvc_scan_fallback()
1761 list_add_tail(&chain->list, &dev->chains); in uvc_scan_fallback()
1764 uvc_print_chain(chain)); in uvc_scan_fallback()
1769 kfree(chain); in uvc_scan_fallback()
1780 struct uvc_video_chain *chain; in uvc_scan_device() local
1793 if (term->chain.next || term->chain.prev) in uvc_scan_device()
1796 chain = uvc_alloc_chain(dev); in uvc_scan_device()
1797 if (chain == NULL) in uvc_scan_device()
1802 if (uvc_scan_chain(chain, term) < 0) { in uvc_scan_device()
1803 kfree(chain); in uvc_scan_device()
1808 uvc_print_chain(chain)); in uvc_scan_device()
1810 list_add_tail(&chain->list, &dev->chains); in uvc_scan_device()
1823 chain = list_first_entry(&dev->chains, in uvc_scan_device()
1825 list_add_tail(&dev->gpio_unit->chain, &chain->entities); in uvc_scan_device()
1861 struct uvc_video_chain *chain; in uvc_delete() local
1862 chain = list_entry(p, struct uvc_video_chain, list); in uvc_delete()
1863 kfree(chain); in uvc_delete()
1947 vdev->prio = &stream->chain->prio; in uvc_register_video_device()
2000 stream->chain->caps |= V4L2_CAP_VIDEO_CAPTURE in uvc_register_video()
2003 stream->chain->caps |= V4L2_CAP_VIDEO_OUTPUT; in uvc_register_video()
2017 struct uvc_video_chain *chain) in uvc_register_terms() argument
2023 list_for_each_entry(term, &chain->entities, chain) { in uvc_register_terms()
2035 stream->chain = chain; in uvc_register_terms()
2054 struct uvc_video_chain *chain; in uvc_register_chains() local
2057 list_for_each_entry(chain, &dev->chains, list) { in uvc_register_chains()
2058 ret = uvc_register_terms(dev, chain); in uvc_register_chains()
2063 ret = uvc_mc_register_entities(chain); in uvc_register_chains()