Markus Heiser | 5377d91 | 2016-06-30 15:18:56 +0200 | [diff] [blame] | 1 | .. -*- coding: utf-8; mode: rst -*- |
| 2 | |
| 3 | .. _media-controller-model: |
| 4 | |
| 5 | Media device model |
| 6 | ================== |
| 7 | |
| 8 | Discovering a device internal topology, and configuring it at runtime, |
| 9 | is one of the goals of the media controller API. To achieve this, |
| 10 | hardware devices and Linux Kernel interfaces are modelled as graph |
| 11 | objects on an oriented graph. The object types that constitute the graph |
| 12 | are: |
| 13 | |
| 14 | - An **entity** is a basic media hardware or software building block. |
| 15 | It can correspond to a large variety of logical blocks such as |
| 16 | physical hardware devices (CMOS sensor for instance), logical |
| 17 | hardware devices (a building block in a System-on-Chip image |
| 18 | processing pipeline), DMA channels or physical connectors. |
| 19 | |
| 20 | - An **interface** is a graph representation of a Linux Kernel |
| 21 | userspace API interface, like a device node or a sysfs file that |
| 22 | controls one or more entities in the graph. |
| 23 | |
| 24 | - A **pad** is a data connection endpoint through which an entity can |
| 25 | interact with other entities. Data (not restricted to video) produced |
| 26 | by an entity flows from the entity's output to one or more entity |
| 27 | inputs. Pads should not be confused with physical pins at chip |
| 28 | boundaries. |
| 29 | |
| 30 | - A **data link** is a point-to-point oriented connection between two |
| 31 | pads, either on the same entity or on different entities. Data flows |
| 32 | from a source pad to a sink pad. |
| 33 | |
| 34 | - An **interface link** is a point-to-point bidirectional control |
| 35 | connection between a Linux Kernel interface and an entity.m |
| 36 | |
| 37 | |
| 38 | .. ------------------------------------------------------------------------------ |
| 39 | .. This file was automatically converted from DocBook-XML with the dbxml |
| 40 | .. library (https://github.com/return42/sphkerneldoc). The origin XML comes |
| 41 | .. from the linux kernel, refer to: |
| 42 | .. |
| 43 | .. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook |
| 44 | .. ------------------------------------------------------------------------------ |