요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.
1. 요약·해설
원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.
2. 영어 원문 전체
번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.
원문 전체 펼치기
.. SPDX-License-Identifier: GPL-2.0-or-later
=================================
WBRF - Wifi Band RFI Mitigations
=================================
Due to electrical and mechanical constraints in certain platform designs
there may be likely interference of relatively high-powered harmonics of
the GPU memory clocks with local radio module frequency bands used by
certain Wifi bands.
To mitigate possible RFI interference producers can advertise the
frequencies in use and consumers can use this information to avoid using
these frequencies for sensitive features.
When a platform is known to have this issue with any contained devices,
the platform designer will advertise the availability of this feature via
ACPI devices with a device specific method (_DSM).
* Producers with this _DSM will be able to advertise the frequencies in use.
* Consumers with this _DSM will be able to register for notifications of
frequencies in use.
Some general terms
==================
Producer: such component who can produce high-powered radio frequency
Consumer: such component who can adjust its in-use frequency in
response to the radio frequencies of other components to mitigate the
possible RFI.
To make the mechanism function, those producers should notify active use
of their particular frequencies so that other consumers can make relative
internal adjustments as necessary to avoid this resonance.
ACPI interface
==============
Although initially used by for wifi + dGPU use cases, the ACPI interface
can be scaled to any type of device that a platform designer discovers
can cause interference.
The GUID used for the _DSM is 7B7656CF-DC3D-4C1C-83E9-66E721DE3070.
3 functions are available in this _DSM:
* 0: discover # of functions available
* 1: record RF bands in use
* 2: retrieve RF bands in use
Driver programming interface
============================
.. kernel-doc:: drivers/platform/x86/amd/wbrf.c
Sample Usage
=============
The expected flow for the producers:
1. During probe, call `acpi_amd_wbrf_supported_producer` to check if WBRF
can be enabled for the device.
2. On using some frequency band, call `acpi_amd_wbrf_add_remove` with 'add'
param to get other consumers properly notified.
3. Or on stopping using some frequency band, call
`acpi_amd_wbrf_add_remove` with 'remove' param to get other consumers notified.
The expected flow for the consumers:
1. During probe, call `acpi_amd_wbrf_supported_consumer` to check if WBRF
can be enabled for the device.
2. Call `amd_wbrf_register_notifier` to register for notification
of frequency band change(add or remove) from other producers.
3. Call the `amd_wbrf_retrieve_freq_band` initially to retrieve
current active frequency bands considering some producers may broadcast
such information before the consumer is up.
4. On receiving a notification for frequency band change, run
`amd_wbrf_retrieve_freq_band` again to retrieve the latest
active frequency bands.
5. During driver cleanup, call `amd_wbrf_unregister_notifier` to
unregister the notifier.
3. 한국어 전문 번역
영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.
GPU memory clock와 Wi-Fi RFI 완화
1-22일부 platform design의 전기적·기계적 제약 때문에 GPU memory clock의 비교적 강한 harmonic이 특정 Wi-Fi band가 사용하는 local radio-module frequency band와 간섭할 수 있습니다.
RFI 가능성을 완화하기 위해 interference producer는 현재 사용하는 frequency를 알리고, consumer는 이 정보를 받아 민감한 기능에서 해당 frequency를 피할 수 있습니다.
Platform 안의 device가 이 문제를 일으킬 수 있다고 알려져 있으면 platform designer는 device-specific ACPI method인 `_DSM`을 통해 WBRF 기능 가용성을 광고합니다. `_DSM`을 가진 producer는 사용 frequency를 알리고 consumer는 frequency-use notification을 등록합니다.
Platform firmware가 기능을 노출하고 producer의 active band 정보가 consumer의 frequency 조정으로 이어집니다.
.. SPDX-License-Identifier: GPL-2.0-or-later
=================================
WBRF - Wifi Band RFI Mitigations
=================================
Due to electrical and mechanical constraints in certain platform designs
there may be likely interference of relatively high-powered harmonics of
the GPU memory clocks with local radio module frequency bands used by
certain Wifi bands.
To mitigate possible RFI interference producers can advertise the
frequencies in use and consumers can use this information to avoid using
these frequencies for sensitive features.
When a platform is known to have this issue with any contained devices,
the platform designer will advertise the availability of this feature via
ACPI devices with a device specific method (_DSM).
* Producers with this _DSM will be able to advertise the frequencies in use.
* Consumers with this _DSM will be able to register for notifications of
frequencies in use.
Producer와 consumer 역할
23-34Producer는 강한 radio frequency를 발생시킬 수 있는 component입니다. Consumer는 다른 component의 radio frequency에 반응해 자신이 사용하는 frequency를 조정함으로써 RFI 가능성을 줄일 수 있는 component입니다.
Mechanism이 동작하려면 producer가 특정 frequency의 active use를 notify해야 합니다. 그러면 다른 consumer가 resonance를 피하도록 필요한 내부 조정을 수행할 수 있습니다.
Some general terms
==================
Producer: such component who can produce high-powered radio frequency
Consumer: such component who can adjust its in-use frequency in
response to the radio frequencies of other components to mitigate the
possible RFI.
To make the mechanism function, those producers should notify active use
of their particular frequencies so that other consumers can make relative
internal adjustments as necessary to avoid this resonance.
WBRF ACPI _DSM interface
35-49ACPI interface는 처음에는 Wi-Fi와 discrete GPU 조합에 사용됐지만 platform designer가 interference 가능성을 찾은 어떤 device type에도 확장할 수 있습니다.
WBRF `_DSM` GUID는 `7B7656CF-DC3D-4C1C-83E9-66E721DE3070`입니다.
Function 0은 사용할 수 있는 function 수를 발견하고, function 1은 사용 중인 RF band를 기록하며, function 2는 사용 중인 RF band를 조회합니다.
ACPI interface
==============
Although initially used by for wifi + dGPU use cases, the ACPI interface
can be scaled to any type of device that a platform designer discovers
can cause interference.
The GUID used for the _DSM is 7B7656CF-DC3D-4C1C-83E9-66E721DE3070.
3 functions are available in this _DSM:
* 0: discover # of functions available
* 1: record RF bands in use
* 2: retrieve RF bands in use
Producer·consumer driver programming flow
50-78Driver API의 kernel-doc 원본은 `drivers/platform/x86/amd/wbrf.c`입니다.
Producer는 probe 중 `acpi_amd_wbrf_supported_producer()`로 WBRF 활성화 가능 여부를 확인합니다. Frequency band 사용을 시작하면 `acpi_amd_wbrf_add_remove()`에 `add`를 전달하고, 사용을 멈추면 `remove`를 전달해 consumer에 알립니다.
Consumer는 probe 중 `acpi_amd_wbrf_supported_consumer()`를 호출하고 `amd_wbrf_register_notifier()`로 producer의 band add/remove notification을 등록합니다.
Consumer가 올라오기 전에 producer가 정보를 보냈을 수 있으므로 초기화 때 `amd_wbrf_retrieve_freq_band()`로 현재 active band를 먼저 조회합니다. 이후 band-change notification을 받을 때마다 같은 함수를 다시 호출해 최신 상태를 가져옵니다.
Driver cleanup에서는 `amd_wbrf_unregister_notifier()`로 notifier를 해제합니다.
Producer는 band 사용 변화를 기록하고 consumer는 notifier와 초기 snapshot을 함께 사용합니다.
Driver programming interface
============================
.. kernel-doc:: drivers/platform/x86/amd/wbrf.c
Sample Usage
=============
The expected flow for the producers:
1. During probe, call `acpi_amd_wbrf_supported_producer` to check if WBRF
can be enabled for the device.
2. On using some frequency band, call `acpi_amd_wbrf_add_remove` with 'add'
param to get other consumers properly notified.
3. Or on stopping using some frequency band, call
`acpi_amd_wbrf_add_remove` with 'remove' param to get other consumers notified.
The expected flow for the consumers:
1. During probe, call `acpi_amd_wbrf_supported_consumer` to check if WBRF
can be enabled for the device.
2. Call `amd_wbrf_register_notifier` to register for notification
of frequency band change(add or remove) from other producers.
3. Call the `amd_wbrf_retrieve_freq_band` initially to retrieve
current active frequency bands considering some producers may broadcast
such information before the consumer is up.
4. On receiving a notification for frequency band change, run
`amd_wbrf_retrieve_freq_band` again to retrieve the latest
active frequency bands.
5. During driver cleanup, call `amd_wbrf_unregister_notifier` to
unregister the notifier.
요약·해설
wbrf.rst:1-78WBRF는 interference producer가 active RF band를 ACPI _DSM으로 공유하고 consumer가 notifier와 snapshot 조회를 결합해 민감한 frequency를 피하도록 합니다.