Commit 1e467e68 authored by Linus Torvalds's avatar Linus Torvalds

Merge tag 'docs-for-linus' of git://git.lwn.net/linux-2.6

Pull documentation updates from Jonathan Corbet:
 "The main thing here is Ingo's big subdirectory documenting feature
  support for each architecture.  Beyond that, it's the usual pile of
  fixes, tweaks, and small additions"

* tag 'docs-for-linus' of git://git.lwn.net/linux-2.6: (79 commits)
  doc:md: fix typo in md.txt.
  Documentation/mic/mpssd: don't build x86 userspace when cross compiling
  Documentation/prctl: don't build tsc tests when cross compiling
  Documentation/vDSO: don't build tests when cross compiling
  Doc:ABI/testing: Fix typo in sysfs-bus-fcoe
  Doc: Docbook: Change wikipedia's URL from http to https in scsi.tmpl
  Doc: Change wikipedia's URL from http to https
  Documentation/kernel-parameters: add missing pciserial to the earlyprintk
  Doc:pps: Fix typo in pps.txt
  kbuild : Fix documentation of INSTALL_HDR_PATH
  Documentation: filesystems: updated struct file_operations documentation in vfs.txt
  kbuild: edit explanation of clean-files variable
  Doc: ja_JP: Fix typo in HOWTO
  Move freefall program from Documentation/ to tools/
  Documentation: ARM: EXYNOS: Describe boot loaders interface
  Doc:nfc: Fix typo in nfc-hci.txt
  vfs: Minor documentation fix
  Doc: networking: txtimestamp: fix printf format warning
  Documentation, intel_pstate: Improve legacy mode internal governors description
  Documentation: extend use case for EXPORT_SYMBOL_GPL()
  ...
parents 14738e03 36f95a0b
...@@ -32,7 +32,7 @@ Description: 'FCoE Controller' instances on the fcoe bus. ...@@ -32,7 +32,7 @@ Description: 'FCoE Controller' instances on the fcoe bus.
Attributes: Attributes:
fcf_dev_loss_tmo: Device loss timeout peroid (see below). Changing fcf_dev_loss_tmo: Device loss timeout period (see below). Changing
this value will change the dev_loss_tmo for all this value will change the dev_loss_tmo for all
FCFs discovered by this controller. FCFs discovered by this controller.
...@@ -61,7 +61,7 @@ Attributes: ...@@ -61,7 +61,7 @@ Attributes:
lesb/err_block: Link Error Status Block (LESB) block error count. lesb/err_block: Link Error Status Block (LESB) block error count.
lesb/fcs_error: Link Error Status Block (LESB) Fibre Channel lesb/fcs_error: Link Error Status Block (LESB) Fibre Channel
Serivces error count. Services error count.
Notes: ctlr_X (global increment starting at 0) Notes: ctlr_X (global increment starting at 0)
...@@ -85,7 +85,7 @@ Attributes: ...@@ -85,7 +85,7 @@ Attributes:
fabric. fabric.
selected: 1 indicates that the switch has been selected for use; selected: 1 indicates that the switch has been selected for use;
0 indicates that the swich will not be used. 0 indicates that the switch will not be used.
fc_map: The Fibre Channel MAP fc_map: The Fibre Channel MAP
...@@ -93,7 +93,7 @@ Attributes: ...@@ -93,7 +93,7 @@ Attributes:
mac: The FCF's MAC address mac: The FCF's MAC address
fka_peroid: The FIP Keep-Alive peroid fka_period: The FIP Keep-Alive period
fabric_state: The internal kernel state fabric_state: The internal kernel state
"Unknown" - Initialization value "Unknown" - Initialization value
...@@ -101,9 +101,9 @@ Attributes: ...@@ -101,9 +101,9 @@ Attributes:
"Connected" - Host is connected to the FCF "Connected" - Host is connected to the FCF
"Deleted" - FCF is being removed from the system "Deleted" - FCF is being removed from the system
dev_loss_tmo: The device loss timeout peroid for this FCF. dev_loss_tmo: The device loss timeout period for this FCF.
Notes: A device loss infrastructre similar to the FC Transport's Notes: A device loss infrastructure similar to the FC Transport's
is present in fcoe_sysfs. It is nice to have so that a is present in fcoe_sysfs. It is nice to have so that a
link flapping adapter doesn't continually advance the count link flapping adapter doesn't continually advance the count
used to identify the discovered FCF. FCFs will exist in a used to identify the discovered FCF. FCFs will exist in a
......
...@@ -670,7 +670,7 @@ functions: ...@@ -670,7 +670,7 @@ functions:
typeof(x) ret; \ typeof(x) ret; \
ret = calc_ret(x); \ ret = calc_ret(x); \
(ret); \ (ret); \
)} })
ret is a common name for a local variable - __foo_ret is less likely ret is a common name for a local variable - __foo_ret is less likely
to collide with an existing variable. to collide with an existing variable.
......
...@@ -245,7 +245,7 @@ the case would look like this: ...@@ -245,7 +245,7 @@ the case would look like this:
if (!dma_set_mask_and_coherent(dev, DMA_BIT_MASK(64))) { if (!dma_set_mask_and_coherent(dev, DMA_BIT_MASK(64))) {
using_dac = 1; using_dac = 1;
consistent_using_dac = 1; consistent_using_dac = 1;
} else if (!dma_set_mask_and_coherent(dev, DMA_BIT_MASK(32))) { } else if (!dma_set_mask_and_coherent(dev, DMA_BIT_MASK(32))) {
using_dac = 0; using_dac = 0;
consistent_using_dac = 0; consistent_using_dac = 0;
...@@ -358,7 +358,7 @@ There are two types of DMA mappings: ...@@ -358,7 +358,7 @@ There are two types of DMA mappings:
transfer, unmapped right after it (unless you use dma_sync_* below) transfer, unmapped right after it (unless you use dma_sync_* below)
and for which hardware can optimize for sequential accesses. and for which hardware can optimize for sequential accesses.
This of "streaming" as "asynchronous" or "outside the coherency Think of "streaming" as "asynchronous" or "outside the coherency
domain". domain".
Good examples of what to use streaming mappings for are: Good examples of what to use streaming mappings for are:
......
...@@ -954,6 +954,8 @@ printk(KERN_INFO "my ip: %pI4\n", &ipaddress); ...@@ -954,6 +954,8 @@ printk(KERN_INFO "my ip: %pI4\n", &ipaddress);
<function>MODULE_LICENSE()</function> that specifies a GPL <function>MODULE_LICENSE()</function> that specifies a GPL
compatible license. It implies that the function is considered compatible license. It implies that the function is considered
an internal implementation issue, and not really an interface. an internal implementation issue, and not really an interface.
Some maintainers and developers may however
require EXPORT_SYMBOL_GPL() when adding any new APIs or functionality.
</para> </para>
</sect1> </sect1>
</chapter> </chapter>
......
...@@ -81,7 +81,7 @@ ...@@ -81,7 +81,7 @@
SAS, Fibre Channel, FireWire, and ATAPI devices. SCSI packets are SAS, Fibre Channel, FireWire, and ATAPI devices. SCSI packets are
also commonly exchanged over Infiniband, also commonly exchanged over Infiniband,
<ulink url='http://i2o.shadowconnect.com/faq.php'>I20</ulink>, TCP/IP <ulink url='http://i2o.shadowconnect.com/faq.php'>I20</ulink>, TCP/IP
(<ulink url='http://en.wikipedia.org/wiki/ISCSI'>iSCSI</ulink>), even (<ulink url='https://en.wikipedia.org/wiki/ISCSI'>iSCSI</ulink>), even
<ulink url='http://cyberelk.net/tim/parport/parscsi.html'>Parallel <ulink url='http://cyberelk.net/tim/parport/parscsi.html'>Parallel
ports</ulink>. ports</ulink>.
</para> </para>
......
...@@ -1496,7 +1496,7 @@ Canis Rufus and Zoicon5 and Anome and Hal Eisen" ...@@ -1496,7 +1496,7 @@ Canis Rufus and Zoicon5 and Anome and Hal Eisen"
,month="July" ,month="July"
,day="8" ,day="8"
,year="2006" ,year="2006"
,note="\url{http://en.wikipedia.org/wiki/Read-copy-update}" ,note="\url{https://en.wikipedia.org/wiki/Read-copy-update}"
,annotation={ ,annotation={
Wikipedia RCU page as of July 8 2006. Wikipedia RCU page as of July 8 2006.
[Viewed August 21, 2006] [Viewed August 21, 2006]
......
...@@ -299,7 +299,9 @@ toward the stable maintainers by putting a line like this: ...@@ -299,7 +299,9 @@ toward the stable maintainers by putting a line like this:
Cc: stable@vger.kernel.org Cc: stable@vger.kernel.org
into your patch. into the sign-off area of your patch (note, NOT an email recipient). You
should also read Documentation/stable_kernel_rules.txt in addition to this
file.
Note, however, that some subsystem maintainers want to come to their own Note, however, that some subsystem maintainers want to come to their own
conclusions on which patches should go to the stable trees. The networking conclusions on which patches should go to the stable trees. The networking
......
Interface between kernel and boot loaders on Exynos boards
==========================================================
Author: Krzysztof Kozlowski
Date : 6 June 2015
The document tries to describe currently used interface between Linux kernel
and boot loaders on Samsung Exynos based boards. This is not a definition
of interface but rather a description of existing state, a reference
for information purpose only.
In the document "boot loader" means any of following: U-boot, proprietary
SBOOT or any other firmware for ARMv7 and ARMv8 initializing the board before
executing kernel.
1. Non-Secure mode
Address: sysram_ns_base_addr
Offset Value Purpose
=============================================================================
0x08 exynos_cpu_resume_ns System suspend
0x0c 0x00000bad (Magic cookie) System suspend
0x1c exynos4_secondary_startup Secondary CPU boot
0x1c + 4*cpu exynos4_secondary_startup (Exynos4412) Secondary CPU boot
0x20 0xfcba0d10 (Magic cookie) AFTR
0x24 exynos_cpu_resume_ns AFTR
0x28 + 4*cpu 0x8 (Magic cookie, Exynos3250) AFTR
2. Secure mode
Address: sysram_base_addr
Offset Value Purpose
=============================================================================
0x00 exynos4_secondary_startup Secondary CPU boot
0x04 exynos4_secondary_startup (Exynos542x) Secondary CPU boot
4*cpu exynos4_secondary_startup (Exynos4412) Secondary CPU boot
0x20 exynos_cpu_resume (Exynos4210 r1.0) AFTR
0x24 0xfcba0d10 (Magic cookie, Exynos4210 r1.0) AFTR
Address: pmu_base_addr
Offset Value Purpose
=============================================================================
0x0800 exynos_cpu_resume AFTR
0x0814 exynos4_secondary_startup (Exynos4210 r1.1) Secondary CPU boot
0x0818 0xfcba0d10 (Magic cookie, Exynos4210 r1.1) AFTR
0x081C exynos_cpu_resume (Exynos4210 r1.1) AFTR
3. Other (regardless of secure/non-secure mode)
Address: pmu_base_addr
Offset Value Purpose
=============================================================================
0x0908 Non-zero (only Exynos3250) Secondary CPU boot up indicator
...@@ -206,6 +206,6 @@ References ...@@ -206,6 +206,6 @@ References
[1] Lamport, L. "A New Solution of Dijkstra's Concurrent Programming [1] Lamport, L. "A New Solution of Dijkstra's Concurrent Programming
Problem", Communications of the ACM 17, 8 (August 1974), 453-455. Problem", Communications of the ACM 17, 8 (August 1974), 453-455.
http://en.wikipedia.org/wiki/Lamport%27s_bakery_algorithm https://en.wikipedia.org/wiki/Lamport%27s_bakery_algorithm
[2] linux/arch/arm/common/vlock.S, www.kernel.org. [2] linux/arch/arm/common/vlock.S, www.kernel.org.
...@@ -17,6 +17,12 @@ ...@@ -17,6 +17,12 @@
#define DRIVER_NAME "gptimer_example" #define DRIVER_NAME "gptimer_example"
#ifdef IRQ_TIMER5
#define SAMPLE_IRQ_TIMER IRQ_TIMER5
#else
#define SAMPLE_IRQ_TIMER IRQ_TIMER2
#endif
struct gptimer_data { struct gptimer_data {
uint32_t period, width; uint32_t period, width;
}; };
...@@ -57,7 +63,8 @@ static int __init gptimer_example_init(void) ...@@ -57,7 +63,8 @@ static int __init gptimer_example_init(void)
} }
/* grab the IRQ for the timer */ /* grab the IRQ for the timer */
ret = request_irq(IRQ_TIMER5, gptimer_example_irq, IRQF_SHARED, DRIVER_NAME, &data); ret = request_irq(SAMPLE_IRQ_TIMER, gptimer_example_irq,
IRQF_SHARED, DRIVER_NAME, &data);
if (ret) { if (ret) {
printk(KERN_NOTICE DRIVER_NAME ": IRQ request failed\n"); printk(KERN_NOTICE DRIVER_NAME ": IRQ request failed\n");
peripheral_free(P_TMR5); peripheral_free(P_TMR5);
...@@ -65,7 +72,8 @@ static int __init gptimer_example_init(void) ...@@ -65,7 +72,8 @@ static int __init gptimer_example_init(void)
} }
/* setup the timer and enable it */ /* setup the timer and enable it */
set_gptimer_config(TIMER5_id, WDTH_CAP | PULSE_HI | PERIOD_CNT | IRQ_ENA); set_gptimer_config(TIMER5_id,
WDTH_CAP | PULSE_HI | PERIOD_CNT | IRQ_ENA);
enable_gptimers(TIMER5bit); enable_gptimers(TIMER5bit);
return 0; return 0;
...@@ -75,7 +83,7 @@ module_init(gptimer_example_init); ...@@ -75,7 +83,7 @@ module_init(gptimer_example_init);
static void __exit gptimer_example_exit(void) static void __exit gptimer_example_exit(void)
{ {
disable_gptimers(TIMER5bit); disable_gptimers(TIMER5bit);
free_irq(IRQ_TIMER5, &data); free_irq(SAMPLE_IRQ_TIMER, &data);
peripheral_free(P_TMR5); peripheral_free(P_TMR5);
} }
module_exit(gptimer_example_exit); module_exit(gptimer_example_exit);
......
...@@ -36,7 +36,7 @@ Contents: ...@@ -36,7 +36,7 @@ Contents:
1. What Is A CPUFreq Governor? 1. What Is A CPUFreq Governor?
============================== ==============================
Most cpufreq drivers (in fact, all except one, longrun) or even most Most cpufreq drivers (except the intel_pstate and longrun) or even most
cpu frequency scaling algorithms only offer the CPU to be set to one cpu frequency scaling algorithms only offer the CPU to be set to one
frequency. In order to offer dynamic frequency scaling, the cpufreq frequency. In order to offer dynamic frequency scaling, the cpufreq
core must be able to tell these drivers of a "target frequency". So core must be able to tell these drivers of a "target frequency". So
......
...@@ -3,24 +3,25 @@ Intel P-state driver ...@@ -3,24 +3,25 @@ Intel P-state driver
This driver provides an interface to control the P state selection for This driver provides an interface to control the P state selection for
SandyBridge+ Intel processors. The driver can operate two different SandyBridge+ Intel processors. The driver can operate two different
modes based on the processor model legacy and Hardware P state (HWP) modes based on the processor model, legacy mode and Hardware P state (HWP)
mode. mode.
In legacy mode the driver implements a scaling driver with an internal In legacy mode, the Intel P-state implements two internal governors,
governor for Intel Core processors. The driver follows the same model performance and powersave, that differ from the general cpufreq governors of
as the Transmeta scaling driver (longrun.c) and implements the the same name (the general cpufreq governors implement target(), whereas the
setpolicy() instead of target(). Scaling drivers that implement internal Intel P-state governors implement setpolicy()). The internal
setpolicy() are assumed to implement internal governors by the cpufreq performance governor sets the max_perf_pct and min_perf_pct to 100; that is,
core. All the logic for selecting the current P state is contained the governor selects the highest available P state to maximize the performance
within the driver; no external governor is used by the cpufreq core. of the core. The internal powersave governor selects the appropriate P state
based on the current load on the CPU.
In HWP mode P state selection is implemented in the processor In HWP mode P state selection is implemented in the processor
itself. The driver provides the interfaces between the cpufreq core and itself. The driver provides the interfaces between the cpufreq core and
the processor to control P state selection based on user preferences the processor to control P state selection based on user preferences
and reporting frequency to the cpufreq core. In this mode the and reporting frequency to the cpufreq core. In this mode the
internal governor code is disabled. internal Intel P-state governor code is disabled.
In addtion to the interfaces provided by the cpufreq core for In addition to the interfaces provided by the cpufreq core for
controlling frequency the driver provides sysfs files for controlling frequency the driver provides sysfs files for
controlling P state selection. These files have been added to controlling P state selection. These files have been added to
/sys/devices/system/cpu/intel_pstate/ /sys/devices/system/cpu/intel_pstate/
......
...@@ -181,4 +181,4 @@ Notes ...@@ -181,4 +181,4 @@ Notes
Documentation and specifications: http://halobates.de/firewire/ Documentation and specifications: http://halobates.de/firewire/
FireWire is a trademark of Apple Inc. - for more information please refer to: FireWire is a trademark of Apple Inc. - for more information please refer to:
http://en.wikipedia.org/wiki/FireWire https://en.wikipedia.org/wiki/FireWire
For generic kernel features that need architecture support, the
arch-support.txt file in each feature directory shows the arch
support matrix, for all upstream Linux architectures.
The meaning of entries in the tables is:
| ok | # feature supported by the architecture
|TODO| # feature not yet supported by the architecture
| .. | # feature cannot be supported by the hardware
#
# Feature name: BPF-JIT
# Kconfig: HAVE_BPF_JIT
# description: arch supports BPF JIT optimizations
#
-----------------------
| arch |status|
-----------------------
| alpha: | TODO |
| arc: | TODO |
| arm: | ok |
| arm64: | ok |
| avr32: | TODO |
| blackfin: | TODO |
| c6x: | TODO |
| cris: | TODO |
| frv: | TODO |
| h8300: | TODO |
| hexagon: | TODO |
| ia64: | TODO |
| m32r: | TODO |
| m68k: | TODO |
| metag: | TODO |
| microblaze: | TODO |
| mips: | ok |
| mn10300: | TODO |
| nios2: | TODO |
| openrisc: | TODO |
| parisc: | TODO |
| powerpc: | ok |
| s390: | ok |
| score: | TODO |
| sh: | TODO |
| sparc: | ok |
| tile: | TODO |
| um: | TODO |
| unicore32: | TODO |
| x86: | ok |
| xtensa: | TODO |
-----------------------
#
# Feature name: generic-idle-thread
# Kconfig: GENERIC_SMP_IDLE_THREAD
# description: arch makes use of the generic SMP idle thread facility
#
-----------------------
| arch |status|
-----------------------
| alpha: | ok |
| arc: | ok |
| arm: | ok |
| arm64: | ok |
| avr32: | TODO |
| blackfin: | ok |
| c6x: | TODO |
| cris: | TODO |
| frv: | TODO |
| h8300: | TODO |
| hexagon: | ok |
| ia64: | ok |
| m32r: | TODO |
| m68k: | TODO |
| metag: | ok |
| microblaze: | TODO |
| mips: | ok |
| mn10300: | TODO |
| nios2: | TODO |
| openrisc: | TODO |
| parisc: | ok |
| powerpc: | ok |
| s390: | ok |
| score: | TODO |
| sh: | ok |
| sparc: | ok |
| tile: | TODO |
| um: | TODO |
| unicore32: | TODO |
| x86: | ok |
| xtensa: | ok |
-----------------------
#
# Feature name: jump-labels
# Kconfig: HAVE_ARCH_JUMP_LABEL
# description: arch supports live patched, high efficiency branches
#
-----------------------
| arch |status|
-----------------------
| alpha: | TODO |
| arc: | TODO |
| arm: | ok |
| arm64: | ok |
| avr32: | TODO |
| blackfin: | TODO |
| c6x: | TODO |
| cris: | TODO |
| frv: | TODO |
| h8300: | TODO |
| hexagon: | TODO |
| ia64: | TODO |
| m32r: | TODO |
| m68k: | TODO |
| metag: | TODO |
| microblaze: | TODO |
| mips: | ok |
| mn10300: | TODO |
| nios2: | TODO |
| openrisc: | TODO |
| parisc: | TODO |
| powerpc: | ok |
| s390: | ok |
| score: | TODO |
| sh: | TODO |
| sparc: | ok |
| tile: | TODO |
| um: | TODO |
| unicore32: | TODO |
| x86: | ok |
| xtensa: | TODO |
-----------------------
#
# Feature name: tracehook
# Kconfig: HAVE_ARCH_TRACEHOOK
# description: arch supports tracehook (ptrace) register handling APIs
#
-----------------------
| arch |status|
-----------------------
| alpha: | TODO |
| arc: | ok |
| arm: | ok |
| arm64: | ok |
| avr32: | TODO |
| blackfin: | ok |
| c6x: | ok |
| cris: | TODO |
| frv: | ok |
| h8300: | TODO |
| hexagon: | ok |
| ia64: | ok |
| m32r: | TODO |
| m68k: | TODO |
| metag: | ok |
| microblaze: | TODO |
| mips: | ok |
| mn10300: | ok |
| nios2: | ok |
| openrisc: | ok |
| parisc: | TODO |
| powerpc: | ok |
| s390: | ok |
| score: | TODO |
| sh: | ok |
| sparc: | ok |
| tile: | ok |
| um: | TODO |
| unicore32: | TODO |
| x86: | ok |
| xtensa: | TODO |
-----------------------
#
# Feature name: KASAN
# Kconfig: HAVE_ARCH_KASAN
# description: arch supports the KASAN runtime memory checker
#
-----------------------
| arch |status|
-----------------------
| alpha: | TODO |
| arc: | TODO |
| arm: | TODO |
| arm64: | TODO |
| avr32: | TODO |
| blackfin: | TODO |
| c6x: | TODO |
| cris: | TODO |
| frv: | TODO |
| h8300: | TODO |
| hexagon: | TODO |
| ia64: | TODO |
| m32r: | TODO |
| m68k: | TODO |
| metag: | TODO |
| microblaze: | TODO |
| mips: | TODO |
| mn10300: | TODO |
| nios2: | TODO |
| openrisc: | TODO |
| parisc: | TODO |
| powerpc: | TODO |
| s390: | TODO |
| score: | TODO |
| sh: | TODO |
| sparc: | TODO |
| tile: | TODO |
| um: | TODO |
| unicore32: | TODO |
| x86: | ok |
| xtensa: | TODO |
-----------------------
#
# Feature name: gcov-profile-all
# Kconfig: ARCH_HAS_GCOV_PROFILE_ALL
# description: arch supports whole-kernel GCOV code coverage profiling
#
-----------------------
| arch |status|
-----------------------
| alpha: | TODO |
| arc: | TODO |
| arm: | ok |
| arm64: | ok |
| avr32: | TODO |
| blackfin: | TODO |
| c6x: | TODO |
| cris: | TODO |
| frv: | TODO |
| h8300: | TODO |
| hexagon: | TODO |
| ia64: | TODO |
| m32r: | TODO |
| m68k: | TODO |
| metag: | TODO |
| microblaze: | ok |
| mips: | TODO |
| mn10300: | TODO |
| nios2: | TODO |
| openrisc: | TODO |
| parisc: | TODO |
| powerpc: | ok |
| s390: | ok |
| score: | TODO |
| sh: | ok |
| sparc: | TODO |
| tile: | TODO |
| um: | TODO |
| unicore32: | TODO |
| x86: | ok |
| xtensa: | TODO |
-----------------------
#
# Feature name: kgdb
# Kconfig: HAVE_ARCH_KGDB
# description: arch supports the kGDB kernel debugger
#
-----------------------
| arch |status|
-----------------------
| alpha: | TODO |
| arc: | ok |
| arm: | ok |
| arm64: | ok |
| avr32: | TODO |
| blackfin: | ok |
| c6x: | TODO |
| cris: | TODO |
| frv: | TODO |
| h8300: | TODO |
| hexagon: | ok |
| ia64: | TODO |
| m32r: | TODO |
| m68k: | TODO |
| metag: | TODO |
| microblaze: | ok |
| mips: | ok |
| mn10300: | ok |
| nios2: | ok |
| openrisc: | TODO |
| parisc: | TODO |
| powerpc: | ok |
| s390: | TODO |
| score: | TODO |
| sh: | ok |
| sparc: | ok |
| tile: | ok |
| um: | TODO |
| unicore32: | TODO |
| x86: | ok |
| xtensa: | TODO |
-----------------------
#
# Feature name: kprobes-on-ftrace
# Kconfig: HAVE_KPROBES_ON_FTRACE
# description: arch supports combined kprobes and ftrace live patching
#
-----------------------
| arch |status|
-----------------------
| alpha: | TODO |
| arc: | TODO |
| arm: | TODO |
| arm64: | TODO |
| avr32: | TODO |
| blackfin: | TODO |
| c6x: | TODO |
| cris: | TODO |
| frv: | TODO |
| h8300: | TODO |
| hexagon: | TODO |
| ia64: | TODO |
| m32r: | TODO |
| m68k: | TODO |
| metag: | TODO |
| microblaze: | TODO |
| mips: | TODO |
| mn10300: | TODO |
| nios2: | TODO |
| openrisc: | TODO |
| parisc: | TODO |
| powerpc: | TODO |
| s390: | TODO |
| score: | TODO |
| sh: | TODO |
| sparc: | TODO |
| tile: | TODO |
| um: | TODO |
| unicore32: | TODO |
| x86: | ok |
| xtensa: | TODO |
-----------------------
#
# Feature name: kprobes
# Kconfig: HAVE_KPROBES
# description: arch supports live patched kernel probe
#
-----------------------
| arch |status|
-----------------------
| alpha: | TODO |
| arc: | ok |
| arm: | ok |
| arm64: | TODO |
| avr32: | ok |
| blackfin: | TODO |
| c6x: | TODO |
| cris: | TODO |
| frv: | TODO |
| h8300: | TODO |
| hexagon: | TODO |
| ia64: | ok |
| m32r: | TODO |
| m68k: | TODO |
| metag: | TODO |
| microblaze: | TODO |
| mips: | ok |
| mn10300: | TODO |
| nios2: | TODO |
| openrisc: | TODO |
| parisc: | TODO |
| powerpc: | ok |
| s390: | ok |
| score: | TODO |
| sh: | ok |
| sparc: | ok |
| tile: | ok |
| um: | TODO |
| unicore32: | TODO |
| x86: | ok |
| xtensa: | TODO |
-----------------------
#
# Feature name: kretprobes
# Kconfig: HAVE_KRETPROBES
# description: arch supports kernel function-return probes
#
-----------------------
| arch |status|
-----------------------
| alpha: | TODO |
| arc: | ok |
| arm: | ok |
| arm64: | TODO |
| avr32: | TODO |
| blackfin: | TODO |
| c6x: | TODO |
| cris: | TODO |
| frv: | TODO |
| h8300: | TODO |
| hexagon: | TODO |
| ia64: | ok |
| m32r: | TODO |
| m68k: | TODO |
| metag: | TODO |
| microblaze: | TODO |
| mips: | ok |
| mn10300: | TODO |
| nios2: | TODO |
| openrisc: | TODO |
| parisc: | TODO |
| powerpc: | ok |
| s390: | ok |
| score: | TODO |
| sh: | ok |
| sparc: | ok |
| tile: | ok |
| um: | TODO |
| unicore32: | TODO |
| x86: | ok |
| xtensa: | TODO |
-----------------------
#
# Feature name: optprobes
# Kconfig: HAVE_OPTPROBES
# description: arch supports live patched optprobes
#
-----------------------
| arch |status|
-----------------------
| alpha: | TODO |
| arc: | TODO |
| arm: | ok |
| arm64: | TODO |
| avr32: | TODO |
| blackfin: | TODO |
| c6x: | TODO |
| cris: | TODO |
| frv: | TODO |
| h8300: | TODO |
| hexagon: | TODO |
| ia64: | TODO |
| m32r: | TODO |
| m68k: | TODO |
| metag: | TODO |
| microblaze: | TODO |
| mips: | TODO |
| mn10300: | TODO |
| nios2: | TODO |
| openrisc: | TODO |
| parisc: | TODO |
| powerpc: | TODO |
| s390: | TODO |
| score: | TODO |
| sh: | TODO |
| sparc: | TODO |
| tile: | ok |
| um: | TODO |
| unicore32: | TODO |
| x86: | ok |
| xtensa: | TODO |
-----------------------
#
# Feature name: stackprotector
# Kconfig: HAVE_CC_STACKPROTECTOR
# description: arch supports compiler driven stack overflow protection
#
-----------------------
| arch |status|
-----------------------
| alpha: | TODO |
| arc: | TODO |
| arm: | ok |
| arm64: | ok |
| avr32: | TODO |
| blackfin: | TODO |
| c6x: | TODO |
| cris: | TODO |
| frv: | TODO |
| h8300: | TODO |
| hexagon: | TODO |
| ia64: | TODO |
| m32r: | TODO |
| m68k: | TODO |
| metag: | TODO |
| microblaze: | TODO |
| mips: | ok |
| mn10300: | TODO |
| nios2: | TODO |
| openrisc: | TODO |
| parisc: | TODO |
| powerpc: | TODO |
| s390: | TODO |
| score: | TODO |
| sh: | ok |
| sparc: | TODO |
| tile: | TODO |
| um: | TODO |
| unicore32: | TODO |
| x86: | ok |
| xtensa: | TODO |
-----------------------
#
# Feature name: uprobes
# Kconfig: ARCH_SUPPORTS_UPROBES
# description: arch supports live patched user probes
#
-----------------------
| arch |status|
-----------------------
| alpha: | TODO |
| arc: | TODO |
| arm: | ok |
| arm64: | TODO |
| avr32: | TODO |
| blackfin: | TODO |
| c6x: | TODO |
| cris: | TODO |
| frv: | TODO |
| h8300: | TODO |
| hexagon: | TODO |
| ia64: | TODO |
| m32r: | TODO |
| m68k: | TODO |
| metag: | TODO |
| microblaze: | TODO |
| mips: | TODO |
| mn10300: | TODO |
| nios2: | TODO |
| openrisc: | TODO |
| parisc: | TODO |
| powerpc: | ok |
| s390: | ok |
| score: | TODO |
| sh: | TODO |
| sparc: | TODO |
| tile: | TODO |
| um: | TODO |
| unicore32: | TODO |
| x86: | ok |
| xtensa: | TODO |
-----------------------
#
# Feature name: user-ret-profiler
# Kconfig: HAVE_USER_RETURN_NOTIFIER
# description: arch supports user-space return from system call profiler
#
-----------------------
| arch |status|
-----------------------
| alpha: | TODO |
| arc: | TODO |
| arm: | TODO |
| arm64: | TODO |
| avr32: | TODO |
| blackfin: | TODO |
| c6x: | TODO |
| cris: | TODO |
| frv: | TODO |
| h8300: | TODO |
| hexagon: | TODO |
| ia64: | TODO |
| m32r: | TODO |
| m68k: | TODO |
| metag: | TODO |
| microblaze: | TODO |
| mips: | TODO |
| mn10300: | TODO |
| nios2: | TODO |
| openrisc: | TODO |
| parisc: | TODO |
| powerpc: | TODO |
| s390: | TODO |
| score: | TODO |
| sh: | TODO |
| sparc: | TODO |
| tile: | ok |
| um: | TODO |
| unicore32: | TODO |
| x86: | ok |
| xtensa: | TODO |
-----------------------
#
# Feature name: dma-api-debug
# Kconfig: HAVE_DMA_API_DEBUG
# description: arch supports DMA debug facilities
#
-----------------------
| arch |status|
-----------------------
| alpha: | TODO |
| arc: | TODO |
| arm: | ok |
| arm64: | ok |
| avr32: | TODO |
| blackfin: | TODO |
| c6x: | ok |
| cris: | TODO |
| frv: | TODO |
| h8300: | TODO |
| hexagon: | TODO |
| ia64: | ok |
| m32r: | TODO |
| m68k: | TODO |
| metag: | TODO |
| microblaze: | ok |
| mips: | ok |
| mn10300: | TODO |
| nios2: | TODO |
| openrisc: | TODO |
| parisc: | TODO |
| powerpc: | ok |
| s390: | ok |
| score: | TODO |
| sh: | ok |
| sparc: | ok |
| tile: | ok |
| um: | TODO |
| unicore32: | TODO |
| x86: | ok |
| xtensa: | TODO |
-----------------------
#
# Feature name: dma-contiguous
# Kconfig: HAVE_DMA_CONTIGUOUS
# description: arch supports the DMA CMA (continuous memory allocator)
#
-----------------------
| arch |status|
-----------------------
| alpha: | TODO |
| arc: | TODO |
| arm: | ok |
| arm64: | ok |
| avr32: | TODO |
| blackfin: | TODO |
| c6x: | TODO |
| cris: | TODO |
| frv: | TODO |
| h8300: | TODO |
| hexagon: | TODO |
| ia64: | TODO |
| m32r: | TODO |
| m68k: | TODO |
| metag: | TODO |
| microblaze: | TODO |
| mips: | ok |
| mn10300: | TODO |
| nios2: | TODO |
| openrisc: | TODO |
| parisc: | TODO |
| powerpc: | TODO |
| s390: | TODO |
| score: | TODO |
| sh: | TODO |
| sparc: | TODO |
| tile: | TODO |
| um: | TODO |
| unicore32: | TODO |
| x86: | ok |
| xtensa: | TODO |
-----------------------
#
# Feature name: dma_map_attrs
# Kconfig: HAVE_DMA_ATTRS
# description: arch provides dma_*map*_attrs() APIs
#
-----------------------
| arch |status|
-----------------------
| alpha: | ok |
| arc: | TODO |
| arm: | ok |
| arm64: | ok |
| avr32: | TODO |
| blackfin: | TODO |
| c6x: | TODO |
| cris: | TODO |
| frv: | TODO |
| h8300: | ok |
| hexagon: | ok |
| ia64: | ok |
| m32r: | TODO |
| m68k: | TODO |
| metag: | TODO |
| microblaze: | ok |
| mips: | ok |
| mn10300: | TODO |
| nios2: | TODO |
| openrisc: | ok |
| parisc: | TODO |
| powerpc: | ok |
| s390: | ok |
| score: | TODO |
| sh: | ok |
| sparc: | ok |
| tile: | ok |
| um: | TODO |
| unicore32: | ok |
| x86: | ok |
| xtensa: | TODO |
-----------------------
#
# Feature name: sg-chain
# Kconfig: ARCH_HAS_SG_CHAIN
# description: arch supports chained scatter-gather lists
#
-----------------------
| arch |status|
-----------------------
| alpha: | TODO |
| arc: | TODO |
| arm: | ok |
| arm64: | ok |
| avr32: | TODO |
| blackfin: | TODO |
| c6x: | TODO |
| cris: | TODO |
| frv: | TODO |
| h8300: | TODO |
| hexagon: | TODO |
| ia64: | ok |
| m32r: | TODO |
| m68k: | TODO |
| metag: | TODO |
| microblaze: | TODO |
| mips: | TODO |
| mn10300: | TODO |
| nios2: | TODO |
| openrisc: | TODO |
| parisc: | TODO |
| powerpc: | ok |
| s390: | ok |
| score: | TODO |
| sh: | TODO |
| sparc: | ok |
| tile: | TODO |
| um: | TODO |
| unicore32: | TODO |
| x86: | ok |
| xtensa: | TODO |
-----------------------
#
# Feature name: strncasecmp
# Kconfig: __HAVE_ARCH_STRNCASECMP
# description: arch provides an optimized strncasecmp() function
#
-----------------------
| arch |status|
-----------------------
| alpha: | TODO |
| arc: | TODO |
| arm: | TODO |
| arm64: | TODO |
| avr32: | TODO |
| blackfin: | TODO |
| c6x: | TODO |
| cris: | TODO |
| frv: | TODO |
| h8300: | TODO |
| hexagon: | TODO |
| ia64: | TODO |
| m32r: | TODO |
| m68k: | TODO |
| metag: | TODO |
| microblaze: | TODO |
| mips: | TODO |
| mn10300: | TODO |
| nios2: | TODO |
| openrisc: | TODO |
| parisc: | TODO |
| powerpc: | TODO |
| s390: | TODO |
| score: | TODO |
| sh: | TODO |
| sparc: | TODO |
| tile: | TODO |
| um: | TODO |
| unicore32: | TODO |
| x86: | TODO |
| xtensa: | TODO |
-----------------------
#
# Small script that visualizes the kernel feature support status
# of an architecture.
#
# (If no arguments are given then it will print the host architecture's status.)
#
ARCH=${1:-$(arch | sed 's/x86_64/x86/' | sed 's/i386/x86/')}
cd $(dirname $0)
echo "#"
echo "# Kernel feature support matrix of the '$ARCH' architecture:"
echo "#"
for F in */*/arch-support.txt; do
SUBSYS=$(echo $F | cut -d/ -f1)
N=$(grep -h "^# Feature name:" $F | cut -c25-)
C=$(grep -h "^# Kconfig:" $F | cut -c25-)
D=$(grep -h "^# description:" $F | cut -c25-)
S=$(grep -hw $ARCH $F | cut -d\| -f3)
printf "%10s/%-22s:%s| %35s # %s\n" "$SUBSYS" "$N" "$S" "$C" "$D"
done
#
# Feature name: cmpxchg-local
# Kconfig: HAVE_CMPXCHG_LOCAL
# description: arch supports the this_cpu_cmpxchg() API
#
-----------------------
| arch |status|
-----------------------
| alpha: | TODO |
| arc: | TODO |
| arm: | TODO |
| arm64: | TODO |
| avr32: | TODO |
| blackfin: | TODO |
| c6x: | TODO |
| cris: | TODO |
| frv: | TODO |
| h8300: | TODO |
| hexagon: | TODO |
| ia64: | TODO |
| m32r: | TODO |
| m68k: | TODO |
| metag: | TODO |
| microblaze: | TODO |
| mips: | TODO |
| mn10300: | TODO |
| nios2: | TODO |
| openrisc: | TODO |
| parisc: | TODO |
| powerpc: | TODO |
| s390: | ok |
| score: | TODO |
| sh: | TODO |
| sparc: | TODO |
| tile: | TODO |
| um: | TODO |
| unicore32: | TODO |
| x86: | ok |
| xtensa: | TODO |
-----------------------
#
# Feature name: lockdep
# Kconfig: LOCKDEP_SUPPORT
# description: arch supports the runtime locking correctness debug facility
#
-----------------------
| arch |status|
-----------------------
| alpha: | TODO |
| arc: | ok |
| arm: | ok |
| arm64: | ok |
| avr32: | ok |
| blackfin: | ok |
| c6x: | TODO |
| cris: | TODO |
| frv: | TODO |
| h8300: | TODO |
| hexagon: | ok |
| ia64: | TODO |
| m32r: | TODO |
| m68k: | TODO |
| metag: | ok |
| microblaze: | ok |
| mips: | ok |
| mn10300: | TODO |
| nios2: | TODO |
| openrisc: | TODO |
| parisc: | TODO |
| powerpc: | ok |
| s390: | ok |
| score: | ok |
| sh: | ok |
| sparc: | ok |
| tile: | ok |
| um: | ok |
| unicore32: | ok |
| x86: | ok |
| xtensa: | ok |
-----------------------
#
# Feature name: queued-rwlocks
# Kconfig: ARCH_USE_QUEUED_RWLOCKS
# description: arch supports queued rwlocks
#
-----------------------
| arch |status|
-----------------------
| alpha: | TODO |
| arc: | TODO |
| arm: | TODO |
| arm64: | TODO |
| avr32: | TODO |
| blackfin: | TODO |
| c6x: | TODO |
| cris: | TODO |
| frv: | TODO |
| h8300: | TODO |
| hexagon: | TODO |
| ia64: | TODO |
| m32r: | TODO |
| m68k: | TODO |
| metag: | TODO |
| microblaze: | TODO |
| mips: | TODO |
| mn10300: | TODO |
| nios2: | TODO |
| openrisc: | TODO |
| parisc: | TODO |
| powerpc: | TODO |
| s390: | TODO |
| score: | TODO |
| sh: | TODO |
| sparc: | TODO |
| tile: | TODO |
| um: | TODO |
| unicore32: | TODO |
| x86: | ok |
| xtensa: | TODO |
-----------------------
#
# Feature name: queued-spinlocks
# Kconfig: ARCH_USE_QUEUED_SPINLOCKS
# description: arch supports queued spinlocks
#
-----------------------
| arch |status|
-----------------------
| alpha: | TODO |
| arc: | TODO |
| arm: | TODO |
| arm64: | TODO |
| avr32: | TODO |
| blackfin: | TODO |
| c6x: | TODO |
| cris: | TODO |
| frv: | TODO |
| h8300: | TODO |
| hexagon: | TODO |
| ia64: | TODO |
| m32r: | TODO |
| m68k: | TODO |
| metag: | TODO |
| microblaze: | TODO |
| mips: | TODO |
| mn10300: | TODO |
| nios2: | TODO |
| openrisc: | TODO |
| parisc: | TODO |
| powerpc: | TODO |
| s390: | TODO |
| score: | TODO |
| sh: | TODO |
| sparc: | TODO |
| tile: | TODO |
| um: | TODO |
| unicore32: | TODO |
| x86: | ok |
| xtensa: | TODO |
-----------------------
#
# Feature name: rwsem-optimized
# Kconfig: Optimized asm/rwsem.h
# description: arch provides optimized rwsem APIs
#
-----------------------
| arch |status|
-----------------------
| alpha: | ok |
| arc: | TODO |
| arm: | TODO |
| arm64: | TODO |
| avr32: | TODO |
| blackfin: | TODO |
| c6x: | TODO |
| cris: | TODO |
| frv: | TODO |
| h8300: | TODO |
| hexagon: | TODO |
| ia64: | ok |
| m32r: | TODO |
| m68k: | TODO |
| metag: | TODO |
| microblaze: | TODO |
| mips: | TODO |
| mn10300: | TODO |
| nios2: | TODO |
| openrisc: | TODO |
| parisc: | TODO |
| powerpc: | TODO |
| s390: | ok |
| score: | TODO |
| sh: | ok |
| sparc: | ok |
| tile: | TODO |
| um: | TODO |
| unicore32: | TODO |
| x86: | ok |
| xtensa: | ok |
-----------------------
#
# Feature name: kprobes-event
# Kconfig: HAVE_REGS_AND_STACK_ACCESS_API
# description: arch supports kprobes with perf events
#
-----------------------
| arch |status|
-----------------------
| alpha: | TODO |
| arc: | TODO |
| arm: | ok |
| arm64: | TODO |
| avr32: | TODO |
| blackfin: | TODO |
| c6x: | TODO |
| cris: | TODO |
| frv: | TODO |
| h8300: | TODO |
| hexagon: | ok |
| ia64: | TODO |
| m32r: | TODO |
| m68k: | TODO |
| metag: | TODO |
| microblaze: | TODO |
| mips: | TODO |
| mn10300: | TODO |
| nios2: | TODO |
| openrisc: | TODO |
| parisc: | TODO |
| powerpc: | ok |
| s390: | ok |
| score: | TODO |
| sh: | ok |
| sparc: | TODO |
| tile: | ok |
| um: | TODO |
| unicore32: | TODO |
| x86: | ok |
| xtensa: | TODO |
-----------------------
#
# Feature name: perf-regs
# Kconfig: HAVE_PERF_REGS
# description: arch supports perf events register access
#
-----------------------
| arch |status|
-----------------------
| alpha: | TODO |
| arc: | TODO |
| arm: | ok |
| arm64: | ok |
| avr32: | TODO |
| blackfin: | TODO |
| c6x: | TODO |
| cris: | TODO |
| frv: | TODO |
| h8300: | TODO |
| hexagon: | TODO |
| ia64: | TODO |
| m32r: | TODO |
| m68k: | TODO |
| metag: | TODO |
| microblaze: | TODO |
| mips: | TODO |
| mn10300: | TODO |
| nios2: | TODO |
| openrisc: | TODO |
| parisc: | TODO |
| powerpc: | TODO |
| s390: | TODO |
| score: | TODO |
| sh: | TODO |
| sparc: | TODO |
| tile: | TODO |
| um: | TODO |
| unicore32: | TODO |
| x86: | ok |
| xtensa: | TODO |
-----------------------
#
# Feature name: perf-stackdump
# Kconfig: HAVE_PERF_USER_STACK_DUMP
# description: arch supports perf events stack dumps
#
-----------------------
| arch |status|
-----------------------
| alpha: | TODO |
| arc: | TODO |
| arm: | ok |
| arm64: | ok |
| avr32: | TODO |
| blackfin: | TODO |
| c6x: | TODO |
| cris: | TODO |
| frv: | TODO |
| h8300: | TODO |
| hexagon: | TODO |
| ia64: | TODO |
| m32r: | TODO |
| m68k: | TODO |
| metag: | TODO |
| microblaze: | TODO |
| mips: | TODO |
| mn10300: | TODO |
| nios2: | TODO |
| openrisc: | TODO |
| parisc: | TODO |
| powerpc: | TODO |
| s390: | TODO |
| score: | TODO |
| sh: | TODO |
| sparc: | TODO |
| tile: | TODO |
| um: | TODO |
| unicore32: | TODO |
| x86: | ok |
| xtensa: | TODO |
-----------------------
#
# Feature name: numa-balancing
# Kconfig: ARCH_SUPPORTS_NUMA_BALANCING
# description: arch supports NUMA balancing
#
-----------------------
| arch |status|
-----------------------
| alpha: | TODO |
| arc: | .. |
| arm: | .. |
| arm64: | .. |
| avr32: | .. |
| blackfin: | .. |
| c6x: | .. |
| cris: | .. |
| frv: | .. |
| h8300: | .. |
| hexagon: | .. |
| ia64: | TODO |
| m32r: | .. |
| m68k: | .. |
| metag: | .. |
| microblaze: | .. |
| mips: | TODO |
| mn10300: | .. |
| nios2: | .. |
| openrisc: | .. |
| parisc: | .. |
| powerpc: | ok |
| s390: | .. |
| score: | .. |
| sh: | .. |
| sparc: | TODO |
| tile: | TODO |
| um: | .. |
| unicore32: | .. |
| x86: | ok |
| xtensa: | .. |
-----------------------
#
# Feature name: seccomp-filter
# Kconfig: HAVE_ARCH_SECCOMP_FILTER
# description: arch supports seccomp filters
#
-----------------------
| arch |status|
-----------------------
| alpha: | TODO |
| arc: | TODO |
| arm: | ok |
| arm64: | ok |
| avr32: | TODO |
| blackfin: | TODO |
| c6x: | TODO |
| cris: | TODO |
| frv: | TODO |
| h8300: | TODO |
| hexagon: | TODO |
| ia64: | TODO |
| m32r: | TODO |
| m68k: | TODO |
| metag: | TODO |
| microblaze: | TODO |
| mips: | ok |
| mn10300: | TODO |
| nios2: | TODO |
| openrisc: | TODO |
| parisc: | TODO |
| powerpc: | TODO |
| s390: | ok |
| score: | TODO |
| sh: | TODO |
| sparc: | TODO |
| tile: | TODO |
| um: | TODO |
| unicore32: | TODO |
| x86: | ok |
| xtensa: | TODO |
-----------------------
#
# Feature name: arch-tick-broadcast
# Kconfig: ARCH_HAS_TICK_BROADCAST
# description: arch provides tick_broadcast()
#
-----------------------
| arch |status|
-----------------------
| alpha: | TODO |
| arc: | TODO |
| arm: | ok |
| arm64: | ok |
| avr32: | TODO |
| blackfin: | TODO |
| c6x: | TODO |
| cris: | TODO |
| frv: | TODO |
| h8300: | TODO |
| hexagon: | TODO |
| ia64: | TODO |
| m32r: | TODO |
| m68k: | TODO |
| metag: | TODO |
| microblaze: | TODO |
| mips: | ok |
| mn10300: | TODO |
| nios2: | TODO |
| openrisc: | TODO |
| parisc: | TODO |
| powerpc: | ok |
| s390: | TODO |
| score: | TODO |
| sh: | TODO |
| sparc: | TODO |
| tile: | TODO |
| um: | TODO |
| unicore32: | TODO |
| x86: | TODO |
| xtensa: | TODO |
-----------------------
#
# Feature name: clockevents
# Kconfig: GENERIC_CLOCKEVENTS
# description: arch support generic clock events
#
-----------------------
| arch |status|
-----------------------
| alpha: | ok |
| arc: | ok |
| arm: | ok |
| arm64: | ok |
| avr32: | ok |
| blackfin: | ok |
| c6x: | ok |
| cris: | ok |
| frv: | TODO |
| h8300: | ok |
| hexagon: | ok |
| ia64: | TODO |
| m32r: | TODO |
| m68k: | ok |
| metag: | ok |
| microblaze: | ok |
| mips: | ok |
| mn10300: | ok |
| nios2: | ok |
| openrisc: | ok |
| parisc: | TODO |
| powerpc: | ok |
| s390: | ok |
| score: | ok |
| sh: | ok |
| sparc: | ok |
| tile: | ok |
| um: | ok |
| unicore32: | ok |
| x86: | ok |
| xtensa: | ok |
-----------------------
#
# Feature name: context-tracking
# Kconfig: HAVE_CONTEXT_TRACKING
# description: arch supports context tracking for NO_HZ_FULL
#
-----------------------
| arch |status|
-----------------------
| alpha: | TODO |
| arc: | TODO |
| arm: | ok |
| arm64: | ok |
| avr32: | TODO |
| blackfin: | TODO |
| c6x: | TODO |
| cris: | TODO |
| frv: | TODO |
| h8300: | TODO |
| hexagon: | TODO |
| ia64: | TODO |
| m32r: | TODO |
| m68k: | TODO |
| metag: | TODO |
| microblaze: | TODO |
| mips: | ok |
| mn10300: | TODO |
| nios2: | TODO |
| openrisc: | TODO |
| parisc: | TODO |
| powerpc: | ok |
| s390: | TODO |
| score: | TODO |
| sh: | TODO |
| sparc: | ok |
| tile: | ok |
| um: | TODO |
| unicore32: | TODO |
| x86: | ok |
| xtensa: | TODO |
-----------------------
#
# Feature name: irq-time-acct
# Kconfig: HAVE_IRQ_TIME_ACCOUNTING
# description: arch supports precise IRQ time accounting
#
-----------------------
| arch |status|
-----------------------
| alpha: | .. |
| arc: | TODO |
| arm: | ok |
| arm64: | .. |
| avr32: | TODO |
| blackfin: | TODO |
| c6x: | TODO |
| cris: | TODO |
| frv: | TODO |
| h8300: | TODO |
| hexagon: | TODO |
| ia64: | .. |
| m32r: | TODO |
| m68k: | TODO |
| metag: | TODO |
| microblaze: | TODO |
| mips: | ok |
| mn10300: | TODO |
| nios2: | TODO |
| openrisc: | TODO |
| parisc: | .. |
| powerpc: | .. |
| s390: | .. |
| score: | TODO |
| sh: | TODO |
| sparc: | .. |
| tile: | .. |
| um: | TODO |
| unicore32: | TODO |
| x86: | ok |
| xtensa: | ok |
-----------------------
#
# Feature name: modern-timekeeping
# Kconfig: !ARCH_USES_GETTIMEOFFSET
# description: arch does not use arch_gettimeoffset() anymore
#
-----------------------
| arch |status|
-----------------------
| alpha: | ok |
| arc: | ok |
| arm: | TODO |
| arm64: | ok |
| avr32: | ok |
| blackfin: | TODO |
| c6x: | ok |
| cris: | TODO |
| frv: | ok |
| h8300: | ok |
| hexagon: | ok |
| ia64: | ok |
| m32r: | TODO |
| m68k: | TODO |
| metag: | ok |
| microblaze: | ok |
| mips: | ok |
| mn10300: | ok |
| nios2: | ok |
| openrisc: | ok |
| parisc: | ok |
| powerpc: | ok |
| s390: | ok |
| score: | ok |
| sh: | ok |
| sparc: | ok |
| tile: | ok |
| um: | ok |
| unicore32: | ok |
| x86: | ok |
| xtensa: | ok |
-----------------------
#
# Feature name: virt-cpuacct
# Kconfig: HAVE_VIRT_CPU_ACCOUNTING
# description: arch supports precise virtual CPU time accounting
#
-----------------------
| arch |status|
-----------------------
| alpha: | ok |
| arc: | TODO |
| arm: | ok |
| arm64: | ok |
| avr32: | TODO |
| blackfin: | TODO |
| c6x: | TODO |
| cris: | TODO |
| frv: | TODO |
| h8300: | TODO |
| hexagon: | TODO |
| ia64: | ok |
| m32r: | TODO |
| m68k: | TODO |
| metag: | TODO |
| microblaze: | TODO |
| mips: | ok |
| mn10300: | TODO |
| nios2: | TODO |
| openrisc: | TODO |
| parisc: | ok |
| powerpc: | ok |
| s390: | ok |
| score: | TODO |
| sh: | TODO |
| sparc: | ok |
| tile: | ok |
| um: | TODO |
| unicore32: | TODO |
| x86: | ok |
| xtensa: | TODO |
-----------------------
#
# Feature name: ELF-ASLR
# Kconfig: ARCH_HAS_ELF_RANDOMIZE
# description: arch randomizes the stack, heap and binary images of ELF binaries
#
-----------------------
| arch |status|
-----------------------
| alpha: | TODO |
| arc: | TODO |
| arm: | ok |
| arm64: | ok |
| avr32: | TODO |
| blackfin: | TODO |
| c6x: | TODO |
| cris: | TODO |
| frv: | TODO |
| h8300: | TODO |
| hexagon: | TODO |
| ia64: | TODO |
| m32r: | TODO |
| m68k: | TODO |
| metag: | TODO |
| microblaze: | TODO |
| mips: | ok |
| mn10300: | TODO |
| nios2: | TODO |
| openrisc: | TODO |
| parisc: | TODO |
| powerpc: | ok |
| s390: | ok |
| score: | TODO |
| sh: | TODO |
| sparc: | TODO |
| tile: | TODO |
| um: | TODO |
| unicore32: | TODO |
| x86: | ok |
| xtensa: | TODO |
-----------------------
#
# Feature name: PG_uncached
# Kconfig: ARCH_USES_PG_UNCACHED
# description: arch supports the PG_uncached page flag
#
-----------------------
| arch |status|
-----------------------
| alpha: | TODO |
| arc: | TODO |
| arm: | TODO |
| arm64: | TODO |
| avr32: | TODO |
| blackfin: | TODO |
| c6x: | TODO |
| cris: | TODO |
| frv: | TODO |
| h8300: | TODO |
| hexagon: | TODO |
| ia64: | ok |
| m32r: | TODO |
| m68k: | TODO |
| metag: | TODO |
| microblaze: | TODO |
| mips: | TODO |
| mn10300: | TODO |
| nios2: | TODO |
| openrisc: | TODO |
| parisc: | TODO |
| powerpc: | TODO |
| s390: | TODO |
| score: | TODO |
| sh: | TODO |
| sparc: | TODO |
| tile: | TODO |
| um: | TODO |
| unicore32: | TODO |
| x86: | ok |
| xtensa: | TODO |
-----------------------
#
# Feature name: THP
# Kconfig: HAVE_ARCH_TRANSPARENT_HUGEPAGE
# description: arch supports transparent hugepages
#
-----------------------
| arch |status|
-----------------------
| alpha: | TODO |
| arc: | .. |
| arm: | ok |
| arm64: | ok |
| avr32: | .. |
| blackfin: | .. |
| c6x: | .. |
| cris: | .. |
| frv: | .. |
| h8300: | .. |
| hexagon: | .. |
| ia64: | TODO |
| m32r: | .. |
| m68k: | .. |
| metag: | .. |
| microblaze: | .. |
| mips: | ok |
| mn10300: | .. |
| nios2: | .. |
| openrisc: | .. |
| parisc: | TODO |
| powerpc: | ok |
| s390: | ok |
| score: | .. |
| sh: | .. |
| sparc: | ok |
| tile: | TODO |
| um: | .. |
| unicore32: | .. |
| x86: | ok |
| xtensa: | .. |
-----------------------
#
# Feature name: huge-vmap
# Kconfig: HAVE_ARCH_HUGE_VMAP
# description: arch supports the ioremap_pud_enabled() and ioremap_pmd_enabled() VM APIs
#
-----------------------
| arch |status|
-----------------------
| alpha: | TODO |
| arc: | TODO |
| arm: | TODO |
| arm64: | TODO |
| avr32: | TODO |
| blackfin: | TODO |
| c6x: | TODO |
| cris: | TODO |
| frv: | TODO |
| h8300: | TODO |
| hexagon: | TODO |
| ia64: | TODO |
| m32r: | TODO |
| m68k: | TODO |
| metag: | TODO |
| microblaze: | TODO |
| mips: | TODO |
| mn10300: | TODO |
| nios2: | TODO |
| openrisc: | TODO |
| parisc: | TODO |
| powerpc: | TODO |
| s390: | TODO |
| score: | TODO |
| sh: | TODO |
| sparc: | TODO |
| tile: | TODO |
| um: | TODO |
| unicore32: | TODO |
| x86: | ok |
| xtensa: | TODO |
-----------------------
#
# Feature name: ioremap_prot
# Kconfig: HAVE_IOREMAP_PROT
# description: arch has ioremap_prot()
#
-----------------------
| arch |status|
-----------------------
| alpha: | TODO |
| arc: | ok |
| arm: | TODO |
| arm64: | TODO |
| avr32: | TODO |
| blackfin: | TODO |
| c6x: | TODO |
| cris: | TODO |
| frv: | TODO |
| h8300: | TODO |
| hexagon: | TODO |
| ia64: | TODO |
| m32r: | TODO |
| m68k: | TODO |
| metag: | TODO |
| microblaze: | TODO |
| mips: | TODO |
| mn10300: | TODO |
| nios2: | TODO |
| openrisc: | TODO |
| parisc: | TODO |
| powerpc: | ok |
| s390: | TODO |
| score: | TODO |
| sh: | ok |
| sparc: | TODO |
| tile: | ok |
| um: | TODO |
| unicore32: | TODO |
| x86: | ok |
| xtensa: | TODO |
-----------------------
#
# Feature name: numa-memblock
# Kconfig: HAVE_MEMBLOCK_NODE_MAP
# description: arch supports NUMA aware memblocks
#
-----------------------
| arch |status|
-----------------------
| alpha: | TODO |
| arc: | .. |
| arm: | .. |
| arm64: | .. |
| avr32: | .. |
| blackfin: | .. |
| c6x: | .. |
| cris: | .. |
| frv: | .. |
| h8300: | .. |
| hexagon: | .. |
| ia64: | ok |
| m32r: | TODO |
| m68k: | .. |
| metag: | ok |
| microblaze: | ok |
| mips: | ok |
| mn10300: | TODO |
| nios2: | .. |
| openrisc: | .. |
| parisc: | .. |
| powerpc: | ok |
| s390: | ok |
| score: | ok |
| sh: | ok |
| sparc: | ok |
| tile: | TODO |
| um: | .. |
| unicore32: | .. |
| x86: | ok |
| xtensa: | .. |
-----------------------
#
# Feature name: pmdp_splitting_flush
# Kconfig: __HAVE_ARCH_PMDP_SPLITTING_FLUSH
# description: arch supports the pmdp_splitting_flush() VM API
#
-----------------------
| arch |status|
-----------------------
| alpha: | TODO |
| arc: | TODO |
| arm: | ok |
| arm64: | ok |
| avr32: | TODO |
| blackfin: | TODO |
| c6x: | TODO |
| cris: | TODO |
| frv: | TODO |
| h8300: | TODO |
| hexagon: | TODO |
| ia64: | TODO |
| m32r: | TODO |
| m68k: | TODO |
| metag: | TODO |
| microblaze: | TODO |
| mips: | ok |
| mn10300: | TODO |
| nios2: | TODO |
| openrisc: | TODO |
| parisc: | TODO |
| powerpc: | ok |
| s390: | ok |
| score: | TODO |
| sh: | TODO |
| sparc: | TODO |
| tile: | TODO |
| um: | TODO |
| unicore32: | TODO |
| x86: | ok |
| xtensa: | TODO |
-----------------------
#
# Feature name: pte_special
# Kconfig: __HAVE_ARCH_PTE_SPECIAL
# description: arch supports the pte_special()/pte_mkspecial() VM APIs
#
-----------------------
| arch |status|
-----------------------
| alpha: | TODO |
| arc: | TODO |
| arm: | ok |
| arm64: | ok |
| avr32: | TODO |
| blackfin: | TODO |
| c6x: | TODO |
| cris: | TODO |
| frv: | TODO |
| h8300: | TODO |
| hexagon: | TODO |
| ia64: | TODO |
| m32r: | TODO |
| m68k: | TODO |
| metag: | TODO |
| microblaze: | TODO |
| mips: | TODO |
| mn10300: | TODO |
| nios2: | TODO |
| openrisc: | TODO |
| parisc: | TODO |
| powerpc: | ok |
| s390: | ok |
| score: | TODO |
| sh: | ok |
| sparc: | ok |
| tile: | TODO |
| um: | TODO |
| unicore32: | TODO |
| x86: | ok |
| xtensa: | TODO |
-----------------------
...@@ -379,10 +379,10 @@ may now be called in rcu-walk mode (nd->flags & LOOKUP_RCU). -ECHILD should be ...@@ -379,10 +379,10 @@ may now be called in rcu-walk mode (nd->flags & LOOKUP_RCU). -ECHILD should be
returned if the filesystem cannot handle rcu-walk. See returned if the filesystem cannot handle rcu-walk. See
Documentation/filesystems/vfs.txt for more details. Documentation/filesystems/vfs.txt for more details.
permission and check_acl are inode permission checks that are called permission is an inode permission check that is called on many or all
on many or all directory inodes on the way down a path walk (to check for directory inodes on the way down a path walk (to check for exec permission). It
exec permission). These must now be rcu-walk aware (flags & IPERM_FLAG_RCU). must now be rcu-walk aware (mask & MAY_NOT_BLOCK). See
See Documentation/filesystems/vfs.txt for more details. Documentation/filesystems/vfs.txt for more details.
-- --
[mandatory] [mandatory]
......
...@@ -205,7 +205,7 @@ asynchronous manner and the value may not be very precise. To see a precise ...@@ -205,7 +205,7 @@ asynchronous manner and the value may not be very precise. To see a precise
snapshot of a moment, you can see /proc/<pid>/smaps file and scan page table. snapshot of a moment, you can see /proc/<pid>/smaps file and scan page table.
It's slow but very precise. It's slow but very precise.
Table 1-2: Contents of the status files (as of 3.20.0) Table 1-2: Contents of the status files (as of 4.1)
.............................................................................. ..............................................................................
Field Content Field Content
Name filename of the executable Name filename of the executable
...@@ -235,6 +235,7 @@ Table 1-2: Contents of the status files (as of 3.20.0) ...@@ -235,6 +235,7 @@ Table 1-2: Contents of the status files (as of 3.20.0)
VmExe size of text segment VmExe size of text segment
VmLib size of shared library code VmLib size of shared library code
VmPTE size of page table entries VmPTE size of page table entries
VmPMD size of second level page tables
VmSwap size of swap usage (the number of referred swapents) VmSwap size of swap usage (the number of referred swapents)
Threads number of threads Threads number of threads
SigQ number of signals queued/max. number for queue SigQ number of signals queued/max. number for queue
......
...@@ -799,7 +799,7 @@ struct file_operations ...@@ -799,7 +799,7 @@ struct file_operations
---------------------- ----------------------
This describes how the VFS can manipulate an open file. As of kernel This describes how the VFS can manipulate an open file. As of kernel
3.12, the following members are defined: 4.1, the following members are defined:
struct file_operations { struct file_operations {
struct module *owner; struct module *owner;
...@@ -813,8 +813,9 @@ struct file_operations { ...@@ -813,8 +813,9 @@ struct file_operations {
long (*unlocked_ioctl) (struct file *, unsigned int, unsigned long); long (*unlocked_ioctl) (struct file *, unsigned int, unsigned long);
long (*compat_ioctl) (struct file *, unsigned int, unsigned long); long (*compat_ioctl) (struct file *, unsigned int, unsigned long);
int (*mmap) (struct file *, struct vm_area_struct *); int (*mmap) (struct file *, struct vm_area_struct *);
int (*mremap)(struct file *, struct vm_area_struct *);
int (*open) (struct inode *, struct file *); int (*open) (struct inode *, struct file *);
int (*flush) (struct file *); int (*flush) (struct file *, fl_owner_t id);
int (*release) (struct inode *, struct file *); int (*release) (struct inode *, struct file *);
int (*fsync) (struct file *, loff_t, loff_t, int datasync); int (*fsync) (struct file *, loff_t, loff_t, int datasync);
int (*aio_fsync) (struct kiocb *, int datasync); int (*aio_fsync) (struct kiocb *, int datasync);
...@@ -824,11 +825,15 @@ struct file_operations { ...@@ -824,11 +825,15 @@ struct file_operations {
unsigned long (*get_unmapped_area)(struct file *, unsigned long, unsigned long, unsigned long, unsigned long); unsigned long (*get_unmapped_area)(struct file *, unsigned long, unsigned long, unsigned long, unsigned long);
int (*check_flags)(int); int (*check_flags)(int);
int (*flock) (struct file *, int, struct file_lock *); int (*flock) (struct file *, int, struct file_lock *);
ssize_t (*splice_write)(struct pipe_inode_info *, struct file *, size_t, unsigned int); ssize_t (*splice_write)(struct pipe_inode_info *, struct file *, loff_t *, size_t, unsigned int);
ssize_t (*splice_read)(struct file *, struct pipe_inode_info *, size_t, unsigned int); ssize_t (*splice_read)(struct file *, loff_t *, struct pipe_inode_info *, size_t, unsigned int);
int (*setlease)(struct file *, long arg, struct file_lock **, void **); int (*setlease)(struct file *, long, struct file_lock **, void **);
long (*fallocate)(struct file *, int mode, loff_t offset, loff_t len); long (*fallocate)(struct file *file, int mode, loff_t offset,
loff_t len);
void (*show_fdinfo)(struct seq_file *m, struct file *f); void (*show_fdinfo)(struct seq_file *m, struct file *f);
#ifndef CONFIG_MMU
unsigned (*mmap_capabilities)(struct file *);
#endif
}; };
Again, all methods are called without any locks being held, unless Again, all methods are called without any locks being held, unless
......
...@@ -290,7 +290,7 @@ corresponding to a given GPIO using the following call: ...@@ -290,7 +290,7 @@ corresponding to a given GPIO using the following call:
int gpiod_to_irq(const struct gpio_desc *desc) int gpiod_to_irq(const struct gpio_desc *desc)
It will return an IRQ number, or an negative errno code if the mapping can't be It will return an IRQ number, or a negative errno code if the mapping can't be
done (most likely because that particular GPIO cannot be used as IRQ). It is an done (most likely because that particular GPIO cannot be used as IRQ). It is an
unchecked error to use a GPIO that wasn't set up as an input using unchecked error to use a GPIO that wasn't set up as an input using
gpiod_direction_input(), or to use an IRQ number that didn't originally come gpiod_direction_input(), or to use an IRQ number that didn't originally come
......
...@@ -33,7 +33,7 @@ The phase diagram of these two outputs look like this: ...@@ -33,7 +33,7 @@ The phase diagram of these two outputs look like this:
one step (half-period mode) one step (half-period mode)
For more information, please see For more information, please see
http://en.wikipedia.org/wiki/Rotary_encoder https://en.wikipedia.org/wiki/Rotary_encoder
1. Events / state machine 1. Events / state machine
......
...@@ -445,7 +445,7 @@ MAINTAINERS ファイルにリストがありますので参照してくださ ...@@ -445,7 +445,7 @@ MAINTAINERS ファイルにリストがありますので参照してくださ
メールの先頭でなく、各引用行の間にあなたの言いたいことを追加するべきで メールの先頭でなく、各引用行の間にあなたの言いたいことを追加するべきで
す。 す。
もしパッチをメールに付ける場合は、Documentaion/SubmittingPatches に提 もしパッチをメールに付ける場合は、Documentation/SubmittingPatches に提
示されているように、それは プレーンな可読テキストにすることを忘れない 示されているように、それは プレーンな可読テキストにすることを忘れない
ようにしましょう。カーネル開発者は 添付や圧縮したパッチを扱いたがりま ようにしましょう。カーネル開発者は 添付や圧縮したパッチを扱いたがりま
せん- せん-
......
...@@ -150,7 +150,7 @@ AddressSanitizer dedicates 1/8 of kernel memory to its shadow memory ...@@ -150,7 +150,7 @@ AddressSanitizer dedicates 1/8 of kernel memory to its shadow memory
(e.g. 16TB to cover 128TB on x86_64) and uses direct mapping with a scale and (e.g. 16TB to cover 128TB on x86_64) and uses direct mapping with a scale and
offset to translate a memory address to its corresponding shadow address. offset to translate a memory address to its corresponding shadow address.
Here is the function witch translate an address to its corresponding shadow Here is the function which translates an address to its corresponding shadow
address: address:
static inline void *kasan_mem_to_shadow(const void *addr) static inline void *kasan_mem_to_shadow(const void *addr)
......
...@@ -24,7 +24,7 @@ The "make headers_install" command can be run in the top level directory of the ...@@ -24,7 +24,7 @@ The "make headers_install" command can be run in the top level directory of the
kernel source code (or using a standard out-of-tree build). It takes two kernel source code (or using a standard out-of-tree build). It takes two
optional arguments: optional arguments:
make headers_install ARCH=i386 INSTALL_HDR_PATH=/usr/include make headers_install ARCH=i386 INSTALL_HDR_PATH=/usr
ARCH indicates which architecture to produce headers for, and defaults to the ARCH indicates which architecture to produce headers for, and defaults to the
current architecture. The linux/asm directory of the exported kernel headers current architecture. The linux/asm directory of the exported kernel headers
...@@ -33,8 +33,11 @@ the command: ...@@ -33,8 +33,11 @@ the command:
ls -d include/asm-* | sed 's/.*-//' ls -d include/asm-* | sed 's/.*-//'
INSTALL_HDR_PATH indicates where to install the headers. It defaults to INSTALL_HDR_PATH indicates where to install the headers. It defaults to
"./usr/include". "./usr".
An 'include' directory is automatically created inside INSTALL_HDR_PATH and
headers are installed in 'INSTALL_HDR_PATH/include'.
The command "make headers_install_all" exports headers for all architectures The command "make headers_install_all" exports headers for all architectures
simultaneously. (This is mostly of interest to distribution maintainers, simultaneously. (This is mostly of interest to distribution maintainers,
......
...@@ -755,8 +755,8 @@ Additional files can be specified in kbuild makefiles by use of $(clean-files). ...@@ -755,8 +755,8 @@ Additional files can be specified in kbuild makefiles by use of $(clean-files).
#lib/Makefile #lib/Makefile
clean-files := crc32table.h clean-files := crc32table.h
When executing "make clean", the two files "devlist.h classlist.h" will be When executing "make clean", the file "crc32table.h" will be deleted.
deleted. Kbuild will assume files to be in the same relative directory as the Kbuild will assume files to be in the same relative directory as the
Makefile, except if prefixed with $(objtree). Makefile, except if prefixed with $(objtree).
To delete a directory hierarchy use: To delete a directory hierarchy use:
......
...@@ -1019,6 +1019,7 @@ bytes respectively. Such letter suffixes can also be entirely omitted. ...@@ -1019,6 +1019,7 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
earlyprintk=serial[,0x...[,baudrate]] earlyprintk=serial[,0x...[,baudrate]]
earlyprintk=ttySn[,baudrate] earlyprintk=ttySn[,baudrate]
earlyprintk=dbgp[debugController#] earlyprintk=dbgp[debugController#]
earlyprintk=pciserial,bus:device.function[,baudrate]
earlyprintk is useful when the kernel crashes before earlyprintk is useful when the kernel crashes before
the normal console is initialized. It is not enabled by the normal console is initialized. It is not enabled by
...@@ -2453,7 +2454,7 @@ bytes respectively. Such letter suffixes can also be entirely omitted. ...@@ -2453,7 +2454,7 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
nomca [IA-64] Disable machine check abort handling nomca [IA-64] Disable machine check abort handling
nomce [X86-32] Machine Check Exception nomce [X86-32] Disable Machine Check Exception
nomfgpt [X86-32] Disable Multi-Function General Purpose nomfgpt [X86-32] Disable Multi-Function General Purpose
Timer usage (for AMD Geode machines). Timer usage (for AMD Geode machines).
......
...@@ -6,7 +6,7 @@ Introduction ...@@ -6,7 +6,7 @@ Introduction
Kmemleak provides a way of detecting possible kernel memory leaks in a Kmemleak provides a way of detecting possible kernel memory leaks in a
way similar to a tracing garbage collector way similar to a tracing garbage collector
(http://en.wikipedia.org/wiki/Garbage_collection_%28computer_science%29#Tracing_garbage_collectors), (https://en.wikipedia.org/wiki/Garbage_collection_%28computer_science%29#Tracing_garbage_collectors),
with the difference that the orphan objects are not freed but only with the difference that the orphan objects are not freed but only
reported via /sys/kernel/debug/kmemleak. A similar method is used by the reported via /sys/kernel/debug/kmemleak. A similar method is used by the
Valgrind tool (memcheck --leak-check) to detect the memory leaks in Valgrind tool (memcheck --leak-check) to detect the memory leaks in
......
...@@ -8,8 +8,6 @@ disk-shock-protection.txt ...@@ -8,8 +8,6 @@ disk-shock-protection.txt
- information on hard disk shock protection. - information on hard disk shock protection.
dslm.c dslm.c
- Simple Disk Sleep Monitor program - Simple Disk Sleep Monitor program
freefall.c
- (HP/DELL) laptop accelerometer program for disk protection.
laptop-mode.txt laptop-mode.txt
- how to conserve battery power using laptop-mode. - how to conserve battery power using laptop-mode.
sony-laptop.txt sony-laptop.txt
......
# List of programs to build # List of programs to build
hostprogs-y := dslm freefall hostprogs-y := dslm
# Tell kbuild to always build the programs # Tell kbuild to always build the programs
always := $(hostprogs-y) always := $(hostprogs-y)
...@@ -116,7 +116,6 @@ COW_MAGIC 0x4f4f4f4d cow_header_v1 arch/um/drivers/ubd_user.c ...@@ -116,7 +116,6 @@ COW_MAGIC 0x4f4f4f4d cow_header_v1 arch/um/drivers/ubd_user.c
I810_CARD_MAGIC 0x5072696E i810_card sound/oss/i810_audio.c I810_CARD_MAGIC 0x5072696E i810_card sound/oss/i810_audio.c
TRIDENT_CARD_MAGIC 0x5072696E trident_card sound/oss/trident.c TRIDENT_CARD_MAGIC 0x5072696E trident_card sound/oss/trident.c
ROUTER_MAGIC 0x524d4157 wan_device [in wanrouter.h pre 3.9] ROUTER_MAGIC 0x524d4157 wan_device [in wanrouter.h pre 3.9]
SCC_MAGIC 0x52696368 gs_port drivers/char/scc.h
SAVEKMSG_MAGIC1 0x53415645 savekmsg arch/*/amiga/config.c SAVEKMSG_MAGIC1 0x53415645 savekmsg arch/*/amiga/config.c
GDA_MAGIC 0x58464552 gda arch/mips/include/asm/sn/gda.h GDA_MAGIC 0x58464552 gda arch/mips/include/asm/sn/gda.h
RED_MAGIC1 0x5a2cf071 (any) mm/slab.c RED_MAGIC1 0x5a2cf071 (any) mm/slab.c
...@@ -138,7 +137,6 @@ KMALLOC_MAGIC 0x87654321 snd_alloc_track sound/core/memory.c ...@@ -138,7 +137,6 @@ KMALLOC_MAGIC 0x87654321 snd_alloc_track sound/core/memory.c
PWC_MAGIC 0x89DC10AB pwc_device drivers/usb/media/pwc.h PWC_MAGIC 0x89DC10AB pwc_device drivers/usb/media/pwc.h
NBD_REPLY_MAGIC 0x96744668 nbd_reply include/linux/nbd.h NBD_REPLY_MAGIC 0x96744668 nbd_reply include/linux/nbd.h
ENI155_MAGIC 0xa54b872d midway_eprom drivers/atm/eni.h ENI155_MAGIC 0xa54b872d midway_eprom drivers/atm/eni.h
SCI_MAGIC 0xbabeface gs_port drivers/char/sh-sci.h
CODA_MAGIC 0xC0DAC0DA coda_file_info fs/coda/coda_fs_i.h CODA_MAGIC 0xC0DAC0DA coda_file_info fs/coda/coda_fs_i.h
DPMEM_MAGIC 0xc0ffee11 gdt_pci_sram drivers/scsi/gdth.h DPMEM_MAGIC 0xc0ffee11 gdt_pci_sram drivers/scsi/gdth.h
YAM_MAGIC 0xF10A7654 yam_port drivers/net/hamradio/yam.c YAM_MAGIC 0xF10A7654 yam_port drivers/net/hamradio/yam.c
......
...@@ -549,7 +549,7 @@ also have ...@@ -549,7 +549,7 @@ also have
sync_speed_max sync_speed_max
This are similar to /proc/sys/dev/raid/speed_limit_{min,max} This are similar to /proc/sys/dev/raid/speed_limit_{min,max}
however they only apply to the particular array. however they only apply to the particular array.
If no value has been written to these, of if the word 'system' If no value has been written to these, or if the word 'system'
is written, then the system-wide value is used. If a value, is written, then the system-wide value is used. If a value,
in kibibytes-per-second is written, then it is used. in kibibytes-per-second is written, then it is used.
When the files are read, they show the currently active value When the files are read, they show the currently active value
......
ifndef CROSS_COMPILE
# List of programs to build # List of programs to build
hostprogs-$(CONFIG_X86_64) := mpssd hostprogs-$(CONFIG_X86_64) := mpssd
...@@ -17,3 +18,4 @@ HOSTLOADLIBES_mpssd := -lpthread ...@@ -17,3 +18,4 @@ HOSTLOADLIBES_mpssd := -lpthread
install: install:
install mpssd /usr/sbin/mpssd install mpssd /usr/sbin/mpssd
install micctrl /usr/sbin/micctrl install micctrl /usr/sbin/micctrl
endif
...@@ -37,7 +37,7 @@ version. Alternative binary firmware images can be found somewhere on the ...@@ -37,7 +37,7 @@ version. Alternative binary firmware images can be found somewhere on the
ForeThought CD-ROM supplied with your adapter by FORE Systems. ForeThought CD-ROM supplied with your adapter by FORE Systems.
You can also get the latest firmware images from FORE Systems at You can also get the latest firmware images from FORE Systems at
http://en.wikipedia.org/wiki/FORE_Systems. Register TACTics Online and go to https://en.wikipedia.org/wiki/FORE_Systems. Register TACTics Online and go to
the 'software updates' pages. The firmware binaries are part of the 'software updates' pages. The firmware binaries are part of
the various ForeThought software distributions. the various ForeThought software distributions.
......
...@@ -36,6 +36,7 @@ ...@@ -36,6 +36,7 @@
#include <asm/types.h> #include <asm/types.h>
#include <error.h> #include <error.h>
#include <errno.h> #include <errno.h>
#include <inttypes.h>
#include <linux/errqueue.h> #include <linux/errqueue.h>
#include <linux/if_ether.h> #include <linux/if_ether.h>
#include <linux/net_tstamp.h> #include <linux/net_tstamp.h>
...@@ -49,7 +50,6 @@ ...@@ -49,7 +50,6 @@
#include <poll.h> #include <poll.h>
#include <stdarg.h> #include <stdarg.h>
#include <stdbool.h> #include <stdbool.h>
#include <stdint.h>
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
#include <string.h> #include <string.h>
...@@ -96,7 +96,7 @@ static void __print_timestamp(const char *name, struct timespec *cur, ...@@ -96,7 +96,7 @@ static void __print_timestamp(const char *name, struct timespec *cur,
prev_ms = (long) ts_prev.tv_sec * 1000 * 1000; prev_ms = (long) ts_prev.tv_sec * 1000 * 1000;
prev_ms += ts_prev.tv_nsec / 1000; prev_ms += ts_prev.tv_nsec / 1000;
fprintf(stderr, " (%+ld us)", cur_ms - prev_ms); fprintf(stderr, " (%+" PRId64 " us)", cur_ms - prev_ms);
} }
ts_prev = *cur; ts_prev = *cur;
......
...@@ -166,7 +166,7 @@ Testing the PPS support ...@@ -166,7 +166,7 @@ Testing the PPS support
In order to test the PPS support even without specific hardware you can use In order to test the PPS support even without specific hardware you can use
the ktimer driver (see the client subsection in the PPS configuration menu) the ktimer driver (see the client subsection in the PPS configuration menu)
and the userland tools provided into Documentaion/pps/ directory. and the userland tools provided in the Documentation/pps/ directory.
Once you have enabled the compilation of ktimer just modprobe it (if Once you have enabled the compilation of ktimer just modprobe it (if
not statically compiled): not statically compiled):
......
ifndef CROSS_COMPILE
# List of programs to build # List of programs to build
hostprogs-$(CONFIG_X86) := disable-tsc-ctxt-sw-stress-test disable-tsc-on-off-stress-test disable-tsc-test hostprogs-$(CONFIG_X86) := disable-tsc-ctxt-sw-stress-test disable-tsc-on-off-stress-test disable-tsc-test
# Tell kbuild to always build the programs # Tell kbuild to always build the programs
...@@ -6,3 +7,4 @@ always := $(hostprogs-y) ...@@ -6,3 +7,4 @@ always := $(hostprogs-y)
HOSTCFLAGS_disable-tsc-ctxt-sw-stress-test.o += -I$(objtree)/usr/include HOSTCFLAGS_disable-tsc-ctxt-sw-stress-test.o += -I$(objtree)/usr/include
HOSTCFLAGS_disable-tsc-on-off-stress-test.o += -I$(objtree)/usr/include HOSTCFLAGS_disable-tsc-on-off-stress-test.o += -I$(objtree)/usr/include
HOSTCFLAGS_disable-tsc-test.o += -I$(objtree)/usr/include HOSTCFLAGS_disable-tsc-test.o += -I$(objtree)/usr/include
endif
...@@ -59,11 +59,20 @@ For all other submissions, choose one of the following procedures: ...@@ -59,11 +59,20 @@ For all other submissions, choose one of the following procedures:
changelog of your submission, as well as the kernel version you wish changelog of your submission, as well as the kernel version you wish
it to be applied to. it to be applied to.
Option 1 is probably the easiest and most common. Options 2 and 3 are more Option 1 is *strongly* preferred, is the easiest and most common. Options 2 and
useful if the patch isn't deemed worthy at the time it is applied to a public 3 are more useful if the patch isn't deemed worthy at the time it is applied to
git tree (for instance, because it deserves more regression testing first). a public git tree (for instance, because it deserves more regression testing
Option 3 is especially useful if the patch needs some special handling to apply first). Option 3 is especially useful if the patch needs some special handling
to an older kernel (e.g., if API's have changed in the meantime). to apply to an older kernel (e.g., if API's have changed in the meantime).
Note that for Option 3, if the patch deviates from the original upstream patch
(for example because it had to be backported) this must be very clearly
documented and justified in the patch description.
The upstream commit ID must be specified with a separate line above the commit
text, like this:
commit <sha1> upstream.
Additionally, some patches submitted via Option 1 may have additional patch Additionally, some patches submitted via Option 1 may have additional patch
prerequisites which can be cherry-picked. This can be specified in the following prerequisites which can be cherry-picked. This can be specified in the following
......
...@@ -108,8 +108,8 @@ of ftrace. Here is a list of some of the key files: ...@@ -108,8 +108,8 @@ of ftrace. Here is a list of some of the key files:
data is read from this file, it is consumed, and data is read from this file, it is consumed, and
will not be read again with a sequential read. The will not be read again with a sequential read. The
"trace" file is static, and if the tracer is not "trace" file is static, and if the tracer is not
adding more data,they will display the same adding more data, it will display the same
information every time they are read. information every time it is read.
trace_options: trace_options:
......
...@@ -465,12 +465,14 @@ Generic Serial driver ...@@ -465,12 +465,14 @@ Generic Serial driver
device, and does not support any kind of device flow control. All that device, and does not support any kind of device flow control. All that
is required of your device is that it has at least one bulk in endpoint, is required of your device is that it has at least one bulk in endpoint,
or one bulk out endpoint. or one bulk out endpoint.
To enable the generic driver to recognize your device, build the driver To enable the generic driver to recognize your device, provide
as a module and load it by the following invocation: echo <vid> <pid> >/sys/bus/usb-serial/drivers/generic/new_id
where the <vid> and <pid> is replaced with the hex representation of your
device's vendor id and product id.
If the driver is compiled as a module you can also provide one id when
loading the module
insmod usbserial vendor=0x#### product=0x#### insmod usbserial vendor=0x#### product=0x####
where the #### is replaced with the hex representation of your device's
vendor id and product id.
This driver has been successfully used to connect to the NetChip USB This driver has been successfully used to connect to the NetChip USB
development board, providing a way to develop USB firmware without development board, providing a way to develop USB firmware without
......
ifndef CROSS_COMPILE
# vdso_test won't build for glibc < 2.16, so disable it # vdso_test won't build for glibc < 2.16, so disable it
# hostprogs-y := vdso_test # hostprogs-y := vdso_test
hostprogs-$(CONFIG_X86) := vdso_standalone_test_x86 hostprogs-$(CONFIG_X86) := vdso_standalone_test_x86
...@@ -13,3 +14,4 @@ HOSTLOADLIBES_vdso_standalone_test_x86 := -nostdlib ...@@ -13,3 +14,4 @@ HOSTLOADLIBES_vdso_standalone_test_x86 := -nostdlib
ifeq ($(CONFIG_X86_32),y) ifeq ($(CONFIG_X86_32),y)
HOSTLOADLIBES_vdso_standalone_test_x86 += -lgcc_s HOSTLOADLIBES_vdso_standalone_test_x86 += -lgcc_s
endif endif
endif
...@@ -116,7 +116,6 @@ COW_MAGIC 0x4f4f4f4d cow_header_v1 arch/um/drivers/ubd_user.c ...@@ -116,7 +116,6 @@ COW_MAGIC 0x4f4f4f4d cow_header_v1 arch/um/drivers/ubd_user.c
I810_CARD_MAGIC 0x5072696E i810_card sound/oss/i810_audio.c I810_CARD_MAGIC 0x5072696E i810_card sound/oss/i810_audio.c
TRIDENT_CARD_MAGIC 0x5072696E trident_card sound/oss/trident.c TRIDENT_CARD_MAGIC 0x5072696E trident_card sound/oss/trident.c
ROUTER_MAGIC 0x524d4157 wan_device [in wanrouter.h pre 3.9] ROUTER_MAGIC 0x524d4157 wan_device [in wanrouter.h pre 3.9]
SCC_MAGIC 0x52696368 gs_port drivers/char/scc.h
SAVEKMSG_MAGIC1 0x53415645 savekmsg arch/*/amiga/config.c SAVEKMSG_MAGIC1 0x53415645 savekmsg arch/*/amiga/config.c
GDA_MAGIC 0x58464552 gda arch/mips/include/asm/sn/gda.h GDA_MAGIC 0x58464552 gda arch/mips/include/asm/sn/gda.h
RED_MAGIC1 0x5a2cf071 (any) mm/slab.c RED_MAGIC1 0x5a2cf071 (any) mm/slab.c
...@@ -138,7 +137,6 @@ KMALLOC_MAGIC 0x87654321 snd_alloc_track sound/core/memory.c ...@@ -138,7 +137,6 @@ KMALLOC_MAGIC 0x87654321 snd_alloc_track sound/core/memory.c
PWC_MAGIC 0x89DC10AB pwc_device drivers/usb/media/pwc.h PWC_MAGIC 0x89DC10AB pwc_device drivers/usb/media/pwc.h
NBD_REPLY_MAGIC 0x96744668 nbd_reply include/linux/nbd.h NBD_REPLY_MAGIC 0x96744668 nbd_reply include/linux/nbd.h
ENI155_MAGIC 0xa54b872d midway_eprom drivers/atm/eni.h ENI155_MAGIC 0xa54b872d midway_eprom drivers/atm/eni.h
SCI_MAGIC 0xbabeface gs_port drivers/char/sh-sci.h
CODA_MAGIC 0xC0DAC0DA coda_file_info include/linux/coda_fs_i.h CODA_MAGIC 0xC0DAC0DA coda_file_info include/linux/coda_fs_i.h
DPMEM_MAGIC 0xc0ffee11 gdt_pci_sram drivers/scsi/gdth.h DPMEM_MAGIC 0xc0ffee11 gdt_pci_sram drivers/scsi/gdth.h
YAM_MAGIC 0xF10A7654 yam_port drivers/net/hamradio/yam.c YAM_MAGIC 0xF10A7654 yam_port drivers/net/hamradio/yam.c
......
...@@ -21,15 +21,25 @@ been permitted to redistribute under separate cover. ...@@ -21,15 +21,25 @@ been permitted to redistribute under separate cover.
To submit firmware to that repository, please send either a git binary To submit firmware to that repository, please send either a git binary
diff or preferably a git pull request to: diff or preferably a git pull request to:
David Woodhouse <dwmw2@infradead.org> linux-firmware@kernel.org
Ben Hutchings <ben@decadent.org.uk> and also cc: to related mailing lists.
Your commit should include an update to the WHENCE file clearly Your commit should include an update to the WHENCE file clearly
identifying the licence under which the firmware is available, and identifying the licence under which the firmware is available, and
that it is redistributable. If the licence is long and involved, it's that it is redistributable. If the licence is long and involved, it's
permitted to include it in a separate file and refer to it from the permitted to include it in a separate file and refer to it from the
WHENCE file. WHENCE file.
And if it were possible, a changelog of the firmware itself.
Ideally, your commit should contain a Signed-Off-By: from someone Ideally, your commit should contain a Signed-Off-By: from someone
authoritative on the licensing of the firmware in question (i.e. from authoritative on the licensing of the firmware in question (i.e. from
within the company that owns the code). within the company that owns the code).
WARNING:
=======
Don't send any "CONFIDENTIALITY STATEMENT" in your e-mail, patch or
request. Otherwise your firmware _will never be accepted_.
Maintainers are really busy, so don't expect a prompt reply.
...@@ -23,6 +23,7 @@ help: ...@@ -23,6 +23,7 @@ help:
@echo ' vm - misc vm tools' @echo ' vm - misc vm tools'
@echo ' x86_energy_perf_policy - Intel energy policy tool' @echo ' x86_energy_perf_policy - Intel energy policy tool'
@echo ' tmon - thermal monitoring and tuning tool' @echo ' tmon - thermal monitoring and tuning tool'
@echo ' freefall - laptop accelerometer program for disk protection'
@echo '' @echo ''
@echo 'You can do:' @echo 'You can do:'
@echo ' $$ make -C tools/ <tool>_install' @echo ' $$ make -C tools/ <tool>_install'
...@@ -72,6 +73,9 @@ turbostat x86_energy_perf_policy: FORCE ...@@ -72,6 +73,9 @@ turbostat x86_energy_perf_policy: FORCE
tmon: FORCE tmon: FORCE
$(call descend,thermal/$@) $(call descend,thermal/$@)
freefall: FORCE
$(call descend,laptop/$@)
acpi_install: acpi_install:
$(call descend,power/$(@:_install=),install) $(call descend,power/$(@:_install=),install)
...@@ -90,10 +94,13 @@ turbostat_install x86_energy_perf_policy_install: ...@@ -90,10 +94,13 @@ turbostat_install x86_energy_perf_policy_install:
tmon_install: tmon_install:
$(call descend,thermal/$(@:_install=),install) $(call descend,thermal/$(@:_install=),install)
freefall_install:
$(call descend,laptop/$(@:_install=),install)
install: acpi_install cgroup_install cpupower_install hv_install firewire_install lguest_install \ install: acpi_install cgroup_install cpupower_install hv_install firewire_install lguest_install \
perf_install selftests_install turbostat_install usb_install \ perf_install selftests_install turbostat_install usb_install \
virtio_install vm_install net_install x86_energy_perf_policy_install \ virtio_install vm_install net_install x86_energy_perf_policy_install \
tmon tmon freefall_install
acpi_clean: acpi_clean:
$(call descend,power/acpi,clean) $(call descend,power/acpi,clean)
...@@ -122,8 +129,11 @@ turbostat_clean x86_energy_perf_policy_clean: ...@@ -122,8 +129,11 @@ turbostat_clean x86_energy_perf_policy_clean:
tmon_clean: tmon_clean:
$(call descend,thermal/tmon,clean) $(call descend,thermal/tmon,clean)
freefall_clean:
$(call descend,laptop/freefall,clean)
clean: acpi_clean cgroup_clean cpupower_clean hv_clean firewire_clean lguest_clean \ clean: acpi_clean cgroup_clean cpupower_clean hv_clean firewire_clean lguest_clean \
perf_clean selftests_clean turbostat_clean usb_clean virtio_clean \ perf_clean selftests_clean turbostat_clean usb_clean virtio_clean \
vm_clean net_clean x86_energy_perf_policy_clean tmon_clean vm_clean net_clean x86_energy_perf_policy_clean tmon_clean freefall_clean
.PHONY: FORCE .PHONY: FORCE
PREFIX ?= /usr
SBINDIR ?= sbin
INSTALL ?= install
CC = $(CROSS_COMPILE)gcc
TARGET = freefall
all: $(TARGET)
%: %.c
$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $<
clean:
$(RM) $(TARGET)
install: freefall
$(INSTALL) -D -m 755 $(TARGET) $(DESTDIR)$(PREFIX)/$(SBINDIR)/$(TARGET)
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment