← Documents Documentation/userspace-api/media/mediactl/media-controller-model.rst GitHub 원문 ↗

Linux 6.18.37 · Userspace API / Media / Media Controller

Media device model

Media topology를 entity, interface, pad와 세 link type으로 표현합니다.

Source pathDocumentation/userspace-api/media/mediactl/media-controller-model.rst
Source versionLinux v6.18.37
TranslationDUJINLABS 전문 번역 + 해설

요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.

1. 요약·해설

원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.

요약·해설

media-controller-model.rst:1-41

Data link는 source pad에서 sink pad로 흐르는 data path이고, interface link는 control 관계, ancillary link는 하나의 논리 단위를 이루는 entity 관계입니다.

2. 영어 원문 전체

번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.

원문 전체 펼치기
1 .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
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.
36
37 - An **ancillary link** is a point-to-point connection denoting that two
38 entities form a single logical unit. For example this could represent the
39 fact that a particular camera sensor and lens controller form a single
40 physical module, meaning this lens controller drives the lens for this
41 camera sensor.

3. 한국어 전문 번역

영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.

방향성 graph model

1-13

Media Controller API의 목표 중 하나는 device 내부 topology를 발견하고 runtime에 구성하는 것입니다. 이를 위해 hardware device와 Linux Kernel interface를 방향성 graph의 object로 model합니다.

Graph는 entity, interface, pad, data link, interface link, ancillary link의 여섯 object type으로 구성됩니다.

Media topology graph
Hardware·software building block을 entity로 표현Entity endpoint를 source·sink pad로 표현Source pad에서 sink pad로 data link 연결Kernel userspace interface를 interface link로 entity에 연결하나의 논리 단위를 이루는 entity는 ancillary link로 연결

Data path와 control·association path는 서로 다른 link type으로 표현됩니다.

.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later

.. _media-controller-model:

Media device model
==================

Discovering a device internal topology, and configuring it at runtime,
is one of the goals of the media controller API. To achieve this,
hardware devices and Linux Kernel interfaces are modelled as graph
objects on an oriented graph. The object types that constitute the graph
are:

Entity, interface와 pad

14-28

**Entity**는 기본적인 media hardware 또는 software building block입니다. CMOS sensor 같은 physical hardware device, System-on-Chip image processing pipeline의 building block 같은 logical hardware device, DMA channel 또는 physical connector를 나타낼 수 있습니다.

**Interface**는 graph의 entity 하나 이상을 제어하는 device node나 sysfs file 같은 Linux Kernel userspace API interface를 graph로 표현한 것입니다.

**Pad**는 entity가 다른 entity와 상호 작용하는 data connection endpoint입니다. Video로 제한되지 않는 data는 entity output에서 하나 이상의 entity input으로 흐릅니다. Pad를 chip 경계의 physical pin과 혼동하면 안 됩니다.

Media graph object
Object의미
EntityHardware·software 기능 block
InterfaceDevice node·sysfs file 같은 Kernel userspace API interface
PadEntity의 data input·output endpoint, physical pin과 다름

각 object가 표현하는 대상과 방향성을 구분합니다.

-  An **entity** is a basic media hardware or software 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.

-  An **interface** is a graph representation of a Linux Kernel
   userspace API interface, like a device node or a sysfs file that
   controls one or more entities in the graph.

-  A **pad** is a data 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.