Lines Matching refs:chain

1285 static int uvc_scan_chain_entity(struct uvc_video_chain *chain,  in uvc_scan_chain_entity()  argument
1305 if (chain->processing != NULL) { in uvc_scan_chain_entity()
1311 chain->processing = entity; in uvc_scan_chain_entity()
1322 if (chain->selector != NULL) { in uvc_scan_chain_entity()
1328 chain->selector = entity; in uvc_scan_chain_entity()
1364 list_add_tail(&entity->chain, &chain->entities); in uvc_scan_chain_entity()
1368 static int uvc_scan_chain_forward(struct uvc_video_chain *chain, in uvc_scan_chain_forward() argument
1379 forward = uvc_entity_by_reference(chain->dev, entity->id, in uvc_scan_chain_forward()
1395 list_add_tail(&forward->chain, &chain->entities); in uvc_scan_chain_forward()
1415 list_add_tail(&forward->chain, &chain->entities); in uvc_scan_chain_forward()
1432 static int uvc_scan_chain_backward(struct uvc_video_chain *chain, in uvc_scan_chain_backward() argument
1455 chain->selector = entity; in uvc_scan_chain_backward()
1458 term = uvc_entity_by_id(chain->dev, id); in uvc_scan_chain_backward()
1469 list_add_tail(&term->chain, &chain->entities); in uvc_scan_chain_backward()
1470 uvc_scan_chain_forward(chain, term, entity); in uvc_scan_chain_backward()
1495 entity = uvc_entity_by_id(chain->dev, id); in uvc_scan_chain_backward()
1506 static int uvc_scan_chain(struct uvc_video_chain *chain, in uvc_scan_chain() argument
1518 if (entity->chain.next || entity->chain.prev) { in uvc_scan_chain()
1525 if (uvc_scan_chain_entity(chain, entity) < 0) in uvc_scan_chain()
1529 if (uvc_scan_chain_forward(chain, entity, prev) < 0) in uvc_scan_chain()
1534 if (uvc_scan_chain_backward(chain, &entity) < 0) in uvc_scan_chain()
1548 list_for_each_entry(term, terms, chain) { in uvc_print_terms()
1565 static const char *uvc_print_chain(struct uvc_video_chain *chain) in uvc_print_chain() argument
1570 p += uvc_print_terms(&chain->entities, UVC_TERM_INPUT, p); in uvc_print_chain()
1572 uvc_print_terms(&chain->entities, UVC_TERM_OUTPUT, p); in uvc_print_chain()
1584 struct uvc_video_chain *chain; in uvc_scan_device() local
1596 if (term->chain.next || term->chain.prev) in uvc_scan_device()
1599 chain = kzalloc(sizeof(*chain), GFP_KERNEL); in uvc_scan_device()
1600 if (chain == NULL) in uvc_scan_device()
1603 INIT_LIST_HEAD(&chain->entities); in uvc_scan_device()
1604 mutex_init(&chain->ctrl_mutex); in uvc_scan_device()
1605 chain->dev = dev; in uvc_scan_device()
1606 v4l2_prio_init(&chain->prio); in uvc_scan_device()
1610 if (uvc_scan_chain(chain, term) < 0) { in uvc_scan_device()
1611 kfree(chain); in uvc_scan_device()
1616 uvc_print_chain(chain)); in uvc_scan_device()
1618 list_add_tail(&chain->list, &dev->chains); in uvc_scan_device()
1661 struct uvc_video_chain *chain; in uvc_delete() local
1662 chain = list_entry(p, struct uvc_video_chain, list); in uvc_delete()
1663 kfree(chain); in uvc_delete()
1764 vdev->prio = &stream->chain->prio; in uvc_register_video()
1782 stream->chain->caps |= V4L2_CAP_VIDEO_CAPTURE; in uvc_register_video()
1784 stream->chain->caps |= V4L2_CAP_VIDEO_OUTPUT; in uvc_register_video()
1794 struct uvc_video_chain *chain) in uvc_register_terms() argument
1800 list_for_each_entry(term, &chain->entities, chain) { in uvc_register_terms()
1811 stream->chain = chain; in uvc_register_terms()
1824 struct uvc_video_chain *chain; in uvc_register_chains() local
1827 list_for_each_entry(chain, &dev->chains, list) { in uvc_register_chains()
1828 ret = uvc_register_terms(dev, chain); in uvc_register_chains()
1833 ret = uvc_mc_register_entities(chain); in uvc_register_chains()