← Documents Documentation/gpu/vga-switcheroo.rst GitHub 원문 ↗

Linux 6.18.37 · GPU·DRM

VGA Switcheroo

Hybrid graphics의 GPU 전환·전력 제어 API와 apple-gmux handler를 연결합니다.

Source pathDocumentation/gpu/vga-switcheroo.rst
Source versionLinux v6.18.37
TranslationDUJINLABS 전문 번역 + 해설

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

1. 요약·해설

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

요약·해설

vga-switcheroo.rst:1-98

Hybrid graphics의 GPU 전환·전력 제어 API와 apple-gmux handler를 연결합니다.

문서 위치
항목
SourceDocumentation/gpu/vga-switcheroo.rst
분량98 source lines
관련drivers/gpu/vga/vga_switcheroo.c · include/linux/vga_switcheroo.h

Source와 관련 구현입니다.

2. 영어 원문 전체

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

원문 전체 펼치기
1 .. _vga_switcheroo:
2
3 ==============
4 VGA Switcheroo
5 ==============
6
7 .. kernel-doc:: drivers/gpu/vga/vga_switcheroo.c
8 :doc: Overview
9
10 Modes of Use
11 ============
12
13 Manual switching and manual power control
14 -----------------------------------------
15
16 .. kernel-doc:: drivers/gpu/vga/vga_switcheroo.c
17 :doc: Manual switching and manual power control
18
19 Driver power control
20 --------------------
21
22 .. kernel-doc:: drivers/gpu/vga/vga_switcheroo.c
23 :doc: Driver power control
24
25 API
26 ===
27
28 Public functions
29 ----------------
30
31 .. kernel-doc:: drivers/gpu/vga/vga_switcheroo.c
32 :export:
33
34 Public structures
35 -----------------
36
37 .. kernel-doc:: include/linux/vga_switcheroo.h
38 :functions: vga_switcheroo_handler
39
40 .. kernel-doc:: include/linux/vga_switcheroo.h
41 :functions: vga_switcheroo_client_ops
42
43 Public constants
44 ----------------
45
46 .. kernel-doc:: include/linux/vga_switcheroo.h
47 :functions: vga_switcheroo_handler_flags_t
48
49 .. kernel-doc:: include/linux/vga_switcheroo.h
50 :functions: vga_switcheroo_client_id
51
52 .. kernel-doc:: include/linux/vga_switcheroo.h
53 :functions: vga_switcheroo_state
54
55 Private structures
56 ------------------
57
58 .. kernel-doc:: drivers/gpu/vga/vga_switcheroo.c
59 :functions: vgasr_priv
60
61 .. kernel-doc:: drivers/gpu/vga/vga_switcheroo.c
62 :functions: vga_switcheroo_client
63
64 Handlers
65 ========
66
67 apple-gmux Handler
68 ------------------
69
70 .. kernel-doc:: drivers/platform/x86/apple-gmux.c
71 :doc: Overview
72
73 .. kernel-doc:: drivers/platform/x86/apple-gmux.c
74 :doc: Interrupt
75
76 Graphics mux
77 ~~~~~~~~~~~~
78
79 .. kernel-doc:: drivers/platform/x86/apple-gmux.c
80 :doc: Graphics mux
81
82 Power control
83 ~~~~~~~~~~~~~
84
85 .. kernel-doc:: drivers/platform/x86/apple-gmux.c
86 :doc: Power control
87
88 Backlight control
89 ~~~~~~~~~~~~~~~~~
90
91 .. kernel-doc:: drivers/platform/x86/apple-gmux.c
92 :doc: Backlight control
93
94 Public functions
95 ~~~~~~~~~~~~~~~~
96
97 .. kernel-doc:: include/linux/apple-gmux.h
98 :internal:
99

3. 한국어 전문 번역

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

VGA Switcheroo 개요

1-9

VGA Switcheroo의 전체 개요는 `drivers/gpu/vga/vga_switcheroo.c`에 있는 `Overview` kernel-doc에서 가져옵니다. 이 문서의 `vga_switcheroo` anchor는 hybrid graphics 환경에서 GPU와 display 경로를 전환하고 전력을 관리하는 subsystem 문서의 진입점입니다.

개요 문서 위치
항목
RSTDocumentation/gpu/vga-switcheroo.rst
Implementationdrivers/gpu/vga/vga_switcheroo.c
Kernel-doc sectionOverview

VGA Switcheroo의 설명을 제공하는 source입니다.

문서 연결
vga-switcheroo.rstvga_switcheroo.cOverview kernel-docSwitcheroo subsystem 개요

RST가 implementation의 kernel-doc를 포함합니다.

.. _vga_switcheroo:

==============
VGA Switcheroo
==============

.. kernel-doc:: drivers/gpu/vga/vga_switcheroo.c
   :doc: Overview

수동 전환·전력 제어와 driver power control

10-24

사용 방식은 두 갈래입니다. `Manual switching and manual power control`은 사용자가 GPU 전환과 전원 상태를 직접 제어하는 방식을 설명하며 `drivers/gpu/vga/vga_switcheroo.c`의 같은 이름 kernel-doc section을 포함합니다.

`Driver power control`은 driver가 power control을 담당하는 방식을 설명합니다. 이 내용 역시 `vga_switcheroo.c`의 `Driver power control` kernel-doc section에서 가져옵니다.

VGA Switcheroo 사용 방식
방식Kernel-doc
수동Manual switching and manual power control
Driver 제어Driver power control

전환과 전력 제어의 주체를 구분합니다.

Power-control 선택
Hybrid graphics client 등록수동 또는 driver power control 선택GPU/display 경로 전환비활성 GPU 전력 상태 관리

플랫폼과 driver 정책에 맞는 제어 경로를 사용합니다.

Modes of Use
============

Manual switching and manual power control
-----------------------------------------

.. kernel-doc:: drivers/gpu/vga/vga_switcheroo.c
   :doc: Manual switching and manual power control

Driver power control
--------------------

.. kernel-doc:: drivers/gpu/vga/vga_switcheroo.c
   :doc: Driver power control

Public API·구조체·상수와 private state

25-63

공개 함수는 `drivers/gpu/vga/vga_switcheroo.c`의 exported kernel-doc 전체에서 가져옵니다. 이 함수들이 subsystem 외부 driver가 사용하는 public API를 이룹니다.

공개 구조체는 `include/linux/vga_switcheroo.h`의 `vga_switcheroo_handler`와 `vga_switcheroo_client_ops`입니다. Handler는 platform-specific 전환 작업을, client operation은 GPU/display client가 제공하는 callback 계약을 나타냅니다.

공개 상수와 enum 계열은 같은 header의 `vga_switcheroo_handler_flags_t`, `vga_switcheroo_client_id`, `vga_switcheroo_state` 문서에 정의됩니다. Handler capability, client identity와 전환 상태를 표현합니다.

Private 구조체는 implementation의 `vgasr_priv`와 `vga_switcheroo_client`입니다. 전자는 subsystem 전역 private state를, 후자는 등록된 client별 내부 상태를 설명합니다.

Switcheroo API map
범위Symbol·source
Public functionsdrivers/gpu/vga/vga_switcheroo.c :export:
Public structuresvga_switcheroo_handler · vga_switcheroo_client_ops
Public constantshandler_flags_t · client_id · state
Private structuresvgasr_priv · vga_switcheroo_client

공개 계약과 내부 상태의 source 위치입니다.

API 관계
Handler 등록Client operation 등록Client ID와 state 추적Exported function으로 전환 요청vgasr_priv에서 전체 상태 갱신

Handler와 client가 내부 switcheroo state를 통해 협력합니다.

API
===

Public functions
----------------

.. kernel-doc:: drivers/gpu/vga/vga_switcheroo.c
   :export:

Public structures
-----------------

.. kernel-doc:: include/linux/vga_switcheroo.h
   :functions: vga_switcheroo_handler

.. kernel-doc:: include/linux/vga_switcheroo.h
   :functions: vga_switcheroo_client_ops

Public constants
----------------

.. kernel-doc:: include/linux/vga_switcheroo.h
   :functions: vga_switcheroo_handler_flags_t

.. kernel-doc:: include/linux/vga_switcheroo.h
   :functions: vga_switcheroo_client_id

.. kernel-doc:: include/linux/vga_switcheroo.h
   :functions: vga_switcheroo_state

Private structures
------------------

.. kernel-doc:: drivers/gpu/vga/vga_switcheroo.c
   :functions: vgasr_priv

.. kernel-doc:: drivers/gpu/vga/vga_switcheroo.c
   :functions: vga_switcheroo_client

apple-gmux handler

64-98

Handler 예제로 `apple-gmux`를 설명합니다. 전체 개요와 interrupt 처리는 `drivers/platform/x86/apple-gmux.c`의 `Overview`와 `Interrupt` kernel-doc section에서 가져옵니다.

Apple GMUX의 graphics mux, power control, backlight control은 각각 같은 source의 `Graphics mux`, `Power control`, `Backlight control` section으로 문서화됩니다. 이 handler는 display routing뿐 아니라 GPU 전원과 backlight 제어를 함께 담당합니다.

공개 함수는 `include/linux/apple-gmux.h`의 internal kernel-doc로 연결됩니다. 이름은 public header에 있지만 이 문서는 `:internal:` 범위의 함수 설명을 포함합니다.

apple-gmux 기능
기능Source
Overview·Interruptdrivers/platform/x86/apple-gmux.c
Graphics muxDisplay 경로 전환
Power controlGPU 전력 상태
Backlight controlPanel 밝기 경로
Functionsinclude/linux/apple-gmux.h :internal:

Platform handler가 담당하는 세 제어 축입니다.

apple-gmux handler 경로
GMUX interrupt 또는 switch 요청Graphics mux 경로 선택GPU power control 적용Backlight control 동기화VGA Switcheroo state 반영

Platform event가 graphics와 전력 상태에 반영됩니다.

Handlers
========

apple-gmux Handler
------------------

.. kernel-doc:: drivers/platform/x86/apple-gmux.c
   :doc: Overview

.. kernel-doc:: drivers/platform/x86/apple-gmux.c
   :doc: Interrupt

Graphics mux
~~~~~~~~~~~~

.. kernel-doc:: drivers/platform/x86/apple-gmux.c
   :doc: Graphics mux

Power control
~~~~~~~~~~~~~

.. kernel-doc:: drivers/platform/x86/apple-gmux.c
   :doc: Power control

Backlight control
~~~~~~~~~~~~~~~~~

.. kernel-doc:: drivers/platform/x86/apple-gmux.c
   :doc: Backlight control

Public functions
~~~~~~~~~~~~~~~~

.. kernel-doc:: include/linux/apple-gmux.h
   :internal: