Sorry, you need to enable JavaScript to visit this website.


This project enables Linux to take advantage of platforms supporting Advanced Configuration & Power Interface -- virtually all high-volume i386, x86_64, and ia64 systems since 1999. ACPI, known as a Hardware Abstraction Layer (HAL) in embedded computing, is an abstraction layer between the operating system, platform firmware and hardware. This allows the OS and the platform to evolve independently. The core of the Linux ACPI implementation comes from ACPICA (ACPI Component Architecture). ACPICA includes an ACPI Machine Language (AML) interpreter that is resident in the Linux kernel. Several other operating systems use the same ACPICA core interpreter, including BSD and OpenSolaris. ACPICA also comes with a simulator, test suites, and a compiler, to translate ACPI Source Language (ASL) into AML.

Len Brown maintains the Linux ACPI project git source repository. This makes git an ideal tool for getting the latest source code.

A good set of git startup instructions can be found at

To create a copy of the Linux ACPI git tree from scratch:

$ git clone git://

But, note that most Linux Kernel developers have already created a copy of Linus Torvalds' upstream kernel tree for reference:

$ git clone git://

The Linux ACPI is based on Linus' tree and shares almost all of the same history. So, if you've got a copy of Linus' tree, simply create the Linux ACPI tree, with reference to that shared history:

$ git clone --reference linux-2.6\

Len follows Tony Luck's method of using git branches, documented in the git user manual under "Maintaining topic branches for a Linux subsystem maintainer".

So, there are multiple branches within the Linux/ACPI git tree.

The latest patches intended for Linus are on the release branch:

git:// release

The latest patches intended for community testing are on the test branch:

git:// test

Andrew Morton periodically pulls the test branch and creates a consolidated git-acpi.patch and applies it to his mm release.

Sometimes, there are other topic-specific branches, such as "acpica", "cpuidle", and "suspend", which are included in the test branch, but are also available for individual testing.

You can view them this way:

$ git branch -r

To change branches, say to the release branch:

$ git checkout origin/release

Beware that Len takes the liberty of occasionally rewriting the history of the test branch. So, you may have conflicts if you re-pull into an "untouched" repository. Sorry about that.

This is because:

  • Andrew Morton doesn't care about history, he consolidates the entire tree into a single patch anyway.
  • Linus Torvalds wants a "clean history".
  • Len wants Linus to get exactly what Andrew tested, merges and all.

If you use git for creating patches, please base them off of Linus' upstream kernel, rather than on the ACPI test branch. If they conflict with other patches in the ACPI test tree, you can use a separate merge patch to merge the two, or Len can merge them for you.

Note that Len does not generally pull from other developer's git trees. He prefers to pull patches from the mailing list, where they receive the widest review. So if you use git to check in your own patches, please use its features to format and e-mail the patches to the list for review.