Skip to content

Commit

Permalink
[media] uvcvideo: Mark first output terminal as default video node
Browse files Browse the repository at this point in the history
The MEDIA_ENT_FL_DEFAULT identifies entities that are considered as
default for their group and type. For video nodes, it identifies the
node that application should use by default.
UVC devices don't report which output terminal should be considered as
the default, use the first one. Most devices have a single output
terminal anyway.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
  • Loading branch information
Laurent Pinchart authored and Mauro Carvalho Chehab committed Nov 28, 2012
1 parent 0550513 commit 8be8ec6
Show file tree
Hide file tree
Showing 3 changed files with 8 additions and 0 deletions.
2 changes: 2 additions & 0 deletions drivers/media/usb/uvc/uvc_driver.c
Original file line number Diff line number Diff line change
Expand Up @@ -1564,6 +1564,8 @@ static int uvc_scan_device(struct uvc_device *dev)
chain->dev = dev;
v4l2_prio_init(&chain->prio);

term->flags |= UVC_ENTITY_FLAG_DEFAULT;

if (uvc_scan_chain(chain, term) < 0) {
kfree(chain);
continue;
Expand Down
2 changes: 2 additions & 0 deletions drivers/media/usb/uvc/uvc_entity.c
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,8 @@ static int uvc_mc_init_entity(struct uvc_entity *entity)
} else if (entity->vdev != NULL) {
ret = media_entity_init(&entity->vdev->entity,
entity->num_pads, entity->pads, 0);
if (entity->flags & UVC_ENTITY_FLAG_DEFAULT)
entity->vdev->entity.flags |= MEDIA_ENT_FL_DEFAULT;
} else
ret = 0;

Expand Down
4 changes: 4 additions & 0 deletions drivers/media/usb/uvc/uvcvideo.h
Original file line number Diff line number Diff line change
Expand Up @@ -225,10 +225,14 @@ struct uvc_format_desc {
* always be accessed with the UVC_ENTITY_* macros and never directly.
*/

#define UVC_ENTITY_FLAG_DEFAULT (1 << 0)

struct uvc_entity {
struct list_head list; /* Entity as part of a UVC device. */
struct list_head chain; /* Entity as part of a video device
* chain. */
unsigned int flags;

__u8 id;
__u16 type;
char name[64];
Expand Down

0 comments on commit 8be8ec6

Please sign in to comment.