← Documents Documentation/gpu/amdgpu/display/dcn-blocks.rst GitHub 원문 ↗

Linux 6.18.37 · GPU

DCN Blocks

DCHUBBUB, HUBP, DPP, MPC, OPP, DIO와 kernel-doc 연결의 전문 번역입니다.

Source pathDocumentation/gpu/amdgpu/display/dcn-blocks.rst
Source versionLinux v6.18.37
TranslationDUJINLABS 전문 번역 + 해설

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

1. 요약·해설

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

요약·해설

dcn-blocks.rst:1-57

DCN display pipeline의 여섯 block과 해당 kernel-doc source를 연결하는 문서입니다. 원문 지시문과 symbol은 그대로 보존하고, memory fetch, plane 처리, 합성, output 처리, link 제어의 경계를 한국어로 해설합니다.

DCN block 빠른 찾기
BlockPipeline 위치문서 source
DCHUBBUB공유 memory-side hubdc/inc/hw/dchubbub.h
HUBPpipe별 surface fetchdc/inc/hw/hubp.h
DPP합성 전 plane 처리dc/inc/hw/dpp.h
MPCpipe와 plane 합성dc/inc/hw/mpc.h
OPP합성 후 output 처리dc/inc/hw/opp.h
DIOdisplay link hardware servicedc/link/hwss/link_hwss_dio.c

증상과 source investigation의 시작점을 연결합니다.

2. 영어 원문 전체

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

원문 전체 펼치기
1 .. _dcn_blocks:
2
3 ==========
4 DCN Blocks
5 ==========
6
7 In this section, you will find some extra details about some of the DCN blocks
8 and the code documentation when it is automatically generated.
9
10 DCHUBBUB
11 --------
12
13 .. kernel-doc:: drivers/gpu/drm/amd/display/dc/inc/hw/dchubbub.h
14 :doc: overview
15
16 HUBP
17 ----
18
19 .. kernel-doc:: drivers/gpu/drm/amd/display/dc/inc/hw/hubp.h
20 :doc: overview
21
22 DPP
23 ---
24
25 .. kernel-doc:: drivers/gpu/drm/amd/display/dc/inc/hw/dpp.h
26 :doc: overview
27
28 .. kernel-doc:: drivers/gpu/drm/amd/display/dc/inc/hw/dpp.h
29 :internal:
30
31 MPC
32 ---
33
34 .. kernel-doc:: drivers/gpu/drm/amd/display/dc/inc/hw/mpc.h
35 :doc: overview
36
37 .. kernel-doc:: drivers/gpu/drm/amd/display/dc/inc/hw/mpc.h
38 :internal:
39 :no-identifiers: mpcc_blnd_cfg mpcc_alpha_blend_mode
40
41 OPP
42 ---
43
44 .. kernel-doc:: drivers/gpu/drm/amd/display/dc/inc/hw/opp.h
45 :doc: overview
46
47 .. kernel-doc:: drivers/gpu/drm/amd/display/dc/inc/hw/opp.h
48 :internal:
49
50 DIO
51 ---
52
53 .. kernel-doc:: drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dio.c
54 :doc: overview
55
56 .. kernel-doc:: drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dio.c
57 :internal:
58

3. 한국어 전문 번역

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

문서 범위와 kernel-doc 생성 방식

1-9

이 페이지는 DCN(Display Core Next)의 일부 hardware block을 한곳에서 설명하고, 각 source file의 kernel-doc 주석을 Sphinx 문서에 자동으로 삽입합니다. 따라서 이 RST 파일은 긴 설명을 중복해 적기보다 source code에 가까운 문서를 연결하는 목차 역할을 합니다.

`.. _dcn_blocks:`는 다른 문서에서 이 절을 참조할 수 있게 하는 RST anchor입니다. `kernel-doc` 지시문 뒤의 option은 어떤 문서 조각과 symbol을 생성 결과에 포함할지 정합니다.

kernel-doc option의 역할
Option생성 범위검토할 점
:doc: overviewsource의 DOC: overview 서술 블록block 전체 목적과 data flow 설명
:internal:source에 기록된 internal symbol 문서public API에 한정하지 않은 내부 구조와 callback
:no-identifiers:지정 symbol을 이번 출력에서 제외다른 문서와의 중복 또는 불필요한 노출 방지

이 페이지에서 사용하는 세 가지 option을 구분합니다.

DCN block의 개념적 처리 방향
DCHUBBUB: display memory traffic의 전역 조정HUBP: 개별 pipe가 사용할 surface data fetchDPP: plane 단위 pixel 처리MPC: 여러 pipe와 plane의 합성OPP: 합성 결과의 output-side 처리DIO: display link hardware 제어

실제 연결과 기능 배치는 DCN 세대 및 pipe 구성에 따라 달라질 수 있습니다.

.. _dcn_blocks:

==========
DCN Blocks
==========

In this section, you will find some extra details about some of the DCN blocks
and the code documentation when it is automatically generated.

DCHUBBUB와 HUBP: memory에서 pipe로

10-21

`DCHUBBUB`와 `HUBP`는 모두 display data를 memory 쪽에서 가져오는 경로에 있지만 범위가 다릅니다. DCHUBBUB는 여러 display pipe가 공유하는 hub-level 자원과 bandwidth 조건을 다루고, HUBP는 개별 pipe에 연결되어 해당 plane의 surface fetch 상태를 구성합니다.

이 문서는 두 header에서 `DOC: overview`만 가져옵니다. 세대별 register programming과 함수 목록은 각각 `drivers/gpu/drm/amd/display/dc/inc/hw/dchubbub.h`와 `drivers/gpu/drm/amd/display/dc/inc/hw/hubp.h`의 구현 및 연결된 generation-specific source를 함께 확인해야 합니다.

DCHUBBUB와 HUBP의 범위
Block범위대표 조사 질문
DCHUBBUBDCN display hub의 공유 영역전체 display bandwidth, watermark, arbitration 조건이 맞는가
HUBPpipe별 hub pipe 영역surface address, tiling, compression과 fetch 설정이 plane에 맞는가

이름이 비슷한 두 memory-side block의 조사 단위를 나눕니다.

Display surface fetch 관계
Framebuffer와 memory systemDCHUBBUB가 공유 display traffic 조건을 관리각 HUBP가 pipe별 surface data를 요청가져온 pixel data를 DPP 쪽 처리 단계에 공급

정확한 request 순서와 cache 경로는 해당 DCN generation 구현을 기준으로 확인합니다.

DCHUBBUB
--------

.. kernel-doc:: drivers/gpu/drm/amd/display/dc/inc/hw/dchubbub.h
   :doc: overview

HUBP
----

.. kernel-doc:: drivers/gpu/drm/amd/display/dc/inc/hw/hubp.h
   :doc: overview

DPP: plane 단위 pixel 처리

22-30

`DPP`는 Display Pipe and Plane processor를 나타내며, memory에서 가져온 plane의 pixel을 합성 전에 처리하는 block입니다. scaling과 color-processing 계열 기능이 이 영역에 속하지만, 지원 stage와 배치는 DCN generation에 따라 달라질 수 있으므로 `drivers/gpu/drm/amd/display/dc/inc/hw/dpp.h`의 interface와 실제 generation implementation을 함께 봅니다.

첫 번째 지시문은 DPP의 overview를, 두 번째 지시문은 같은 header의 internal symbol 문서를 생성합니다. 함수명, struct member, callback은 번역하지 않고 source symbol 그대로 검색해야 합니다.

DPP의 조사 위치
HUBP에서 plane pixel data 수신DPP에서 scaling과 color transformation 계열 처리처리된 plane data를 MPC 합성 경로로 전달문제 발생 시 dpp.h interface와 generation별 callback 대조

기능 목록은 개념적 분류이며 실제 stage 순서는 hardware 문서와 source implementation을 따릅니다.

DPP
---

.. kernel-doc:: drivers/gpu/drm/amd/display/dc/inc/hw/dpp.h
   :doc: overview

.. kernel-doc:: drivers/gpu/drm/amd/display/dc/inc/hw/dpp.h
   :internal:

MPC: pipe와 plane 합성

31-40

`MPC`는 Multiple Pipe/Plane Combine 영역으로, DPP에서 처리된 하나 이상의 stream을 blending하고 output 쪽으로 보낼 합성 결과를 만듭니다. plane 수, pipe split, alpha/blending 설정을 조사할 때 `drivers/gpu/drm/amd/display/dc/inc/hw/mpc.h`의 overview와 internal interface가 기준이 됩니다.

`:no-identifiers: mpcc_blnd_cfg mpcc_alpha_blend_mode`는 `:internal:` 문서 생성 중 두 identifier를 제외하라는 뜻입니다. symbol 자체가 source에서 제거된다는 의미가 아니며, 이번 Sphinx 출력에서만 중복 생성을 피합니다.

MPC kernel-doc 선택 규칙
지시결과
:doc: overviewMPC의 전체 역할을 설명하는 DOC block 포함
:internal:mpc.h의 internal symbol 문서 포함
:no-identifiers: mpcc_blnd_cfg mpcc_alpha_blend_mode두 symbol은 이 절의 생성 목록에서 제외

MPC 절의 세 option이 함께 만드는 출력입니다.

MPC
---

.. kernel-doc:: drivers/gpu/drm/amd/display/dc/inc/hw/mpc.h
   :doc: overview

.. kernel-doc:: drivers/gpu/drm/amd/display/dc/inc/hw/mpc.h
   :internal:
   :no-identifiers: mpcc_blnd_cfg mpcc_alpha_blend_mode

OPP: 합성 결과의 output-side 처리

41-49

`OPP`는 Output Pixel Processor입니다. MPC가 만든 합성 결과를 display output에 맞게 처리하는 interface를 제공하며, output color 또는 format 관련 단계가 이 경계에 연결됩니다. 정확한 지원 기능과 programming sequence는 `drivers/gpu/drm/amd/display/dc/inc/hw/opp.h` 및 generation별 구현을 확인합니다.

DPP가 합성 전 plane 단위 처리라면 OPP는 합성 후 output 단위 처리라는 점이 핵심 차이입니다. 이 절도 overview와 internal symbol을 모두 자동 생성합니다.

DPP, MPC, OPP 경계
DPP: 개별 plane을 합성 전에 처리MPC: 여러 plane 또는 pipe를 blendingOPP: 합성된 output stream을 후처리후속 timing 및 link 경로로 전달

동일한 color 기능처럼 보여도 적용 시점과 대상이 다릅니다.

OPP
---

.. kernel-doc:: drivers/gpu/drm/amd/display/dc/inc/hw/opp.h
   :doc: overview

.. kernel-doc:: drivers/gpu/drm/amd/display/dc/inc/hw/opp.h
   :internal:

DIO: display link hardware service

50-57

`DIO`는 Display I/O 경로를 제어하는 link hardware service 구현입니다. 앞의 다섯 절이 hardware abstraction header를 가리키는 것과 달리, 이 절은 C source인 `drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dio.c`에서 overview와 internal symbol을 직접 가져옵니다.

DIO 절을 조사할 때에는 connector의 protocol 자체와 DC link HWSS가 DIO 구현을 호출하는 제어 경로를 구분해야 합니다. Encoder, PHY, clock 또는 transmitter의 세부 동작은 ASIC generation과 link type에 따라 달라질 수 있습니다.

DIO가 놓이는 link 제어 경계
DC link policy와 mode configuration 결정Link HWSS가 DIO operation을 선택DIO 구현이 generation별 display I/O block을 제어Encoder와 PHY를 거쳐 display sink로 신호 전송

세부 callback과 지원 protocol은 link_hwss_dio.c 및 호출부를 기준으로 확인합니다.

DIO
---

.. kernel-doc:: drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dio.c
   :doc: overview

.. kernel-doc:: drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dio.c
   :internal: