You've already forked linux-apfs
mirror of
https://github.com/linux-apfs/linux-apfs.git
synced 2026-05-01 15:00:59 -07:00
Merge branches 'release', 'bugzilla-12011', 'bugzilla-12632', 'misc' and 'suspend' into release
This commit is contained in:
@@ -2166,7 +2166,6 @@ D: Initial implementation of VC's, pty's and select()
|
|||||||
|
|
||||||
N: Pavel Machek
|
N: Pavel Machek
|
||||||
E: pavel@ucw.cz
|
E: pavel@ucw.cz
|
||||||
E: pavel@suse.cz
|
|
||||||
D: Softcursor for vga, hypertech cdrom support, vcsa bugfix, nbd
|
D: Softcursor for vga, hypertech cdrom support, vcsa bugfix, nbd
|
||||||
D: sun4/330 port, capabilities for elf, speedup for rm on ext2, USB,
|
D: sun4/330 port, capabilities for elf, speedup for rm on ext2, USB,
|
||||||
D: work on suspend-to-ram/disk, killing duplicates from ioctl32
|
D: work on suspend-to-ram/disk, killing duplicates from ioctl32
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
What: /sys/firmware/memmap/
|
What: /sys/firmware/memmap/
|
||||||
Date: June 2008
|
Date: June 2008
|
||||||
Contact: Bernhard Walle <bwalle@suse.de>
|
Contact: Bernhard Walle <bernhard.walle@gmx.de>
|
||||||
Description:
|
Description:
|
||||||
On all platforms, the firmware provides a memory map which the
|
On all platforms, the firmware provides a memory map which the
|
||||||
kernel reads. The resources from that memory map are registered
|
kernel reads. The resources from that memory map are registered
|
||||||
|
|||||||
@@ -93,7 +93,7 @@ the PCI Express Port Bus driver from loading a service driver.
|
|||||||
|
|
||||||
int pcie_port_service_register(struct pcie_port_service_driver *new)
|
int pcie_port_service_register(struct pcie_port_service_driver *new)
|
||||||
|
|
||||||
This API replaces the Linux Driver Model's pci_module_init API. A
|
This API replaces the Linux Driver Model's pci_register_driver API. A
|
||||||
service driver should always calls pcie_port_service_register at
|
service driver should always calls pcie_port_service_register at
|
||||||
module init. Note that after service driver being loaded, calls
|
module init. Note that after service driver being loaded, calls
|
||||||
such as pci_enable_device(dev) and pci_set_master(dev) are no longer
|
such as pci_enable_device(dev) and pci_set_master(dev) are no longer
|
||||||
|
|||||||
@@ -252,10 +252,8 @@ cgroup file system directories.
|
|||||||
When a task is moved from one cgroup to another, it gets a new
|
When a task is moved from one cgroup to another, it gets a new
|
||||||
css_set pointer - if there's an already existing css_set with the
|
css_set pointer - if there's an already existing css_set with the
|
||||||
desired collection of cgroups then that group is reused, else a new
|
desired collection of cgroups then that group is reused, else a new
|
||||||
css_set is allocated. Note that the current implementation uses a
|
css_set is allocated. The appropriate existing css_set is located by
|
||||||
linear search to locate an appropriate existing css_set, so isn't
|
looking into a hash table.
|
||||||
very efficient. A future version will use a hash table for better
|
|
||||||
performance.
|
|
||||||
|
|
||||||
To allow access from a cgroup to the css_sets (and hence tasks)
|
To allow access from a cgroup to the css_sets (and hence tasks)
|
||||||
that comprise it, a set of cg_cgroup_link objects form a lattice;
|
that comprise it, a set of cg_cgroup_link objects form a lattice;
|
||||||
|
|||||||
@@ -142,7 +142,7 @@ into the rest of the kernel, none in performance critical paths:
|
|||||||
- in fork and exit, to attach and detach a task from its cpuset.
|
- in fork and exit, to attach and detach a task from its cpuset.
|
||||||
- in sched_setaffinity, to mask the requested CPUs by what's
|
- in sched_setaffinity, to mask the requested CPUs by what's
|
||||||
allowed in that tasks cpuset.
|
allowed in that tasks cpuset.
|
||||||
- in sched.c migrate_all_tasks(), to keep migrating tasks within
|
- in sched.c migrate_live_tasks(), to keep migrating tasks within
|
||||||
the CPUs allowed by their cpuset, if possible.
|
the CPUs allowed by their cpuset, if possible.
|
||||||
- in the mbind and set_mempolicy system calls, to mask the requested
|
- in the mbind and set_mempolicy system calls, to mask the requested
|
||||||
Memory Nodes by what's allowed in that tasks cpuset.
|
Memory Nodes by what's allowed in that tasks cpuset.
|
||||||
@@ -175,6 +175,10 @@ files describing that cpuset:
|
|||||||
- mem_exclusive flag: is memory placement exclusive?
|
- mem_exclusive flag: is memory placement exclusive?
|
||||||
- mem_hardwall flag: is memory allocation hardwalled
|
- mem_hardwall flag: is memory allocation hardwalled
|
||||||
- memory_pressure: measure of how much paging pressure in cpuset
|
- memory_pressure: measure of how much paging pressure in cpuset
|
||||||
|
- memory_spread_page flag: if set, spread page cache evenly on allowed nodes
|
||||||
|
- memory_spread_slab flag: if set, spread slab cache evenly on allowed nodes
|
||||||
|
- sched_load_balance flag: if set, load balance within CPUs on that cpuset
|
||||||
|
- sched_relax_domain_level: the searching range when migrating tasks
|
||||||
|
|
||||||
In addition, the root cpuset only has the following file:
|
In addition, the root cpuset only has the following file:
|
||||||
- memory_pressure_enabled flag: compute memory_pressure?
|
- memory_pressure_enabled flag: compute memory_pressure?
|
||||||
@@ -252,7 +256,7 @@ is causing.
|
|||||||
|
|
||||||
This is useful both on tightly managed systems running a wide mix of
|
This is useful both on tightly managed systems running a wide mix of
|
||||||
submitted jobs, which may choose to terminate or re-prioritize jobs that
|
submitted jobs, which may choose to terminate or re-prioritize jobs that
|
||||||
are trying to use more memory than allowed on the nodes assigned them,
|
are trying to use more memory than allowed on the nodes assigned to them,
|
||||||
and with tightly coupled, long running, massively parallel scientific
|
and with tightly coupled, long running, massively parallel scientific
|
||||||
computing jobs that will dramatically fail to meet required performance
|
computing jobs that will dramatically fail to meet required performance
|
||||||
goals if they start to use more memory than allowed to them.
|
goals if they start to use more memory than allowed to them.
|
||||||
@@ -378,7 +382,7 @@ as cpusets and sched_setaffinity.
|
|||||||
The algorithmic cost of load balancing and its impact on key shared
|
The algorithmic cost of load balancing and its impact on key shared
|
||||||
kernel data structures such as the task list increases more than
|
kernel data structures such as the task list increases more than
|
||||||
linearly with the number of CPUs being balanced. So the scheduler
|
linearly with the number of CPUs being balanced. So the scheduler
|
||||||
has support to partition the systems CPUs into a number of sched
|
has support to partition the systems CPUs into a number of sched
|
||||||
domains such that it only load balances within each sched domain.
|
domains such that it only load balances within each sched domain.
|
||||||
Each sched domain covers some subset of the CPUs in the system;
|
Each sched domain covers some subset of the CPUs in the system;
|
||||||
no two sched domains overlap; some CPUs might not be in any sched
|
no two sched domains overlap; some CPUs might not be in any sched
|
||||||
@@ -485,17 +489,22 @@ of CPUs allowed to a cpuset having 'sched_load_balance' enabled.
|
|||||||
The internal kernel cpuset to scheduler interface passes from the
|
The internal kernel cpuset to scheduler interface passes from the
|
||||||
cpuset code to the scheduler code a partition of the load balanced
|
cpuset code to the scheduler code a partition of the load balanced
|
||||||
CPUs in the system. This partition is a set of subsets (represented
|
CPUs in the system. This partition is a set of subsets (represented
|
||||||
as an array of cpumask_t) of CPUs, pairwise disjoint, that cover all
|
as an array of struct cpumask) of CPUs, pairwise disjoint, that cover
|
||||||
the CPUs that must be load balanced.
|
all the CPUs that must be load balanced.
|
||||||
|
|
||||||
Whenever the 'sched_load_balance' flag changes, or CPUs come or go
|
The cpuset code builds a new such partition and passes it to the
|
||||||
from a cpuset with this flag enabled, or a cpuset with this flag
|
scheduler sched domain setup code, to have the sched domains rebuilt
|
||||||
enabled is removed, the cpuset code builds a new such partition and
|
as necessary, whenever:
|
||||||
passes it to the scheduler sched domain setup code, to have the sched
|
- the 'sched_load_balance' flag of a cpuset with non-empty CPUs changes,
|
||||||
domains rebuilt as necessary.
|
- or CPUs come or go from a cpuset with this flag enabled,
|
||||||
|
- or 'sched_relax_domain_level' value of a cpuset with non-empty CPUs
|
||||||
|
and with this flag enabled changes,
|
||||||
|
- or a cpuset with non-empty CPUs and with this flag enabled is removed,
|
||||||
|
- or a cpu is offlined/onlined.
|
||||||
|
|
||||||
This partition exactly defines what sched domains the scheduler should
|
This partition exactly defines what sched domains the scheduler should
|
||||||
setup - one sched domain for each element (cpumask_t) in the partition.
|
setup - one sched domain for each element (struct cpumask) in the
|
||||||
|
partition.
|
||||||
|
|
||||||
The scheduler remembers the currently active sched domain partitions.
|
The scheduler remembers the currently active sched domain partitions.
|
||||||
When the scheduler routine partition_sched_domains() is invoked from
|
When the scheduler routine partition_sched_domains() is invoked from
|
||||||
@@ -559,7 +568,7 @@ domain, the largest value among those is used. Be careful, if one
|
|||||||
requests 0 and others are -1 then 0 is used.
|
requests 0 and others are -1 then 0 is used.
|
||||||
|
|
||||||
Note that modifying this file will have both good and bad effects,
|
Note that modifying this file will have both good and bad effects,
|
||||||
and whether it is acceptable or not will be depend on your situation.
|
and whether it is acceptable or not depends on your situation.
|
||||||
Don't modify this file if you are not sure.
|
Don't modify this file if you are not sure.
|
||||||
|
|
||||||
If your situation is:
|
If your situation is:
|
||||||
@@ -600,19 +609,15 @@ to allocate a page of memory for that task.
|
|||||||
|
|
||||||
If a cpuset has its 'cpus' modified, then each task in that cpuset
|
If a cpuset has its 'cpus' modified, then each task in that cpuset
|
||||||
will have its allowed CPU placement changed immediately. Similarly,
|
will have its allowed CPU placement changed immediately. Similarly,
|
||||||
if a tasks pid is written to a cpusets 'tasks' file, in either its
|
if a tasks pid is written to another cpusets 'tasks' file, then its
|
||||||
current cpuset or another cpuset, then its allowed CPU placement is
|
allowed CPU placement is changed immediately. If such a task had been
|
||||||
changed immediately. If such a task had been bound to some subset
|
bound to some subset of its cpuset using the sched_setaffinity() call,
|
||||||
of its cpuset using the sched_setaffinity() call, the task will be
|
the task will be allowed to run on any CPU allowed in its new cpuset,
|
||||||
allowed to run on any CPU allowed in its new cpuset, negating the
|
negating the effect of the prior sched_setaffinity() call.
|
||||||
affect of the prior sched_setaffinity() call.
|
|
||||||
|
|
||||||
In summary, the memory placement of a task whose cpuset is changed is
|
In summary, the memory placement of a task whose cpuset is changed is
|
||||||
updated by the kernel, on the next allocation of a page for that task,
|
updated by the kernel, on the next allocation of a page for that task,
|
||||||
but the processor placement is not updated, until that tasks pid is
|
and the processor placement is updated immediately.
|
||||||
rewritten to the 'tasks' file of its cpuset. This is done to avoid
|
|
||||||
impacting the scheduler code in the kernel with a check for changes
|
|
||||||
in a tasks processor placement.
|
|
||||||
|
|
||||||
Normally, once a page is allocated (given a physical page
|
Normally, once a page is allocated (given a physical page
|
||||||
of main memory) then that page stays on whatever node it
|
of main memory) then that page stays on whatever node it
|
||||||
@@ -681,10 +686,14 @@ and then start a subshell 'sh' in that cpuset:
|
|||||||
# The next line should display '/Charlie'
|
# The next line should display '/Charlie'
|
||||||
cat /proc/self/cpuset
|
cat /proc/self/cpuset
|
||||||
|
|
||||||
In the future, a C library interface to cpusets will likely be
|
There are ways to query or modify cpusets:
|
||||||
available. For now, the only way to query or modify cpusets is
|
- via the cpuset file system directly, using the various cd, mkdir, echo,
|
||||||
via the cpuset file system, using the various cd, mkdir, echo, cat,
|
cat, rmdir commands from the shell, or their equivalent from C.
|
||||||
rmdir commands from the shell, or their equivalent from C.
|
- via the C library libcpuset.
|
||||||
|
- via the C library libcgroup.
|
||||||
|
(http://sourceforge.net/proects/libcg/)
|
||||||
|
- via the python application cset.
|
||||||
|
(http://developer.novell.com/wiki/index.php/Cpuset)
|
||||||
|
|
||||||
The sched_setaffinity calls can also be done at the shell prompt using
|
The sched_setaffinity calls can also be done at the shell prompt using
|
||||||
SGI's runon or Robert Love's taskset. The mbind and set_mempolicy
|
SGI's runon or Robert Love's taskset. The mbind and set_mempolicy
|
||||||
@@ -756,7 +765,7 @@ mount -t cpuset X /dev/cpuset
|
|||||||
|
|
||||||
is equivalent to
|
is equivalent to
|
||||||
|
|
||||||
mount -t cgroup -ocpuset X /dev/cpuset
|
mount -t cgroup -ocpuset,noprefix X /dev/cpuset
|
||||||
echo "/sbin/cpuset_release_agent" > /dev/cpuset/release_agent
|
echo "/sbin/cpuset_release_agent" > /dev/cpuset/release_agent
|
||||||
|
|
||||||
2.2 Adding/removing cpus
|
2.2 Adding/removing cpus
|
||||||
|
|||||||
@@ -0,0 +1,101 @@
|
|||||||
|
/* Disk protection for HP machines.
|
||||||
|
*
|
||||||
|
* Copyright 2008 Eric Piel
|
||||||
|
* Copyright 2009 Pavel Machek <pavel@suse.cz>
|
||||||
|
*
|
||||||
|
* GPLv2.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
#include <fcntl.h>
|
||||||
|
#include <sys/stat.h>
|
||||||
|
#include <sys/types.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include <stdint.h>
|
||||||
|
#include <errno.h>
|
||||||
|
#include <signal.h>
|
||||||
|
|
||||||
|
void write_int(char *path, int i)
|
||||||
|
{
|
||||||
|
char buf[1024];
|
||||||
|
int fd = open(path, O_RDWR);
|
||||||
|
if (fd < 0) {
|
||||||
|
perror("open");
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
sprintf(buf, "%d", i);
|
||||||
|
if (write(fd, buf, strlen(buf)) != strlen(buf)) {
|
||||||
|
perror("write");
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
close(fd);
|
||||||
|
}
|
||||||
|
|
||||||
|
void set_led(int on)
|
||||||
|
{
|
||||||
|
write_int("/sys/class/leds/hp::hddprotect/brightness", on);
|
||||||
|
}
|
||||||
|
|
||||||
|
void protect(int seconds)
|
||||||
|
{
|
||||||
|
write_int("/sys/block/sda/device/unload_heads", seconds*1000);
|
||||||
|
}
|
||||||
|
|
||||||
|
int on_ac(void)
|
||||||
|
{
|
||||||
|
// /sys/class/power_supply/AC0/online
|
||||||
|
}
|
||||||
|
|
||||||
|
int lid_open(void)
|
||||||
|
{
|
||||||
|
// /proc/acpi/button/lid/LID/state
|
||||||
|
}
|
||||||
|
|
||||||
|
void ignore_me(void)
|
||||||
|
{
|
||||||
|
protect(0);
|
||||||
|
set_led(0);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
int main(int argc, char* argv[])
|
||||||
|
{
|
||||||
|
int fd, ret;
|
||||||
|
|
||||||
|
fd = open("/dev/freefall", O_RDONLY);
|
||||||
|
if (fd < 0) {
|
||||||
|
perror("open");
|
||||||
|
return EXIT_FAILURE;
|
||||||
|
}
|
||||||
|
|
||||||
|
signal(SIGALRM, ignore_me);
|
||||||
|
|
||||||
|
for (;;) {
|
||||||
|
unsigned char count;
|
||||||
|
|
||||||
|
ret = read(fd, &count, sizeof(count));
|
||||||
|
alarm(0);
|
||||||
|
if ((ret == -1) && (errno == EINTR)) {
|
||||||
|
/* Alarm expired, time to unpark the heads */
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ret != sizeof(count)) {
|
||||||
|
perror("read");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
protect(21);
|
||||||
|
set_led(1);
|
||||||
|
if (1 || on_ac() || lid_open()) {
|
||||||
|
alarm(2);
|
||||||
|
} else {
|
||||||
|
alarm(20);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
close(fd);
|
||||||
|
return EXIT_SUCCESS;
|
||||||
|
}
|
||||||
@@ -33,6 +33,14 @@ rate - reports the sampling rate of the accelerometer device in HZ
|
|||||||
This driver also provides an absolute input class device, allowing
|
This driver also provides an absolute input class device, allowing
|
||||||
the laptop to act as a pinball machine-esque joystick.
|
the laptop to act as a pinball machine-esque joystick.
|
||||||
|
|
||||||
|
Another feature of the driver is misc device called "freefall" that
|
||||||
|
acts similar to /dev/rtc and reacts on free-fall interrupts received
|
||||||
|
from the device. It supports blocking operations, poll/select and
|
||||||
|
fasync operation modes. You must read 1 bytes from the device. The
|
||||||
|
result is number of free-fall interrupts since the last successful
|
||||||
|
read (or 255 if number of interrupts would not fit).
|
||||||
|
|
||||||
|
|
||||||
Axes orientation
|
Axes orientation
|
||||||
----------------
|
----------------
|
||||||
|
|
||||||
|
|||||||
@@ -78,12 +78,10 @@ to view your kernel log and look for "mmiotrace has lost events" warning. If
|
|||||||
events were lost, the trace is incomplete. You should enlarge the buffers and
|
events were lost, the trace is incomplete. You should enlarge the buffers and
|
||||||
try again. Buffers are enlarged by first seeing how large the current buffers
|
try again. Buffers are enlarged by first seeing how large the current buffers
|
||||||
are:
|
are:
|
||||||
$ cat /debug/tracing/trace_entries
|
$ cat /debug/tracing/buffer_size_kb
|
||||||
gives you a number. Approximately double this number and write it back, for
|
gives you a number. Approximately double this number and write it back, for
|
||||||
instance:
|
instance:
|
||||||
$ echo 0 > /debug/tracing/tracing_enabled
|
$ echo 128000 > /debug/tracing/buffer_size_kb
|
||||||
$ echo 128000 > /debug/tracing/trace_entries
|
|
||||||
$ echo 1 > /debug/tracing/tracing_enabled
|
|
||||||
Then start again from the top.
|
Then start again from the top.
|
||||||
|
|
||||||
If you are doing a trace for a driver project, e.g. Nouveau, you should also
|
If you are doing a trace for a driver project, e.g. Nouveau, you should also
|
||||||
|
|||||||
+18
-11
@@ -692,6 +692,13 @@ M: kernel@wantstofly.org
|
|||||||
L: linux-arm-kernel@lists.arm.linux.org.uk (subscribers-only)
|
L: linux-arm-kernel@lists.arm.linux.org.uk (subscribers-only)
|
||||||
S: Maintained
|
S: Maintained
|
||||||
|
|
||||||
|
ARM/NUVOTON W90X900 ARM ARCHITECTURE
|
||||||
|
P: Wan ZongShun
|
||||||
|
M: mcuos.com@gmail.com
|
||||||
|
L: linux-arm-kernel@lists.arm.linux.org.uk (subscribers-only)
|
||||||
|
W: http://www.mcuos.com
|
||||||
|
S: Maintained
|
||||||
|
|
||||||
ARPD SUPPORT
|
ARPD SUPPORT
|
||||||
P: Jonathan Layes
|
P: Jonathan Layes
|
||||||
L: netdev@vger.kernel.org
|
L: netdev@vger.kernel.org
|
||||||
@@ -1905,10 +1912,10 @@ W: http://gigaset307x.sourceforge.net/
|
|||||||
S: Maintained
|
S: Maintained
|
||||||
|
|
||||||
HARD DRIVE ACTIVE PROTECTION SYSTEM (HDAPS) DRIVER
|
HARD DRIVE ACTIVE PROTECTION SYSTEM (HDAPS) DRIVER
|
||||||
P: Robert Love
|
P: Frank Seidel
|
||||||
M: rlove@rlove.org
|
M: frank@f-seidel.de
|
||||||
M: linux-kernel@vger.kernel.org
|
L: lm-sensors@lm-sensors.org
|
||||||
W: http://www.kernel.org/pub/linux/kernel/people/rml/hdaps/
|
W: http://www.kernel.org/pub/linux/kernel/people/fseidel/hdaps/
|
||||||
S: Maintained
|
S: Maintained
|
||||||
|
|
||||||
GSPCA FINEPIX SUBDRIVER
|
GSPCA FINEPIX SUBDRIVER
|
||||||
@@ -2001,7 +2008,7 @@ S: Maintained
|
|||||||
|
|
||||||
HIBERNATION (aka Software Suspend, aka swsusp)
|
HIBERNATION (aka Software Suspend, aka swsusp)
|
||||||
P: Pavel Machek
|
P: Pavel Machek
|
||||||
M: pavel@suse.cz
|
M: pavel@ucw.cz
|
||||||
P: Rafael J. Wysocki
|
P: Rafael J. Wysocki
|
||||||
M: rjw@sisk.pl
|
M: rjw@sisk.pl
|
||||||
L: linux-pm@lists.linux-foundation.org
|
L: linux-pm@lists.linux-foundation.org
|
||||||
@@ -3327,8 +3334,8 @@ P: Jeremy Fitzhardinge
|
|||||||
M: jeremy@xensource.com
|
M: jeremy@xensource.com
|
||||||
P: Chris Wright
|
P: Chris Wright
|
||||||
M: chrisw@sous-sol.org
|
M: chrisw@sous-sol.org
|
||||||
P: Zachary Amsden
|
P: Alok Kataria
|
||||||
M: zach@vmware.com
|
M: akataria@vmware.com
|
||||||
P: Rusty Russell
|
P: Rusty Russell
|
||||||
M: rusty@rustcorp.com.au
|
M: rusty@rustcorp.com.au
|
||||||
L: virtualization@lists.osdl.org
|
L: virtualization@lists.osdl.org
|
||||||
@@ -4172,7 +4179,7 @@ SUSPEND TO RAM
|
|||||||
P: Len Brown
|
P: Len Brown
|
||||||
M: len.brown@intel.com
|
M: len.brown@intel.com
|
||||||
P: Pavel Machek
|
P: Pavel Machek
|
||||||
M: pavel@suse.cz
|
M: pavel@ucw.cz
|
||||||
P: Rafael J. Wysocki
|
P: Rafael J. Wysocki
|
||||||
M: rjw@sisk.pl
|
M: rjw@sisk.pl
|
||||||
L: linux-pm@lists.linux-foundation.org
|
L: linux-pm@lists.linux-foundation.org
|
||||||
@@ -4924,11 +4931,11 @@ L: zd1211-devs@lists.sourceforge.net (subscribers-only)
|
|||||||
S: Maintained
|
S: Maintained
|
||||||
|
|
||||||
ZR36067 VIDEO FOR LINUX DRIVER
|
ZR36067 VIDEO FOR LINUX DRIVER
|
||||||
P: Ronald Bultje
|
|
||||||
M: rbultje@ronald.bitfreak.net
|
|
||||||
L: mjpeg-users@lists.sourceforge.net
|
L: mjpeg-users@lists.sourceforge.net
|
||||||
|
L: linux-media@vger.kernel.org
|
||||||
W: http://mjpeg.sourceforge.net/driver-zoran/
|
W: http://mjpeg.sourceforge.net/driver-zoran/
|
||||||
S: Maintained
|
T: Mercurial http://linuxtv.org/hg/v4l-dvb
|
||||||
|
S: Odd Fixes
|
||||||
|
|
||||||
ZS DECSTATION Z85C30 SERIAL DRIVER
|
ZS DECSTATION Z85C30 SERIAL DRIVER
|
||||||
P: Maciej W. Rozycki
|
P: Maciej W. Rozycki
|
||||||
|
|||||||
@@ -389,6 +389,7 @@ PHONY += outputmakefile
|
|||||||
# output directory.
|
# output directory.
|
||||||
outputmakefile:
|
outputmakefile:
|
||||||
ifneq ($(KBUILD_SRC),)
|
ifneq ($(KBUILD_SRC),)
|
||||||
|
$(Q)ln -fsn $(srctree) source
|
||||||
$(Q)$(CONFIG_SHELL) $(srctree)/scripts/mkmakefile \
|
$(Q)$(CONFIG_SHELL) $(srctree)/scripts/mkmakefile \
|
||||||
$(srctree) $(objtree) $(VERSION) $(PATCHLEVEL)
|
$(srctree) $(objtree) $(VERSION) $(PATCHLEVEL)
|
||||||
endif
|
endif
|
||||||
@@ -946,7 +947,6 @@ ifneq ($(KBUILD_SRC),)
|
|||||||
mkdir -p include2; \
|
mkdir -p include2; \
|
||||||
ln -fsn $(srctree)/include/asm-$(SRCARCH) include2/asm; \
|
ln -fsn $(srctree)/include/asm-$(SRCARCH) include2/asm; \
|
||||||
fi
|
fi
|
||||||
ln -fsn $(srctree) source
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# prepare2 creates a makefile if using a separate output directory
|
# prepare2 creates a makefile if using a separate output directory
|
||||||
|
|||||||
@@ -188,7 +188,7 @@ CONFIGURING the kernel:
|
|||||||
values to random values.
|
values to random values.
|
||||||
|
|
||||||
You can find more information on using the Linux kernel config tools
|
You can find more information on using the Linux kernel config tools
|
||||||
in Documentation/kbuild/make-configs.txt.
|
in Documentation/kbuild/kconfig.txt.
|
||||||
|
|
||||||
NOTES on "make config":
|
NOTES on "make config":
|
||||||
- having unnecessary drivers will make the kernel bigger, and can
|
- having unnecessary drivers will make the kernel bigger, and can
|
||||||
|
|||||||
@@ -93,8 +93,8 @@ common_shutdown_1(void *generic_ptr)
|
|||||||
if (cpuid != boot_cpuid) {
|
if (cpuid != boot_cpuid) {
|
||||||
flags |= 0x00040000UL; /* "remain halted" */
|
flags |= 0x00040000UL; /* "remain halted" */
|
||||||
*pflags = flags;
|
*pflags = flags;
|
||||||
cpu_clear(cpuid, cpu_present_map);
|
set_cpu_present(cpuid, false);
|
||||||
cpu_clear(cpuid, cpu_possible_map);
|
set_cpu_possible(cpuid, false);
|
||||||
halt();
|
halt();
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
@@ -120,8 +120,8 @@ common_shutdown_1(void *generic_ptr)
|
|||||||
|
|
||||||
#ifdef CONFIG_SMP
|
#ifdef CONFIG_SMP
|
||||||
/* Wait for the secondaries to halt. */
|
/* Wait for the secondaries to halt. */
|
||||||
cpu_clear(boot_cpuid, cpu_present_map);
|
set_cpu_present(boot_cpuid, false);
|
||||||
cpu_clear(boot_cpuid, cpu_possible_map);
|
set_cpu_possible(boot_cpuid, false);
|
||||||
while (cpus_weight(cpu_present_map))
|
while (cpus_weight(cpu_present_map))
|
||||||
barrier();
|
barrier();
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -120,12 +120,12 @@ void __cpuinit
|
|||||||
smp_callin(void)
|
smp_callin(void)
|
||||||
{
|
{
|
||||||
int cpuid = hard_smp_processor_id();
|
int cpuid = hard_smp_processor_id();
|
||||||
cpumask_t mask = cpu_online_map;
|
|
||||||
|
|
||||||
if (cpu_test_and_set(cpuid, mask)) {
|
if (cpu_online(cpuid)) {
|
||||||
printk("??, cpu 0x%x already present??\n", cpuid);
|
printk("??, cpu 0x%x already present??\n", cpuid);
|
||||||
BUG();
|
BUG();
|
||||||
}
|
}
|
||||||
|
set_cpu_online(cpuid, true);
|
||||||
|
|
||||||
/* Turn on machine checks. */
|
/* Turn on machine checks. */
|
||||||
wrmces(7);
|
wrmces(7);
|
||||||
@@ -436,8 +436,8 @@ setup_smp(void)
|
|||||||
((char *)cpubase + i*hwrpb->processor_size);
|
((char *)cpubase + i*hwrpb->processor_size);
|
||||||
if ((cpu->flags & 0x1cc) == 0x1cc) {
|
if ((cpu->flags & 0x1cc) == 0x1cc) {
|
||||||
smp_num_probed++;
|
smp_num_probed++;
|
||||||
cpu_set(i, cpu_possible_map);
|
set_cpu_possible(i, true);
|
||||||
cpu_set(i, cpu_present_map);
|
set_cpu_present(i, true);
|
||||||
cpu->pal_revision = boot_cpu_palrev;
|
cpu->pal_revision = boot_cpu_palrev;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -470,8 +470,8 @@ smp_prepare_cpus(unsigned int max_cpus)
|
|||||||
|
|
||||||
/* Nothing to do on a UP box, or when told not to. */
|
/* Nothing to do on a UP box, or when told not to. */
|
||||||
if (smp_num_probed == 1 || max_cpus == 0) {
|
if (smp_num_probed == 1 || max_cpus == 0) {
|
||||||
cpu_possible_map = cpumask_of_cpu(boot_cpuid);
|
init_cpu_possible(cpumask_of(boot_cpuid));
|
||||||
cpu_present_map = cpumask_of_cpu(boot_cpuid);
|
init_cpu_present(cpumask_of(boot_cpuid));
|
||||||
printk(KERN_INFO "SMP mode deactivated.\n");
|
printk(KERN_INFO "SMP mode deactivated.\n");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -608,7 +608,7 @@ CONFIG_WATCHDOG_NOWAYOUT=y
|
|||||||
# Watchdog Device Drivers
|
# Watchdog Device Drivers
|
||||||
#
|
#
|
||||||
# CONFIG_SOFT_WATCHDOG is not set
|
# CONFIG_SOFT_WATCHDOG is not set
|
||||||
CONFIG_AT91SAM9_WATCHDOG=y
|
CONFIG_AT91SAM9X_WATCHDOG=y
|
||||||
|
|
||||||
#
|
#
|
||||||
# USB-based Watchdog Cards
|
# USB-based Watchdog Cards
|
||||||
|
|||||||
@@ -700,7 +700,7 @@ CONFIG_WATCHDOG_NOWAYOUT=y
|
|||||||
# Watchdog Device Drivers
|
# Watchdog Device Drivers
|
||||||
#
|
#
|
||||||
# CONFIG_SOFT_WATCHDOG is not set
|
# CONFIG_SOFT_WATCHDOG is not set
|
||||||
CONFIG_AT91SAM9_WATCHDOG=y
|
CONFIG_AT91SAM9X_WATCHDOG=y
|
||||||
|
|
||||||
#
|
#
|
||||||
# USB-based Watchdog Cards
|
# USB-based Watchdog Cards
|
||||||
|
|||||||
@@ -710,7 +710,7 @@ CONFIG_WATCHDOG_NOWAYOUT=y
|
|||||||
# Watchdog Device Drivers
|
# Watchdog Device Drivers
|
||||||
#
|
#
|
||||||
# CONFIG_SOFT_WATCHDOG is not set
|
# CONFIG_SOFT_WATCHDOG is not set
|
||||||
CONFIG_AT91SAM9_WATCHDOG=y
|
CONFIG_AT91SAM9X_WATCHDOG=y
|
||||||
|
|
||||||
#
|
#
|
||||||
# USB-based Watchdog Cards
|
# USB-based Watchdog Cards
|
||||||
|
|||||||
@@ -606,7 +606,7 @@ CONFIG_WATCHDOG_NOWAYOUT=y
|
|||||||
# Watchdog Device Drivers
|
# Watchdog Device Drivers
|
||||||
#
|
#
|
||||||
# CONFIG_SOFT_WATCHDOG is not set
|
# CONFIG_SOFT_WATCHDOG is not set
|
||||||
CONFIG_AT91SAM9_WATCHDOG=y
|
CONFIG_AT91SAM9X_WATCHDOG=y
|
||||||
|
|
||||||
#
|
#
|
||||||
# Sonics Silicon Backplane
|
# Sonics Silicon Backplane
|
||||||
|
|||||||
@@ -727,7 +727,7 @@ CONFIG_WATCHDOG_NOWAYOUT=y
|
|||||||
# Watchdog Device Drivers
|
# Watchdog Device Drivers
|
||||||
#
|
#
|
||||||
# CONFIG_SOFT_WATCHDOG is not set
|
# CONFIG_SOFT_WATCHDOG is not set
|
||||||
# CONFIG_AT91SAM9_WATCHDOG is not set
|
# CONFIG_AT91SAM9X_WATCHDOG is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# USB-based Watchdog Cards
|
# USB-based Watchdog Cards
|
||||||
|
|||||||
@@ -74,9 +74,9 @@ EXPORT_SYMBOL(elf_set_personality);
|
|||||||
*/
|
*/
|
||||||
int arm_elf_read_implies_exec(const struct elf32_hdr *x, int executable_stack)
|
int arm_elf_read_implies_exec(const struct elf32_hdr *x, int executable_stack)
|
||||||
{
|
{
|
||||||
if (executable_stack != EXSTACK_ENABLE_X)
|
if (executable_stack != EXSTACK_DISABLE_X)
|
||||||
return 1;
|
return 1;
|
||||||
if (cpu_architecture() <= CPU_ARCH_ARMv6)
|
if (cpu_architecture() < CPU_ARCH_ARMv6)
|
||||||
return 1;
|
return 1;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -697,7 +697,7 @@ static void __init at91_add_device_rtt(void)
|
|||||||
* Watchdog
|
* Watchdog
|
||||||
* -------------------------------------------------------------------- */
|
* -------------------------------------------------------------------- */
|
||||||
|
|
||||||
#if defined(CONFIG_AT91SAM9_WATCHDOG) || defined(CONFIG_AT91SAM9_WATCHDOG_MODULE)
|
#if defined(CONFIG_AT91SAM9X_WATCHDOG) || defined(CONFIG_AT91SAM9X_WATCHDOG_MODULE)
|
||||||
static struct platform_device at91cap9_wdt_device = {
|
static struct platform_device at91cap9_wdt_device = {
|
||||||
.name = "at91_wdt",
|
.name = "at91_wdt",
|
||||||
.id = -1,
|
.id = -1,
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user