Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Documentation: ACPI: move linuxized-acpica.txt to driver-api/acpi and convert to reST

This converts the plain text documentation to reStructuredText format
and adds it to Sphinx TOC tree.

No essential content change.

Signed-off-by: Changbin Du <changbin.du@gmail.com>
Reviewed-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>

authored by

Changbin Du and committed by
Rafael J. Wysocki
25710e23 1cf70ae6

+65 -47
+64 -47
Documentation/acpi/linuxized-acpica.txt Documentation/driver-api/acpi/linuxized-acpica.rst
··· 1 + .. SPDX-License-Identifier: GPL-2.0 2 + .. include:: <isonum.txt> 3 + 4 + ============================================================ 1 5 Linuxized ACPICA - Introduction to ACPICA Release Automation 6 + ============================================================ 2 7 3 - Copyright (C) 2013-2016, Intel Corporation 4 - Author: Lv Zheng <lv.zheng@intel.com> 8 + :Copyright: |copy| 2013-2016, Intel Corporation 9 + 10 + :Author: Lv Zheng <lv.zheng@intel.com> 5 11 6 12 7 - Abstract: 8 - 13 + Abstract 14 + ======== 9 15 This document describes the ACPICA project and the relationship between 10 16 ACPICA and Linux. It also describes how ACPICA code in drivers/acpi/acpica, 11 17 include/acpi and tools/power/acpi is automatically updated to follow the 12 18 upstream. 13 19 20 + ACPICA Project 21 + ============== 14 22 15 - 1. ACPICA Project 23 + The ACPI Component Architecture (ACPICA) project provides an operating 24 + system (OS)-independent reference implementation of the Advanced 25 + Configuration and Power Interface Specification (ACPI). It has been 26 + adapted by various host OSes. By directly integrating ACPICA, Linux can 27 + also benefit from the application experiences of ACPICA from other host 28 + OSes. 16 29 17 - The ACPI Component Architecture (ACPICA) project provides an operating 18 - system (OS)-independent reference implementation of the Advanced 19 - Configuration and Power Interface Specification (ACPI). It has been 20 - adapted by various host OSes. By directly integrating ACPICA, Linux can 21 - also benefit from the application experiences of ACPICA from other host 22 - OSes. 30 + The homepage of ACPICA project is: www.acpica.org, it is maintained and 31 + supported by Intel Corporation. 23 32 24 - The homepage of ACPICA project is: www.acpica.org, it is maintained and 25 - supported by Intel Corporation. 26 - 27 - The following figure depicts the Linux ACPI subsystem where the ACPICA 28 - adaptation is included: 33 + The following figure depicts the Linux ACPI subsystem where the ACPICA 34 + adaptation is included:: 29 35 30 36 +---------------------------------------------------------+ 31 37 | | ··· 77 71 78 72 Figure 1. Linux ACPI Software Components 79 73 80 - NOTE: 74 + .. note:: 81 75 A. OS Service Layer - Provided by Linux to offer OS dependent 82 76 implementation of the predefined ACPICA interfaces (acpi_os_*). 77 + :: 78 + 83 79 include/acpi/acpiosxf.h 84 80 drivers/acpi/osl.c 85 81 include/acpi/platform 86 82 include/asm/acenv.h 87 83 B. ACPICA Functionality - Released from ACPICA code base to offer 88 84 OS independent implementation of the ACPICA interfaces (acpi_*). 85 + :: 86 + 89 87 drivers/acpi/acpica 90 88 include/acpi/ac*.h 91 89 tools/power/acpi 92 90 C. Linux/ACPI Functionality - Providing Linux specific ACPI 93 91 functionality to the other Linux kernel subsystems and user space 94 92 programs. 93 + :: 94 + 95 95 drivers/acpi 96 96 include/linux/acpi.h 97 97 include/linux/acpi*.h ··· 107 95 ACPI subsystem to offer architecture specific implementation of the 108 96 ACPI interfaces. They are Linux specific components and are out of 109 97 the scope of this document. 98 + :: 99 + 110 100 include/asm/acpi.h 111 101 include/asm/acpi*.h 112 102 arch/*/acpi 113 103 114 - 2. ACPICA Release 104 + ACPICA Release 105 + ============== 115 106 116 - The ACPICA project maintains its code base at the following repository URL: 117 - https://github.com/acpica/acpica.git. As a rule, a release is made every 118 - month. 107 + The ACPICA project maintains its code base at the following repository URL: 108 + https://github.com/acpica/acpica.git. As a rule, a release is made every 109 + month. 119 110 120 - As the coding style adopted by the ACPICA project is not acceptable by 121 - Linux, there is a release process to convert the ACPICA git commits into 122 - Linux patches. The patches generated by this process are referred to as 123 - "linuxized ACPICA patches". The release process is carried out on a local 124 - copy the ACPICA git repository. Each commit in the monthly release is 125 - converted into a linuxized ACPICA patch. Together, they form the monthly 126 - ACPICA release patchset for the Linux ACPI community. This process is 127 - illustrated in the following figure: 111 + As the coding style adopted by the ACPICA project is not acceptable by 112 + Linux, there is a release process to convert the ACPICA git commits into 113 + Linux patches. The patches generated by this process are referred to as 114 + "linuxized ACPICA patches". The release process is carried out on a local 115 + copy the ACPICA git repository. Each commit in the monthly release is 116 + converted into a linuxized ACPICA patch. Together, they form the monthly 117 + ACPICA release patchset for the Linux ACPI community. This process is 118 + illustrated in the following figure:: 128 119 129 120 +-----------------------------+ 130 121 | acpica / master (-) commits | ··· 168 153 169 154 Figure 2. ACPICA -> Linux Upstream Process 170 155 171 - NOTE: 156 + .. note:: 172 157 A. Linuxize Utilities - Provided by the ACPICA repository, including a 173 158 utility located in source/tools/acpisrc folder and a number of 174 159 scripts located in generate/linux folder. ··· 185 170 following kernel configuration options: 186 171 CONFIG_ACPI/CONFIG_ACPI_DEBUG/CONFIG_ACPI_DEBUGGER 187 172 188 - 3. ACPICA Divergences 173 + ACPICA Divergences 174 + ================== 189 175 190 - Ideally, all of the ACPICA commits should be converted into Linux patches 191 - automatically without manual modifications, the "linux / master" tree should 192 - contain the ACPICA code that exactly corresponds to the ACPICA code 193 - contained in "new linuxized acpica" tree and it should be possible to run 194 - the release process fully automatically. 176 + Ideally, all of the ACPICA commits should be converted into Linux patches 177 + automatically without manual modifications, the "linux / master" tree should 178 + contain the ACPICA code that exactly corresponds to the ACPICA code 179 + contained in "new linuxized acpica" tree and it should be possible to run 180 + the release process fully automatically. 195 181 196 - As a matter of fact, however, there are source code differences between 197 - the ACPICA code in Linux and the upstream ACPICA code, referred to as 198 - "ACPICA Divergences". 182 + As a matter of fact, however, there are source code differences between 183 + the ACPICA code in Linux and the upstream ACPICA code, referred to as 184 + "ACPICA Divergences". 199 185 200 - The various sources of ACPICA divergences include: 186 + The various sources of ACPICA divergences include: 201 187 1. Legacy divergences - Before the current ACPICA release process was 202 188 established, there already had been divergences between Linux and 203 189 ACPICA. Over the past several years those divergences have been greatly ··· 229 213 rebased on the ACPICA side in order to offer better solutions, new ACPICA 230 214 divergences are generated. 231 215 232 - 4. ACPICA Development 216 + ACPICA Development 217 + ================== 233 218 234 - This paragraph guides Linux developers to use the ACPICA upstream release 235 - utilities to obtain Linux patches corresponding to upstream ACPICA commits 236 - before they become available from the ACPICA release process. 219 + This paragraph guides Linux developers to use the ACPICA upstream release 220 + utilities to obtain Linux patches corresponding to upstream ACPICA commits 221 + before they become available from the ACPICA release process. 237 222 238 223 1. Cherry-pick an ACPICA commit 239 224 ··· 242 225 you want to cherry pick must be committed into the local repository. 243 226 244 227 Then the gen-patch.sh command can help to cherry-pick an ACPICA commit 245 - from the ACPICA local repository: 228 + from the ACPICA local repository:: 246 229 247 230 $ git clone https://github.com/acpica/acpica 248 231 $ cd acpica ··· 257 240 changes that haven't been applied to Linux yet. 258 241 259 242 You can generate the ACPICA release series yourself and rebase your code on 260 - top of the generated ACPICA release patches: 243 + top of the generated ACPICA release patches:: 261 244 262 245 $ git clone https://github.com/acpica/acpica 263 246 $ cd acpica ··· 271 254 3. Inspect the current divergences 272 255 273 256 If you have local copies of both Linux and upstream ACPICA, you can generate 274 - a diff file indicating the state of the current divergences: 257 + a diff file indicating the state of the current divergences:: 275 258 276 259 # git clone https://github.com/acpica/acpica 277 260 # git clone http://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
+1
Documentation/driver-api/acpi/index.rst
··· 5 5 .. toctree:: 6 6 :maxdepth: 2 7 7 8 + linuxized-acpica