1. 11 1月, 2016 11 次提交
  2. 02 10月, 2015 1 次提交
  3. 03 4月, 2015 1 次提交
  4. 14 2月, 2015 1 次提交
    • M
      [media] media: Fix DVB devnode representation at media controller · e31a0ba7
      Mauro Carvalho Chehab 提交于
      The previous provision for DVB media controller support were to
      define an ID (likely meaning the adapter number) for the DVB
      devnodes.
      
      This is just plain wrong. Just like V4L, DVB devices (and any other
      device node)) are uniquely identified via a (major, minor) tuple.
      
      This is enough to uniquely identify a devnode, no matter what
      API it implements.
      
      So, before we go too far, let's mark the old v4l, fb, dvb and alsa
      "devnode" info as deprecated, and just call it as "dev".
      
      We can latter add fields specific to each API if needed.
      
      As we don't want to break compilation on already existing apps,
      let's just keep the old definitions as-is, adding a note that
      those are deprecated at media-entity.h.
      Signed-off-by: NMauro Carvalho Chehab <mchehab@osg.samsung.com>
      e31a0ba7
  5. 18 12月, 2013 1 次提交
  6. 18 8月, 2013 1 次提交
  7. 19 6月, 2013 1 次提交
  8. 09 6月, 2013 1 次提交
  9. 14 5月, 2012 1 次提交
  10. 20 12月, 2011 1 次提交
  11. 22 3月, 2011 6 次提交
    • L
      [media] media: Pipelines and media streams · e02188c9
      Laurent Pinchart 提交于
      Drivers often need to associate pipeline objects to entities, and to
      take stream state into account when configuring entities and links. The
      pipeline API helps drivers manage that information.
      
      When starting streaming, drivers call media_entity_pipeline_start(). The
      function marks all entities connected to the given entity through
      enabled links, either directly or indirectly, as streaming. Similarly,
      when stopping the stream, drivers call media_entity_pipeline_stop().
      
      The media_entity_pipeline_start() function takes a pointer to a media
      pipeline and stores it in every entity in the graph. Drivers should
      embed the media_pipeline structure in higher-level pipeline structures
      and can then access the pipeline through the media_entity structure.
      
      Link configuration will fail with -EBUSY by default if either end of the
      link is a streaming entity, unless the link is marked with the
      MEDIA_LNK_FL_DYNAMIC flag.
      Signed-off-by: NLaurent Pinchart <laurent.pinchart@ideasonboard.com>
      Acked-by: NHans Verkuil <hverkuil@xs4all.nl>
      Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
      e02188c9
    • L
      [media] media: Links setup · 97548ed4
      Laurent Pinchart 提交于
      Create the following ioctl and implement it at the media device level to
      setup links.
      
      - MEDIA_IOC_SETUP_LINK: Modify the properties of a given link
      
      The only property that can currently be modified is the ENABLED link
      flag to enable/disable a link. Links marked with the IMMUTABLE link flag
      can not be enabled or disabled.
      
      Enabling or disabling a link has effects on entities' use count. Those
      changes are automatically propagated through the graph.
      Signed-off-by: NLaurent Pinchart <laurent.pinchart@ideasonboard.com>
      Signed-off-by: NStanimir Varbanov <svarbanov@mm-sol.com>
      Signed-off-by: NSakari Ailus <sakari.ailus@iki.fi>
      Acked-by: NHans Verkuil <hverkuil@xs4all.nl>
      Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
      97548ed4
    • L
      [media] media: Entities, pads and links enumeration · 1651333b
      Laurent Pinchart 提交于
      Create the following two ioctls and implement them at the media device
      level to enumerate entities, pads and links.
      
      - MEDIA_IOC_ENUM_ENTITIES: Enumerate entities and their properties
      - MEDIA_IOC_ENUM_LINKS: Enumerate all pads and links for a given entity
      
      Entity IDs can be non-contiguous. Userspace applications should
      enumerate entities using the MEDIA_ENT_ID_FLAG_NEXT flag. When the flag
      is set in the entity ID, the MEDIA_IOC_ENUM_ENTITIES will return the
      next entity with an ID bigger than the requested one.
      
      Only forward links that originate at one of the entity's source pads are
      returned during the enumeration process.
      Signed-off-by: NLaurent Pinchart <laurent.pinchart@ideasonboard.com>
      Signed-off-by: NSakari Ailus <sakari.ailus@iki.fi>
      Acked-by: NHans Verkuil <hverkuil@xs4all.nl>
      Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
      1651333b
    • L
      [media] media: Entity use count · 503c3d82
      Laurent Pinchart 提交于
      Due to the wide differences between drivers regarding power management
      needs, the media controller does not implement power management.
      However, the media_entity structure includes a use_count field that
      media drivers can use to track the number of users of every entity for
      power management needs.
      
      The use_count field is owned by media drivers and must not be touched by
      entity drivers. Access to the field must be protected by the media
      device graph_mutex lock.
      Signed-off-by: NLaurent Pinchart <laurent.pinchart@ideasonboard.com>
      Acked-by: NHans Verkuil <hverkuil@xs4all.nl>
      Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
      503c3d82
    • S
      [media] media: Entity graph traversal · a5ccc48a
      Sakari Ailus 提交于
      Add media entity graph traversal. The traversal follows enabled links by
      depth first. Traversing graph backwards is prevented by comparing the next
      possible entity in the graph with the previous one. Multiply connected
      graphs are thus not supported.
      Signed-off-by: NSakari Ailus <sakari.ailus@iki.fi>
      Signed-off-by: NLaurent Pinchart <laurent.pinchart@ideasonboard.com>
      Signed-off-by: NVimarsh Zutshi <vimarsh.zutshi@gmail.com>
      Acked-by: NHans Verkuil <hverkuil@xs4all.nl>
      Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
      a5ccc48a
    • L
      [media] media: Entities, pads and links · 53e269c1
      Laurent Pinchart 提交于
      As video hardware pipelines become increasingly complex and
      configurable, the current hardware description through v4l2 subdevices
      reaches its limits. In addition to enumerating and configuring
      subdevices, video camera drivers need a way to discover and modify at
      runtime how those subdevices are connected. This is done through new
      elements called entities, pads and links.
      
      An entity is a basic media hardware building block. It can correspond to
      a large variety of logical blocks such as physical hardware devices
      (CMOS sensor for instance), logical hardware devices (a building block
      in a System-on-Chip image processing pipeline), DMA channels or physical
      connectors.
      
      A pad is a connection endpoint through which an entity can interact with
      other entities. Data (not restricted to video) produced by an entity
      flows from the entity's output to one or more entity inputs. Pads should
      not be confused with physical pins at chip boundaries.
      
      A link is a point-to-point oriented connection between two pads, either
      on the same entity or on different entities. Data flows from a source
      pad to a sink pad.
      
      Links are stored in the source entity. To make backwards graph walk
      faster, a copy of all links is also stored in the sink entity. The copy
      is known as a backlink and is only used to help graph traversal.
      
      The entity API is made of three functions:
      
      - media_entity_init() initializes an entity. The caller must provide an
      array of pads as well as an estimated number of links. The links array
      is allocated dynamically and will be reallocated if it grows beyond the
      initial estimate.
      
      - media_entity_cleanup() frees resources allocated for an entity. It
      must be called during the cleanup phase after unregistering the entity
      and before freeing it.
      
      - media_entity_create_link() creates a link between two entities. An
      entry in the link array of each entity is allocated and stores pointers
      to source and sink pads.
      
      When a media device is unregistered, all its entities are unregistered
      automatically.
      
      The code is based on Hans Verkuil <hverkuil@xs4all.nl> initial work.
      Signed-off-by: NLaurent Pinchart <laurent.pinchart@ideasonboard.com>
      Signed-off-by: NSakari Ailus <sakari.ailus@iki.fi>
      Acked-by: NHans Verkuil <hverkuil@xs4all.nl>
      Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
      53e269c1