Commit ddd559b1 authored by Russell King's avatar Russell King Committed by Russell King

Merge branch 'devel-stable' into devel

Conflicts:
	MAINTAINERS
	arch/arm/mm/fault.c
parents cf7a2b4f f17a1f06

Too many changes to show.

To preserve performance only 1000 of 1000+ files are displayed.

...@@ -1856,7 +1856,7 @@ E: rfkoenig@immd4.informatik.uni-erlangen.de ...@@ -1856,7 +1856,7 @@ E: rfkoenig@immd4.informatik.uni-erlangen.de
D: The Linux Support Team Erlangen D: The Linux Support Team Erlangen
N: Andreas Koensgen N: Andreas Koensgen
E: ajk@iehk.rwth-aachen.de E: ajk@comnets.uni-bremen.de
D: 6pack driver for AX.25 D: 6pack driver for AX.25
N: Harald Koerfgen N: Harald Koerfgen
...@@ -2006,6 +2006,9 @@ E: paul@laufernet.com ...@@ -2006,6 +2006,9 @@ E: paul@laufernet.com
D: Soundblaster driver fixes, ISAPnP quirk D: Soundblaster driver fixes, ISAPnP quirk
S: California, USA S: California, USA
N: Jonathan Layes
D: ARPD support
N: Tom Lees N: Tom Lees
E: tom@lpsg.demon.co.uk E: tom@lpsg.demon.co.uk
W: http://www.lpsg.demon.co.uk/ W: http://www.lpsg.demon.co.uk/
...@@ -3802,6 +3805,9 @@ S: van Bronckhorststraat 12 ...@@ -3802,6 +3805,9 @@ S: van Bronckhorststraat 12
S: 2612 XV Delft S: 2612 XV Delft
S: The Netherlands S: The Netherlands
N: Thomas Woller
D: CS461x Cirrus Logic sound driver
N: David Woodhouse N: David Woodhouse
E: dwmw2@infradead.org E: dwmw2@infradead.org
D: JFFS2 file system, Memory Technology Device subsystem, D: JFFS2 file system, Memory Technology Device subsystem,
......
...@@ -83,11 +83,12 @@ not detect it missed following items in original chain. ...@@ -83,11 +83,12 @@ not detect it missed following items in original chain.
obj = kmem_cache_alloc(...); obj = kmem_cache_alloc(...);
lock_chain(); // typically a spin_lock() lock_chain(); // typically a spin_lock()
obj->key = key; obj->key = key;
atomic_inc(&obj->refcnt);
/* /*
* we need to make sure obj->key is updated before obj->next * we need to make sure obj->key is updated before obj->next
* or obj->refcnt
*/ */
smp_wmb(); smp_wmb();
atomic_set(&obj->refcnt, 1);
hlist_add_head_rcu(&obj->obj_node, list); hlist_add_head_rcu(&obj->obj_node, list);
unlock_chain(); // typically a spin_unlock() unlock_chain(); // typically a spin_unlock()
...@@ -159,6 +160,10 @@ out: ...@@ -159,6 +160,10 @@ out:
obj = kmem_cache_alloc(cachep); obj = kmem_cache_alloc(cachep);
lock_chain(); // typically a spin_lock() lock_chain(); // typically a spin_lock()
obj->key = key; obj->key = key;
/*
* changes to obj->key must be visible before refcnt one
*/
smp_wmb();
atomic_set(&obj->refcnt, 1); atomic_set(&obj->refcnt, 1);
/* /*
* insert obj in RCU way (readers might be traversing chain) * insert obj in RCU way (readers might be traversing chain)
......
S3C24XX CPUfreq support
=======================
Introduction
------------
The S3C24XX series support a number of power saving systems, such as
the ability to change the core, memory and peripheral operating
frequencies. The core control is exported via the CPUFreq driver
which has a number of different manual or automatic controls over the
rate the core is running at.
There are two forms of the driver depending on the specific CPU and
how the clocks are arranged. The first implementation used as single
PLL to feed the ARM, memory and peripherals via a series of dividers
and muxes and this is the implementation that is documented here. A
newer version where there is a seperate PLL and clock divider for the
ARM core is available as a seperate driver.
Layout
------
The code core manages the CPU specific drivers, any data that they
need to register and the interface to the generic drivers/cpufreq
system. Each CPU registers a driver to control the PLL, clock dividers
and anything else associated with it. Any board that wants to use this
framework needs to supply at least basic details of what is required.
The core registers with drivers/cpufreq at init time if all the data
necessary has been supplied.
CPU support
-----------
The support for each CPU depends on the facilities provided by the
SoC and the driver as each device has different PLL and clock chains
associated with it.
Slow Mode
---------
The SLOW mode where the PLL is turned off altogether and the
system is fed by the external crystal input is currently not
supported.
sysfs
-----
The core code exports extra information via sysfs in the directory
devices/system/cpu/cpu0/arch-freq.
Board Support
-------------
Each board that wants to use the cpufreq code must register some basic
information with the core driver to provide information about what the
board requires and any restrictions being placed on it.
The board needs to supply information about whether it needs the IO bank
timings changing, any maximum frequency limits and information about the
SDRAM refresh rate.
Document Author
---------------
Ben Dooks, Copyright 2009 Simtec Electronics
Licensed under GPLv2
/* /*
* cn_test.c * cn_test.c
* *
* 2004-2005 Copyright (c) Evgeniy Polyakov <johnpol@2ka.mipt.ru> * 2004+ Copyright (c) Evgeniy Polyakov <zbr@ioremap.net>
* All rights reserved. * All rights reserved.
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
...@@ -194,5 +194,5 @@ module_init(cn_test_init); ...@@ -194,5 +194,5 @@ module_init(cn_test_init);
module_exit(cn_test_fini); module_exit(cn_test_fini);
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
MODULE_AUTHOR("Evgeniy Polyakov <johnpol@2ka.mipt.ru>"); MODULE_AUTHOR("Evgeniy Polyakov <zbr@ioremap.net>");
MODULE_DESCRIPTION("Connector's test module"); MODULE_DESCRIPTION("Connector's test module");
/* /*
* ucon.c * ucon.c
* *
* Copyright (c) 2004+ Evgeniy Polyakov <johnpol@2ka.mipt.ru> * Copyright (c) 2004+ Evgeniy Polyakov <zbr@ioremap.net>
* *
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
......
...@@ -207,8 +207,8 @@ Attributes ...@@ -207,8 +207,8 @@ Attributes
~~~~~~~~~~ ~~~~~~~~~~
struct driver_attribute { struct driver_attribute {
struct attribute attr; struct attribute attr;
ssize_t (*show)(struct device_driver *, char * buf, size_t count, loff_t off); ssize_t (*show)(struct device_driver *driver, char *buf);
ssize_t (*store)(struct device_driver *, const char * buf, size_t count, loff_t off); ssize_t (*store)(struct device_driver *, const char * buf, size_t count);
}; };
Device drivers can export attributes via their sysfs directories. Device drivers can export attributes via their sysfs directories.
......
...@@ -23,7 +23,8 @@ interface. ...@@ -23,7 +23,8 @@ interface.
Using sysfs Using sysfs
~~~~~~~~~~~ ~~~~~~~~~~~
sysfs is always compiled in. You can access it by doing: sysfs is always compiled in if CONFIG_SYSFS is defined. You can access
it by doing:
mount -t sysfs sysfs /sys mount -t sysfs sysfs /sys
......
This diff is collapsed.
This is the 6pack-mini-HOWTO, written by This is the 6pack-mini-HOWTO, written by
Andreas Könsgen DG3KQ Andreas Könsgen DG3KQ
Internet: ajk@iehk.rwth-aachen.de Internet: ajk@comnets.uni-bremen.de
AMPR-net: dg3kq@db0pra.ampr.org AMPR-net: dg3kq@db0pra.ampr.org
AX.25: dg3kq@db0ach.#nrw.deu.eu AX.25: dg3kq@db0ach.#nrw.deu.eu
......
...@@ -73,7 +73,7 @@ The remaining CPU time will be used for user input and other tasks. Because ...@@ -73,7 +73,7 @@ The remaining CPU time will be used for user input and other tasks. Because
realtime tasks have explicitly allocated the CPU time they need to perform realtime tasks have explicitly allocated the CPU time they need to perform
their tasks, buffer underruns in the graphics or audio can be eliminated. their tasks, buffer underruns in the graphics or audio can be eliminated.
NOTE: the above example is not fully implemented as of yet (2.6.25). We still NOTE: the above example is not fully implemented yet. We still
lack an EDF scheduler to make non-uniform periods usable. lack an EDF scheduler to make non-uniform periods usable.
...@@ -140,14 +140,15 @@ The other option is: ...@@ -140,14 +140,15 @@ The other option is:
.o CONFIG_CGROUP_SCHED (aka "Basis for grouping tasks" = "Control groups") .o CONFIG_CGROUP_SCHED (aka "Basis for grouping tasks" = "Control groups")
This uses the /cgroup virtual file system and "/cgroup/<cgroup>/cpu.rt_runtime_us" This uses the /cgroup virtual file system and
to control the CPU time reserved for each control group instead. "/cgroup/<cgroup>/cpu.rt_runtime_us" to control the CPU time reserved for each
control group instead.
For more information on working with control groups, you should read For more information on working with control groups, you should read
Documentation/cgroups/cgroups.txt as well. Documentation/cgroups/cgroups.txt as well.
Group settings are checked against the following limits in order to keep the configuration Group settings are checked against the following limits in order to keep the