요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.
1. 요약·해설
원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.
2. 영어 원문 전체
번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.
원문 전체 펼치기
.. _vga_switcheroo:
==============
VGA Switcheroo
==============
.. kernel-doc:: drivers/gpu/vga/vga_switcheroo.c
:doc: Overview
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
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
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:
3. 한국어 전문 번역
영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.
VGA Switcheroo 개요
1-9VGA Switcheroo의 전체 개요는 `drivers/gpu/vga/vga_switcheroo.c`에 있는 `Overview` kernel-doc에서 가져옵니다. 이 문서의 `vga_switcheroo` anchor는 hybrid graphics 환경에서 GPU와 display 경로를 전환하고 전력을 관리하는 subsystem 문서의 진입점입니다.
VGA Switcheroo의 설명을 제공하는 source입니다.
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에서 가져옵니다.
전환과 전력 제어의 주체를 구분합니다.
플랫폼과 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별 내부 상태를 설명합니다.
공개 계약과 내부 상태의 source 위치입니다.
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-98Handler 예제로 `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:` 범위의 함수 설명을 포함합니다.
Platform handler가 담당하는 세 제어 축입니다.
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:
요약·해설
vga-switcheroo.rst:1-98Hybrid graphics의 GPU 전환·전력 제어 API와 apple-gmux handler를 연결합니다.
Source와 관련 구현입니다.