Browse files

initial M7630AABBQMLZA40701070

  • Loading branch information...
1 parent b72842c commit ca5ef63e8912f63c966499759948e279eac4fee6 @freexperia committed Dec 19, 2012
Showing with 22,025 additions and 0 deletions.
  1. +91 −0
  2. +356 −0 COPYING
  3. +3,981 −0 CREDITS
  4. +7 −0 Documentation/.gitignore
  5. +354 −0 Documentation/00-INDEX
  6. +77 −0 Documentation/ABI/README
  7. +22 −0 Documentation/ABI/obsolete/proc-pid-oom_adj
  8. +31 −0 Documentation/ABI/obsolete/sysfs-bus-usb
  9. +29 −0 Documentation/ABI/obsolete/sysfs-class-rfkill
  10. +10 −0 Documentation/ABI/obsolete/sysfs-driver-hid-roccat-koneplus
  11. +12 −0 Documentation/ABI/removed/devfs
  12. +14 −0 Documentation/ABI/removed/dv1394
  13. +10 −0 Documentation/ABI/removed/o2cb
  14. +15 −0 Documentation/ABI/removed/raw1394
  15. +16 −0 Documentation/ABI/removed/video1394
  16. +103 −0 Documentation/ABI/stable/firewire-cdev
  17. +10 −0 Documentation/ABI/stable/o2cb
  18. +10 −0 Documentation/ABI/stable/syscalls
  19. +22 −0 Documentation/ABI/stable/sysfs-acpi-pmprofile
  20. +122 −0 Documentation/ABI/stable/sysfs-bus-firewire
  21. +75 −0 Documentation/ABI/stable/sysfs-bus-xen-backend
  22. +56 −0 Documentation/ABI/stable/sysfs-class-backlight
  23. +67 −0 Documentation/ABI/stable/sysfs-class-rfkill
  24. +212 −0 Documentation/ABI/stable/sysfs-class-ubi
  25. +7 −0 Documentation/ABI/stable/sysfs-devices-node
  26. +77 −0 Documentation/ABI/stable/sysfs-devices-system-xen_memory
  27. +8 −0 Documentation/ABI/stable/sysfs-driver-qla2xxx
  28. +62 −0 Documentation/ABI/stable/sysfs-driver-usb-usbtmc
  29. +75 −0 Documentation/ABI/stable/sysfs-firmware-efi-vars
  30. +30 −0 Documentation/ABI/stable/sysfs-module
  31. +4 −0 Documentation/ABI/stable/thermal-notification
  32. +27 −0 Documentation/ABI/stable/vdso
  33. +31 −0 Documentation/ABI/testing/configfs-spear-pcie-gadget
  34. +20 −0 Documentation/ABI/testing/debugfs-ec
  35. +19 −0 Documentation/ABI/testing/debugfs-ideapad
  36. +16 −0 Documentation/ABI/testing/debugfs-olpc
  37. +19 −0 Documentation/ABI/testing/debugfs-pktcdvd
  38. +23 −0 Documentation/ABI/testing/evm
  39. +61 −0 Documentation/ABI/testing/ima_policy
  40. +22 −0 Documentation/ABI/testing/procfs-diskstats
  41. +47 −0 Documentation/ABI/testing/pstore
  42. +99 −0 Documentation/ABI/testing/sysfs-ata
  43. +208 −0 Documentation/ABI/testing/sysfs-block
  44. +25 −0 Documentation/ABI/testing/sysfs-block-dm
  45. +18 −0 Documentation/ABI/testing/sysfs-block-rssd
  46. +99 −0 Documentation/ABI/testing/sysfs-block-zram
  47. +31 −0 Documentation/ABI/testing/sysfs-bus-bcma
  48. +35 −0 Documentation/ABI/testing/sysfs-bus-css
  49. +14 −0 Documentation/ABI/testing/sysfs-bus-event_source-devices-format
  50. +19 −0 Documentation/ABI/testing/sysfs-bus-hsi
  51. +21 −0 Documentation/ABI/testing/sysfs-bus-i2c-devices-fsa9480
  52. +21 −0 Documentation/ABI/testing/sysfs-bus-i2c-devices-hm6352
  53. +6 −0 Documentation/ABI/testing/sysfs-bus-media
  54. +212 −0 Documentation/ABI/testing/sysfs-bus-pci
  55. +80 −0 Documentation/ABI/testing/sysfs-bus-pci-devices-cciss
  56. +46 −0 Documentation/ABI/testing/sysfs-bus-pci-drivers-ehci_hcd
  57. +18 −0 Documentation/ABI/testing/sysfs-bus-pil
  58. +76 −0 Documentation/ABI/testing/sysfs-bus-rbd
  59. +75 −0 Documentation/ABI/testing/sysfs-bus-rpmsg
  60. +28 −0 Documentation/ABI/testing/sysfs-bus-umc
  61. +195 −0 Documentation/ABI/testing/sysfs-bus-usb
  62. +43 −0 Documentation/ABI/testing/sysfs-bus-usb-devices-usbsevseg
  63. +88 −0 Documentation/ABI/testing/sysfs-c2port
  64. +8 −0 Documentation/ABI/testing/sysfs-cfq-target-latency
  65. +16 −0 Documentation/ABI/testing/sysfs-class
  66. +56 −0 Documentation/ABI/testing/sysfs-class-backlight-driver-adp8870
  67. +50 −0 Documentation/ABI/testing/sysfs-class-bdi
  68. +52 −0 Documentation/ABI/testing/sysfs-class-devfreq
  69. +23 −0 Documentation/ABI/testing/sysfs-class-lcd
  70. +37 −0 Documentation/ABI/testing/sysfs-class-led
  71. +125 −0 Documentation/ABI/testing/sysfs-class-mtd
  72. +14 −0 Documentation/ABI/testing/sysfs-class-net-batman-adv
  73. +84 −0 Documentation/ABI/testing/sysfs-class-net-mesh
  74. +72 −0 Documentation/ABI/testing/sysfs-class-pktcdvd
  75. +20 −0 Documentation/ABI/testing/sysfs-class-power
  76. +351 −0 Documentation/ABI/testing/sysfs-class-regulator
  77. +12 −0 Documentation/ABI/testing/sysfs-class-rtc-rtc0-device-rtc_calibration
  78. +13 −0 Documentation/ABI/testing/sysfs-class-scsi_host
  79. +146 −0 Documentation/ABI/testing/sysfs-class-uwb_rc
  80. +38 −0 Documentation/ABI/testing/sysfs-class-uwb_rc-wusbhc
  81. +20 −0 Documentation/ABI/testing/sysfs-dev
  82. +25 −0 Documentation/ABI/testing/sysfs-devices
  83. +85 −0 Documentation/ABI/testing/sysfs-devices-memory
  84. +21 −0 Documentation/ABI/testing/sysfs-devices-mmc
  85. +7 −0 Documentation/ABI/testing/sysfs-devices-node
  86. +21 −0 Documentation/ABI/testing/sysfs-devices-platform-_UDC_-gadget
  87. +34 −0 Documentation/ABI/testing/sysfs-devices-platform-docg3
  88. +185 −0 Documentation/ABI/testing/sysfs-devices-power
  89. +58 −0 Documentation/ABI/testing/sysfs-devices-soc
  90. +203 −0 Documentation/ABI/testing/sysfs-devices-system-cpu
  91. +22 −0 Documentation/ABI/testing/sysfs-devices-system-ibm-rtl
  92. +10 −0 Documentation/ABI/testing/sysfs-driver-hid
  93. +7 −0 Documentation/ABI/testing/sysfs-driver-hid-logitech-lg4ff
  94. +9 −0 Documentation/ABI/testing/sysfs-driver-hid-multitouch
  95. +43 −0 Documentation/ABI/testing/sysfs-driver-hid-picolcd
  96. +29 −0 Documentation/ABI/testing/sysfs-driver-hid-prodikeys
  97. +53 −0 Documentation/ABI/testing/sysfs-driver-hid-roccat-arvo
  98. +135 −0 Documentation/ABI/testing/sysfs-driver-hid-roccat-isku
  99. +106 −0 Documentation/ABI/testing/sysfs-driver-hid-roccat-kone
  100. +120 −0 Documentation/ABI/testing/sysfs-driver-hid-roccat-koneplus
  101. +100 −0 Documentation/ABI/testing/sysfs-driver-hid-roccat-kovaplus
  102. +107 −0 Documentation/ABI/testing/sysfs-driver-hid-roccat-pyra
  103. +22 −0 Documentation/ABI/testing/sysfs-driver-hid-wiimote
  104. +37 −0 Documentation/ABI/testing/sysfs-driver-samsung-laptop
  105. +73 −0 Documentation/ABI/testing/sysfs-driver-wacom
  106. +170 −0 Documentation/ABI/testing/sysfs-firmware-acpi
  107. +110 −0 Documentation/ABI/testing/sysfs-firmware-dmi
  108. +58 −0 Documentation/ABI/testing/sysfs-firmware-gsmi
  109. +7 −0 Documentation/ABI/testing/sysfs-firmware-log
  110. +71 −0 Documentation/ABI/testing/sysfs-firmware-memmap
  111. +15 −0 Documentation/ABI/testing/sysfs-firmware-sfi
  112. +27 −0 Documentation/ABI/testing/sysfs-firmware-sgi_uv
  113. +98 −0 Documentation/ABI/testing/sysfs-fs-ext4
  114. +27 −0 Documentation/ABI/testing/sysfs-gpio
  115. +31 −0 Documentation/ABI/testing/sysfs-i2c-bmp085
  116. +23 −0 Documentation/ABI/testing/sysfs-ibft
  117. +8 −0 Documentation/ABI/testing/sysfs-kernel-fscaps
  118. +6 −0 Documentation/ABI/testing/sysfs-kernel-mm
  119. +15 −0 Documentation/ABI/testing/sysfs-kernel-mm-hugepages
  120. +490 −0 Documentation/ABI/testing/sysfs-kernel-slab
  121. +14 −0 Documentation/ABI/testing/sysfs-kernel-uids
  122. +44 −0 Documentation/ABI/testing/sysfs-memory-page-offline
  123. +51 −0 Documentation/ABI/testing/sysfs-module
  124. +89 −0 Documentation/ABI/testing/sysfs-ocfs2
  125. +66 −0 Documentation/ABI/testing/sysfs-platform-asus-laptop
  126. +31 −0 Documentation/ABI/testing/sysfs-platform-asus-wmi
  127. +25 −0 Documentation/ABI/testing/sysfs-platform-at91
  128. +50 −0 Documentation/ABI/testing/sysfs-platform-eeepc-laptop
  129. +8 −0 Documentation/ABI/testing/sysfs-platform-ideapad-laptop
  130. +48 −0 Documentation/ABI/testing/sysfs-platform-kim
  131. +174 −0 Documentation/ABI/testing/sysfs-power
  132. +73 −0 Documentation/ABI/testing/sysfs-pps
  133. +13 −0 Documentation/ABI/testing/sysfs-profiling
  134. +98 −0 Documentation/ABI/testing/sysfs-ptp
  135. +19 −0 Documentation/ABI/testing/sysfs-tty
  136. +100 −0 Documentation/ABI/testing/sysfs-wusb_cbaf
  137. +246 −0 Documentation/BUG-HUNTING
  138. +415 −0 Documentation/Changes
  139. +848 −0 Documentation/CodingStyle
  140. +781 −0 Documentation/DMA-API-HOWTO.txt
  141. +680 −0 Documentation/DMA-API.txt
  142. +151 −0 Documentation/DMA-ISA-LPC.txt
  143. +51 −0 Documentation/DMA-attributes.txt
  144. +14 −0 Documentation/DocBook/.gitignore
  145. +583 −0 Documentation/DocBook/80211.tmpl
  146. +241 −0 Documentation/DocBook/Makefile
  147. +109 −0 Documentation/DocBook/alsa-driver-api.tmpl
  148. +441 −0 Documentation/DocBook/debugobjects.tmpl
  149. +466 −0 Documentation/DocBook/device-drivers.tmpl
  150. +323 −0 Documentation/DocBook/deviceiobook.tmpl
  151. +868 −0 Documentation/DocBook/drm.tmpl
  152. +426 −0 Documentation/DocBook/filesystems.tmpl
  153. +793 −0 Documentation/DocBook/gadget.tmpl
  154. +507 −0 Documentation/DocBook/genericirq.tmpl
  155. +340 −0 Documentation/DocBook/kernel-api.tmpl
  156. +1,327 −0 Documentation/DocBook/kernel-hacking.tmpl
Sorry, we could not display the entire diff because too many files (40,983) changed.
@@ -0,0 +1,91 @@
+#Android makefile to build kernel as a part of Android Build
+PERL = perl
+MSM_ARCH ?= $(shell $(PERL) -e 'while (<>) {$$a = $$1 if /CONFIG_ARCH_((?:MSM|QSD)[a-zA-Z0-9]+)=y/; $$r = $$1 if /CONFIG_MSM_SOC_REV_(?!NONE)(\w+)=y/;} print lc("$$a$$r\n");' $(KERNEL_CONFIG))
+KERNEL_USE_OF ?= $(shell $(PERL) -e '$$of = "n"; while (<>) { if (/CONFIG_USE_OF=y/) { $$of = "y"; break; } } print $$of;' kernel/arch/arm/configs/$(KERNEL_DEFCONFIG))
+ifeq "$(KERNEL_USE_OF)" "y"
+DTS_FILES = $(wildcard $(TOP)/kernel/arch/arm/boot/dts/$(DTS_NAME)*.dts)
+DTS_FILE = $(lastword $(subst /, ,$(1)))
+DTB_FILE = $(addprefix $(KERNEL_OUT)/arch/arm/boot/,$(patsubst %.dts,%.dtb,$(call DTS_FILE,$(1))))
+ZIMG_FILE = $(addprefix $(KERNEL_OUT)/arch/arm/boot/,$(patsubst %.dts,%-zImage,$(call DTS_FILE,$(1))))
+KERNEL_ZIMG = $(KERNEL_OUT)/arch/arm/boot/zImage
+DTC = $(KERNEL_OUT)/scripts/dtc/dtc
+define append-dtb
+mkdir -p $(KERNEL_OUT)/arch/arm/boot;\
+$(foreach d, $(DTS_FILES), \
+ $(DTC) -p 1024 -O dtb -o $(call DTB_FILE,$(d)) $(d); \
+ cat $(KERNEL_ZIMG) $(call DTB_FILE,$(d)) > $(call ZIMG_FILE,$(d));)
+define append-dtb
+$(info Using uncompressed kernel)
+define mv-modules
+mdpath=`find $(KERNEL_MODULES_OUT) -type f -name modules.dep`;\
+if [ "$$mdpath" != "" ];then\
+mpath=`dirname $$mdpath`;\
+ko=`find $$mpath/kernel -type f -name *.ko`;\
+for i in $$ko; do mv $$i $(KERNEL_MODULES_OUT)/; done;\
+define clean-module-folder
+mdpath=`find $(KERNEL_MODULES_OUT) -type f -name modules.dep`;\
+if [ "$$mdpath" != "" ];then\
+mpath=`dirname $$mdpath`; rm -rf $$mpath;\
+ mkdir -p $(KERNEL_OUT)
+ $(hide) gunzip -c $(KERNEL_OUT)/arch/arm/boot/compressed/piggy.gzip > $(KERNEL_OUT)/piggy
+ $(MAKE) -C kernel O=../$(KERNEL_OUT) ARCH=arm CROSS_COMPILE=arm-eabi-
+ $(MAKE) -C kernel O=../$(KERNEL_OUT) ARCH=arm CROSS_COMPILE=arm-eabi- modules
+ $(MAKE) -C kernel O=../$(KERNEL_OUT) INSTALL_MOD_PATH=../../$(KERNEL_MODULES_INSTALL) ARCH=arm CROSS_COMPILE=arm-eabi- modules_install
+ $(mv-modules)
+ $(clean-module-folder)
+ $(append-dtb)
+ $(MAKE) -C kernel O=../$(KERNEL_OUT) ARCH=arm CROSS_COMPILE=arm-eabi- headers_install
+kerneltags: $(KERNEL_OUT) $(KERNEL_CONFIG)
+ $(MAKE) -C kernel O=../$(KERNEL_OUT) ARCH=arm CROSS_COMPILE=arm-eabi- tags
+kernelconfig: $(KERNEL_OUT) $(KERNEL_CONFIG)
+ $(MAKE) -C kernel O=../$(KERNEL_OUT) ARCH=arm CROSS_COMPILE=arm-eabi- menuconfig
+ $(MAKE) -C kernel O=../$(KERNEL_OUT) ARCH=arm CROSS_COMPILE=arm-eabi- savedefconfig
+ cp $(KERNEL_OUT)/defconfig kernel/arch/arm/configs/$(KERNEL_DEFCONFIG)
@@ -0,0 +1,356 @@
+ NOTE! This copyright does *not* cover user programs that use kernel
+ services by normal system calls - this is merely considered normal use
+ of the kernel, and does *not* fall under the heading of "derived work".
+ Also note that the GPL below is copyrighted by the Free Software
+ Foundation, but the instance of code that it refers to (the Linux
+ kernel) is copyrighted by me and others who actually wrote it.
+ Also note that the only valid version of the GPL as far as the kernel
+ is concerned is _this_ particular version of the license (ie v2, not
+ v2.2 or v3.x or whatever), unless explicitly otherwise stated.
+ Linus Torvalds
+ Version 2, June 1991
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+ 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+ Preamble
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users. This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it. (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.) You can apply it to
+your programs, too.
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+ To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have. You must make sure that they, too, receive or can get the
+source code. And you must show them these terms so they know their
+ We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+ Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software. If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+ Finally, any free program is threatened constantly by software
+patents. We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary. To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+ The precise terms and conditions for copying, distribution and
+modification follow.
+ 0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License. The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language. (Hereinafter, translation is included without limitation in
+the term "modification".) Each licensee is addressed as "you".
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+ 1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+ 2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+ a) You must cause the modified files to carry prominent notices
+ stating that you changed the files and the date of any change.
+ b) You must cause any work that you distribute or publish, that in
+ whole or in part contains or is derived from the Program or any
+ part thereof, to be licensed as a whole at no charge to all third
+ parties under the terms of this License.
+ c) If the modified program normally reads commands interactively
+ when run, you must cause it, when started running for such
+ interactive use in the most ordinary way, to print or display an
+ announcement including an appropriate copyright notice and a
+ notice that there is no warranty (or else, saying that you provide
+ a warranty) and that users may redistribute the program under
+ these conditions, and telling the user how to view a copy of this
+ License. (Exception: if the Program itself is interactive but
+ does not normally print such an announcement, your work based on
+ the Program is not required to print an announcement.)
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+ 3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+ a) Accompany it with the complete corresponding machine-readable
+ source code, which must be distributed under the terms of Sections
+ 1 and 2 above on a medium customarily used for software interchange; or,
+ b) Accompany it with a written offer, valid for at least three
+ years, to give any third party, for a charge no more than your
+ cost of physically performing source distribution, a complete
+ machine-readable copy of the corresponding source code, to be
+ distributed under the terms of Sections 1 and 2 above on a medium
+ customarily used for software interchange; or,
+ c) Accompany it with the information you received as to the offer
+ to distribute corresponding source code. (This alternative is
+ allowed only for noncommercial distribution and only if you
+ received the program in object code or executable form with such
+ an offer, in accord with Subsection b above.)
+The source code for a work means the preferred form of the work for
+making modifications to it. For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable. However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+ 4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License. Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+ 5. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Program or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+ 6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+ 7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all. For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+ 8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded. In such case, this License incorporates
+the limitation as if written in the body of this License.
+ 9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+Each version is given a distinguishing version number. If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation. If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+ 10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission. For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this. Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+ How to Apply These Terms to Your New Programs
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+ <one line to give the program's name and a brief idea of what it does.>
+ Copyright (C) <year> <name of author>
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ GNU General Public License for more details.
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+Also add information on how to contact you by electronic and paper mail.
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+ Gnomovision version 69, Copyright (C) year name of author
+ Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary. Here is a sample; alter the names:
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+ `Gnomovision' (which makes passes at compilers) written by James Hacker.
+ <signature of Ty Coon>, 1 April 1989
+ Ty Coon, President of Vice
+This General Public License does not permit incorporating your program into
+proprietary programs. If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library. If this is what you want to do, use the GNU Library General
+Public License instead of this License.
3,981 additions, 0 deletions not shown because the diff is too large. Please use a local Git client to view these changes.
7 Documentation/.gitignore
@@ -0,0 +1,7 @@
354 Documentation/00-INDEX
@@ -0,0 +1,354 @@
+This is a brief list of all the files in ./linux/Documentation and what
+they contain. If you add a documentation file, please list it here in
+alphabetical order as well, or risk being hunted down like a rabid dog.
+Please try and keep the descriptions small enough to fit on one line.
+ Thanks -- Paul G.
+Following translations are available on the WWW:
+ - Japanese, maintained by the JF Project (, at
+ - this file.
+ - info on kernel <-> userspace ABI and relative interface stability.
+ - brute force method of doing binary search of patches to find bug.
+ - list of changes that break older software packages.
+ - how the boss likes the C code in the kernel to look.
+ - An extended tutorial on how to work with the kernel development
+ process.
+ - DMA API, pci_ API & extensions for non-consistent memory machines.
+ - How to do DMA with ISA (and LPC) devices.
+ - directory with DocBook templates etc. for kernel documentation.
+ - the process and procedures of how to do Linux kernel development.
+ - info on Linux Intelligent Platform Management Interface (IPMI) Driver.
+ - how to select which CPU(s) handle which interrupt events on SMP.
+ - description of what an IRQ is.
+ - how to (attempt to) manage kernel hackers.
+ - directory with info on RCU (read-copy update).
+ - info on Secure Attention Keys.
+ - Silicon Motion SM501 multimedia companion chip
+ - procedure for reporting security bugs found in the kernel.
+ - Linux kernel patch submission checklist.
+ - procedure to get a new driver source included into the kernel tree.
+ - procedure to get a source patch included into the kernel tree.
+ - how to change your VGA cursor from a blinking underscore.
+ - documentation on accounting and taskstats.
+ - info on ACPI-specific hooks in the kernel.
+ - description of AoE (ATA over Ethernet) along with config examples.
+ - description of various trees and how to apply their patches.
+ - directory with info about Linux on the ARM architecture.
+ - semantics and behavior of atomic and bitmask operations.
+ - misc. LCD driver documentation (cfag12864b, ks0108).
+ - basic instructions for those who wants to profile Linux kernel.
+ - info on the kernel support for extra binary formats.
+ - directory with documentation for the Blackfin arch.
+ - info on the Block I/O (BIO) layer.
+ - info on block devices & drivers
+ - info on Marvell Bluetooth driver usage.
+ - how to access I/O mapped memory from within device drivers.
+ - describes the cache/TLB flushing interfaces Linux uses.
+ - directory with information on the CD-ROM drivers that Linux has.
+ - cgroups features, including cpusets and memory controller.
+ - docs on the netlink based userspace<->kernel space communication mod.
+ - documentation on Linux console drivers.
+ - info on CPU frequency and voltage scaling.
+ - document describing CPU hotplug support in the Linux kernel.
+ - document describing how CPU load statistics are collected.
+ - info on CPU_IDLE, CPU idle state management subsystem.
+ - documentation on how CPU topology info is exported via sysfs.
+ - brief tutorial on CRC computation
+ - directory with info about Linux on CRIS architecture.
+ - directory with info on the Crypto API.
+ - information on the Dell Systems Management Base Driver.
+ - some notes on debugging modules after Linux 2.6.3.
+ - document demonstrating the use of the Dell Remote BIOS Update driver.
+ - directory with info on Device Mapper.
+ - plain ASCII listing of all the nodes in /dev/ with major minor #'s.
+ - file containing a list of files that should never be diff'ed.
+ - directory with info about Linux driver model.
+ - info on Linux Digital Video Broadcast (DVB) subsystem.
+ - info about initramfs, klibc, and userspace early during boot.
+ - information on EDAC - Error Detection And Correction
+ - info on EISA bus support.
+ - dir with docs about the fault injection capabilities infrastructure.
+ - directory with info on the frame buffer graphics abstraction layer.
+ - list of files and features that are going to be removed.
+ - info on the vfs and the various filesystems that Linux supports.
+ - request_firmware() hotplug interface info.
+ - Fujitsu FR-V Linux documentation.
+ - overview of GPIO (General Purpose Input/Output) access conventions.
+ - notes on the change from 16 bit to 32 bit user/group IDs.
+ - info on the timer related topics
+ - info on Linux support for random number generator in i8xx chipsets.
+ - directory with docs on various hardware monitoring drivers.
+ - directory with info about the I2C bus/protocol (2 wire, kHz speed).
+ - directory with info about the Linux I2O subsystem.
+ - directory with info about Linux on Intel 32 bit architecture.
+ - directory with info about Linux on Intel 64 bit architecture.
+ - directory with documents concerning Linux InfiniBand support.
+ - how to use the RAM disk as an initial/temporary root filesystem.
+ - info on Linux input device support.
+ - description of io_mapping functions in linux/io-mapping.h
+ - info on ordering I/O writes to memory-mapped addresses.
+ - directory with documents describing various IOCTL calls.
+ - info on I/O statistics Linux kernel provides.
+ - how to use the irq-flags tracing feature.
+ - info on Linux ISA Plug & Play support.
+ - directory with info on the Linux ISDN support, and supported cards.
+ - info on the in-kernel binary support for Java(tm).
+ - directory with info about the kernel build process.
+ - directory with mini HowTo on getting the crash dump code to work.
+ - mini HowTo on generation and location of kernel documentation files.
+ - listing of various WWW + books that document kernel internals.
+ - summary listing of command line / boot prompt args for the kernel.
+ - info of the kobject infrastructure of the Linux kernel.
+ - documents the kernel probes debugging feature.
+ - docs on adding reference counters (krefs) to kernel objects.
+ - directory with laptop related info and laptop driver documentation.
+ - a brief description of LDM (Windows Dynamic Disks).
+ - directory with info about LED handling under Linux.
+ - semantics and behavior of local atomic operations.
+ - documentation on the runtime locking correctness validator.
+ - full colour GIF image of Linux logo (penguin - Tux).
+ - info on creator of above logo & site to get additional images from.
+ - directory with info about Linux on Motorola 68k architecture.
+ - list of magic numbers used to mark/protect kernel data structures.
+ - info on supporting Micro Channel Architecture (e.g. PS/2) systems.
+ - info on boot arguments for the multiple devices driver.
+ - info on Linux kernel memory barriers.
+ - Hotpluggable memory support, how to use and current status.
+ - info on typical Linux memory problems.
+ - directory with info about Linux on MIPS architecture.
+ - directory with info about the MMC subsystem
+ - how to execute Mono-based .NET binaries with the help of BINFMT_MISC.
+ - info on the generic mutex subsystem.
+ - directory with various information about namespaces
+ - directory with information on the NetLabel subsystem.
+ - directory with info on various aspects of networking with Linux.
+ - info on NMI watchdog for SMP systems.
+ - documentation about no-mmu memory mapping support.
+ - info on how to read Numa policy hit/miss statistics in sysfs.
+ - how to decode those nasty internal kernel error dump messages.
+ - An introduction to the "padata" parallel execution API
+ - directory with info on using Linux on PA-RISC architecture.
+ - how to use the parallel-port driver.
+ - description and usage of the low level parallel port functions.
+ - info on the Linux PCMCIA driver.
+ - documentation on lightweight PI-futexes.
+ - Linux Plug and Play documentation.
+ - directory with info on Linux PCI power management.
+ - directory with info on using Linux with the PowerPC.
+ - info on locking under a preemptive kernel.
+ - how to get printk format specifiers right
+ - info on radix-priority-search-tree use for indexing vmas.
+ - documentation of the ramoops oops/panic logging module.
+ - info on what red-black trees are and what they are for.
+ - documentation of the robust futex ABI.
+ - a description of what robust futexes are.
+ - description of the RealTime mutex implementation design.
+ - desc. of RT-mutex subsystem with PI (Priority Inheritance) support.
+ - notes on how to use the Real Time Clock (aka CMOS clock) driver.
+ - directory with info on using Linux on the IBM S390.
+ - directory with info on the scheduler.
+ - directory with info on Linux scsi support.
+ - directory that contains security-related info
+ - directory with info on the low level serial API.
+ - how to set up Linux with a serial line console as the default.
+ - description of the SGI IOC4 PCI (multi function) device.
+ - short blurb on the SGI Visual Workstations.
+ - directory with info on porting Linux to a new architecture.
+ - directory with info on sound card support.
+ - directory with info on using Linux on Sparc architecture.
+ - info on how to obtain and use the sparse tool for typechecking.
+ - overview of Linux kernel Serial Peripheral Interface (SPI) support.
+ - info on using spinlocks to provide exclusive access in kernel.
+ - info on why the kernel does not have a stable in-kernel api or abi.
+ - rules and procedures for the -stable kernel releases.
+ - short guide on selecting video modes at boot via VGA BIOS.
+ - How not to use sysfs.
+ - directory with info on the /proc/sys/* files.
+ - info on the magic SysRq key.
+ - directory with info on telephony (e.g. voice over IP) support.
+ - info on the Unicode character/font mapping used in Linux.
+ - description of the Linux unshare system call.
+ - directory with info regarding the Universal Serial Bus.
+ - sysfs class driver interface to enable/disable a video output device.
+ - directory with info regarding video/TV/radio cards and linux.
+ - directory with info on the Linux vm code.
+ - Why the "volatile" type class should not be used
+ - directory with documents regarding the 1-wire (w1) subsystem.
+ - how to auto-reboot Linux if it has "fallen and can't get up". ;-)
+ - directory with info on Linux support for AMD x86-64 (Hammer) machines.
+ - info on writing drivers for Zorro bus devices found on Amigas.
77 Documentation/ABI/README
@@ -0,0 +1,77 @@
+This directory attempts to document the ABI between the Linux kernel and
+userspace, and the relative stability of these interfaces. Due to the
+everchanging nature of Linux, and the differing maturity levels, these
+interfaces should be used by userspace programs in different ways.
+We have four different levels of ABI stability, as shown by the four
+different subdirectories in this location. Interfaces may change levels
+of stability according to the rules described below.
+The different levels of stability are:
+ stable/
+ This directory documents the interfaces that the developer has
+ defined to be stable. Userspace programs are free to use these
+ interfaces with no restrictions, and backward compatibility for
+ them will be guaranteed for at least 2 years. Most interfaces
+ (like syscalls) are expected to never change and always be
+ available.
+ testing/
+ This directory documents interfaces that are felt to be stable,
+ as the main development of this interface has been completed.
+ The interface can be changed to add new features, but the
+ current interface will not break by doing this, unless grave
+ errors or security problems are found in them. Userspace
+ programs can start to rely on these interfaces, but they must be
+ aware of changes that can occur before these interfaces move to
+ be marked stable. Programs that use these interfaces are
+ strongly encouraged to add their name to the description of
+ these interfaces, so that the kernel developers can easily
+ notify them if any changes occur (see the description of the
+ layout of the files below for details on how to do this.)
+ obsolete/
+ This directory documents interfaces that are still remaining in
+ the kernel, but are marked to be removed at some later point in
+ time. The description of the interface will document the reason
+ why it is obsolete and when it can be expected to be removed.
+ The file Documentation/feature-removal-schedule.txt may describe
+ some of these interfaces, giving a schedule for when they will
+ be removed.
+ removed/
+ This directory contains a list of the old interfaces that have
+ been removed from the kernel.
+Every file in these directories will contain the following information:
+What: Short description of the interface
+Date: Date created
+KernelVersion: Kernel version this feature first showed up in.
+Contact: Primary contact for this interface (may be a mailing list)
+Description: Long description of the interface and how to use it.
+Users: All users of this interface who wish to be notified when
+ it changes. This is very important for interfaces in
+ the "testing" stage, so that kernel developers can work
+ with userspace developers to ensure that things do not
+ break in ways that are unacceptable. It is also
+ important to get feedback for these interfaces to make
+ sure they are working in a proper way and do not need to
+ be changed further.
+How things move between levels:
+Interfaces in stable may move to obsolete, as long as the proper
+notification is given.
+Interfaces may be removed from obsolete and the kernel as long as the
+documented amount of time has gone by.
+Interfaces in the testing state can move to the stable state when the
+developers feel they are finished. They cannot be removed from the
+kernel tree without going through the obsolete state first.
+It's up to the developer to place their interfaces in the category they
+wish for it to start out in.
22 Documentation/ABI/obsolete/proc-pid-oom_adj
@@ -0,0 +1,22 @@
+What: /proc/<pid>/oom_adj
+When: August 2012
+Why: /proc/<pid>/oom_adj allows userspace to influence the oom killer's
+ badness heuristic used to determine which task to kill when the kernel
+ is out of memory.
+ The badness heuristic has since been rewritten since the introduction of
+ this tunable such that its meaning is deprecated. The value was
+ implemented as a bitshift on a score generated by the badness()
+ function that did not have any precise units of measure. With the
+ rewrite, the score is given as a proportion of available memory to the
+ task allocating pages, so using a bitshift which grows the score
+ exponentially is, thus, impossible to tune with fine granularity.
+ A much more powerful interface, /proc/<pid>/oom_score_adj, was
+ introduced with the oom killer rewrite that allows users to increase or
+ decrease the badness score linearly. This interface will replace
+ /proc/<pid>/oom_adj.
+ A warning will be emitted to the kernel log if an application uses this
+ deprecated interface. After it is printed once, future warnings will be
+ suppressed until the kernel is rebooted.
31 Documentation/ABI/obsolete/sysfs-bus-usb
@@ -0,0 +1,31 @@
+What: /sys/bus/usb/devices/.../power/level
+Date: March 2007
+KernelVersion: 2.6.21
+Contact: Alan Stern <>
+ Each USB device directory will contain a file named
+ power/level. This file holds a power-level setting for
+ the device, either "on" or "auto".
+ "on" means that the device is not allowed to autosuspend,
+ although normal suspends for system sleep will still
+ be honored. "auto" means the device will autosuspend
+ and autoresume in the usual manner, according to the
+ capabilities of its driver.
+ During normal use, devices should be left in the "auto"
+ level. The "on" level is meant for administrative uses.
+ If you want to suspend a device immediately but leave it
+ free to wake up in response to I/O requests, you should
+ write "0" to power/autosuspend.
+ Device not capable of proper suspend and resume should be
+ left in the "on" level. Although the USB spec requires
+ devices to support suspend/resume, many of them do not.
+ In fact so many don't that by default, the USB core
+ initializes all non-hub devices in the "on" level. Some
+ drivers may change this setting when they are bound.
+ This file is deprecated and will be removed after 2010.
+ Use the power/control file instead; it does exactly the
+ same thing.
29 Documentation/ABI/obsolete/sysfs-class-rfkill
@@ -0,0 +1,29 @@
+rfkill - radio frequency (RF) connector kill switch support
+For details to this subsystem look at Documentation/rfkill.txt.
+What: /sys/class/rfkill/rfkill[0-9]+/state
+Date: 09-Jul-2007
+KernelVersion v2.6.22
+Description: Current state of the transmitter.
+ This file is deprecated and scheduled to be removed in 2014,
+ because its not possible to express the 'soft and hard block'
+ state of the rfkill driver.
+Values: A numeric value.
+ transmitter is turned off by software
+ transmitter is (potentially) active
+ transmitter is forced off by something outside of
+ the driver's control.
+What: /sys/class/rfkill/rfkill[0-9]+/claim
+Date: 09-Jul-2007
+KernelVersion v2.6.22
+Description: This file is deprecated because there no longer is a way to
+ claim just control over a single rfkill instance.
+ This file is scheduled to be removed in 2012.
+Values: 0: Kernel handles events
10 Documentation/ABI/obsolete/sysfs-driver-hid-roccat-koneplus
@@ -0,0 +1,10 @@
+What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/koneplus/roccatkoneplus<minor>/startup_profile
+Date: October 2010
+Contact: Stefan Achatz <>
+Description: The integer value of this attribute ranges from 0-4.
+ When read, this attribute returns the number of the actual
+ profile. This value is persistent, so its equivalent to the
+ profile that's active when the mouse is powered on next time.
+ When written, this file sets the number of the startup profile
+ and the mouse activates this profile immediately.
+ Please use actual_profile, it does the same thing.
12 Documentation/ABI/removed/devfs
@@ -0,0 +1,12 @@
+What: devfs
+Date: July 2005 (scheduled), finally removed in kernel v2.6.18
+Contact: Greg Kroah-Hartman <>
+ devfs has been unmaintained for a number of years, has unfixable
+ races, contains a naming policy within the kernel that is
+ against the LSB, and can be replaced by using udev.
+ The files fs/devfs/*, include/linux/devfs_fs*.h were removed,
+ along with the assorted devfs function calls throughout the
+ kernel tree.
14 Documentation/ABI/removed/dv1394
@@ -0,0 +1,14 @@
+What: dv1394 (a.k.a. "OHCI-DV I/O support" for FireWire)
+Date: May 2010 (scheduled), finally removed in kernel v2.6.37
+ /dev/dv1394/* were character device files, one for each FireWire
+ controller and for NTSC and PAL respectively, from which DV data
+ could be received by read() or transmitted by write(). A few
+ ioctl()s allowed limited control.
+ This special-purpose interface has been superseded by libraw1394 +
+ libiec61883 which are functionally equivalent, support HDV, and
+ transparently work on top of the newer firewire kernel drivers.
+ ffmpeg/libavformat (if configured for DV1394)
10 Documentation/ABI/removed/o2cb
@@ -0,0 +1,10 @@
+What: /sys/o2cb symlink
+Date: May 2011
+KernelVersion: 3.0
+Description: This is a symlink: /sys/o2cb to /sys/fs/o2cb. The symlink is
+ removed when new versions of ocfs2-tools which know to look
+ in /sys/fs/o2cb are sufficiently prevalent. Don't code new
+ software to look here, it should try /sys/fs/o2cb instead.
+Users: ocfs2-tools. It's sufficient to mail proposed changes to
15 Documentation/ABI/removed/raw1394
@@ -0,0 +1,15 @@
+What: raw1394 (a.k.a. "Raw IEEE1394 I/O support" for FireWire)
+Date: May 2010 (scheduled), finally removed in kernel v2.6.37
+ /dev/raw1394 was a character device file that allowed low-level
+ access to FireWire buses. Its major drawbacks were its inability
+ to implement sensible device security policies, and its low level
+ of abstraction that required userspace clients to duplicate much
+ of the kernel's ieee1394 core functionality.
+ Replaced by /dev/fw*, i.e. the <linux/firewire-cdev.h> ABI of
+ firewire-core.
+ libraw1394 (works with firewire-cdev too, transparent to library ABI
+ users)
16 Documentation/ABI/removed/video1394
@@ -0,0 +1,16 @@
+What: video1394 (a.k.a. "OHCI-1394 Video support" for FireWire)
+Date: May 2010 (scheduled), finally removed in kernel v2.6.37
+ /dev/video1394/* were character device files, one for each FireWire
+ controller, which were used for isochronous I/O. It was added as an
+ alternative to raw1394's isochronous I/O functionality which had
+ performance issues in its first generation. Any video1394 user had
+ to use raw1394 + libraw1394 too because video1394 did not provide
+ asynchronous I/O for device discovery and configuration.
+ Replaced by /dev/fw*, i.e. the <linux/firewire-cdev.h> ABI of
+ firewire-core.
+ libdc1394 (works with firewire-cdev too, transparent to library ABI
+ users)
103 Documentation/ABI/stable/firewire-cdev
@@ -0,0 +1,103 @@
+What: /dev/fw[0-9]+
+Date: May 2007
+KernelVersion: 2.6.22
+ The character device files /dev/fw* are the interface between
+ firewire-core and IEEE 1394 device drivers implemented in
+ userspace. The ioctl(2)- and read(2)-based ABI is defined and
+ documented in <linux/firewire-cdev.h>.
+ This ABI offers most of the features which firewire-core also
+ exposes to kernelspace IEEE 1394 drivers.
+ Each /dev/fw* is associated with one IEEE 1394 node, which can
+ be remote or local nodes. Operations on a /dev/fw* file have
+ different scope:
+ - The 1394 node which is associated with the file:
+ - Asynchronous request transmission
+ - Get the Configuration ROM
+ - Query node ID
+ - Query maximum speed of the path between this node
+ and local node
+ - The 1394 bus (i.e. "card") to which the node is attached to:
+ - Isochronous stream transmission and reception
+ - Asynchronous stream transmission and reception
+ - Asynchronous broadcast request transmission
+ - PHY packet transmission and reception
+ - Allocate, reallocate, deallocate isochronous
+ resources (channels, bandwidth) at the bus's IRM
+ - Query node IDs of local node, root node, IRM, bus
+ manager
+ - Query cycle time
+ - Bus reset initiation, bus reset event reception
+ - All 1394 buses:
+ - Allocation of IEEE 1212 address ranges on the local
+ link layers, reception of inbound requests to such
+ an address range, asynchronous response transmission
+ to inbound requests
+ - Addition of descriptors or directories to the local
+ nodes' Configuration ROM
+ Due to the different scope of operations and in order to let
+ userland implement different access permission models, some
+ operations are restricted to /dev/fw* files that are associated
+ with a local node:
+ - Addition of descriptors or directories to the local
+ nodes' Configuration ROM
+ - PHY packet transmission and reception
+ A /dev/fw* file remains associated with one particular node
+ during its entire life time. Bus topology changes, and hence
+ node ID changes, are tracked by firewire-core. ABI users do not
+ need to be aware of topology.
+ The following file operations are supported:
+ open(2)
+ Currently the only useful flags are O_RDWR.
+ ioctl(2)
+ Initiate various actions. Some take immediate effect, others
+ are performed asynchronously while or after the ioctl returns.
+ See the inline documentation in <linux/firewire-cdev.h> for
+ descriptions of all ioctls.
+ poll(2), select(2), epoll_wait(2) etc.
+ Watch for events to become available to be read.
+ read(2)
+ Receive various events. There are solicited events like
+ outbound asynchronous transaction completion or isochronous
+ buffer completion, and unsolicited events such as bus resets,
+ request reception, or PHY packet reception. Always use a read
+ buffer which is large enough to receive the largest event that
+ could ever arrive. See <linux/firewire-cdev.h> for descriptions
+ of all event types and for which ioctls affect reception of
+ events.
+ mmap(2)
+ Allocate a DMA buffer for isochronous reception or transmission
+ and map it into the process address space. The arguments should
+ be used as follows: addr = NULL, length = the desired buffer
+ size, i.e. number of packets times size of largest packet,
+ prot = at least PROT_READ for reception and at least PROT_WRITE
+ for transmission, flags = MAP_SHARED, fd = the handle to the
+ /dev/fw*, offset = 0.
+ Isochronous reception works in packet-per-buffer fashion except
+ for multichannel reception which works in buffer-fill mode.
+ munmap(2)
+ Unmap the isochronous I/O buffer from the process address space.
+ close(2)
+ Besides stopping and freeing I/O contexts that were associated
+ with the file descriptor, back out any changes to the local
+ nodes' Configuration ROM. Deallocate isochronous channels and
+ bandwidth at the IRM that were marked for kernel-assisted
+ re- and deallocation.
+Users: libraw1394
+ libdc1394
+ tools like jujuutils, fwhack, ...
10 Documentation/ABI/stable/o2cb
@@ -0,0 +1,10 @@
+What: /sys/fs/o2cb/ (was /sys/o2cb)
+Date: Dec 2005
+KernelVersion: 2.6.16
+Description: Ocfs2-tools looks at 'interface-revision' for versioning
+ information. Each logmask/ file controls a set of debug prints
+ and can be written into with the strings "allow", "deny", or
+ "off". Reading the file returns the current state.
+Users: ocfs2-tools. It's sufficient to mail proposed changes to
10 Documentation/ABI/stable/syscalls
@@ -0,0 +1,10 @@
+What: The kernel syscall interface
+ This interface matches much of the POSIX interface and is based
+ on it and other Unix based interfaces. It will only be added to
+ over time, and not have things removed from it.
+ Note that this interface is different for every architecture
+ that Linux supports. Please see the architecture-specific
+ documentation for details on the syscall numbers that are to be
+ mapped to each syscall.
22 Documentation/ABI/stable/sysfs-acpi-pmprofile
@@ -0,0 +1,22 @@
+What: /sys/firmware/acpi/pm_profile
+Date: 03-Nov-2011
+KernelVersion: v3.2
+Description: The ACPI pm_profile sysfs interface exports the platform
+ power management (and performance) requirement expectations
+ as provided by BIOS. The integer value is directly passed as
+ retrieved from the FADT ACPI table.
+Values: For possible values see ACPI specification:
+ 5.2.9 Fixed ACPI Description Table (FADT)
+ Field: Preferred_PM_Profile
+ Currently these values are defined by spec:
+ 0 Unspecified
+ 1 Desktop
+ 2 Mobile
+ 3 Workstation
+ 4 Enterprise Server
+ 5 SOHO Server
+ 6 Appliance PC
+ 7 Performance Server
+ >7 Reserved
122 Documentation/ABI/stable/sysfs-bus-firewire
@@ -0,0 +1,122 @@
+What: /sys/bus/firewire/devices/fw[0-9]+/
+Date: May 2007
+KernelVersion: 2.6.22
+ IEEE 1394 node device attributes.
+ Read-only. Mutable during the node device's lifetime.
+ See IEEE 1212 for semantic definitions.
+ config_rom
+ Contents of the Configuration ROM register.
+ Binary attribute; an array of host-endian u32.
+ guid
+ The node's EUI-64 in the bus information block of
+ Configuration ROM.
+ Hexadecimal string representation of an u64.
+What: /sys/bus/firewire/devices/fw[0-9]+/units
+Date: June 2009
+KernelVersion: 2.6.31
+ IEEE 1394 node device attribute.
+ Read-only. Mutable during the node device's lifetime.
+ See IEEE 1212 for semantic definitions.
+ units
+ Summary of all units present in an IEEE 1394 node.
+ Contains space-separated tuples of specifier_id and
+ version of each unit present in the node. Specifier_id
+ and version are hexadecimal string representations of
+ u24 of the respective unit directory entries.
+ Specifier_id and version within each tuple are separated
+ by a colon.
+Users: udev rules to set ownership and access permissions or ACLs of
+ /dev/fw[0-9]+ character device files
+What: /sys/bus/firewire/devices/fw[0-9]+[.][0-9]+/
+Date: May 2007
+KernelVersion: 2.6.22
+ IEEE 1394 unit device attributes.
+ Read-only. Immutable during the unit device's lifetime.
+ See IEEE 1212 for semantic definitions.
+ modalias
+ Same as MODALIAS in the uevent at device creation.
+ rom_index
+ Offset of the unit directory within the parent device's
+ (node device's) Configuration ROM, in quadlets.
+ Decimal string representation.
+What: /sys/bus/firewire/devices/*/
+Date: May 2007
+KernelVersion: 2.6.22
+ Attributes common to IEEE 1394 node devices and unit devices.
+ Read-only. Mutable during the node device's lifetime.
+ Immutable during the unit device's lifetime.
+ See IEEE 1212 for semantic definitions.
+ These attributes are only created if the root directory of an
+ IEEE 1394 node or the unit directory of an IEEE 1394 unit
+ actually contains according entries.
+ hardware_version
+ Hexadecimal string representation of an u24.
+ hardware_version_name
+ Contents of a respective textual descriptor leaf.
+ model
+ Hexadecimal string representation of an u24.
+ model_name
+ Contents of a respective textual descriptor leaf.
+ specifier_id
+ Hexadecimal string representation of an u24.
+ Mandatory in unit directories according to IEEE 1212.
+ vendor
+ Hexadecimal string representation of an u24.
+ Mandatory in the root directory according to IEEE 1212.
+ vendor_name
+ Contents of a respective textual descriptor leaf.
+ version
+ Hexadecimal string representation of an u24.
+ Mandatory in unit directories according to IEEE 1212.
+What: /sys/bus/firewire/drivers/sbp2/fw*/host*/target*/*:*:*:*/ieee1394_id
+ formerly
+ /sys/bus/ieee1394/drivers/sbp2/fw*/host*/target*/*:*:*:*/ieee1394_id
+Date: Feb 2004
+KernelVersion: 2.6.4
+ SCSI target port identifier and logical unit identifier of a
+ logical unit of an SBP-2 target. The identifiers are specified
+ in SAM-2...SAM-4 annex A. They are persistent and world-wide
+ unique properties the SBP-2 attached target.
+ Read-only attribute, immutable during the target's lifetime.
+ Format, as exposed by firewire-sbp2 since 2.6.22, May 2007:
+ Colon-separated hexadecimal string representations of
+ u64 EUI-64 : u24 directory_ID : u16 LUN
+ without 0x prefixes, without whitespace. The former sbp2 driver
+ (removed in 2.6.37 after being superseded by firewire-sbp2) used
+ a somewhat shorter format which was not as close to SAM.
+Users: udev rules to create /dev/disk/by-id/ symlinks
75 Documentation/ABI/stable/sysfs-bus-xen-backend
@@ -0,0 +1,75 @@
+What: /sys/bus/xen-backend/devices/*/devtype
+Date: Feb 2009
+KernelVersion: 2.6.38
+Contact: Konrad Rzeszutek Wilk <>
+ The type of the device. e.g., one of: 'vbd' (block),
+ 'vif' (network), or 'vfb' (framebuffer).
+What: /sys/bus/xen-backend/devices/*/nodename
+Date: Feb 2009
+KernelVersion: 2.6.38
+Contact: Konrad Rzeszutek Wilk <>
+ XenStore node (under /local/domain/NNN/) for this
+ backend device.
+What: /sys/bus/xen-backend/devices/vbd-*/physical_device
+Date: April 2011
+KernelVersion: 3.0
+Contact: Konrad Rzeszutek Wilk <>
+ The major:minor number (in hexidecimal) of the
+ physical device providing the storage for this backend
+ block device.
+What: /sys/bus/xen-backend/devices/vbd-*/mode
+Date: April 2011
+KernelVersion: 3.0
+Contact: Konrad Rzeszutek Wilk <>
+ Whether the block device is read-only ('r') or
+ read-write ('w').
+What: /sys/bus/xen-backend/devices/vbd-*/statistics/f_req
+Date: April 2011
+KernelVersion: 3.0
+Contact: Konrad Rzeszutek Wilk <>
+ Number of flush requests from the frontend.
+What: /sys/bus/xen-backend/devices/vbd-*/statistics/oo_req
+Date: April 2011
+KernelVersion: 3.0
+Contact: Konrad Rzeszutek Wilk <>
+ Number of requests delayed because the backend was too
+ busy processing previous requests.
+What: /sys/bus/xen-backend/devices/vbd-*/statistics/rd_req
+Date: April 2011
+KernelVersion: 3.0
+Contact: Konrad Rzeszutek Wilk <>
+ Number of read requests from the frontend.
+What: /sys/bus/xen-backend/devices/vbd-*/statistics/rd_sect
+Date: April 2011
+KernelVersion: 3.0
+Contact: Konrad Rzeszutek Wilk <>
+ Number of sectors read by the frontend.
+What: /sys/bus/xen-backend/devices/vbd-*/statistics/wr_req
+Date: April 2011
+KernelVersion: 3.0
+Contact: Konrad Rzeszutek Wilk <>
+ Number of write requests from the frontend.
+What: /sys/bus/xen-backend/devices/vbd-*/statistics/wr_sect
+Date: April 2011
+KernelVersion: 3.0
+Contact: Konrad Rzeszutek Wilk <>
+ Number of sectors written by the frontend.
56 Documentation/ABI/stable/sysfs-class-backlight
@@ -0,0 +1,56 @@
+What: /sys/class/backlight/<backlight>/bl_power
+Date: April 2005
+KernelVersion: 2.6.12
+Contact: Richard Purdie <>
+ Control BACKLIGHT power, values are FB_BLANK_* from fb.h
+ - FB_BLANK_UNBLANK (0) : power on.
+ - FB_BLANK_POWERDOWN (4) : power off
+Users: HAL
+What: /sys/class/backlight/<backlight>/brightness
+Date: April 2005
+KernelVersion: 2.6.12
+Contact: Richard Purdie <>
+ Control the brightness for this <backlight>. Values
+ are between 0 and max_brightness. This file will also
+ show the brightness level stored in the driver, which
+ may not be the actual brightness (see actual_brightness).
+Users: HAL
+What: /sys/class/backlight/<backlight>/actual_brightness
+Date: March 2006
+KernelVersion: 2.6.17
+Contact: Richard Purdie <>
+ Show the actual brightness by querying the hardware.
+Users: HAL
+What: /sys/class/backlight/<backlight>/max_brightness
+Date: April 2005
+KernelVersion: 2.6.12
+Contact: Richard Purdie <>
+ Maximum brightness for <backlight>.
+Users: HAL
+What: /sys/class/backlight/<backlight>/type
+Date: September 2010
+KernelVersion: 2.6.37
+Contact: Matthew Garrett <>
+ The type of interface controlled by <backlight>.
+ "firmware": The driver uses a standard firmware interface
+ "platform": The driver uses a platform-specific interface
+ "raw": The driver controls hardware registers directly
+ In the general case, when multiple backlight
+ interfaces are available for a single device, firmware
+ control should be preferred to platform control should
+ be preferred to raw control. Using a firmware
+ interface reduces the probability of confusion with
+ the hardware and the OS independently updating the
+ backlight state. Platform interfaces are mostly a
+ holdover from pre-standardisation of firmware
+ interfaces.
67 Documentation/ABI/stable/sysfs-class-rfkill
@@ -0,0 +1,67 @@
+rfkill - radio frequency (RF) connector kill switch support
+For details to this subsystem look at Documentation/rfkill.txt.
+For the deprecated /sys/class/rfkill/*/state and
+/sys/class/rfkill/*/claim knobs of this interface look in
+What: /sys/class/rfkill
+Date: 09-Jul-2007
+KernelVersion: v2.6.22
+Description: The rfkill class subsystem folder.
+ Each registered rfkill driver is represented by an rfkillX
+ subfolder (X being an integer > 0).
+What: /sys/class/rfkill/rfkill[0-9]+/name
+Date: 09-Jul-2007
+KernelVersion v2.6.22
+Description: Name assigned by driver to this key (interface or driver name).
+Values: arbitrary string.
+What: /sys/class/rfkill/rfkill[0-9]+/type
+Date: 09-Jul-2007
+KernelVersion v2.6.22
+Description: Driver type string ("wlan", "bluetooth", etc).
+Values: See include/linux/rfkill.h.
+What: /sys/class/rfkill/rfkill[0-9]+/persistent
+Date: 09-Jul-2007
+KernelVersion v2.6.22
+Description: Whether the soft blocked state is initialised from non-volatile
+ storage at startup.
+Values: A numeric value.
+ 0: false
+ 1: true
+What: /sys/class/rfkill/rfkill[0-9]+/hard
+Date: 12-March-2010
+KernelVersion v2.6.34
+Description: Current hardblock state. This file is read only.
+Values: A numeric value.
+ 0: inactive
+ The transmitter is (potentially) active.
+ 1: active
+ The transmitter is forced off by something outside of
+ the driver's control.
+What: /sys/class/rfkill/rfkill[0-9]+/soft
+Date: 12-March-2010
+KernelVersion v2.6.34
+Description: Current softblock state. This file is read and write.
+Values: A numeric value.
+ 0: inactive
+ The transmitter is (potentially) active.
+ 1: active
+ The transmitter is turned off by software.
212 Documentation/ABI/stable/sysfs-class-ubi
@@ -0,0 +1,212 @@
+What: /sys/class/ubi/
+Date: July 2006
+KernelVersion: 2.6.22
+Contact: Artem Bityutskiy <>
+ The ubi/ class sub-directory belongs to the UBI subsystem and
+ provides general UBI information, per-UBI device information
+ and per-UBI volume information.
+What: /sys/class/ubi/version
+Date: July 2006
+KernelVersion: 2.6.22
+Contact: Artem Bityutskiy <>
+ This file contains version of the latest supported UBI on-media
+ format. Currently it is 1, and there is no plan to change this.
+ However, if in the future UBI needs on-flash format changes
+ which cannot be done in a compatible manner, a new format
+ version will be added. So this is a mechanism for possible
+ future backward-compatible (but forward-incompatible)
+ improvements.
+What: /sys/class/ubiX/
+Date: July 2006
+KernelVersion: 2.6.22
+Contact: Artem Bityutskiy <>
+ The /sys/class/ubi0, /sys/class/ubi1, etc directories describe
+ UBI devices (UBI device 0, 1, etc). They contain general UBI
+ device information and per UBI volume information (each UBI
+ device may have many UBI volumes)
+What: /sys/class/ubi/ubiX/avail_eraseblocks
+Date: July 2006
+KernelVersion: 2.6.22
+Contact: Artem Bityutskiy <>
+ Amount of available logical eraseblock. For example, one may
+ create a new UBI volume which has this amount of logical
+ eraseblocks.
+What: /sys/class/ubi/ubiX/bad_peb_count
+Date: July 2006
+KernelVersion: 2.6.22
+Contact: Artem Bityutskiy <>
+ Count of bad physical eraseblocks on the underlying MTD device.
+What: /sys/class/ubi/ubiX/bgt_enabled
+Date: July 2006
+KernelVersion: 2.6.22
+Contact: Artem Bityutskiy <>
+ Contains ASCII "0\n" if the UBI background thread is disabled,
+ and ASCII "1\n" if it is enabled.
+What: /sys/class/ubi/ubiX/dev
+Date: July 2006
+KernelVersion: 2.6.22
+Contact: Artem Bityutskiy <>
+ Major and minor numbers of the character device corresponding
+ to this UBI device (in <major>:<minor> format).
+What: /sys/class/ubi/ubiX/eraseblock_size
+Date: July 2006
+KernelVersion: 2.6.22
+Contact: Artem Bityutskiy <>
+ Maximum logical eraseblock size this UBI device may provide. UBI
+ volumes may have smaller logical eraseblock size because of their
+ alignment.
+What: /sys/class/ubi/ubiX/max_ec
+Date: July 2006
+KernelVersion: 2.6.22
+Contact: Artem Bityutskiy <>
+ Maximum physical eraseblock erase counter value.
+What: /sys/class/ubi/ubiX/max_vol_count
+Date: July 2006
+KernelVersion: 2.6.22
+Contact: Artem Bityutskiy <>
+ Maximum number of volumes which this UBI device may have.
+What: /sys/class/ubi/ubiX/min_io_size
+Date: July 2006
+KernelVersion: 2.6.22
+Contact: Artem Bityutskiy <>
+ Minimum input/output unit size. All the I/O may only be done
+ in fractions of the contained number.
+What: /sys/class/ubi/ubiX/mtd_num
+Date: January 2008
+KernelVersion: 2.6.25
+Contact: Artem Bityutskiy <>
+ Number of the underlying MTD device.
+What: /sys/class/ubi/ubiX/reserved_for_bad
+Date: July 2006
+KernelVersion: 2.6.22
+Contact: Artem Bityutskiy <>
+ Number of physical eraseblocks reserved for bad block handling.
+What: /sys/class/ubi/ubiX/total_eraseblocks
+Date: July 2006
+KernelVersion: 2.6.22
+Contact: Artem Bityutskiy <>
+ Total number of good (not marked as bad) physical eraseblocks on
+ the underlying MTD device.
+What: /sys/class/ubi/ubiX/volumes_count
+Date: July 2006
+KernelVersion: 2.6.22
+Contact: Artem Bityutskiy <>
+ Count of volumes on this UBI device.
+What: /sys/class/ubi/ubiX/ubiX_Y/
+Date: July 2006
+KernelVersion: 2.6.22
+Contact: Artem Bityutskiy <>
+ The /sys/class/ubi/ubiX/ubiX_0/, /sys/class/ubi/ubiX/ubiX_1/,
+ etc directories describe UBI volumes on UBI device X (volumes
+ 0, 1, etc).
+What: /sys/class/ubi/ubiX/ubiX_Y/alignment
+Date: July 2006
+KernelVersion: 2.6.22
+Contact: Artem Bityutskiy <>
+ Volume alignment - the value the logical eraseblock size of
+ this volume has to be aligned on. For example, 2048 means that
+ logical eraseblock size is multiple of 2048. In other words,
+ volume logical eraseblock size is UBI device logical eraseblock
+ size aligned to the alignment value.
+What: /sys/class/ubi/ubiX/ubiX_Y/corrupted
+Date: July 2006
+KernelVersion: 2.6.22
+Contact: Artem Bityutskiy <>
+ Contains ASCII "0\n" if the UBI volume is OK, and ASCII "1\n"
+ if it is corrupted (e.g., due to an interrupted volume update).
+What: /sys/class/ubi/ubiX/ubiX_Y/data_bytes
+Date: July 2006
+KernelVersion: 2.6.22
+Contact: Artem Bityutskiy <>
+ The amount of data this volume contains. This value makes sense
+ only for static volumes, and for dynamic volume it equivalent
+ to the total volume size in bytes.
+What: /sys/class/ubi/ubiX/ubiX_Y/dev
+Date: July 2006
+KernelVersion: 2.6.22
+Contact: Artem Bityutskiy <>
+ Major and minor numbers of the character device corresponding
+ to this UBI volume (in <major>:<minor> format).
+What: /sys/class/ubi/ubiX/ubiX_Y/name
+Date: July 2006
+KernelVersion: 2.6.22
+Contact: Artem Bityutskiy <>
+ Volume name.
+What: /sys/class/ubi/ubiX/ubiX_Y/reserved_ebs
+Date: July 2006
+KernelVersion: 2.6.22
+Contact: Artem Bityutskiy <>
+ Count of physical eraseblock reserved for this volume.
+ Equivalent to the volume size in logical eraseblocks.
+What: /sys/class/ubi/ubiX/ubiX_Y/type
+Date: July 2006
+KernelVersion: 2.6.22
+Contact: Artem Bityutskiy <>
+ Volume type. Contains ASCII "dynamic\n" for dynamic volumes and
+ "static\n" for static volumes.
+What: /sys/class/ubi/ubiX/ubiX_Y/upd_marker
+Date: July 2006
+KernelVersion: 2.6.22
+Contact: Artem Bityutskiy <>
+ Contains ASCII "0\n" if the update marker is not set for this
+ volume, and "1\n" if it is set. The update marker is set when
+ volume update starts, and cleaned when it ends. So the presence
+ of the update marker indicates that the volume is being updated
+ at the moment of the update was interrupted. The later may be
+ checked using the "corrupted" sysfs file.
+What: /sys/class/ubi/ubiX/ubiX_Y/usable_eb_size
+Date: July 2006
+KernelVersion: 2.6.22
+Contact: Artem Bityutskiy <>
+ Logical eraseblock size of this volume. Equivalent to logical
+ eraseblock size of the device aligned on the volume alignment
+ value.
7 Documentation/ABI/stable/sysfs-devices-node
@@ -0,0 +1,7 @@
+What: /sys/devices/system/node/nodeX
+Date: October 2002
+Contact: Linux Memory Management list <>
+ When CONFIG_NUMA is enabled, this is a directory containing
+ information on node X such as what CPUs are local to the
+ node.
77 Documentation/ABI/stable/sysfs-devices-system-xen_memory
@@ -0,0 +1,77 @@
+What: /sys/devices/system/xen_memory/xen_memory0/max_retry_count
+Date: May 2011
+KernelVersion: 2.6.39
+Contact: Konrad Rzeszutek Wilk <>
+ The maximum number of times the balloon driver will
+ attempt to increase the balloon before giving up. See
+ also 'retry_count' below.
+ A value of zero means retry forever and is the default one.
+What: /sys/devices/system/xen_memory/xen_memory0/max_schedule_delay
+Date: May 2011
+KernelVersion: 2.6.39
+Contact: Konrad Rzeszutek Wilk <>
+ The limit that 'schedule_delay' (see below) will be
+ increased to. The default value is 32 seconds.
+What: /sys/devices/system/xen_memory/xen_memory0/retry_count
+Date: May 2011
+KernelVersion: 2.6.39
+Contact: Konrad Rzeszutek Wilk <>
+ The current number of times that the balloon driver
+ has attempted to increase the size of the balloon.
+ The default value is one. With max_retry_count being
+ zero (unlimited), this means that the driver will attempt
+ to retry with a 'schedule_delay' delay.
+What: /sys/devices/system/xen_memory/xen_memory0/schedule_delay
+Date: May 2011
+KernelVersion: 2.6.39
+Contact: Konrad Rzeszutek Wilk <>
+ The time (in seconds) to wait between attempts to
+ increase the balloon. Each time the balloon cannot be
+ increased, 'schedule_delay' is increased (until
+ 'max_schedule_delay' is reached at which point it
+ will use the max value).
+What: /sys/devices/system/xen_memory/xen_memory0/target
+Date: April 2008
+KernelVersion: 2.6.26
+Contact: Konrad Rzeszutek Wilk <>
+ The target number of pages to adjust this domain's
+ memory reservation to.
+What: /sys/devices/system/xen_memory/xen_memory0/target_kb
+Date: April 2008
+KernelVersion: 2.6.26
+Contact: Konrad Rzeszutek Wilk <>
+ As target above, except the value is in KiB.
+What: /sys/devices/system/xen_memory/xen_memory0/info/current_kb
+Date: April 2008
+KernelVersion: 2.6.26
+Contact: Konrad Rzeszutek Wilk <>
+ Current size (in KiB) of this domain's memory
+ reservation.
+What: /sys/devices/system/xen_memory/xen_memory0/info/high_kb
+Date: April 2008
+KernelVersion: 2.6.26
+Contact: Konrad Rzeszutek Wilk <>
+ Amount (in KiB) of high memory in the balloon.
+What: /sys/devices/system/xen_memory/xen_memory0/info/low_kb
+Date: April 2008
+KernelVersion: 2.6.26
+Contact: Konrad Rzeszutek Wilk <>
+ Amount (in KiB) of low (or normal) memory in the
+ balloon.
8 Documentation/ABI/stable/sysfs-driver-qla2xxx
@@ -0,0 +1,8 @@
+What: /sys/bus/pci/drivers/qla2xxx/.../devices/*
+Date: September 2009
+Contact: QLogic Linux Driver <>
+Description: currently looks for uevent CHANGE events to
+ signal a firmware-dump has been generated by the driver and is
+ ready for retrieval.
+Users: Proposed changes should be mailed to
62 Documentation/ABI/stable/sysfs-driver-usb-usbtmc
@@ -0,0 +1,62 @@
+What: /sys/bus/usb/drivers/usbtmc/*/interface_capabilities
+What: /sys/bus/usb/drivers/usbtmc/*/device_capabilities
+Date: August 2008
+Contact: Greg Kroah-Hartman <>
+ These files show the various USB TMC capabilities as described
+ by the device itself. The full description of the bitfields
+ can be found in the USB TMC documents from the USB-IF entitled
+ "Universal Serial Bus Test and Measurement Class Specification
+ (USBTMC) Revision 1.0" section
+ The files are read only.
+What: /sys/bus/usb/drivers/usbtmc/*/usb488_interface_capabilities
+What: /sys/bus/usb/drivers/usbtmc/*/usb488_device_capabilities
+Date: August 2008
+Contact: Greg Kroah-Hartman <>
+ These files show the various USB TMC capabilities as described
+ by the device itself. The full description of the bitfields
+ can be found in the USB TMC documents from the USB-IF entitled
+ "Universal Serial Bus Test and Measurement Class, Subclass
+ USB488 Specification (USBTMC-USB488) Revision 1.0" section
+ 4.2.2.
+ The files are read only.
+What: /sys/bus/usb/drivers/usbtmc/*/TermChar
+Date: August 2008
+Contact: Greg Kroah-Hartman <>
+ This file is the TermChar value to be sent to the USB TMC
+ device as described by the document, "Universal Serial Bus Test
+ and Measurement Class Specification
+ (USBTMC) Revision 1.0" as published by the USB-IF.
+ Note that the TermCharEnabled file determines if this value is
+ sent to the device or not.
+What: /sys/bus/usb/drivers/usbtmc/*/TermCharEnabled
+Date: August 2008
+Contact: Greg Kroah-Hartman <>
+ This file determines if the TermChar is to be sent to the
+ device on every transaction or not. For more details about
+ this, please see the document, "Universal Serial Bus Test and
+ Measurement Class Specification (USBTMC) Revision 1.0" as
+ published by the USB-IF.
+What: /sys/bus/usb/drivers/usbtmc/*/auto_abort
+Date: August 2008
+Contact: Greg Kroah-Hartman <>
+ This file determines if the transaction of the USB TMC
+ device is to be automatically aborted if there is any error.
+ For more details about this, please see the document,
+ "Universal Serial Bus Test and Measurement Class Specification
+ (USBTMC) Revision 1.0" as published by the USB-IF.
75 Documentation/ABI/stable/sysfs-firmware-efi-vars
@@ -0,0 +1,75 @@
+What: /sys/firmware/efi/vars
+Date: April 2004
+Contact: Matt Domsch <>
+ This directory exposes interfaces for interactive with
+ EFI variables. For more information on EFI variables,
+ see 'Variable Services' in the UEFI specification
+ (section 7.2 in specification version 2.3 Errata D).
+ In summary, EFI variables are named, and are classified
+ into separate namespaces through the use of a vendor
+ GUID. They also have an arbitrary binary value
+ associated with them.
+ The efivars module enumerates these variables and
+ creates a separate directory for each one found. Each
+ directory has a name of the form "<key>-<vendor guid>"
+ and contains the following files:
+ attributes: A read-only text file enumerating the
+ EFI variable flags. Potential values
+ include:
+ See the EFI documentation for an
+ explanation of each of these variables.
+ data: A read-only binary file that can be read
+ to attain the value of the EFI variable
+ guid: The vendor GUID of the variable. This
+ should always match the GUID in the
+ variable's name.
+ raw_var: A binary file that can be read to obtain
+ a structure that contains everything
+ there is to know about the variable.
+ For structure definition see "struct
+ efi_variable" in the kernel sources.
+ This file can also be written to in
+ order to update the value of a variable.
+ For this to work however, all fields of
+ the "struct efi_variable" passed must
+ match byte for byte with the structure
+ read out of the file, save for the value
+ portion.
+ **Note** the efi_variable structure
+ read/written with this file contains a
+ 'long' type that may change widths
+ depending on your underlying
+ architecture.
+ size: As ASCII representation of the size of
+ the variable's value.
+ In addition, two other magic binary files are provided
+ in the top-level directory and are used for adding and
+ removing variables:
+ new_var: Takes a "struct efi_variable" and
+ instructs the EFI firmware to create a
+ new variable.
+ del_var: Takes a "struct efi_variable" and
+ instructs the EFI firmware to remove any
+ variable that has a matching vendor GUID
+ and variable key name.
30 Documentation/ABI/stable/sysfs-module
@@ -0,0 +1,30 @@
+What: /sys/module
+ The /sys/module tree consists of the following structure:
+ /sys/module/MODULENAME
+ The name of the module that is in the kernel. This
+ module name will show up either if the module is built
+ directly into the kernel, or if it is loaded as a
+ dynamic module.
+ /sys/module/MODULENAME/parameters
+ This directory contains individual files that are each
+ individual parameters of the module that are able to be
+ changed at runtime. See the individual module
+ documentation as to the contents of these parameters and
+ what they accomplish.
+ Note: The individual parameter names and values are not
+ considered stable, only the fact that they will be
+ placed in this location within sysfs. See the
+ individual driver documentation for details as to the
+ stability of the different parameters.
+ /sys/module/MODULENAME/refcnt
+ If the module is able to be unloaded from the kernel, this file
+ will contain the current reference count of the module.
+ Note: If the module is built into the kernel, or if the
+ CONFIG_MODULE_UNLOAD kernel configuration value is not enabled,
+ this file will not be present.
4 Documentation/ABI/stable/thermal-notification
@@ -0,0 +1,4 @@
+What: A notification mechanism for thermal related events
+ This interface enables notification for thermal related events.
+ The notification is in the form of a netlink event.
27 Documentation/ABI/stable/vdso
@@ -0,0 +1,27 @@
+On some architectures, when the kernel loads any userspace program it
+maps an ELF DSO into that program's address space. This DSO is called
+the vDSO and it often contains useful and highly-optimized alternatives
+to real syscalls.
+These functions are called just like ordinary C function according to
+your platform's ABI. Call them from a sensible context. (For example,
+if you set CS on x86 to something strange, the vDSO functions are
+within their rights to crash.) In addition, if you pass a bad
+pointer to a vDSO function, you might get SIGSEGV instead of -EFAULT.
+To find the DSO, parse the auxiliary vector passed to the program's
+entry point. The AT_SYSINFO_EHDR entry will point to the vDSO.
+The vDSO uses symbol versioning; whenever you request a symbol from the
+vDSO, specify the version you are expecting.
+Programs that dynamically link to glibc will use the vDSO automatically.
+Otherwise, you can use the reference parser in Documentation/vDSO/parse_vdso.c.
+Unless otherwise noted, the set of symbols with any given version and the
+ABI of those symbols is considered stable. It may vary across architectures,
+(As of this writing, this ABI documentation as been confirmed for x86_64.
+ The maintainers of the other vDSO-using architectures should confirm
+ that it is correct for their architecture.)
31 Documentation/ABI/testing/configfs-spear-pcie-gadget
@@ -0,0 +1,31 @@
+What: /config/pcie-gadget
+Date: Feb 2011
+KernelVersion: 2.6.37
+Contact: Pratyush Anand <>
+ Interface is used to configure selected dual mode PCIe controller
+ as device and then program its various registers to configure it
+ as a particular device type.
+ This interfaces can be used to show spear's PCIe device capability.
+ Nodes are only visible when configfs is mounted. To mount configfs
+ in /config directory use:
+ # mount -t configfs none /config/
+ For nth PCIe Device Controller
+ /config/pcie-gadget.n/
+ link ... used to enable ltssm and read its status.
+ int_type ...used to configure and read type of supported
+ interrupt
+ no_of_msi ... used to configure number of MSI vector needed and
+ to read no of MSI granted.
+ inta ... write 1 to assert INTA and 0 to de-assert.
+ send_msi ... write MSI vector to be sent.
+ vendor_id ... used to write and read vendor id (hex)
+ device_id ... used to write and read device id (hex)
+ bar0_size ... used to write and read bar0_size
+ bar0_address ... used to write and read bar0 mapped area in hex.
+ bar0_rw_offset ... used to write and read offset of bar0 where
+ bar0_data will be written or read.
+ bar0_data ... used to write and read data at bar0_rw_offset.
20 Documentation/ABI/testing/debugfs-ec
@@ -0,0 +1,20 @@
+What: /sys/kernel/debug/ec/*/{gpe,use_global_lock,io}
+Date: July 2010
+Contact: Thomas Renninger <>
+General information like which GPE is assigned to the EC and whether
+the global lock should get used.
+Knowing the EC GPE one can watch the amount of HW events related to
+the EC here (XY -> GPE number from /sys/kernel/debug/ec/*/gpe):
+The io file is binary and a userspace tool located here:
+should get used to read out the 256 Embedded Controller registers
+or writing to them.
+CAUTION: Do not write to the Embedded Controller if you don't know
+what you are doing! Rebooting afterwards also is a good idea.
+This can influence the way your machine is cooled and fans may
+not get switched on again after you did a wrong write.
19 Documentation/ABI/testing/debugfs-ideapad
@@ -0,0 +1,19 @@
+What: /sys/kernel/debug/ideapad/cfg
+Date: Sep 2011
+KernelVersion: 3.2
+Contact: Ike Panhc <>
+cfg shows the return value of _CFG method in VPC2004 device. It tells machine
+capability and what graphic component within the machine.
+What: /sys/kernel/debug/ideapad/status
+Date: Sep 2011
+KernelVersion: 3.2
+Contact: Ike Panhc <>
+status shows infos we can read and tells its meaning and value.
16 Documentation/ABI/testing/debugfs-olpc
@@ -0,0 +1,16 @@
+What: /sys/kernel/debug/olpc-ec/cmd
+Date: Dec 2011
+KernelVersion: 3.4
+A generic interface for executing OLPC Embedded Controller commands and
+reading their responses.
+To execute a command, write data with the format: CC:N A A A A
+CC is the (hex) command, N is the count of expected reply bytes, and A A A A
+are optional (hex) arguments.
+To read the response (if any), read from the generic node after executing
+a command. Hex reply bytes will be returned, *whether or not* they came from
+the immediately previous command.
19 Documentation/ABI/testing/debugfs-pktcdvd
@@ -0,0 +1,19 @@
+What: /sys/kernel/debug/pktcdvd/pktcdvd[0-7]
+Date: Oct. 2006
+KernelVersion: 2.6.20
+Contact: Thomas Maier <>
+debugfs interface
+The pktcdvd module (packet writing driver) creates
+these files in debugfs:
+ info (0444) Lots of driver statistics and infos.
+cat /sys/kernel/debug/pktcdvd/pktcdvd0/info
23 Documentation/ABI/testing/evm
@@ -0,0 +1,23 @@
+What: security/evm
+Date: March 2011
+Contact: Mimi Zohar <>
+ EVM protects a file's security extended attributes(xattrs)
+ against integrity attacks. The initial method maintains an
+ HMAC-sha1 value across the extended attributes, storing the
+ value as the extended attribute 'security.evm'.
+ EVM depends on the Kernel Key Retention System to provide it
+ with a trusted/encrypted key for the HMAC-sha1 operation.
+ The key is loaded onto the root's keyring using keyctl. Until
+ EVM receives notification that the key has been successfully
+ loaded onto the keyring (echo 1 > <securityfs>/evm), EVM
+ can not create or validate the 'security.evm' xattr, but
+ returns INTEGRITY_UNKNOWN. Loading the key and signaling EVM
+ should be done as early as possible. Normally this is done
+ in the initramfs, which has already been measured as part
+ of the trusted boot. For more information on creating and
+ loading existing trusted/encrypted keys, refer to:
+ Documentation/keys-trusted-encrypted.txt. (A sample dracut
+ patch, which loads the trusted/encrypted key and enables
+ EVM, is available from
61 Documentation/ABI/testing/ima_policy
@@ -0,0 +1,61 @@
+What: security/ima/policy
+Date: May 2008
+Contact: Mimi Zohar <>
+ The Trusted Computing Group(TCG) runtime Integrity
+ Measurement Architecture(IMA) maintains a list of hash
+ values of executables and other sensitive system files
+ loaded into the run-time of this system. At runtime,
+ the policy can be constrained based on LSM specific data.
+ Policies are loaded into the securityfs file ima/policy
+ by opening the file, writing the rules one at a time and
+ then closing the file. The new policy takes effect after
+ the file ima/policy is closed.
+ rule format: action [condition ...]
+ action: measure | dont_measure
+ condition:= base | lsm
+ base: [[func=] [mask=] [fsmagic=] [uid=]]
+ lsm: [[subj_user=] [subj_role=] [subj_type=]
+ [obj_user=] [obj_role=] [obj_type=]]
+ fsmagic:= hex value
+ uid:= decimal value
+ lsm: are LSM specific
+ default policy:
+ dont_measure fsmagic=0x9fa0
+ dont_measure fsmagic=0x62656572
+ dont_measure fsmagic=0x64626720