Merge /spare/repo/linux-2.6/
This commit is contained in:
commit
08217637fe
26
CREDITS
26
CREDITS
|
@ -2211,6 +2211,15 @@ D: OV511 driver
|
||||||
S: (address available on request)
|
S: (address available on request)
|
||||||
S: USA
|
S: USA
|
||||||
|
|
||||||
|
N: Ian McDonald
|
||||||
|
E: iam4@cs.waikato.ac.nz
|
||||||
|
E: imcdnzl@gmail.com
|
||||||
|
W: http://wand.net.nz/~iam4
|
||||||
|
W: http://imcdnzl.blogspot.com
|
||||||
|
D: DCCP, CCID3
|
||||||
|
S: Hamilton
|
||||||
|
S: New Zealand
|
||||||
|
|
||||||
N: Patrick McHardy
|
N: Patrick McHardy
|
||||||
E: kaber@trash.net
|
E: kaber@trash.net
|
||||||
P: 1024D/12155E80 B128 7DE6 FF0A C2B2 48BE AB4C C9D4 964E 1215 5E80
|
P: 1024D/12155E80 B128 7DE6 FF0A C2B2 48BE AB4C C9D4 964E 1215 5E80
|
||||||
|
@ -2246,19 +2255,12 @@ S: D-90453 Nuernberg
|
||||||
S: Germany
|
S: Germany
|
||||||
|
|
||||||
N: Arnaldo Carvalho de Melo
|
N: Arnaldo Carvalho de Melo
|
||||||
E: acme@conectiva.com.br
|
E: acme@mandriva.com
|
||||||
E: acme@kernel.org
|
E: acme@ghostprotocols.net
|
||||||
E: acme@gnu.org
|
W: http://oops.ghostprotocols.net:81/blog/
|
||||||
W: http://bazar2.conectiva.com.br/~acme
|
|
||||||
W: http://advogato.org/person/acme
|
|
||||||
P: 1024D/9224DF01 D5DF E3BB E3C8 BCBB F8AD 841A B6AB 4681 9224 DF01
|
P: 1024D/9224DF01 D5DF E3BB E3C8 BCBB F8AD 841A B6AB 4681 9224 DF01
|
||||||
D: wanrouter hacking
|
D: IPX, LLC, DCCP, cyc2x, wl3501_cs, net/ hacks
|
||||||
D: misc Makefile, Config.in, drivers and network stacks fixes
|
S: Mandriva
|
||||||
D: IPX & LLC network stacks maintainer
|
|
||||||
D: Cyclom 2X synchronous card driver
|
|
||||||
D: wl3501 PCMCIA wireless card driver
|
|
||||||
D: i18n for minicom, net-tools, util-linux, fetchmail, etc
|
|
||||||
S: Conectiva S.A.
|
|
||||||
S: R. Tocantins, 89 - Cristo Rei
|
S: R. Tocantins, 89 - Cristo Rei
|
||||||
S: 80050-430 - Curitiba - Paraná
|
S: 80050-430 - Curitiba - Paraná
|
||||||
S: Brazil
|
S: Brazil
|
||||||
|
|
|
@ -410,7 +410,26 @@ Kernel messages do not have to be terminated with a period.
|
||||||
Printing numbers in parentheses (%d) adds no value and should be avoided.
|
Printing numbers in parentheses (%d) adds no value and should be avoided.
|
||||||
|
|
||||||
|
|
||||||
Chapter 13: References
|
Chapter 13: Allocating memory
|
||||||
|
|
||||||
|
The kernel provides the following general purpose memory allocators:
|
||||||
|
kmalloc(), kzalloc(), kcalloc(), and vmalloc(). Please refer to the API
|
||||||
|
documentation for further information about them.
|
||||||
|
|
||||||
|
The preferred form for passing a size of a struct is the following:
|
||||||
|
|
||||||
|
p = kmalloc(sizeof(*p), ...);
|
||||||
|
|
||||||
|
The alternative form where struct name is spelled out hurts readability and
|
||||||
|
introduces an opportunity for a bug when the pointer variable type is changed
|
||||||
|
but the corresponding sizeof that is passed to a memory allocator is not.
|
||||||
|
|
||||||
|
Casting the return value which is a void pointer is redundant. The conversion
|
||||||
|
from void pointer to any other pointer type is guaranteed by the C programming
|
||||||
|
language.
|
||||||
|
|
||||||
|
|
||||||
|
Chapter 14: References
|
||||||
|
|
||||||
The C Programming Language, Second Edition
|
The C Programming Language, Second Edition
|
||||||
by Brian W. Kernighan and Dennis M. Ritchie.
|
by Brian W. Kernighan and Dennis M. Ritchie.
|
||||||
|
|
|
@ -1105,7 +1105,7 @@ static struct block_device_operations opt_fops = {
|
||||||
</listitem>
|
</listitem>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Function names as strings (__func__).
|
Function names as strings (__FUNCTION__).
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
<listitem>
|
<listitem>
|
||||||
|
|
|
@ -17,7 +17,9 @@ This driver is known to work with the following cards:
|
||||||
* SA P600
|
* SA P600
|
||||||
* SA P800
|
* SA P800
|
||||||
* SA E400
|
* SA E400
|
||||||
* SA E300
|
* SA P400i
|
||||||
|
* SA E200
|
||||||
|
* SA E200i
|
||||||
|
|
||||||
If nodes are not already created in the /dev/cciss directory, run as root:
|
If nodes are not already created in the /dev/cciss directory, run as root:
|
||||||
|
|
||||||
|
|
|
@ -13,6 +13,8 @@ the BIOS on Dell servers (starting from servers sold since 1999), desktops
|
||||||
and notebooks (starting from those sold in 2005).
|
and notebooks (starting from those sold in 2005).
|
||||||
Please go to http://support.dell.com register and you can find info on
|
Please go to http://support.dell.com register and you can find info on
|
||||||
OpenManage and Dell Update packages (DUP).
|
OpenManage and Dell Update packages (DUP).
|
||||||
|
Libsmbios can also be used to update BIOS on Dell systems go to
|
||||||
|
http://linux.dell.com/libsmbios/ for details.
|
||||||
|
|
||||||
Dell_RBU driver supports BIOS update using the monilothic image and packetized
|
Dell_RBU driver supports BIOS update using the monilothic image and packetized
|
||||||
image methods. In case of moniolithic the driver allocates a contiguous chunk
|
image methods. In case of moniolithic the driver allocates a contiguous chunk
|
||||||
|
@ -22,8 +24,8 @@ would place each packet in contiguous physical memory. The driver also
|
||||||
maintains a link list of packets for reading them back.
|
maintains a link list of packets for reading them back.
|
||||||
If the dell_rbu driver is unloaded all the allocated memory is freed.
|
If the dell_rbu driver is unloaded all the allocated memory is freed.
|
||||||
|
|
||||||
The rbu driver needs to have an application which will inform the BIOS to
|
The rbu driver needs to have an application (as mentioned above)which will
|
||||||
enable the update in the next system reboot.
|
inform the BIOS to enable the update in the next system reboot.
|
||||||
|
|
||||||
The user should not unload the rbu driver after downloading the BIOS image
|
The user should not unload the rbu driver after downloading the BIOS image
|
||||||
or updating.
|
or updating.
|
||||||
|
@ -42,9 +44,11 @@ In case of packet mechanism the single memory can be broken in smaller chuks
|
||||||
of contiguous memory and the BIOS image is scattered in these packets.
|
of contiguous memory and the BIOS image is scattered in these packets.
|
||||||
|
|
||||||
By default the driver uses monolithic memory for the update type. This can be
|
By default the driver uses monolithic memory for the update type. This can be
|
||||||
changed to contiguous during the driver load time by specifying the load
|
changed to packets during the driver load time by specifying the load
|
||||||
parameter image_type=packet. This can also be changed later as below
|
parameter image_type=packet. This can also be changed later as below
|
||||||
echo packet > /sys/devices/platform/dell_rbu/image_type
|
echo packet > /sys/devices/platform/dell_rbu/image_type
|
||||||
|
Also echoing either mono ,packet or init in to image_type will free up the
|
||||||
|
memory allocated by the driver.
|
||||||
|
|
||||||
Do the steps below to download the BIOS image.
|
Do the steps below to download the BIOS image.
|
||||||
1) echo 1 > /sys/class/firmware/dell_rbu/loading
|
1) echo 1 > /sys/class/firmware/dell_rbu/loading
|
||||||
|
@ -53,9 +57,13 @@ Do the steps below to download the BIOS image.
|
||||||
|
|
||||||
The /sys/class/firmware/dell_rbu/ entries will remain till the following is
|
The /sys/class/firmware/dell_rbu/ entries will remain till the following is
|
||||||
done.
|
done.
|
||||||
echo -1 > /sys/class/firmware/dell_rbu/loading
|
echo -1 > /sys/class/firmware/dell_rbu/loading.
|
||||||
|
|
||||||
Until this step is completed the drivr cannot be unloaded.
|
Until this step is completed the drivr cannot be unloaded.
|
||||||
|
If an user by accident executes steps 1 and 3 above without executing step 2;
|
||||||
|
it will make the /sys/class/firmware/dell_rbu/ entries to disappear.
|
||||||
|
The entries can be recreated by doing the following
|
||||||
|
echo init > /sys/devices/platform/dell_rbu/image_type
|
||||||
|
NOTE: echoing init in image_type does not change it original value.
|
||||||
|
|
||||||
Also the driver provides /sys/devices/platform/dell_rbu/data readonly file to
|
Also the driver provides /sys/devices/platform/dell_rbu/data readonly file to
|
||||||
read back the image downloaded. This is useful in case of packet update
|
read back the image downloaded. This is useful in case of packet update
|
||||||
|
|
|
@ -55,6 +55,7 @@ aic7*seq.h*
|
||||||
aicasm
|
aicasm
|
||||||
aicdb.h*
|
aicdb.h*
|
||||||
asm
|
asm
|
||||||
|
asm-offsets.*
|
||||||
asm_offsets.*
|
asm_offsets.*
|
||||||
autoconf.h*
|
autoconf.h*
|
||||||
bbootsect
|
bbootsect
|
||||||
|
|
|
@ -17,15 +17,6 @@ Who: Greg Kroah-Hartman <greg@kroah.com>
|
||||||
|
|
||||||
---------------------------
|
---------------------------
|
||||||
|
|
||||||
What: io_remap_page_range() (macro or function)
|
|
||||||
When: September 2005
|
|
||||||
Why: Replaced by io_remap_pfn_range() which allows more memory space
|
|
||||||
addressabilty (by using a pfn) and supports sparc & sparc64
|
|
||||||
iospace as part of the pfn.
|
|
||||||
Who: Randy Dunlap <rddunlap@osdl.org>
|
|
||||||
|
|
||||||
---------------------------
|
|
||||||
|
|
||||||
What: RAW driver (CONFIG_RAW_DRIVER)
|
What: RAW driver (CONFIG_RAW_DRIVER)
|
||||||
When: December 2005
|
When: December 2005
|
||||||
Why: declared obsolete since kernel 2.6.3
|
Why: declared obsolete since kernel 2.6.3
|
||||||
|
|
|
@ -15,7 +15,7 @@ retrieve the data as it becomes available.
|
||||||
|
|
||||||
The format of the data logged into the channel buffers is completely
|
The format of the data logged into the channel buffers is completely
|
||||||
up to the relayfs client; relayfs does however provide hooks which
|
up to the relayfs client; relayfs does however provide hooks which
|
||||||
allow clients to impose some stucture on the buffer data. Nor does
|
allow clients to impose some structure on the buffer data. Nor does
|
||||||
relayfs implement any form of data filtering - this also is left to
|
relayfs implement any form of data filtering - this also is left to
|
||||||
the client. The purpose is to keep relayfs as simple as possible.
|
the client. The purpose is to keep relayfs as simple as possible.
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,194 @@
|
||||||
|
An ad-hoc collection of notes on IA64 MCA and INIT processing. Feel
|
||||||
|
free to update it with notes about any area that is not clear.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
MCA/INIT are completely asynchronous. They can occur at any time, when
|
||||||
|
the OS is in any state. Including when one of the cpus is already
|
||||||
|
holding a spinlock. Trying to get any lock from MCA/INIT state is
|
||||||
|
asking for deadlock. Also the state of structures that are protected
|
||||||
|
by locks is indeterminate, including linked lists.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
The complicated ia64 MCA process. All of this is mandated by Intel's
|
||||||
|
specification for ia64 SAL, error recovery and and unwind, it is not as
|
||||||
|
if we have a choice here.
|
||||||
|
|
||||||
|
* MCA occurs on one cpu, usually due to a double bit memory error.
|
||||||
|
This is the monarch cpu.
|
||||||
|
|
||||||
|
* SAL sends an MCA rendezvous interrupt (which is a normal interrupt)
|
||||||
|
to all the other cpus, the slaves.
|
||||||
|
|
||||||
|
* Slave cpus that receive the MCA interrupt call down into SAL, they
|
||||||
|
end up spinning disabled while the MCA is being serviced.
|
||||||
|
|
||||||
|
* If any slave cpu was already spinning disabled when the MCA occurred
|
||||||
|
then it cannot service the MCA interrupt. SAL waits ~20 seconds then
|
||||||
|
sends an unmaskable INIT event to the slave cpus that have not
|
||||||
|
already rendezvoused.
|
||||||
|
|
||||||
|
* Because MCA/INIT can be delivered at any time, including when the cpu
|
||||||
|
is down in PAL in physical mode, the registers at the time of the
|
||||||
|
event are _completely_ undefined. In particular the MCA/INIT
|
||||||
|
handlers cannot rely on the thread pointer, PAL physical mode can
|
||||||
|
(and does) modify TP. It is allowed to do that as long as it resets
|
||||||
|
TP on return. However MCA/INIT events expose us to these PAL
|
||||||
|
internal TP changes. Hence curr_task().
|
||||||
|
|
||||||
|
* If an MCA/INIT event occurs while the kernel was running (not user
|
||||||
|
space) and the kernel has called PAL then the MCA/INIT handler cannot
|
||||||
|
assume that the kernel stack is in a fit state to be used. Mainly
|
||||||
|
because PAL may or may not maintain the stack pointer internally.
|
||||||
|
Because the MCA/INIT handlers cannot trust the kernel stack, they
|
||||||
|
have to use their own, per-cpu stacks. The MCA/INIT stacks are
|
||||||
|
preformatted with just enough task state to let the relevant handlers
|
||||||
|
do their job.
|
||||||
|
|
||||||
|
* Unlike most other architectures, the ia64 struct task is embedded in
|
||||||
|
the kernel stack[1]. So switching to a new kernel stack means that
|
||||||
|
we switch to a new task as well. Because various bits of the kernel
|
||||||
|
assume that current points into the struct task, switching to a new
|
||||||
|
stack also means a new value for current.
|
||||||
|
|
||||||
|
* Once all slaves have rendezvoused and are spinning disabled, the
|
||||||
|
monarch is entered. The monarch now tries to diagnose the problem
|
||||||
|
and decide if it can recover or not.
|
||||||
|
|
||||||
|
* Part of the monarch's job is to look at the state of all the other
|
||||||
|
tasks. The only way to do that on ia64 is to call the unwinder,
|
||||||
|
as mandated by Intel.
|
||||||
|
|
||||||
|
* The starting point for the unwind depends on whether a task is
|
||||||
|
running or not. That is, whether it is on a cpu or is blocked. The
|
||||||
|
monarch has to determine whether or not a task is on a cpu before it
|
||||||
|
knows how to start unwinding it. The tasks that received an MCA or
|
||||||
|
INIT event are no longer running, they have been converted to blocked
|
||||||
|
tasks. But (and its a big but), the cpus that received the MCA
|
||||||
|
rendezvous interrupt are still running on their normal kernel stacks!
|
||||||
|
|
||||||
|
* To distinguish between these two cases, the monarch must know which
|
||||||
|
tasks are on a cpu and which are not. Hence each slave cpu that
|
||||||
|
switches to an MCA/INIT stack, registers its new stack using
|
||||||
|
set_curr_task(), so the monarch can tell that the _original_ task is
|
||||||
|
no longer running on that cpu. That gives us a decent chance of
|
||||||
|
getting a valid backtrace of the _original_ task.
|
||||||
|
|
||||||
|
* MCA/INIT can be nested, to a depth of 2 on any cpu. In the case of a
|
||||||
|
nested error, we want diagnostics on the MCA/INIT handler that
|
||||||
|
failed, not on the task that was originally running. Again this
|
||||||
|
requires set_curr_task() so the MCA/INIT handlers can register their
|
||||||
|
own stack as running on that cpu. Then a recursive error gets a
|
||||||
|
trace of the failing handler's "task".
|
||||||
|
|
||||||
|
[1] My (Keith Owens) original design called for ia64 to separate its
|
||||||
|
struct task and the kernel stacks. Then the MCA/INIT data would be
|
||||||
|
chained stacks like i386 interrupt stacks. But that required
|
||||||
|
radical surgery on the rest of ia64, plus extra hard wired TLB
|
||||||
|
entries with its associated performance degradation. David
|
||||||
|
Mosberger vetoed that approach. Which meant that separate kernel
|
||||||
|
stacks meant separate "tasks" for the MCA/INIT handlers.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
INIT is less complicated than MCA. Pressing the nmi button or using
|
||||||
|
the equivalent command on the management console sends INIT to all
|
||||||
|
cpus. SAL picks one one of the cpus as the monarch and the rest are
|
||||||
|
slaves. All the OS INIT handlers are entered at approximately the same
|
||||||
|
time. The OS monarch prints the state of all tasks and returns, after
|
||||||
|
which the slaves return and the system resumes.
|
||||||
|
|
||||||
|
At least that is what is supposed to happen. Alas there are broken
|
||||||
|
versions of SAL out there. Some drive all the cpus as monarchs. Some
|
||||||
|
drive them all as slaves. Some drive one cpu as monarch, wait for that
|
||||||
|
cpu to return from the OS then drive the rest as slaves. Some versions
|
||||||
|
of SAL cannot even cope with returning from the OS, they spin inside
|
||||||
|
SAL on resume. The OS INIT code has workarounds for some of these
|
||||||
|
broken SAL symptoms, but some simply cannot be fixed from the OS side.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
The scheduler hooks used by ia64 (curr_task, set_curr_task) are layer
|
||||||
|
violations. Unfortunately MCA/INIT start off as massive layer
|
||||||
|
violations (can occur at _any_ time) and they build from there.
|
||||||
|
|
||||||
|
At least ia64 makes an attempt at recovering from hardware errors, but
|
||||||
|
it is a difficult problem because of the asynchronous nature of these
|
||||||
|
errors. When processing an unmaskable interrupt we sometimes need
|
||||||
|
special code to cope with our inability to take any locks.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
How is ia64 MCA/INIT different from x86 NMI?
|
||||||
|
|
||||||
|
* x86 NMI typically gets delivered to one cpu. MCA/INIT gets sent to
|
||||||
|
all cpus.
|
||||||
|
|
||||||
|
* x86 NMI cannot be nested. MCA/INIT can be nested, to a depth of 2
|
||||||
|
per cpu.
|
||||||
|
|
||||||
|
* x86 has a separate struct task which points to one of multiple kernel
|
||||||
|
stacks. ia64 has the struct task embedded in the single kernel
|
||||||
|
stack, so switching stack means switching task.
|
||||||
|
|
||||||
|
* x86 does not call the BIOS so the NMI handler does not have to worry
|
||||||
|
about any registers having changed. MCA/INIT can occur while the cpu
|
||||||
|
is in PAL in physical mode, with undefined registers and an undefined
|
||||||
|
kernel stack.
|
||||||
|
|
||||||
|
* i386 backtrace is not very sensitive to whether a process is running
|
||||||
|
or not. ia64 unwind is very, very sensitive to whether a process is
|
||||||
|
running or not.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
What happens when MCA/INIT is delivered what a cpu is running user
|
||||||
|
space code?
|
||||||
|
|
||||||
|
The user mode registers are stored in the RSE area of the MCA/INIT on
|
||||||
|
entry to the OS and are restored from there on return to SAL, so user
|
||||||
|
mode registers are preserved across a recoverable MCA/INIT. Since the
|
||||||
|
OS has no idea what unwind data is available for the user space stack,
|
||||||
|
MCA/INIT never tries to backtrace user space. Which means that the OS
|
||||||
|
does not bother making the user space process look like a blocked task,
|
||||||
|
i.e. the OS does not copy pt_regs and switch_stack to the user space
|
||||||
|
stack. Also the OS has no idea how big the user space RSE and memory
|
||||||
|
stacks are, which makes it too risky to copy the saved state to a user
|
||||||
|
mode stack.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
How do we get a backtrace on the tasks that were running when MCA/INIT
|
||||||
|
was delivered?
|
||||||
|
|
||||||
|
mca.c:::ia64_mca_modify_original_stack(). That identifies and
|
||||||
|
verifies the original kernel stack, copies the dirty registers from
|
||||||
|
the MCA/INIT stack's RSE to the original stack's RSE, copies the
|
||||||
|
skeleton struct pt_regs and switch_stack to the original stack, fills
|
||||||
|
in the skeleton structures from the PAL minstate area and updates the
|
||||||
|
original stack's thread.ksp. That makes the original stack look
|
||||||
|
exactly like any other blocked task, i.e. it now appears to be
|
||||||
|
sleeping. To get a backtrace, just start with thread.ksp for the
|
||||||
|
original task and unwind like any other sleeping task.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
How do we identify the tasks that were running when MCA/INIT was
|
||||||
|
delivered?
|
||||||
|
|
||||||
|
If the previous task has been verified and converted to a blocked
|
||||||
|
state, then sos->prev_task on the MCA/INIT stack is updated to point to
|
||||||
|
the previous task. You can look at that field in dumps or debuggers.
|
||||||
|
To help distinguish between the handler and the original tasks,
|
||||||
|
handlers have _TIF_MCA_INIT set in thread_info.flags.
|
||||||
|
|
||||||
|
The sos data is always in the MCA/INIT handler stack, at offset
|
||||||
|
MCA_SOS_OFFSET. You can get that value from mca_asm.h or calculate it
|
||||||
|
as KERNEL_STACK_SIZE - sizeof(struct pt_regs) - sizeof(struct
|
||||||
|
ia64_sal_os_state), with 16 byte alignment for all structures.
|
||||||
|
|
||||||
|
Also the comm field of the MCA/INIT task is modified to include the pid
|
||||||
|
of the original task, for humans to use. For example, a comm field of
|
||||||
|
'MCA 12159' means that pid 12159 was running when the MCA was
|
||||||
|
delivered.
|
|
@ -95,6 +95,11 @@ SETUP
|
||||||
hence have memory less than 4GB.
|
hence have memory less than 4GB.
|
||||||
iii) Specify "irqpoll" as command line parameter. This reduces driver
|
iii) Specify "irqpoll" as command line parameter. This reduces driver
|
||||||
initialization failures in second kernel due to shared interrupts.
|
initialization failures in second kernel due to shared interrupts.
|
||||||
|
iv) <root-dev> needs to be specified in a format corresponding to
|
||||||
|
the root device name in the output of mount command.
|
||||||
|
v) If you have built the drivers required to mount root file
|
||||||
|
system as modules in <second-kernel>, then, specify
|
||||||
|
--initrd=<initrd-for-second-kernel>.
|
||||||
|
|
||||||
5) System reboots into the second kernel when a panic occurs. A module can be
|
5) System reboots into the second kernel when a panic occurs. A module can be
|
||||||
written to force the panic or "ALT-SysRq-c" can be used initiate a crash
|
written to force the panic or "ALT-SysRq-c" can be used initiate a crash
|
||||||
|
|
|
@ -205,8 +205,8 @@ Phone: 701-234-7556
|
||||||
Tainted kernels:
|
Tainted kernels:
|
||||||
|
|
||||||
Some oops reports contain the string 'Tainted: ' after the program
|
Some oops reports contain the string 'Tainted: ' after the program
|
||||||
counter, this indicates that the kernel has been tainted by some
|
counter. This indicates that the kernel has been tainted by some
|
||||||
mechanism. The string is followed by a series of position sensitive
|
mechanism. The string is followed by a series of position-sensitive
|
||||||
characters, each representing a particular tainted value.
|
characters, each representing a particular tainted value.
|
||||||
|
|
||||||
1: 'G' if all modules loaded have a GPL or compatible license, 'P' if
|
1: 'G' if all modules loaded have a GPL or compatible license, 'P' if
|
||||||
|
@ -214,7 +214,7 @@ characters, each representing a particular tainted value.
|
||||||
MODULE_LICENSE or with a MODULE_LICENSE that is not recognised by
|
MODULE_LICENSE or with a MODULE_LICENSE that is not recognised by
|
||||||
insmod as GPL compatible are assumed to be proprietary.
|
insmod as GPL compatible are assumed to be proprietary.
|
||||||
|
|
||||||
2: 'F' if any module was force loaded by insmod -f, ' ' if all
|
2: 'F' if any module was force loaded by "insmod -f", ' ' if all
|
||||||
modules were loaded normally.
|
modules were loaded normally.
|
||||||
|
|
||||||
3: 'S' if the oops occurred on an SMP kernel running on hardware that
|
3: 'S' if the oops occurred on an SMP kernel running on hardware that
|
||||||
|
@ -222,8 +222,17 @@ characters, each representing a particular tainted value.
|
||||||
Currently this occurs only on various Athlons that are not
|
Currently this occurs only on various Athlons that are not
|
||||||
SMP capable.
|
SMP capable.
|
||||||
|
|
||||||
|
4: 'R' if a module was force unloaded by "rmmod -f", ' ' if all
|
||||||
|
modules were unloaded normally.
|
||||||
|
|
||||||
|
5: 'M' if any processor has reported a Machine Check Exception,
|
||||||
|
' ' if no Machine Check Exceptions have occurred.
|
||||||
|
|
||||||
|
6: 'B' if a page-release function has found a bad page reference or
|
||||||
|
some unexpected page flags.
|
||||||
|
|
||||||
The primary reason for the 'Tainted: ' string is to tell kernel
|
The primary reason for the 'Tainted: ' string is to tell kernel
|
||||||
debuggers if this is a clean kernel or if anything unusual has
|
debuggers if this is a clean kernel or if anything unusual has
|
||||||
occurred. Tainting is permanent, even if an offending module is
|
occurred. Tainting is permanent: even if an offending module is
|
||||||
unloading the tainted value remains to indicate that the kernel is not
|
unloaded, the tainted value remains to indicate that the kernel is not
|
||||||
trustworthy.
|
trustworthy.
|
||||||
|
|
|
@ -38,6 +38,12 @@ system the associated daemon will exit gracefully.
|
||||||
|
|
||||||
Driver Interface -- OBSOLETE, DO NOT USE!
|
Driver Interface -- OBSOLETE, DO NOT USE!
|
||||||
----------------*************************
|
----------------*************************
|
||||||
|
|
||||||
|
Note: pm_register(), pm_access(), pm_dev_idle() and friends are
|
||||||
|
obsolete. Please do not use them. Instead you should properly hook
|
||||||
|
your driver into the driver model, and use its suspend()/resume()
|
||||||
|
callbacks to do this kind of stuff.
|
||||||
|
|
||||||
If you are writing a new driver or maintaining an old driver, it
|
If you are writing a new driver or maintaining an old driver, it
|
||||||
should include power management support. Without power management
|
should include power management support. Without power management
|
||||||
support, a single driver may prevent a system with power management
|
support, a single driver may prevent a system with power management
|
||||||
|
|
|
@ -75,7 +75,7 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.
|
||||||
adsp_map - PCM device number maps assigned to the 2st OSS device.
|
adsp_map - PCM device number maps assigned to the 2st OSS device.
|
||||||
- Default: 1
|
- Default: 1
|
||||||
nonblock_open
|
nonblock_open
|
||||||
- Don't block opening busy PCM devices.
|
- Don't block opening busy PCM devices. Default: 1
|
||||||
|
|
||||||
For example, when dsp_map=2, /dev/dsp will be mapped to PCM #2 of
|
For example, when dsp_map=2, /dev/dsp will be mapped to PCM #2 of
|
||||||
the card #0. Similarly, when adsp_map=0, /dev/adsp will be mapped
|
the card #0. Similarly, when adsp_map=0, /dev/adsp will be mapped
|
||||||
|
@ -148,6 +148,16 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.
|
||||||
Module supports up to 8 cards. This module does not support autoprobe
|
Module supports up to 8 cards. This module does not support autoprobe
|
||||||
thus main port must be specified!!! Other ports are optional.
|
thus main port must be specified!!! Other ports are optional.
|
||||||
|
|
||||||
|
Module snd-ad1889
|
||||||
|
-----------------
|
||||||
|
|
||||||
|
Module for Analog Devices AD1889 chips.
|
||||||
|
|
||||||
|
ac97_quirk - AC'97 workaround for strange hardware
|
||||||
|
See the description of intel8x0 module for details.
|
||||||
|
|
||||||
|
This module supports up to 8 cards.
|
||||||
|
|
||||||
Module snd-ali5451
|
Module snd-ali5451
|
||||||
------------------
|
------------------
|
||||||
|
|
||||||
|
@ -189,15 +199,20 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.
|
||||||
Module snd-atiixp
|
Module snd-atiixp
|
||||||
-----------------
|
-----------------
|
||||||
|
|
||||||
Module for ATI IXP 150/200/250 AC97 controllers.
|
Module for ATI IXP 150/200/250/400 AC97 controllers.
|
||||||
|
|
||||||
ac97_clock - AC'97 clock (defalut = 48000)
|
ac97_clock - AC'97 clock (default = 48000)
|
||||||
ac97_quirk - AC'97 workaround for strange hardware
|
ac97_quirk - AC'97 workaround for strange hardware
|
||||||
See the description of intel8x0 module for details.
|
See "AC97 Quirk Option" section below.
|
||||||
spdif_aclink - S/PDIF transfer over AC-link (default = 1)
|
spdif_aclink - S/PDIF transfer over AC-link (default = 1)
|
||||||
|
|
||||||
This module supports up to 8 cards and autoprobe.
|
This module supports up to 8 cards and autoprobe.
|
||||||
|
|
||||||
|
ATI IXP has two different methods to control SPDIF output. One is
|
||||||
|
over AC-link and another is over the "direct" SPDIF output. The
|
||||||
|
implementation depends on the motherboard, and you'll need to
|
||||||
|
choose the correct one via spdif_aclink module option.
|
||||||
|
|
||||||
Module snd-atiixp-modem
|
Module snd-atiixp-modem
|
||||||
-----------------------
|
-----------------------
|
||||||
|
|
||||||
|
@ -230,7 +245,7 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.
|
||||||
The hardware EQ hardware and SPDIF is only present in the Vortex2 and
|
The hardware EQ hardware and SPDIF is only present in the Vortex2 and
|
||||||
Advantage.
|
Advantage.
|
||||||
|
|
||||||
Note: Some ALSA mixer applicactions don't handle the SPDIF samplerate
|
Note: Some ALSA mixer applications don't handle the SPDIF sample rate
|
||||||
control correctly. If you have problems regarding this, try
|
control correctly. If you have problems regarding this, try
|
||||||
another ALSA compliant mixer (alsamixer works).
|
another ALSA compliant mixer (alsamixer works).
|
||||||
|
|
||||||
|
@ -302,7 +317,7 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.
|
||||||
|
|
||||||
mpu_port - 0x300,0x310,0x320,0x330, 0 = disable (default)
|
mpu_port - 0x300,0x310,0x320,0x330, 0 = disable (default)
|
||||||
fm_port - 0x388 (default), 0 = disable (default)
|
fm_port - 0x388 (default), 0 = disable (default)
|
||||||
soft_ac3 - Sofware-conversion of raw SPDIF packets (model 033 only)
|
soft_ac3 - Software-conversion of raw SPDIF packets (model 033 only)
|
||||||
(default = 1)
|
(default = 1)
|
||||||
joystick_port - Joystick port address (0 = disable, 1 = auto-detect)
|
joystick_port - Joystick port address (0 = disable, 1 = auto-detect)
|
||||||
|
|
||||||
|
@ -384,7 +399,7 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.
|
||||||
Module for PCI sound cards based on CS4610/CS4612/CS4614/CS4615/CS4622/
|
Module for PCI sound cards based on CS4610/CS4612/CS4614/CS4615/CS4622/
|
||||||
CS4624/CS4630/CS4280 PCI chips.
|
CS4624/CS4630/CS4280 PCI chips.
|
||||||
|
|
||||||
external_amp - Force to enable external amplifer.
|
external_amp - Force to enable external amplifier.
|
||||||
thinkpad - Force to enable Thinkpad's CLKRUN control.
|
thinkpad - Force to enable Thinkpad's CLKRUN control.
|
||||||
mmap_valid - Support OSS mmap mode (default = 0).
|
mmap_valid - Support OSS mmap mode (default = 0).
|
||||||
|
|
||||||
|
@ -620,7 +635,7 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.
|
||||||
VIA VT8251/VT8237A
|
VIA VT8251/VT8237A
|
||||||
|
|
||||||
model - force the model name
|
model - force the model name
|
||||||
position_fix - Fix DMA pointer (0 = FIFO size, 1 = none, 2 = POSBUF)
|
position_fix - Fix DMA pointer (0 = auto, 1 = none, 2 = POSBUF, 3 = FIFO size)
|
||||||
|
|
||||||
Module supports up to 8 cards.
|
Module supports up to 8 cards.
|
||||||
|
|
||||||
|
@ -656,6 +671,11 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.
|
||||||
allout 5-jack in back, 2-jack in front, SPDIF out
|
allout 5-jack in back, 2-jack in front, SPDIF out
|
||||||
auto auto-config reading BIOS (default)
|
auto auto-config reading BIOS (default)
|
||||||
|
|
||||||
|
If the default configuration doesn't work and one of the above
|
||||||
|
matches with your device, report it together with the PCI
|
||||||
|
subsystem ID (output of "lspci -nv") to ALSA BTS or alsa-devel
|
||||||
|
ML (see the section "Links and Addresses").
|
||||||
|
|
||||||
Note 2: If you get click noises on output, try the module option
|
Note 2: If you get click noises on output, try the module option
|
||||||
position_fix=1 or 2. position_fix=1 will use the SD_LPIB
|
position_fix=1 or 2. position_fix=1 will use the SD_LPIB
|
||||||
register value without FIFO size correction as the current
|
register value without FIFO size correction as the current
|
||||||
|
@ -783,20 +803,13 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.
|
||||||
|
|
||||||
ac97_clock - AC'97 codec clock base (0 = auto-detect)
|
ac97_clock - AC'97 codec clock base (0 = auto-detect)
|
||||||
ac97_quirk - AC'97 workaround for strange hardware
|
ac97_quirk - AC'97 workaround for strange hardware
|
||||||
The following strings are accepted:
|
See "AC97 Quirk Option" section below.
|
||||||
default = don't override the default setting
|
|
||||||
disable = disable the quirk
|
|
||||||
hp_only = use headphone control as master
|
|
||||||
swap_hp = swap headphone and master controls
|
|
||||||
swap_surround = swap master and surround controls
|
|
||||||
ad_sharing = for AD1985, turn on OMS bit and use headphone
|
|
||||||
alc_jack = for ALC65x, turn on the jack sense mode
|
|
||||||
inv_eapd = inverted EAPD implementation
|
|
||||||
mute_led = bind EAPD bit for turning on/off mute LED
|
|
||||||
For backward compatibility, the corresponding integer
|
|
||||||
value -1, 0, ... are accepted, too.
|
|
||||||
buggy_irq - Enable workaround for buggy interrupts on some
|
buggy_irq - Enable workaround for buggy interrupts on some
|
||||||
motherboards (default off)
|
motherboards (default yes on nForce chips,
|
||||||
|
otherwise off)
|
||||||
|
buggy_semaphore - Enable workaround for hardwares with buggy
|
||||||
|
semaphores (e.g. on some ASUS laptops)
|
||||||
|
(default off)
|
||||||
|
|
||||||
Module supports autoprobe and multiple bus-master chips (max 8).
|
Module supports autoprobe and multiple bus-master chips (max 8).
|
||||||
|
|
||||||
|
@ -808,13 +821,6 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.
|
||||||
motherboard has these devices, use the ns558 or snd-mpu401
|
motherboard has these devices, use the ns558 or snd-mpu401
|
||||||
modules, respectively.
|
modules, respectively.
|
||||||
|
|
||||||
The ac97_quirk option is used to enable/override the workaround
|
|
||||||
for specific devices. Some hardware have swapped output pins
|
|
||||||
between Master and Headphone, or Surround. The driver provides
|
|
||||||
the auto-detection of known problematic devices, but some might
|
|
||||||
be unknown or wrongly detected. In such a case, pass the proper
|
|
||||||
value with this option.
|
|
||||||
|
|
||||||
The power-management is supported.
|
The power-management is supported.
|
||||||
|
|
||||||
Module snd-intel8x0m
|
Module snd-intel8x0m
|
||||||
|
@ -966,7 +972,7 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.
|
||||||
with machines with other (most likely CS423x or OPL3SAx) chips,
|
with machines with other (most likely CS423x or OPL3SAx) chips,
|
||||||
even though the device is detected in lspci. In such a case, try
|
even though the device is detected in lspci. In such a case, try
|
||||||
other drivers, e.g. snd-cs4232 or snd-opl3sa2. Some has ISA-PnP
|
other drivers, e.g. snd-cs4232 or snd-opl3sa2. Some has ISA-PnP
|
||||||
but some doesn't have ISA PnP. You'll need to speicfy isapnp=0
|
but some doesn't have ISA PnP. You'll need to specify isapnp=0
|
||||||
and proper hardware parameters in the case without ISA PnP.
|
and proper hardware parameters in the case without ISA PnP.
|
||||||
|
|
||||||
Note: some laptops need a workaround for AC97 RESET. For the
|
Note: some laptops need a workaround for AC97 RESET. For the
|
||||||
|
@ -1302,7 +1308,7 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.
|
||||||
channels
|
channels
|
||||||
[VIA8233/C, 8235, 8237 only]
|
[VIA8233/C, 8235, 8237 only]
|
||||||
ac97_quirk - AC'97 workaround for strange hardware
|
ac97_quirk - AC'97 workaround for strange hardware
|
||||||
See the description of intel8x0 module for details.
|
See "AC97 Quirk Option" section below.
|
||||||
|
|
||||||
Module supports autoprobe and multiple bus-master chips (max 8).
|
Module supports autoprobe and multiple bus-master chips (max 8).
|
||||||
|
|
||||||
|
@ -1327,16 +1333,17 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.
|
||||||
"lspci -nv").
|
"lspci -nv").
|
||||||
If dxs_support=5 does not work, try dxs_support=4; if it
|
If dxs_support=5 does not work, try dxs_support=4; if it
|
||||||
doesn't work too, try dxs_support=1. (dxs_support=1 is
|
doesn't work too, try dxs_support=1. (dxs_support=1 is
|
||||||
usually for old motherboards. The correct implementated
|
usually for old motherboards. The correct implemented
|
||||||
board should work with 4 or 5.) If it still doesn't
|
board should work with 4 or 5.) If it still doesn't
|
||||||
work and the default setting is ok, dxs_support=3 is the
|
work and the default setting is ok, dxs_support=3 is the
|
||||||
right choice. If the default setting doesn't work at all,
|
right choice. If the default setting doesn't work at all,
|
||||||
try dxs_support=2 to disable the DXS channels.
|
try dxs_support=2 to disable the DXS channels.
|
||||||
In any cases, please let us know the result and the
|
In any cases, please let us know the result and the
|
||||||
subsystem vendor/device ids.
|
subsystem vendor/device ids. See "Links and Addresses"
|
||||||
|
below.
|
||||||
|
|
||||||
Note: for the MPU401 on VIA823x, use snd-mpu401 driver
|
Note: for the MPU401 on VIA823x, use snd-mpu401 driver
|
||||||
additonally. The mpu_port option is for VIA686 chips only.
|
additionally. The mpu_port option is for VIA686 chips only.
|
||||||
|
|
||||||
Module snd-via82xx-modem
|
Module snd-via82xx-modem
|
||||||
------------------------
|
------------------------
|
||||||
|
@ -1398,8 +1405,10 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.
|
||||||
Module supports up to 8 cards. The module is compiled only when
|
Module supports up to 8 cards. The module is compiled only when
|
||||||
PCMCIA is supported on kernel.
|
PCMCIA is supported on kernel.
|
||||||
|
|
||||||
To activate the driver via the card manager, you'll need to set
|
With the older 2.6.x kernel, to activate the driver via the card
|
||||||
up /etc/pcmcia/vxpocket.conf. See the sound/pcmcia/vx/vxpocket.c.
|
manager, you'll need to set up /etc/pcmcia/vxpocket.conf. See the
|
||||||
|
sound/pcmcia/vx/vxpocket.c. 2.6.13 or later kernel requires no
|
||||||
|
longer require a config file.
|
||||||
|
|
||||||
When the driver is compiled as a module and the hotplug firmware
|
When the driver is compiled as a module and the hotplug firmware
|
||||||
is supported, the firmware data is loaded via hotplug automatically.
|
is supported, the firmware data is loaded via hotplug automatically.
|
||||||
|
@ -1411,6 +1420,9 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.
|
||||||
|
|
||||||
Note: the driver is build only when CONFIG_ISA is set.
|
Note: the driver is build only when CONFIG_ISA is set.
|
||||||
|
|
||||||
|
Note2: snd-vxp440 driver is merged to snd-vxpocket driver since
|
||||||
|
ALSA 1.0.10.
|
||||||
|
|
||||||
Module snd-ymfpci
|
Module snd-ymfpci
|
||||||
-----------------
|
-----------------
|
||||||
|
|
||||||
|
@ -1436,6 +1448,37 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.
|
||||||
Note: the driver is build only when CONFIG_ISA is set.
|
Note: the driver is build only when CONFIG_ISA is set.
|
||||||
|
|
||||||
|
|
||||||
|
AC97 Quirk Option
|
||||||
|
=================
|
||||||
|
|
||||||
|
The ac97_quirk option is used to enable/override the workaround for
|
||||||
|
specific devices on drivers for on-board AC'97 controllers like
|
||||||
|
snd-intel8x0. Some hardware have swapped output pins between Master
|
||||||
|
and Headphone, or Surround (thanks to confusion of AC'97
|
||||||
|
specifications from version to version :-)
|
||||||
|
|
||||||
|
The driver provides the auto-detection of known problematic devices,
|
||||||
|
but some might be unknown or wrongly detected. In such a case, pass
|
||||||
|
the proper value with this option.
|
||||||
|
|
||||||
|
The following strings are accepted:
|
||||||
|
- default Don't override the default setting
|
||||||
|
- disable Disable the quirk
|
||||||
|
- hp_only Bind Master and Headphone controls as a single control
|
||||||
|
- swap_hp Swap headphone and master controls
|
||||||
|
- swap_surround Swap master and surround controls
|
||||||
|
- ad_sharing For AD1985, turn on OMS bit and use headphone
|
||||||
|
- alc_jack For ALC65x, turn on the jack sense mode
|
||||||
|
- inv_eapd Inverted EAPD implementation
|
||||||
|
- mute_led Bind EAPD bit for turning on/off mute LED
|
||||||
|
|
||||||
|
For backward compatibility, the corresponding integer value -1, 0,
|
||||||
|
... are accepted, too.
|
||||||
|
|
||||||
|
For example, if "Master" volume control has no effect on your device
|
||||||
|
but only "Headphone" does, pass ac97_quirk=hp_only module option.
|
||||||
|
|
||||||
|
|
||||||
Configuring Non-ISAPNP Cards
|
Configuring Non-ISAPNP Cards
|
||||||
============================
|
============================
|
||||||
|
|
||||||
|
@ -1553,6 +1596,8 @@ Proc interfaces (/proc/asound)
|
||||||
- whole-frag write only whole fragments (optimization affecting
|
- whole-frag write only whole fragments (optimization affecting
|
||||||
playback only)
|
playback only)
|
||||||
- no-silence do not fill silence ahead to avoid clicks
|
- no-silence do not fill silence ahead to avoid clicks
|
||||||
|
- buggy-ptr Returns the whitespace blocks in GETOPTR ioctl
|
||||||
|
instead of filled blocks
|
||||||
|
|
||||||
Example: echo "x11amp 128 16384" > /proc/asound/card0/pcm0p/oss
|
Example: echo "x11amp 128 16384" > /proc/asound/card0/pcm0p/oss
|
||||||
echo "squake 0 0 disable" > /proc/asound/card0/pcm0c/oss
|
echo "squake 0 0 disable" > /proc/asound/card0/pcm0c/oss
|
||||||
|
@ -1589,9 +1634,14 @@ commands to the snd-page-alloc driver:
|
||||||
use.
|
use.
|
||||||
|
|
||||||
|
|
||||||
Links
|
Links and Addresses
|
||||||
=====
|
===================
|
||||||
|
|
||||||
ALSA project homepage
|
ALSA project homepage
|
||||||
http://www.alsa-project.org
|
http://www.alsa-project.org
|
||||||
|
|
||||||
|
ALSA Bug Tracking System
|
||||||
|
https://bugtrack.alsa-project.org/bugs/
|
||||||
|
|
||||||
|
ALSA Developers ML
|
||||||
|
mailto:alsa-devel@lists.sourceforge.net
|
||||||
|
|
|
@ -447,7 +447,7 @@
|
||||||
....
|
....
|
||||||
|
|
||||||
/* allocate a chip-specific data with zero filled */
|
/* allocate a chip-specific data with zero filled */
|
||||||
chip = kcalloc(1, sizeof(*chip), GFP_KERNEL);
|
chip = kzalloc(sizeof(*chip), GFP_KERNEL);
|
||||||
if (chip == NULL)
|
if (chip == NULL)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
|
||||||
|
@ -949,7 +949,7 @@
|
||||||
After allocating a card instance via
|
After allocating a card instance via
|
||||||
<function>snd_card_new()</function> (with
|
<function>snd_card_new()</function> (with
|
||||||
<constant>NULL</constant> on the 4th arg), call
|
<constant>NULL</constant> on the 4th arg), call
|
||||||
<function>kcalloc()</function>.
|
<function>kzalloc()</function>.
|
||||||
|
|
||||||
<informalexample>
|
<informalexample>
|
||||||
<programlisting>
|
<programlisting>
|
||||||
|
@ -958,7 +958,7 @@
|
||||||
mychip_t *chip;
|
mychip_t *chip;
|
||||||
card = snd_card_new(index[dev], id[dev], THIS_MODULE, NULL);
|
card = snd_card_new(index[dev], id[dev], THIS_MODULE, NULL);
|
||||||
.....
|
.....
|
||||||
chip = kcalloc(1, sizeof(*chip), GFP_KERNEL);
|
chip = kzalloc(sizeof(*chip), GFP_KERNEL);
|
||||||
]]>
|
]]>
|
||||||
</programlisting>
|
</programlisting>
|
||||||
</informalexample>
|
</informalexample>
|
||||||
|
@ -1136,7 +1136,7 @@
|
||||||
return -ENXIO;
|
return -ENXIO;
|
||||||
}
|
}
|
||||||
|
|
||||||
chip = kcalloc(1, sizeof(*chip), GFP_KERNEL);
|
chip = kzalloc(sizeof(*chip), GFP_KERNEL);
|
||||||
if (chip == NULL) {
|
if (chip == NULL) {
|
||||||
pci_disable_device(pci);
|
pci_disable_device(pci);
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
@ -1292,7 +1292,7 @@
|
||||||
need to initialize this number as -1 before actual allocation,
|
need to initialize this number as -1 before actual allocation,
|
||||||
since irq 0 is valid. The port address and its resource pointer
|
since irq 0 is valid. The port address and its resource pointer
|
||||||
can be initialized as null by
|
can be initialized as null by
|
||||||
<function>kcalloc()</function> automatically, so you
|
<function>kzalloc()</function> automatically, so you
|
||||||
don't have to take care of resetting them.
|
don't have to take care of resetting them.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
|
|
24
MAINTAINERS
24
MAINTAINERS
|
@ -370,7 +370,10 @@ W: http://atmelwlandriver.sourceforge.net/
|
||||||
S: Maintained
|
S: Maintained
|
||||||
|
|
||||||
AUDIT SUBSYSTEM
|
AUDIT SUBSYSTEM
|
||||||
L: linux-audit@redhat.com (subscribers-only)
|
P: David Woodhouse
|
||||||
|
M: dwmw2@infradead.org
|
||||||
|
L: linux-audit@redhat.com
|
||||||
|
W: http://people.redhat.com/sgrubb/audit/
|
||||||
S: Maintained
|
S: Maintained
|
||||||
|
|
||||||
AX.25 NETWORK LAYER
|
AX.25 NETWORK LAYER
|
||||||
|
@ -683,6 +686,13 @@ P: Guennadi Liakhovetski
|
||||||
M: g.liakhovetski@gmx.de
|
M: g.liakhovetski@gmx.de
|
||||||
S: Maintained
|
S: Maintained
|
||||||
|
|
||||||
|
DCCP PROTOCOL
|
||||||
|
P: Arnaldo Carvalho de Melo
|
||||||
|
M: acme@mandriva.com
|
||||||
|
L: dccp@vger.kernel.org
|
||||||
|
W: http://www.wlug.org.nz/DCCP
|
||||||
|
S: Maintained
|
||||||
|
|
||||||
DECnet NETWORK LAYER
|
DECnet NETWORK LAYER
|
||||||
P: Patrick Caulfield
|
P: Patrick Caulfield
|
||||||
M: patrick@tykepenguin.com
|
M: patrick@tykepenguin.com
|
||||||
|
@ -2256,6 +2266,12 @@ M: kristen.c.accardi@intel.com
|
||||||
L: pcihpd-discuss@lists.sourceforge.net
|
L: pcihpd-discuss@lists.sourceforge.net
|
||||||
S: Maintained
|
S: Maintained
|
||||||
|
|
||||||
|
SKGE, SKY2 10/100/1000 GIGABIT ETHERNET DRIVERS
|
||||||
|
P: Stephen Hemminger
|
||||||
|
M: shemminger@osdl.org
|
||||||
|
L: netdev@vger.kernel.org
|
||||||
|
S: Maintained
|
||||||
|
|
||||||
SPARC (sparc32):
|
SPARC (sparc32):
|
||||||
P: William L. Irwin
|
P: William L. Irwin
|
||||||
M: wli@holomorphy.com
|
M: wli@holomorphy.com
|
||||||
|
@ -2268,12 +2284,6 @@ M: R.E.Wolff@BitWizard.nl
|
||||||
L: linux-kernel@vger.kernel.org ?
|
L: linux-kernel@vger.kernel.org ?
|
||||||
S: Supported
|
S: Supported
|
||||||
|
|
||||||
SPX NETWORK LAYER
|
|
||||||
P: Jay Schulist
|
|
||||||
M: jschlst@samba.org
|
|
||||||
L: netdev@vger.kernel.org
|
|
||||||
S: Supported
|
|
||||||
|
|
||||||
SRM (Alpha) environment access
|
SRM (Alpha) environment access
|
||||||
P: Jan-Benedict Glaw
|
P: Jan-Benedict Glaw
|
||||||
M: jbglaw@lug-owl.de
|
M: jbglaw@lug-owl.de
|
||||||
|
|
2
Makefile
2
Makefile
|
@ -1,7 +1,7 @@
|
||||||
VERSION = 2
|
VERSION = 2
|
||||||
PATCHLEVEL = 6
|
PATCHLEVEL = 6
|
||||||
SUBLEVEL = 14
|
SUBLEVEL = 14
|
||||||
EXTRAVERSION =-rc1
|
EXTRAVERSION =-rc2
|
||||||
NAME=Affluent Albatross
|
NAME=Affluent Albatross
|
||||||
|
|
||||||
# *DOCUMENTATION*
|
# *DOCUMENTATION*
|
||||||
|
|
9
README
9
README
|
@ -149,6 +149,9 @@ CONFIGURING the kernel:
|
||||||
"make gconfig" X windows (Gtk) based configuration tool.
|
"make gconfig" X windows (Gtk) based configuration tool.
|
||||||
"make oldconfig" Default all questions based on the contents of
|
"make oldconfig" Default all questions based on the contents of
|
||||||
your existing ./.config file.
|
your existing ./.config file.
|
||||||
|
"make silentoldconfig"
|
||||||
|
Like above, but avoids cluttering the screen
|
||||||
|
with question already answered.
|
||||||
|
|
||||||
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
|
||||||
|
@ -169,9 +172,6 @@ CONFIGURING the kernel:
|
||||||
should probably answer 'n' to the questions for
|
should probably answer 'n' to the questions for
|
||||||
"development", "experimental", or "debugging" features.
|
"development", "experimental", or "debugging" features.
|
||||||
|
|
||||||
- Check the top Makefile for further site-dependent configuration
|
|
||||||
(default SVGA mode etc).
|
|
||||||
|
|
||||||
COMPILING the kernel:
|
COMPILING the kernel:
|
||||||
|
|
||||||
- Make sure you have gcc 2.95.3 available.
|
- Make sure you have gcc 2.95.3 available.
|
||||||
|
@ -199,6 +199,9 @@ COMPILING the kernel:
|
||||||
are installing a new kernel with the same version number as your
|
are installing a new kernel with the same version number as your
|
||||||
working kernel, make a backup of your modules directory before you
|
working kernel, make a backup of your modules directory before you
|
||||||
do a "make modules_install".
|
do a "make modules_install".
|
||||||
|
In alternative, before compiling, edit your Makefile and change the
|
||||||
|
"EXTRAVERSION" line - its content is appended to the regular kernel
|
||||||
|
version.
|
||||||
|
|
||||||
- In order to boot your new kernel, you'll need to copy the kernel
|
- In order to boot your new kernel, you'll need to copy the kernel
|
||||||
image (e.g. .../linux/arch/i386/boot/bzImage after compilation)
|
image (e.g. .../linux/arch/i386/boot/bzImage after compilation)
|
||||||
|
|
|
@ -37,6 +37,7 @@
|
||||||
#include <linux/namei.h>
|
#include <linux/namei.h>
|
||||||
#include <linux/uio.h>
|
#include <linux/uio.h>
|
||||||
#include <linux/vfs.h>
|
#include <linux/vfs.h>
|
||||||
|
#include <linux/rcupdate.h>
|
||||||
|
|
||||||
#include <asm/fpu.h>
|
#include <asm/fpu.h>
|
||||||
#include <asm/io.h>
|
#include <asm/io.h>
|
||||||
|
@ -975,6 +976,7 @@ osf_select(int n, fd_set __user *inp, fd_set __user *outp, fd_set __user *exp,
|
||||||
long timeout;
|
long timeout;
|
||||||
int ret = -EINVAL;
|
int ret = -EINVAL;
|
||||||
struct fdtable *fdt;
|
struct fdtable *fdt;
|
||||||
|
int max_fdset;
|
||||||
|
|
||||||
timeout = MAX_SCHEDULE_TIMEOUT;
|
timeout = MAX_SCHEDULE_TIMEOUT;
|
||||||
if (tvp) {
|
if (tvp) {
|
||||||
|
@ -996,8 +998,11 @@ osf_select(int n, fd_set __user *inp, fd_set __user *outp, fd_set __user *exp,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
rcu_read_lock();
|
||||||
fdt = files_fdtable(current->files);
|
fdt = files_fdtable(current->files);
|
||||||
if (n < 0 || n > fdt->max_fdset)
|
max_fdset = fdt->max_fdset;
|
||||||
|
rcu_read_unlock();
|
||||||
|
if (n < 0 || n > max_fdset)
|
||||||
goto out_nofds;
|
goto out_nofds;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -394,6 +394,22 @@ clipper_init_irq(void)
|
||||||
* 10 64 bit PCI option slot 3 (not bus 0)
|
* 10 64 bit PCI option slot 3 (not bus 0)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
static int __init
|
||||||
|
isa_irq_fixup(struct pci_dev *dev, int irq)
|
||||||
|
{
|
||||||
|
u8 irq8;
|
||||||
|
|
||||||
|
if (irq > 0)
|
||||||
|
return irq;
|
||||||
|
|
||||||
|
/* This interrupt is routed via ISA bridge, so we'll
|
||||||
|
just have to trust whatever value the console might
|
||||||
|
have assigned. */
|
||||||
|
pci_read_config_byte(dev, PCI_INTERRUPT_LINE, &irq8);
|
||||||
|
|
||||||
|
return irq8 & 0xf;
|
||||||
|
}
|
||||||
|
|
||||||
static int __init
|
static int __init
|
||||||
dp264_map_irq(struct pci_dev *dev, u8 slot, u8 pin)
|
dp264_map_irq(struct pci_dev *dev, u8 slot, u8 pin)
|
||||||
{
|
{
|
||||||
|
@ -407,25 +423,13 @@ dp264_map_irq(struct pci_dev *dev, u8 slot, u8 pin)
|
||||||
{ 16+ 3, 16+ 3, 16+ 2, 16+ 1, 16+ 0} /* IdSel 10 slot 3 */
|
{ 16+ 3, 16+ 3, 16+ 2, 16+ 1, 16+ 0} /* IdSel 10 slot 3 */
|
||||||
};
|
};
|
||||||
const long min_idsel = 5, max_idsel = 10, irqs_per_slot = 5;
|
const long min_idsel = 5, max_idsel = 10, irqs_per_slot = 5;
|
||||||
|
|
||||||
struct pci_controller *hose = dev->sysdata;
|
struct pci_controller *hose = dev->sysdata;
|
||||||
int irq = COMMON_TABLE_LOOKUP;
|
int irq = COMMON_TABLE_LOOKUP;
|
||||||
|
|
||||||
if (irq > 0) {
|
if (irq > 0)
|
||||||
irq += 16 * hose->index;
|
irq += 16 * hose->index;
|
||||||
} else {
|
|
||||||
/* ??? The Contaq IDE controller on the ISA bridge uses
|
|
||||||
"legacy" interrupts 14 and 15. I don't know if anything
|
|
||||||
can wind up at the same slot+pin on hose1, so we'll
|
|
||||||
just have to trust whatever value the console might
|
|
||||||
have assigned. */
|
|
||||||
|
|
||||||
u8 irq8;
|
return isa_irq_fixup(dev, irq);
|
||||||
pci_read_config_byte(dev, PCI_INTERRUPT_LINE, &irq8);
|
|
||||||
irq = irq8;
|
|
||||||
}
|
|
||||||
|
|
||||||
return irq;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int __init
|
static int __init
|
||||||
|
@ -453,7 +457,8 @@ monet_map_irq(struct pci_dev *dev, u8 slot, u8 pin)
|
||||||
{ 24, 24, 25, 26, 27} /* IdSel 15 slot 5 PCI2*/
|
{ 24, 24, 25, 26, 27} /* IdSel 15 slot 5 PCI2*/
|
||||||
};
|
};
|
||||||
const long min_idsel = 3, max_idsel = 15, irqs_per_slot = 5;
|
const long min_idsel = 3, max_idsel = 15, irqs_per_slot = 5;
|
||||||
return COMMON_TABLE_LOOKUP;
|
|
||||||
|
return isa_irq_fixup(dev, COMMON_TABLE_LOOKUP);
|
||||||
}
|
}
|
||||||
|
|
||||||
static u8 __init
|
static u8 __init
|
||||||
|
@ -507,7 +512,8 @@ webbrick_map_irq(struct pci_dev *dev, u8 slot, u8 pin)
|
||||||
{ 47, 47, 46, 45, 44}, /* IdSel 17 slot 3 */
|
{ 47, 47, 46, 45, 44}, /* IdSel 17 slot 3 */
|
||||||
};
|
};
|
||||||
const long min_idsel = 7, max_idsel = 17, irqs_per_slot = 5;
|
const long min_idsel = 7, max_idsel = 17, irqs_per_slot = 5;
|
||||||
return COMMON_TABLE_LOOKUP;
|
|
||||||
|
return isa_irq_fixup(dev, COMMON_TABLE_LOOKUP);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int __init
|
static int __init
|
||||||
|
@ -524,14 +530,13 @@ clipper_map_irq(struct pci_dev *dev, u8 slot, u8 pin)
|
||||||
{ -1, -1, -1, -1, -1} /* IdSel 7 ISA Bridge */
|
{ -1, -1, -1, -1, -1} /* IdSel 7 ISA Bridge */
|
||||||
};
|
};
|
||||||
const long min_idsel = 1, max_idsel = 7, irqs_per_slot = 5;
|
const long min_idsel = 1, max_idsel = 7, irqs_per_slot = 5;
|
||||||
|
|
||||||
struct pci_controller *hose = dev->sysdata;
|
struct pci_controller *hose = dev->sysdata;
|
||||||
int irq = COMMON_TABLE_LOOKUP;
|
int irq = COMMON_TABLE_LOOKUP;
|
||||||
|
|
||||||
if (irq > 0)
|
if (irq > 0)
|
||||||
irq += 16 * hose->index;
|
irq += 16 * hose->index;
|
||||||
|
|
||||||
return irq;
|
return isa_irq_fixup(dev, irq);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void __init
|
static void __init
|
||||||
|
|
|
@ -256,5 +256,5 @@ asmlinkage void ofw_init(ofw_handle_t o, int *nomr, int *pointer)
|
||||||
temp[11]='\0';
|
temp[11]='\0';
|
||||||
mem_len = OF_getproplen(o,phandle, temp);
|
mem_len = OF_getproplen(o,phandle, temp);
|
||||||
OF_getprop(o,phandle, temp, buffer, mem_len);
|
OF_getprop(o,phandle, temp, buffer, mem_len);
|
||||||
(unsigned char) pointer[32] = ((unsigned char *) buffer)[mem_len-2];
|
* ((unsigned char *) &pointer[32]) = ((unsigned char *) buffer)[mem_len-2];
|
||||||
}
|
}
|
||||||
|
|
|
@ -551,7 +551,7 @@ struct locomo_save_data {
|
||||||
u16 LCM_SPIMD;
|
u16 LCM_SPIMD;
|
||||||
};
|
};
|
||||||
|
|
||||||
static int locomo_suspend(struct device *dev, u32 pm_message_t, u32 level)
|
static int locomo_suspend(struct device *dev, pm_message_t state, u32 level)
|
||||||
{
|
{
|
||||||
struct locomo *lchip = dev_get_drvdata(dev);
|
struct locomo *lchip = dev_get_drvdata(dev);
|
||||||
struct locomo_save_data *save;
|
struct locomo_save_data *save;
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#
|
#
|
||||||
# Automatically generated make config: don't edit
|
# Automatically generated make config: don't edit
|
||||||
# Linux kernel version: 2.6.13-rc2
|
# Linux kernel version: 2.6.13
|
||||||
# Thu Jul 7 16:41:21 2005
|
# Wed Sep 14 10:51:52 2005
|
||||||
#
|
#
|
||||||
CONFIG_ARM=y
|
CONFIG_ARM=y
|
||||||
CONFIG_MMU=y
|
CONFIG_MMU=y
|
||||||
|
@ -135,7 +135,6 @@ CONFIG_PCI_NAMES=y
|
||||||
#
|
#
|
||||||
# Kernel Features
|
# Kernel Features
|
||||||
#
|
#
|
||||||
# CONFIG_SMP is not set
|
|
||||||
# CONFIG_PREEMPT is not set
|
# CONFIG_PREEMPT is not set
|
||||||
# CONFIG_NO_IDLE_HZ is not set
|
# CONFIG_NO_IDLE_HZ is not set
|
||||||
# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
|
# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
|
||||||
|
@ -178,6 +177,68 @@ CONFIG_BINFMT_ELF=y
|
||||||
#
|
#
|
||||||
# CONFIG_PM is not set
|
# CONFIG_PM is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# Networking
|
||||||
|
#
|
||||||
|
CONFIG_NET=y
|
||||||
|
|
||||||
|
#
|
||||||
|
# Networking options
|
||||||
|
#
|
||||||
|
CONFIG_PACKET=y
|
||||||
|
CONFIG_PACKET_MMAP=y
|
||||||
|
CONFIG_UNIX=y
|
||||||
|
# CONFIG_NET_KEY is not set
|
||||||
|
CONFIG_INET=y
|
||||||
|
# CONFIG_IP_MULTICAST is not set
|
||||||
|
# CONFIG_IP_ADVANCED_ROUTER is not set
|
||||||
|
CONFIG_IP_FIB_HASH=y
|
||||||
|
CONFIG_IP_PNP=y
|
||||||
|
CONFIG_IP_PNP_DHCP=y
|
||||||
|
CONFIG_IP_PNP_BOOTP=y
|
||||||
|
# CONFIG_IP_PNP_RARP is not set
|
||||||
|
# CONFIG_NET_IPIP is not set
|
||||||
|
# CONFIG_NET_IPGRE is not set
|
||||||
|
# CONFIG_ARPD is not set
|
||||||
|
CONFIG_SYN_COOKIES=y
|
||||||
|
# CONFIG_INET_AH is not set
|
||||||
|
# CONFIG_INET_ESP is not set
|
||||||
|
# CONFIG_INET_IPCOMP is not set
|
||||||
|
# CONFIG_INET_TUNNEL is not set
|
||||||
|
# CONFIG_IP_TCPDIAG is not set
|
||||||
|
# CONFIG_IP_TCPDIAG_IPV6 is not set
|
||||||
|
# CONFIG_TCP_CONG_ADVANCED is not set
|
||||||
|
CONFIG_TCP_CONG_BIC=y
|
||||||
|
# CONFIG_IPV6 is not set
|
||||||
|
# CONFIG_NETFILTER is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# SCTP Configuration (EXPERIMENTAL)
|
||||||
|
#
|
||||||
|
# CONFIG_IP_SCTP is not set
|
||||||
|
# CONFIG_ATM is not set
|
||||||
|
# CONFIG_BRIDGE is not set
|
||||||
|
# CONFIG_VLAN_8021Q is not set
|
||||||
|
# CONFIG_DECNET is not set
|
||||||
|
# CONFIG_LLC2 is not set
|
||||||
|
# CONFIG_IPX is not set
|
||||||
|
# CONFIG_ATALK is not set
|
||||||
|
# CONFIG_X25 is not set
|
||||||
|
# CONFIG_LAPB is not set
|
||||||
|
# CONFIG_NET_DIVERT is not set
|
||||||
|
# CONFIG_ECONET is not set
|
||||||
|
# CONFIG_WAN_ROUTER is not set
|
||||||
|
# CONFIG_NET_SCHED is not set
|
||||||
|
# CONFIG_NET_CLS_ROUTE is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# Network testing
|
||||||
|
#
|
||||||
|
# CONFIG_NET_PKTGEN is not set
|
||||||
|
# CONFIG_HAMRADIO is not set
|
||||||
|
# CONFIG_IRDA is not set
|
||||||
|
# CONFIG_BT is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# Device Drivers
|
# Device Drivers
|
||||||
#
|
#
|
||||||
|
@ -248,6 +309,7 @@ CONFIG_MTD_COMPLEX_MAPPINGS=y
|
||||||
CONFIG_MTD_IXP2000=y
|
CONFIG_MTD_IXP2000=y
|
||||||
# CONFIG_MTD_EDB7312 is not set
|
# CONFIG_MTD_EDB7312 is not set
|
||||||
# CONFIG_MTD_PCI is not set
|
# CONFIG_MTD_PCI is not set
|
||||||
|
# CONFIG_MTD_PLATRAM is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# Self-contained MTD device drivers
|
# Self-contained MTD device drivers
|
||||||
|
@ -334,72 +396,8 @@ CONFIG_IOSCHED_CFQ=y
|
||||||
# CONFIG_I2O is not set
|
# CONFIG_I2O is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# Networking support
|
# Network device support
|
||||||
#
|
#
|
||||||
CONFIG_NET=y
|
|
||||||
|
|
||||||
#
|
|
||||||
# Networking options
|
|
||||||
#
|
|
||||||
CONFIG_PACKET=y
|
|
||||||
CONFIG_PACKET_MMAP=y
|
|
||||||
CONFIG_UNIX=y
|
|
||||||
# CONFIG_NET_KEY is not set
|
|
||||||
CONFIG_INET=y
|
|
||||||
# CONFIG_IP_MULTICAST is not set
|
|
||||||
# CONFIG_IP_ADVANCED_ROUTER is not set
|
|
||||||
CONFIG_IP_FIB_HASH=y
|
|
||||||
CONFIG_IP_PNP=y
|
|
||||||
CONFIG_IP_PNP_DHCP=y
|
|
||||||
CONFIG_IP_PNP_BOOTP=y
|
|
||||||
# CONFIG_IP_PNP_RARP is not set
|
|
||||||
# CONFIG_NET_IPIP is not set
|
|
||||||
# CONFIG_NET_IPGRE is not set
|
|
||||||
# CONFIG_ARPD is not set
|
|
||||||
CONFIG_SYN_COOKIES=y
|
|
||||||
# CONFIG_INET_AH is not set
|
|
||||||
# CONFIG_INET_ESP is not set
|
|
||||||
# CONFIG_INET_IPCOMP is not set
|
|
||||||
# CONFIG_INET_TUNNEL is not set
|
|
||||||
# CONFIG_IP_TCPDIAG is not set
|
|
||||||
# CONFIG_IP_TCPDIAG_IPV6 is not set
|
|
||||||
# CONFIG_TCP_CONG_ADVANCED is not set
|
|
||||||
CONFIG_TCP_CONG_BIC=y
|
|
||||||
# CONFIG_IPV6 is not set
|
|
||||||
# CONFIG_NETFILTER is not set
|
|
||||||
|
|
||||||
#
|
|
||||||
# SCTP Configuration (EXPERIMENTAL)
|
|
||||||
#
|
|
||||||
# CONFIG_IP_SCTP is not set
|
|
||||||
# CONFIG_ATM is not set
|
|
||||||
# CONFIG_BRIDGE is not set
|
|
||||||
# CONFIG_VLAN_8021Q is not set
|
|
||||||
# CONFIG_DECNET is not set
|
|
||||||
# CONFIG_LLC2 is not set
|
|
||||||
# CONFIG_IPX is not set
|
|
||||||
# CONFIG_ATALK is not set
|
|
||||||
# CONFIG_X25 is not set
|
|
||||||
# CONFIG_LAPB is not set
|
|
||||||
# CONFIG_NET_DIVERT is not set
|
|
||||||
# CONFIG_ECONET is not set
|
|
||||||
# CONFIG_WAN_ROUTER is not set
|
|
||||||
|
|
||||||
#
|
|
||||||
# QoS and/or fair queueing
|
|
||||||
#
|
|
||||||
# CONFIG_NET_SCHED is not set
|
|
||||||
# CONFIG_NET_CLS_ROUTE is not set
|
|
||||||
|
|
||||||
#
|
|
||||||
# Network testing
|
|
||||||
#
|
|
||||||
# CONFIG_NET_PKTGEN is not set
|
|
||||||
# CONFIG_NETPOLL is not set
|
|
||||||
# CONFIG_NET_POLL_CONTROLLER is not set
|
|
||||||
# CONFIG_HAMRADIO is not set
|
|
||||||
# CONFIG_IRDA is not set
|
|
||||||
# CONFIG_BT is not set
|
|
||||||
CONFIG_NETDEVICES=y
|
CONFIG_NETDEVICES=y
|
||||||
CONFIG_DUMMY=y
|
CONFIG_DUMMY=y
|
||||||
# CONFIG_BONDING is not set
|
# CONFIG_BONDING is not set
|
||||||
|
@ -509,6 +507,8 @@ CONFIG_DLCI_MAX=8
|
||||||
# CONFIG_SLIP is not set
|
# CONFIG_SLIP is not set
|
||||||
# CONFIG_SHAPER is not set
|
# CONFIG_SHAPER is not set
|
||||||
# CONFIG_NETCONSOLE is not set
|
# CONFIG_NETCONSOLE is not set
|
||||||
|
# CONFIG_NETPOLL is not set
|
||||||
|
# CONFIG_NET_POLL_CONTROLLER is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# ISDN subsystem
|
# ISDN subsystem
|
||||||
|
@ -635,7 +635,7 @@ CONFIG_I2C_ALGOBIT=y
|
||||||
# CONFIG_I2C_I810 is not set
|
# CONFIG_I2C_I810 is not set
|
||||||
# CONFIG_I2C_PIIX4 is not set
|
# CONFIG_I2C_PIIX4 is not set
|
||||||
# CONFIG_I2C_ISA is not set
|
# CONFIG_I2C_ISA is not set
|
||||||
# CONFIG_I2C_IXP2000 is not set
|
CONFIG_I2C_IXP2000=y
|
||||||
# CONFIG_I2C_NFORCE2 is not set
|
# CONFIG_I2C_NFORCE2 is not set
|
||||||
# CONFIG_I2C_PARPORT_LIGHT is not set
|
# CONFIG_I2C_PARPORT_LIGHT is not set
|
||||||
# CONFIG_I2C_PROSAVAGE is not set
|
# CONFIG_I2C_PROSAVAGE is not set
|
||||||
|
@ -649,11 +649,28 @@ CONFIG_I2C_ALGOBIT=y
|
||||||
# CONFIG_I2C_VIAPRO is not set
|
# CONFIG_I2C_VIAPRO is not set
|
||||||
# CONFIG_I2C_VOODOO3 is not set
|
# CONFIG_I2C_VOODOO3 is not set
|
||||||
# CONFIG_I2C_PCA_ISA is not set
|
# CONFIG_I2C_PCA_ISA is not set
|
||||||
|
CONFIG_I2C_SENSOR=y
|
||||||
|
|
||||||
#
|
#
|
||||||
# Hardware Sensors Chip support
|
# Miscellaneous I2C Chip support
|
||||||
#
|
#
|
||||||
CONFIG_I2C_SENSOR=y
|
# CONFIG_SENSORS_DS1337 is not set
|
||||||
|
# CONFIG_SENSORS_DS1374 is not set
|
||||||
|
CONFIG_SENSORS_EEPROM=y
|
||||||
|
# CONFIG_SENSORS_PCF8574 is not set
|
||||||
|
# CONFIG_SENSORS_PCA9539 is not set
|
||||||
|
# CONFIG_SENSORS_PCF8591 is not set
|
||||||
|
# CONFIG_SENSORS_RTC8564 is not set
|
||||||
|
# CONFIG_SENSORS_MAX6875 is not set
|
||||||
|
# CONFIG_I2C_DEBUG_CORE is not set
|
||||||
|
# CONFIG_I2C_DEBUG_ALGO is not set
|
||||||
|
# CONFIG_I2C_DEBUG_BUS is not set
|
||||||
|
# CONFIG_I2C_DEBUG_CHIP is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# Hardware Monitoring support
|
||||||
|
#
|
||||||
|
CONFIG_HWMON=y
|
||||||
# CONFIG_SENSORS_ADM1021 is not set
|
# CONFIG_SENSORS_ADM1021 is not set
|
||||||
# CONFIG_SENSORS_ADM1025 is not set
|
# CONFIG_SENSORS_ADM1025 is not set
|
||||||
# CONFIG_SENSORS_ADM1026 is not set
|
# CONFIG_SENSORS_ADM1026 is not set
|
||||||
|
@ -679,30 +696,15 @@ CONFIG_I2C_SENSOR=y
|
||||||
# CONFIG_SENSORS_LM92 is not set
|
# CONFIG_SENSORS_LM92 is not set
|
||||||
# CONFIG_SENSORS_MAX1619 is not set
|
# CONFIG_SENSORS_MAX1619 is not set
|
||||||
# CONFIG_SENSORS_PC87360 is not set
|
# CONFIG_SENSORS_PC87360 is not set
|
||||||
# CONFIG_SENSORS_SMSC47B397 is not set
|
|
||||||
# CONFIG_SENSORS_SIS5595 is not set
|
# CONFIG_SENSORS_SIS5595 is not set
|
||||||
# CONFIG_SENSORS_SMSC47M1 is not set
|
# CONFIG_SENSORS_SMSC47M1 is not set
|
||||||
|
# CONFIG_SENSORS_SMSC47B397 is not set
|
||||||
# CONFIG_SENSORS_VIA686A is not set
|
# CONFIG_SENSORS_VIA686A is not set
|
||||||
# CONFIG_SENSORS_W83781D is not set
|
# CONFIG_SENSORS_W83781D is not set
|
||||||
# CONFIG_SENSORS_W83L785TS is not set
|
# CONFIG_SENSORS_W83L785TS is not set
|
||||||
# CONFIG_SENSORS_W83627HF is not set
|
# CONFIG_SENSORS_W83627HF is not set
|
||||||
# CONFIG_SENSORS_W83627EHF is not set
|
# CONFIG_SENSORS_W83627EHF is not set
|
||||||
|
# CONFIG_HWMON_DEBUG_CHIP is not set
|
||||||
#
|
|
||||||
# Other I2C Chip support
|
|
||||||
#
|
|
||||||
# CONFIG_SENSORS_DS1337 is not set
|
|
||||||
# CONFIG_SENSORS_DS1374 is not set
|
|
||||||
CONFIG_SENSORS_EEPROM=y
|
|
||||||
# CONFIG_SENSORS_PCF8574 is not set
|
|
||||||
# CONFIG_SENSORS_PCA9539 is not set
|
|
||||||
# CONFIG_SENSORS_PCF8591 is not set
|
|
||||||
# CONFIG_SENSORS_RTC8564 is not set
|
|
||||||
# CONFIG_SENSORS_MAX6875 is not set
|
|
||||||
# CONFIG_I2C_DEBUG_CORE is not set
|
|
||||||
# CONFIG_I2C_DEBUG_ALGO is not set
|
|
||||||
# CONFIG_I2C_DEBUG_BUS is not set
|
|
||||||
# CONFIG_I2C_DEBUG_CHIP is not set
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Misc devices
|
# Misc devices
|
||||||
|
@ -770,6 +772,7 @@ CONFIG_FS_POSIX_ACL=y
|
||||||
# CONFIG_XFS_FS is not set
|
# CONFIG_XFS_FS is not set
|
||||||
# CONFIG_MINIX_FS is not set
|
# CONFIG_MINIX_FS is not set
|
||||||
# CONFIG_ROMFS_FS is not set
|
# CONFIG_ROMFS_FS is not set
|
||||||
|
CONFIG_INOTIFY=y
|
||||||
# CONFIG_QUOTA is not set
|
# CONFIG_QUOTA is not set
|
||||||
CONFIG_DNOTIFY=y
|
CONFIG_DNOTIFY=y
|
||||||
# CONFIG_AUTOFS_FS is not set
|
# CONFIG_AUTOFS_FS is not set
|
||||||
|
@ -812,8 +815,7 @@ CONFIG_RAMFS=y
|
||||||
# CONFIG_JFFS_FS is not set
|
# CONFIG_JFFS_FS is not set
|
||||||
CONFIG_JFFS2_FS=y
|
CONFIG_JFFS2_FS=y
|
||||||
CONFIG_JFFS2_FS_DEBUG=0
|
CONFIG_JFFS2_FS_DEBUG=0
|
||||||
# CONFIG_JFFS2_FS_NAND is not set
|
CONFIG_JFFS2_FS_WRITEBUFFER=y
|
||||||
# CONFIG_JFFS2_FS_NOR_ECC is not set
|
|
||||||
# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
|
# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
|
||||||
CONFIG_JFFS2_ZLIB=y
|
CONFIG_JFFS2_ZLIB=y
|
||||||
CONFIG_JFFS2_RTIME=y
|
CONFIG_JFFS2_RTIME=y
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#
|
#
|
||||||
# Automatically generated make config: don't edit
|
# Automatically generated make config: don't edit
|
||||||
# Linux kernel version: 2.6.13-rc2
|
# Linux kernel version: 2.6.13
|
||||||
# Thu Jul 7 16:49:01 2005
|
# Wed Sep 14 10:52:01 2005
|
||||||
#
|
#
|
||||||
CONFIG_ARM=y
|
CONFIG_ARM=y
|
||||||
CONFIG_MMU=y
|
CONFIG_MMU=y
|
||||||
|
@ -136,7 +136,6 @@ CONFIG_PCI_NAMES=y
|
||||||
#
|
#
|
||||||
# Kernel Features
|
# Kernel Features
|
||||||
#
|
#
|
||||||
# CONFIG_SMP is not set
|
|
||||||
# CONFIG_PREEMPT is not set
|
# CONFIG_PREEMPT is not set
|
||||||
# CONFIG_NO_IDLE_HZ is not set
|
# CONFIG_NO_IDLE_HZ is not set
|
||||||
# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
|
# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
|
||||||
|
@ -179,6 +178,68 @@ CONFIG_BINFMT_ELF=y
|
||||||
#
|
#
|
||||||
# CONFIG_PM is not set
|
# CONFIG_PM is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# Networking
|
||||||
|
#
|
||||||
|
CONFIG_NET=y
|
||||||
|
|
||||||
|
#
|
||||||
|
# Networking options
|
||||||
|
#
|
||||||
|
CONFIG_PACKET=y
|
||||||
|
CONFIG_PACKET_MMAP=y
|
||||||
|
CONFIG_UNIX=y
|
||||||
|
# CONFIG_NET_KEY is not set
|
||||||
|
CONFIG_INET=y
|
||||||
|
# CONFIG_IP_MULTICAST is not set
|
||||||
|
# CONFIG_IP_ADVANCED_ROUTER is not set
|
||||||
|
CONFIG_IP_FIB_HASH=y
|
||||||
|
CONFIG_IP_PNP=y
|
||||||
|
CONFIG_IP_PNP_DHCP=y
|
||||||
|
CONFIG_IP_PNP_BOOTP=y
|
||||||
|
# CONFIG_IP_PNP_RARP is not set
|
||||||
|
# CONFIG_NET_IPIP is not set
|
||||||
|
# CONFIG_NET_IPGRE is not set
|
||||||
|
# CONFIG_ARPD is not set
|
||||||
|
CONFIG_SYN_COOKIES=y
|
||||||
|
# CONFIG_INET_AH is not set
|
||||||
|
# CONFIG_INET_ESP is not set
|
||||||
|
# CONFIG_INET_IPCOMP is not set
|
||||||
|
# CONFIG_INET_TUNNEL is not set
|
||||||
|
# CONFIG_IP_TCPDIAG is not set
|
||||||
|
# CONFIG_IP_TCPDIAG_IPV6 is not set
|
||||||
|
# CONFIG_TCP_CONG_ADVANCED is not set
|
||||||
|
CONFIG_TCP_CONG_BIC=y
|
||||||
|
# CONFIG_IPV6 is not set
|
||||||
|
# CONFIG_NETFILTER is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# SCTP Configuration (EXPERIMENTAL)
|
||||||
|
#
|
||||||
|
# CONFIG_IP_SCTP is not set
|
||||||
|
# CONFIG_ATM is not set
|
||||||
|
# CONFIG_BRIDGE is not set
|
||||||
|
# CONFIG_VLAN_8021Q is not set
|
||||||
|
# CONFIG_DECNET is not set
|
||||||
|
# CONFIG_LLC2 is not set
|
||||||
|
# CONFIG_IPX is not set
|
||||||
|
# CONFIG_ATALK is not set
|
||||||
|
# CONFIG_X25 is not set
|
||||||
|
# CONFIG_LAPB is not set
|
||||||
|
# CONFIG_NET_DIVERT is not set
|
||||||
|
# CONFIG_ECONET is not set
|
||||||
|
# CONFIG_WAN_ROUTER is not set
|
||||||
|
# CONFIG_NET_SCHED is not set
|
||||||
|
# CONFIG_NET_CLS_ROUTE is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# Network testing
|
||||||
|
#
|
||||||
|
# CONFIG_NET_PKTGEN is not set
|
||||||
|
# CONFIG_HAMRADIO is not set
|
||||||
|
# CONFIG_IRDA is not set
|
||||||
|
# CONFIG_BT is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# Device Drivers
|
# Device Drivers
|
||||||
#
|
#
|
||||||
|
@ -249,6 +310,7 @@ CONFIG_MTD_COMPLEX_MAPPINGS=y
|
||||||
CONFIG_MTD_IXP2000=y
|
CONFIG_MTD_IXP2000=y
|
||||||
# CONFIG_MTD_EDB7312 is not set
|
# CONFIG_MTD_EDB7312 is not set
|
||||||
# CONFIG_MTD_PCI is not set
|
# CONFIG_MTD_PCI is not set
|
||||||
|
# CONFIG_MTD_PLATRAM is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# Self-contained MTD device drivers
|
# Self-contained MTD device drivers
|
||||||
|
@ -335,72 +397,8 @@ CONFIG_IOSCHED_CFQ=y
|
||||||
# CONFIG_I2O is not set
|
# CONFIG_I2O is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# Networking support
|
# Network device support
|
||||||
#
|
#
|
||||||
CONFIG_NET=y
|
|
||||||
|
|
||||||
#
|
|
||||||
# Networking options
|
|
||||||
#
|
|
||||||
CONFIG_PACKET=y
|
|
||||||
CONFIG_PACKET_MMAP=y
|
|
||||||
CONFIG_UNIX=y
|
|
||||||
# CONFIG_NET_KEY is not set
|
|
||||||
CONFIG_INET=y
|
|
||||||
# CONFIG_IP_MULTICAST is not set
|
|
||||||
# CONFIG_IP_ADVANCED_ROUTER is not set
|
|
||||||
CONFIG_IP_FIB_HASH=y
|
|
||||||
CONFIG_IP_PNP=y
|
|
||||||
CONFIG_IP_PNP_DHCP=y
|
|
||||||
CONFIG_IP_PNP_BOOTP=y
|
|
||||||
# CONFIG_IP_PNP_RARP is not set
|
|
||||||
# CONFIG_NET_IPIP is not set
|
|
||||||
# CONFIG_NET_IPGRE is not set
|
|
||||||
# CONFIG_ARPD is not set
|
|
||||||
CONFIG_SYN_COOKIES=y
|
|
||||||
# CONFIG_INET_AH is not set
|
|
||||||
# CONFIG_INET_ESP is not set
|
|
||||||
# CONFIG_INET_IPCOMP is not set
|
|
||||||
# CONFIG_INET_TUNNEL is not set
|
|
||||||
# CONFIG_IP_TCPDIAG is not set
|
|
||||||
# CONFIG_IP_TCPDIAG_IPV6 is not set
|
|
||||||
# CONFIG_TCP_CONG_ADVANCED is not set
|
|
||||||
CONFIG_TCP_CONG_BIC=y
|
|
||||||
# CONFIG_IPV6 is not set
|
|
||||||
# CONFIG_NETFILTER is not set
|
|
||||||
|
|
||||||
#
|
|
||||||
# SCTP Configuration (EXPERIMENTAL)
|
|
||||||
#
|
|
||||||
# CONFIG_IP_SCTP is not set
|
|
||||||
# CONFIG_ATM is not set
|
|
||||||
# CONFIG_BRIDGE is not set
|
|
||||||
# CONFIG_VLAN_8021Q is not set
|
|
||||||
# CONFIG_DECNET is not set
|
|
||||||
# CONFIG_LLC2 is not set
|
|
||||||
# CONFIG_IPX is not set
|
|
||||||
# CONFIG_ATALK is not set
|
|
||||||
# CONFIG_X25 is not set
|
|
||||||
# CONFIG_LAPB is not set
|
|
||||||
# CONFIG_NET_DIVERT is not set
|
|
||||||
# CONFIG_ECONET is not set
|
|
||||||
# CONFIG_WAN_ROUTER is not set
|
|
||||||
|
|
||||||
#
|
|
||||||
# QoS and/or fair queueing
|
|
||||||
#
|
|
||||||
# CONFIG_NET_SCHED is not set
|
|
||||||
# CONFIG_NET_CLS_ROUTE is not set
|
|
||||||
|
|
||||||
#
|
|
||||||
# Network testing
|
|
||||||
#
|
|
||||||
# CONFIG_NET_PKTGEN is not set
|
|
||||||
# CONFIG_NETPOLL is not set
|
|
||||||
# CONFIG_NET_POLL_CONTROLLER is not set
|
|
||||||
# CONFIG_HAMRADIO is not set
|
|
||||||
# CONFIG_IRDA is not set
|
|
||||||
# CONFIG_BT is not set
|
|
||||||
CONFIG_NETDEVICES=y
|
CONFIG_NETDEVICES=y
|
||||||
CONFIG_DUMMY=y
|
CONFIG_DUMMY=y
|
||||||
# CONFIG_BONDING is not set
|
# CONFIG_BONDING is not set
|
||||||
|
@ -510,6 +508,8 @@ CONFIG_DLCI_MAX=8
|
||||||
# CONFIG_SLIP is not set
|
# CONFIG_SLIP is not set
|
||||||
# CONFIG_SHAPER is not set
|
# CONFIG_SHAPER is not set
|
||||||
# CONFIG_NETCONSOLE is not set
|
# CONFIG_NETCONSOLE is not set
|
||||||
|
# CONFIG_NETPOLL is not set
|
||||||
|
# CONFIG_NET_POLL_CONTROLLER is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# ISDN subsystem
|
# ISDN subsystem
|
||||||
|
@ -636,7 +636,7 @@ CONFIG_I2C_ALGOBIT=y
|
||||||
# CONFIG_I2C_I810 is not set
|
# CONFIG_I2C_I810 is not set
|
||||||
# CONFIG_I2C_PIIX4 is not set
|
# CONFIG_I2C_PIIX4 is not set
|
||||||
# CONFIG_I2C_ISA is not set
|
# CONFIG_I2C_ISA is not set
|
||||||
# CONFIG_I2C_IXP2000 is not set
|
CONFIG_I2C_IXP2000=y
|
||||||
# CONFIG_I2C_NFORCE2 is not set
|
# CONFIG_I2C_NFORCE2 is not set
|
||||||
# CONFIG_I2C_PARPORT_LIGHT is not set
|
# CONFIG_I2C_PARPORT_LIGHT is not set
|
||||||
# CONFIG_I2C_PROSAVAGE is not set
|
# CONFIG_I2C_PROSAVAGE is not set
|
||||||
|
@ -650,11 +650,28 @@ CONFIG_I2C_ALGOBIT=y
|
||||||
# CONFIG_I2C_VIAPRO is not set
|
# CONFIG_I2C_VIAPRO is not set
|
||||||
# CONFIG_I2C_VOODOO3 is not set
|
# CONFIG_I2C_VOODOO3 is not set
|
||||||
# CONFIG_I2C_PCA_ISA is not set
|
# CONFIG_I2C_PCA_ISA is not set
|
||||||
|
CONFIG_I2C_SENSOR=y
|
||||||
|
|
||||||
#
|
#
|
||||||
# Hardware Sensors Chip support
|
# Miscellaneous I2C Chip support
|
||||||
#
|
#
|
||||||
CONFIG_I2C_SENSOR=y
|
# CONFIG_SENSORS_DS1337 is not set
|
||||||
|
# CONFIG_SENSORS_DS1374 is not set
|
||||||
|
CONFIG_SENSORS_EEPROM=y
|
||||||
|
# CONFIG_SENSORS_PCF8574 is not set
|
||||||
|
# CONFIG_SENSORS_PCA9539 is not set
|
||||||
|
# CONFIG_SENSORS_PCF8591 is not set
|
||||||
|
# CONFIG_SENSORS_RTC8564 is not set
|
||||||
|
# CONFIG_SENSORS_MAX6875 is not set
|
||||||
|
# CONFIG_I2C_DEBUG_CORE is not set
|
||||||
|
# CONFIG_I2C_DEBUG_ALGO is not set
|
||||||
|
# CONFIG_I2C_DEBUG_BUS is not set
|
||||||
|
# CONFIG_I2C_DEBUG_CHIP is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# Hardware Monitoring support
|
||||||
|
#
|
||||||
|
CONFIG_HWMON=y
|
||||||
# CONFIG_SENSORS_ADM1021 is not set
|
# CONFIG_SENSORS_ADM1021 is not set
|
||||||
# CONFIG_SENSORS_ADM1025 is not set
|
# CONFIG_SENSORS_ADM1025 is not set
|
||||||
# CONFIG_SENSORS_ADM1026 is not set
|
# CONFIG_SENSORS_ADM1026 is not set
|
||||||
|
@ -680,30 +697,15 @@ CONFIG_I2C_SENSOR=y
|
||||||
# CONFIG_SENSORS_LM92 is not set
|
# CONFIG_SENSORS_LM92 is not set
|
||||||
# CONFIG_SENSORS_MAX1619 is not set
|
# CONFIG_SENSORS_MAX1619 is not set
|
||||||
# CONFIG_SENSORS_PC87360 is not set
|
# CONFIG_SENSORS_PC87360 is not set
|
||||||
# CONFIG_SENSORS_SMSC47B397 is not set
|
|
||||||
# CONFIG_SENSORS_SIS5595 is not set
|
# CONFIG_SENSORS_SIS5595 is not set
|
||||||
# CONFIG_SENSORS_SMSC47M1 is not set
|
# CONFIG_SENSORS_SMSC47M1 is not set
|
||||||
|
# CONFIG_SENSORS_SMSC47B397 is not set
|
||||||
# CONFIG_SENSORS_VIA686A is not set
|
# CONFIG_SENSORS_VIA686A is not set
|
||||||
# CONFIG_SENSORS_W83781D is not set
|
# CONFIG_SENSORS_W83781D is not set
|
||||||
# CONFIG_SENSORS_W83L785TS is not set
|
# CONFIG_SENSORS_W83L785TS is not set
|
||||||
# CONFIG_SENSORS_W83627HF is not set
|
# CONFIG_SENSORS_W83627HF is not set
|
||||||
# CONFIG_SENSORS_W83627EHF is not set
|
# CONFIG_SENSORS_W83627EHF is not set
|
||||||
|
# CONFIG_HWMON_DEBUG_CHIP is not set
|
||||||
#
|
|
||||||
# Other I2C Chip support
|
|
||||||
#
|
|
||||||
# CONFIG_SENSORS_DS1337 is not set
|
|
||||||
# CONFIG_SENSORS_DS1374 is not set
|
|
||||||
CONFIG_SENSORS_EEPROM=y
|
|
||||||
# CONFIG_SENSORS_PCF8574 is not set
|
|
||||||
# CONFIG_SENSORS_PCA9539 is not set
|
|
||||||
# CONFIG_SENSORS_PCF8591 is not set
|
|
||||||
# CONFIG_SENSORS_RTC8564 is not set
|
|
||||||
# CONFIG_SENSORS_MAX6875 is not set
|
|
||||||
# CONFIG_I2C_DEBUG_CORE is not set
|
|
||||||
# CONFIG_I2C_DEBUG_ALGO is not set
|
|
||||||
# CONFIG_I2C_DEBUG_BUS is not set
|
|
||||||
# CONFIG_I2C_DEBUG_CHIP is not set
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Misc devices
|
# Misc devices
|
||||||
|
@ -771,6 +773,7 @@ CONFIG_FS_POSIX_ACL=y
|
||||||
# CONFIG_XFS_FS is not set
|
# CONFIG_XFS_FS is not set
|
||||||
# CONFIG_MINIX_FS is not set
|
# CONFIG_MINIX_FS is not set
|
||||||
# CONFIG_ROMFS_FS is not set
|
# CONFIG_ROMFS_FS is not set
|
||||||
|
CONFIG_INOTIFY=y
|
||||||
# CONFIG_QUOTA is not set
|
# CONFIG_QUOTA is not set
|
||||||
CONFIG_DNOTIFY=y
|
CONFIG_DNOTIFY=y
|
||||||
# CONFIG_AUTOFS_FS is not set
|
# CONFIG_AUTOFS_FS is not set
|
||||||
|
@ -813,8 +816,7 @@ CONFIG_RAMFS=y
|
||||||
# CONFIG_JFFS_FS is not set
|
# CONFIG_JFFS_FS is not set
|
||||||
CONFIG_JFFS2_FS=y
|
CONFIG_JFFS2_FS=y
|
||||||
CONFIG_JFFS2_FS_DEBUG=0
|
CONFIG_JFFS2_FS_DEBUG=0
|
||||||
# CONFIG_JFFS2_FS_NAND is not set
|
CONFIG_JFFS2_FS_WRITEBUFFER=y
|
||||||
# CONFIG_JFFS2_FS_NOR_ECC is not set
|
|
||||||
# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
|
# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
|
||||||
CONFIG_JFFS2_ZLIB=y
|
CONFIG_JFFS2_ZLIB=y
|
||||||
CONFIG_JFFS2_RTIME=y
|
CONFIG_JFFS2_RTIME=y
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#
|
#
|
||||||
# Automatically generated make config: don't edit
|
# Automatically generated make config: don't edit
|
||||||
# Linux kernel version: 2.6.13-rc2
|
# Linux kernel version: 2.6.13
|
||||||
# Thu Jul 7 16:49:08 2005
|
# Wed Sep 14 10:52:10 2005
|
||||||
#
|
#
|
||||||
CONFIG_ARM=y
|
CONFIG_ARM=y
|
||||||
CONFIG_MMU=y
|
CONFIG_MMU=y
|
||||||
|
@ -136,7 +136,6 @@ CONFIG_PCI_NAMES=y
|
||||||
#
|
#
|
||||||
# Kernel Features
|
# Kernel Features
|
||||||
#
|
#
|
||||||
# CONFIG_SMP is not set
|
|
||||||
# CONFIG_PREEMPT is not set
|
# CONFIG_PREEMPT is not set
|
||||||
# CONFIG_NO_IDLE_HZ is not set
|
# CONFIG_NO_IDLE_HZ is not set
|
||||||
# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
|
# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
|
||||||
|
@ -179,6 +178,68 @@ CONFIG_BINFMT_ELF=y
|
||||||
#
|
#
|
||||||
# CONFIG_PM is not set
|
# CONFIG_PM is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# Networking
|
||||||
|
#
|
||||||
|
CONFIG_NET=y
|
||||||
|
|
||||||
|
#
|
||||||
|
# Networking options
|
||||||
|
#
|
||||||
|
CONFIG_PACKET=y
|
||||||
|
CONFIG_PACKET_MMAP=y
|
||||||
|
CONFIG_UNIX=y
|
||||||
|
# CONFIG_NET_KEY is not set
|
||||||
|
CONFIG_INET=y
|
||||||
|
# CONFIG_IP_MULTICAST is not set
|
||||||
|
# CONFIG_IP_ADVANCED_ROUTER is not set
|
||||||
|
CONFIG_IP_FIB_HASH=y
|
||||||
|
CONFIG_IP_PNP=y
|
||||||
|
CONFIG_IP_PNP_DHCP=y
|
||||||
|
CONFIG_IP_PNP_BOOTP=y
|
||||||
|
# CONFIG_IP_PNP_RARP is not set
|
||||||
|
# CONFIG_NET_IPIP is not set
|
||||||
|
# CONFIG_NET_IPGRE is not set
|
||||||
|
# CONFIG_ARPD is not set
|
||||||
|
CONFIG_SYN_COOKIES=y
|
||||||
|
# CONFIG_INET_AH is not set
|
||||||
|
# CONFIG_INET_ESP is not set
|
||||||
|
# CONFIG_INET_IPCOMP is not set
|
||||||
|
# CONFIG_INET_TUNNEL is not set
|
||||||
|
CONFIG_IP_TCPDIAG=y
|
||||||
|
# CONFIG_IP_TCPDIAG_IPV6 is not set
|
||||||
|
# CONFIG_TCP_CONG_ADVANCED is not set
|
||||||
|
CONFIG_TCP_CONG_BIC=y
|
||||||
|
# CONFIG_IPV6 is not set
|
||||||
|
# CONFIG_NETFILTER is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# SCTP Configuration (EXPERIMENTAL)
|
||||||
|
#
|
||||||
|
# CONFIG_IP_SCTP is not set
|
||||||
|
# CONFIG_ATM is not set
|
||||||
|
# CONFIG_BRIDGE is not set
|
||||||
|
# CONFIG_VLAN_8021Q is not set
|
||||||
|
# CONFIG_DECNET is not set
|
||||||
|
# CONFIG_LLC2 is not set
|
||||||
|
# CONFIG_IPX is not set
|
||||||
|
# CONFIG_ATALK is not set
|
||||||
|
# CONFIG_X25 is not set
|
||||||
|
# CONFIG_LAPB is not set
|
||||||
|
# CONFIG_NET_DIVERT is not set
|
||||||
|
# CONFIG_ECONET is not set
|
||||||
|
# CONFIG_WAN_ROUTER is not set
|
||||||
|
# CONFIG_NET_SCHED is not set
|
||||||
|
# CONFIG_NET_CLS_ROUTE is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# Network testing
|
||||||
|
#
|
||||||
|
# CONFIG_NET_PKTGEN is not set
|
||||||
|
# CONFIG_HAMRADIO is not set
|
||||||
|
# CONFIG_IRDA is not set
|
||||||
|
# CONFIG_BT is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# Device Drivers
|
# Device Drivers
|
||||||
#
|
#
|
||||||
|
@ -249,6 +310,7 @@ CONFIG_MTD_COMPLEX_MAPPINGS=y
|
||||||
CONFIG_MTD_IXP2000=y
|
CONFIG_MTD_IXP2000=y
|
||||||
# CONFIG_MTD_EDB7312 is not set
|
# CONFIG_MTD_EDB7312 is not set
|
||||||
# CONFIG_MTD_PCI is not set
|
# CONFIG_MTD_PCI is not set
|
||||||
|
# CONFIG_MTD_PLATRAM is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# Self-contained MTD device drivers
|
# Self-contained MTD device drivers
|
||||||
|
@ -335,72 +397,8 @@ CONFIG_IOSCHED_CFQ=y
|
||||||
# CONFIG_I2O is not set
|
# CONFIG_I2O is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# Networking support
|
# Network device support
|
||||||
#
|
#
|
||||||
CONFIG_NET=y
|
|
||||||
|
|
||||||
#
|
|
||||||
# Networking options
|
|
||||||
#
|
|
||||||
CONFIG_PACKET=y
|
|
||||||
CONFIG_PACKET_MMAP=y
|
|
||||||
CONFIG_UNIX=y
|
|
||||||
# CONFIG_NET_KEY is not set
|
|
||||||
CONFIG_INET=y
|
|
||||||
# CONFIG_IP_MULTICAST is not set
|
|
||||||
# CONFIG_IP_ADVANCED_ROUTER is not set
|
|
||||||
CONFIG_IP_FIB_HASH=y
|
|
||||||
CONFIG_IP_PNP=y
|
|
||||||
CONFIG_IP_PNP_DHCP=y
|
|
||||||
CONFIG_IP_PNP_BOOTP=y
|
|
||||||
# CONFIG_IP_PNP_RARP is not set
|
|
||||||
# CONFIG_NET_IPIP is not set
|
|
||||||
# CONFIG_NET_IPGRE is not set
|
|
||||||
# CONFIG_ARPD is not set
|
|
||||||
CONFIG_SYN_COOKIES=y
|
|
||||||
# CONFIG_INET_AH is not set
|
|
||||||
# CONFIG_INET_ESP is not set
|
|
||||||
# CONFIG_INET_IPCOMP is not set
|
|
||||||
# CONFIG_INET_TUNNEL is not set
|
|
||||||
CONFIG_IP_TCPDIAG=y
|
|
||||||
# CONFIG_IP_TCPDIAG_IPV6 is not set
|
|
||||||
# CONFIG_TCP_CONG_ADVANCED is not set
|
|
||||||
CONFIG_TCP_CONG_BIC=y
|
|
||||||
# CONFIG_IPV6 is not set
|
|
||||||
# CONFIG_NETFILTER is not set
|
|
||||||
|
|
||||||
#
|
|
||||||
# SCTP Configuration (EXPERIMENTAL)
|
|
||||||
#
|
|
||||||
# CONFIG_IP_SCTP is not set
|
|
||||||
# CONFIG_ATM is not set
|
|
||||||
# CONFIG_BRIDGE is not set
|
|
||||||
# CONFIG_VLAN_8021Q is not set
|
|
||||||
# CONFIG_DECNET is not set
|
|
||||||
# CONFIG_LLC2 is not set
|
|
||||||
# CONFIG_IPX is not set
|
|
||||||
# CONFIG_ATALK is not set
|
|
||||||
# CONFIG_X25 is not set
|
|
||||||
# CONFIG_LAPB is not set
|
|
||||||
# CONFIG_NET_DIVERT is not set
|
|
||||||
# CONFIG_ECONET is not set
|
|
||||||
# CONFIG_WAN_ROUTER is not set
|
|
||||||
|
|
||||||
#
|
|
||||||
# QoS and/or fair queueing
|
|
||||||
#
|
|
||||||
# CONFIG_NET_SCHED is not set
|
|
||||||
# CONFIG_NET_CLS_ROUTE is not set
|
|
||||||
|
|
||||||
#
|
|
||||||
# Network testing
|
|
||||||
#
|
|
||||||
# CONFIG_NET_PKTGEN is not set
|
|
||||||
# CONFIG_NETPOLL is not set
|
|
||||||
# CONFIG_NET_POLL_CONTROLLER is not set
|
|
||||||
# CONFIG_HAMRADIO is not set
|
|
||||||
# CONFIG_IRDA is not set
|
|
||||||
# CONFIG_BT is not set
|
|
||||||
CONFIG_NETDEVICES=y
|
CONFIG_NETDEVICES=y
|
||||||
CONFIG_DUMMY=y
|
CONFIG_DUMMY=y
|
||||||
# CONFIG_BONDING is not set
|
# CONFIG_BONDING is not set
|
||||||
|
@ -511,6 +509,8 @@ CONFIG_DLCI_MAX=8
|
||||||
# CONFIG_SLIP is not set
|
# CONFIG_SLIP is not set
|
||||||
# CONFIG_SHAPER is not set
|
# CONFIG_SHAPER is not set
|
||||||
# CONFIG_NETCONSOLE is not set
|
# CONFIG_NETCONSOLE is not set
|
||||||
|
# CONFIG_NETPOLL is not set
|
||||||
|
# CONFIG_NET_POLL_CONTROLLER is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# ISDN subsystem
|
# ISDN subsystem
|
||||||
|
@ -637,7 +637,7 @@ CONFIG_I2C_ALGOBIT=y
|
||||||
# CONFIG_I2C_I810 is not set
|
# CONFIG_I2C_I810 is not set
|
||||||
# CONFIG_I2C_PIIX4 is not set
|
# CONFIG_I2C_PIIX4 is not set
|
||||||
# CONFIG_I2C_ISA is not set
|
# CONFIG_I2C_ISA is not set
|
||||||
# CONFIG_I2C_IXP2000 is not set
|
CONFIG_I2C_IXP2000=y
|
||||||
# CONFIG_I2C_NFORCE2 is not set
|
# CONFIG_I2C_NFORCE2 is not set
|
||||||
# CONFIG_I2C_PARPORT_LIGHT is not set
|
# CONFIG_I2C_PARPORT_LIGHT is not set
|
||||||
# CONFIG_I2C_PROSAVAGE is not set
|
# CONFIG_I2C_PROSAVAGE is not set
|
||||||
|
@ -651,11 +651,28 @@ CONFIG_I2C_ALGOBIT=y
|
||||||
# CONFIG_I2C_VIAPRO is not set
|
# CONFIG_I2C_VIAPRO is not set
|
||||||
# CONFIG_I2C_VOODOO3 is not set
|
# CONFIG_I2C_VOODOO3 is not set
|
||||||
# CONFIG_I2C_PCA_ISA is not set
|
# CONFIG_I2C_PCA_ISA is not set
|
||||||
|
CONFIG_I2C_SENSOR=y
|
||||||
|
|
||||||
#
|
#
|
||||||
# Hardware Sensors Chip support
|
# Miscellaneous I2C Chip support
|
||||||
#
|
#
|
||||||
CONFIG_I2C_SENSOR=y
|
# CONFIG_SENSORS_DS1337 is not set
|
||||||
|
# CONFIG_SENSORS_DS1374 is not set
|
||||||
|
CONFIG_SENSORS_EEPROM=y
|
||||||
|
# CONFIG_SENSORS_PCF8574 is not set
|
||||||
|
# CONFIG_SENSORS_PCA9539 is not set
|
||||||
|
# CONFIG_SENSORS_PCF8591 is not set
|
||||||
|
# CONFIG_SENSORS_RTC8564 is not set
|
||||||
|
# CONFIG_SENSORS_MAX6875 is not set
|
||||||
|
# CONFIG_I2C_DEBUG_CORE is not set
|
||||||
|
# CONFIG_I2C_DEBUG_ALGO is not set
|
||||||
|
# CONFIG_I2C_DEBUG_BUS is not set
|
||||||
|
# CONFIG_I2C_DEBUG_CHIP is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# Hardware Monitoring support
|
||||||
|
#
|
||||||
|
CONFIG_HWMON=y
|
||||||
# CONFIG_SENSORS_ADM1021 is not set
|
# CONFIG_SENSORS_ADM1021 is not set
|
||||||
# CONFIG_SENSORS_ADM1025 is not set
|
# CONFIG_SENSORS_ADM1025 is not set
|
||||||
# CONFIG_SENSORS_ADM1026 is not set
|
# CONFIG_SENSORS_ADM1026 is not set
|
||||||
|
@ -681,30 +698,15 @@ CONFIG_I2C_SENSOR=y
|
||||||
# CONFIG_SENSORS_LM92 is not set
|
# CONFIG_SENSORS_LM92 is not set
|
||||||
# CONFIG_SENSORS_MAX1619 is not set
|
# CONFIG_SENSORS_MAX1619 is not set
|
||||||
# CONFIG_SENSORS_PC87360 is not set
|
# CONFIG_SENSORS_PC87360 is not set
|
||||||
# CONFIG_SENSORS_SMSC47B397 is not set
|
|
||||||
# CONFIG_SENSORS_SIS5595 is not set
|
# CONFIG_SENSORS_SIS5595 is not set
|
||||||
# CONFIG_SENSORS_SMSC47M1 is not set
|
# CONFIG_SENSORS_SMSC47M1 is not set
|
||||||
|
# CONFIG_SENSORS_SMSC47B397 is not set
|
||||||
# CONFIG_SENSORS_VIA686A is not set
|
# CONFIG_SENSORS_VIA686A is not set
|
||||||
# CONFIG_SENSORS_W83781D is not set
|
# CONFIG_SENSORS_W83781D is not set
|
||||||
# CONFIG_SENSORS_W83L785TS is not set
|
# CONFIG_SENSORS_W83L785TS is not set
|
||||||
# CONFIG_SENSORS_W83627HF is not set
|
# CONFIG_SENSORS_W83627HF is not set
|
||||||
# CONFIG_SENSORS_W83627EHF is not set
|
# CONFIG_SENSORS_W83627EHF is not set
|
||||||
|
# CONFIG_HWMON_DEBUG_CHIP is not set
|
||||||
#
|
|
||||||
# Other I2C Chip support
|
|
||||||
#
|
|
||||||
# CONFIG_SENSORS_DS1337 is not set
|
|
||||||
# CONFIG_SENSORS_DS1374 is not set
|
|
||||||
CONFIG_SENSORS_EEPROM=y
|
|
||||||
# CONFIG_SENSORS_PCF8574 is not set
|
|
||||||
# CONFIG_SENSORS_PCA9539 is not set
|
|
||||||
# CONFIG_SENSORS_PCF8591 is not set
|
|
||||||
# CONFIG_SENSORS_RTC8564 is not set
|
|
||||||
# CONFIG_SENSORS_MAX6875 is not set
|
|
||||||
# CONFIG_I2C_DEBUG_CORE is not set
|
|
||||||
# CONFIG_I2C_DEBUG_ALGO is not set
|
|
||||||
# CONFIG_I2C_DEBUG_BUS is not set
|
|
||||||
# CONFIG_I2C_DEBUG_CHIP is not set
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Misc devices
|
# Misc devices
|
||||||
|
@ -772,6 +774,7 @@ CONFIG_FS_POSIX_ACL=y
|
||||||
# CONFIG_XFS_FS is not set
|
# CONFIG_XFS_FS is not set
|
||||||
# CONFIG_MINIX_FS is not set
|
# CONFIG_MINIX_FS is not set
|
||||||
# CONFIG_ROMFS_FS is not set
|
# CONFIG_ROMFS_FS is not set
|
||||||
|
CONFIG_INOTIFY=y
|
||||||
# CONFIG_QUOTA is not set
|
# CONFIG_QUOTA is not set
|
||||||
CONFIG_DNOTIFY=y
|
CONFIG_DNOTIFY=y
|
||||||
# CONFIG_AUTOFS_FS is not set
|
# CONFIG_AUTOFS_FS is not set
|
||||||
|
@ -814,8 +817,7 @@ CONFIG_RAMFS=y
|
||||||
# CONFIG_JFFS_FS is not set
|
# CONFIG_JFFS_FS is not set
|
||||||
CONFIG_JFFS2_FS=y
|
CONFIG_JFFS2_FS=y
|
||||||
CONFIG_JFFS2_FS_DEBUG=0
|
CONFIG_JFFS2_FS_DEBUG=0
|
||||||
# CONFIG_JFFS2_FS_NAND is not set
|
CONFIG_JFFS2_FS_WRITEBUFFER=y
|
||||||
# CONFIG_JFFS2_FS_NOR_ECC is not set
|
|
||||||
# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
|
# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
|
||||||
CONFIG_JFFS2_ZLIB=y
|
CONFIG_JFFS2_ZLIB=y
|
||||||
CONFIG_JFFS2_RTIME=y
|
CONFIG_JFFS2_RTIME=y
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#
|
#
|
||||||
# Automatically generated make config: don't edit
|
# Automatically generated make config: don't edit
|
||||||
# Linux kernel version: 2.6.13-rc2
|
# Linux kernel version: 2.6.13
|
||||||
# Thu Jul 7 16:49:20 2005
|
# Wed Sep 14 10:52:23 2005
|
||||||
#
|
#
|
||||||
CONFIG_ARM=y
|
CONFIG_ARM=y
|
||||||
CONFIG_MMU=y
|
CONFIG_MMU=y
|
||||||
|
@ -136,7 +136,6 @@ CONFIG_PCI_NAMES=y
|
||||||
#
|
#
|
||||||
# Kernel Features
|
# Kernel Features
|
||||||
#
|
#
|
||||||
# CONFIG_SMP is not set
|
|
||||||
# CONFIG_PREEMPT is not set
|
# CONFIG_PREEMPT is not set
|
||||||
# CONFIG_NO_IDLE_HZ is not set
|
# CONFIG_NO_IDLE_HZ is not set
|
||||||
# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
|
# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
|
||||||
|
@ -179,6 +178,68 @@ CONFIG_BINFMT_ELF=y
|
||||||
#
|
#
|
||||||
# CONFIG_PM is not set
|
# CONFIG_PM is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# Networking
|
||||||
|
#
|
||||||
|
CONFIG_NET=y
|
||||||
|
|
||||||
|
#
|
||||||
|
# Networking options
|
||||||
|
#
|
||||||
|
CONFIG_PACKET=y
|
||||||
|
CONFIG_PACKET_MMAP=y
|
||||||
|
CONFIG_UNIX=y
|
||||||
|
# CONFIG_NET_KEY is not set
|
||||||
|
CONFIG_INET=y
|
||||||
|
# CONFIG_IP_MULTICAST is not set
|
||||||
|
# CONFIG_IP_ADVANCED_ROUTER is not set
|
||||||
|
CONFIG_IP_FIB_HASH=y
|
||||||
|
CONFIG_IP_PNP=y
|
||||||
|
CONFIG_IP_PNP_DHCP=y
|
||||||
|
CONFIG_IP_PNP_BOOTP=y
|
||||||
|
# CONFIG_IP_PNP_RARP is not set
|
||||||
|
# CONFIG_NET_IPIP is not set
|
||||||
|
# CONFIG_NET_IPGRE is not set
|
||||||
|
# CONFIG_ARPD is not set
|
||||||
|
CONFIG_SYN_COOKIES=y
|
||||||
|
# CONFIG_INET_AH is not set
|
||||||
|
# CONFIG_INET_ESP is not set
|
||||||
|
# CONFIG_INET_IPCOMP is not set
|
||||||
|
# CONFIG_INET_TUNNEL is not set
|
||||||
|
# CONFIG_IP_TCPDIAG is not set
|
||||||
|
# CONFIG_IP_TCPDIAG_IPV6 is not set
|
||||||
|
# CONFIG_TCP_CONG_ADVANCED is not set
|
||||||
|
CONFIG_TCP_CONG_BIC=y
|
||||||
|
# CONFIG_IPV6 is not set
|
||||||
|
# CONFIG_NETFILTER is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# SCTP Configuration (EXPERIMENTAL)
|
||||||
|
#
|
||||||
|
# CONFIG_IP_SCTP is not set
|
||||||
|
# CONFIG_ATM is not set
|
||||||
|
# CONFIG_BRIDGE is not set
|
||||||
|
# CONFIG_VLAN_8021Q is not set
|
||||||
|
# CONFIG_DECNET is not set
|
||||||
|
# CONFIG_LLC2 is not set
|
||||||
|
# CONFIG_IPX is not set
|
||||||
|
# CONFIG_ATALK is not set
|
||||||
|
# CONFIG_X25 is not set
|
||||||
|
# CONFIG_LAPB is not set
|
||||||
|
# CONFIG_NET_DIVERT is not set
|
||||||
|
# CONFIG_ECONET is not set
|
||||||
|
# CONFIG_WAN_ROUTER is not set
|
||||||
|
# CONFIG_NET_SCHED is not set
|
||||||
|
# CONFIG_NET_CLS_ROUTE is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# Network testing
|
||||||
|
#
|
||||||
|
# CONFIG_NET_PKTGEN is not set
|
||||||
|
# CONFIG_HAMRADIO is not set
|
||||||
|
# CONFIG_IRDA is not set
|
||||||
|
# CONFIG_BT is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# Device Drivers
|
# Device Drivers
|
||||||
#
|
#
|
||||||
|
@ -249,6 +310,7 @@ CONFIG_MTD_COMPLEX_MAPPINGS=y
|
||||||
CONFIG_MTD_IXP2000=y
|
CONFIG_MTD_IXP2000=y
|
||||||
# CONFIG_MTD_EDB7312 is not set
|
# CONFIG_MTD_EDB7312 is not set
|
||||||
# CONFIG_MTD_PCI is not set
|
# CONFIG_MTD_PCI is not set
|
||||||
|
# CONFIG_MTD_PLATRAM is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# Self-contained MTD device drivers
|
# Self-contained MTD device drivers
|
||||||
|
@ -335,72 +397,8 @@ CONFIG_IOSCHED_CFQ=y
|
||||||
# CONFIG_I2O is not set
|
# CONFIG_I2O is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# Networking support
|
# Network device support
|
||||||
#
|
#
|
||||||
CONFIG_NET=y
|
|
||||||
|
|
||||||
#
|
|
||||||
# Networking options
|
|
||||||
#
|
|
||||||
CONFIG_PACKET=y
|
|
||||||
CONFIG_PACKET_MMAP=y
|
|
||||||
CONFIG_UNIX=y
|
|
||||||
# CONFIG_NET_KEY is not set
|
|
||||||
CONFIG_INET=y
|
|
||||||
# CONFIG_IP_MULTICAST is not set
|
|
||||||
# CONFIG_IP_ADVANCED_ROUTER is not set
|
|
||||||
CONFIG_IP_FIB_HASH=y
|
|
||||||
CONFIG_IP_PNP=y
|
|
||||||
CONFIG_IP_PNP_DHCP=y
|
|
||||||
CONFIG_IP_PNP_BOOTP=y
|
|
||||||
# CONFIG_IP_PNP_RARP is not set
|
|
||||||
# CONFIG_NET_IPIP is not set
|
|
||||||
# CONFIG_NET_IPGRE is not set
|
|
||||||
# CONFIG_ARPD is not set
|
|
||||||
CONFIG_SYN_COOKIES=y
|
|
||||||
# CONFIG_INET_AH is not set
|
|
||||||
# CONFIG_INET_ESP is not set
|
|
||||||
# CONFIG_INET_IPCOMP is not set
|
|
||||||
# CONFIG_INET_TUNNEL is not set
|
|
||||||
# CONFIG_IP_TCPDIAG is not set
|
|
||||||
# CONFIG_IP_TCPDIAG_IPV6 is not set
|
|
||||||
# CONFIG_TCP_CONG_ADVANCED is not set
|
|
||||||
CONFIG_TCP_CONG_BIC=y
|
|
||||||
# CONFIG_IPV6 is not set
|
|
||||||
# CONFIG_NETFILTER is not set
|
|
||||||
|
|
||||||
#
|
|
||||||
# SCTP Configuration (EXPERIMENTAL)
|
|
||||||
#
|
|
||||||
# CONFIG_IP_SCTP is not set
|
|
||||||
# CONFIG_ATM is not set
|
|
||||||
# CONFIG_BRIDGE is not set
|
|
||||||
# CONFIG_VLAN_8021Q is not set
|
|
||||||
# CONFIG_DECNET is not set
|
|
||||||
# CONFIG_LLC2 is not set
|
|
||||||
# CONFIG_IPX is not set
|
|
||||||
# CONFIG_ATALK is not set
|
|
||||||
# CONFIG_X25 is not set
|
|
||||||
# CONFIG_LAPB is not set
|
|
||||||
# CONFIG_NET_DIVERT is not set
|
|
||||||
# CONFIG_ECONET is not set
|
|
||||||
# CONFIG_WAN_ROUTER is not set
|
|
||||||
|
|
||||||
#
|
|
||||||
# QoS and/or fair queueing
|
|
||||||
#
|
|
||||||
# CONFIG_NET_SCHED is not set
|
|
||||||
# CONFIG_NET_CLS_ROUTE is not set
|
|
||||||
|
|
||||||
#
|
|
||||||
# Network testing
|
|
||||||
#
|
|
||||||
# CONFIG_NET_PKTGEN is not set
|
|
||||||
# CONFIG_NETPOLL is not set
|
|
||||||
# CONFIG_NET_POLL_CONTROLLER is not set
|
|
||||||
# CONFIG_HAMRADIO is not set
|
|
||||||
# CONFIG_IRDA is not set
|
|
||||||
# CONFIG_BT is not set
|
|
||||||
CONFIG_NETDEVICES=y
|
CONFIG_NETDEVICES=y
|
||||||
CONFIG_DUMMY=y
|
CONFIG_DUMMY=y
|
||||||
# CONFIG_BONDING is not set
|
# CONFIG_BONDING is not set
|
||||||
|
@ -510,6 +508,8 @@ CONFIG_DLCI_MAX=8
|
||||||
# CONFIG_SLIP is not set
|
# CONFIG_SLIP is not set
|
||||||
# CONFIG_SHAPER is not set
|
# CONFIG_SHAPER is not set
|
||||||
# CONFIG_NETCONSOLE is not set
|
# CONFIG_NETCONSOLE is not set
|
||||||
|
# CONFIG_NETPOLL is not set
|
||||||
|
# CONFIG_NET_POLL_CONTROLLER is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# ISDN subsystem
|
# ISDN subsystem
|
||||||
|
@ -636,7 +636,7 @@ CONFIG_I2C_ALGOBIT=y
|
||||||
# CONFIG_I2C_I810 is not set
|
# CONFIG_I2C_I810 is not set
|
||||||
# CONFIG_I2C_PIIX4 is not set
|
# CONFIG_I2C_PIIX4 is not set
|
||||||
# CONFIG_I2C_ISA is not set
|
# CONFIG_I2C_ISA is not set
|
||||||
# CONFIG_I2C_IXP2000 is not set
|
CONFIG_I2C_IXP2000=y
|
||||||
# CONFIG_I2C_NFORCE2 is not set
|
# CONFIG_I2C_NFORCE2 is not set
|
||||||
# CONFIG_I2C_PARPORT_LIGHT is not set
|
# CONFIG_I2C_PARPORT_LIGHT is not set
|
||||||
# CONFIG_I2C_PROSAVAGE is not set
|
# CONFIG_I2C_PROSAVAGE is not set
|
||||||
|
@ -650,11 +650,28 @@ CONFIG_I2C_ALGOBIT=y
|
||||||
# CONFIG_I2C_VIAPRO is not set
|
# CONFIG_I2C_VIAPRO is not set
|
||||||
# CONFIG_I2C_VOODOO3 is not set
|
# CONFIG_I2C_VOODOO3 is not set
|
||||||
# CONFIG_I2C_PCA_ISA is not set
|
# CONFIG_I2C_PCA_ISA is not set
|
||||||
|
CONFIG_I2C_SENSOR=y
|
||||||
|
|
||||||
#
|
#
|
||||||
# Hardware Sensors Chip support
|
# Miscellaneous I2C Chip support
|
||||||
#
|
#
|
||||||
CONFIG_I2C_SENSOR=y
|
# CONFIG_SENSORS_DS1337 is not set
|
||||||
|
# CONFIG_SENSORS_DS1374 is not set
|
||||||
|
CONFIG_SENSORS_EEPROM=y
|
||||||
|
# CONFIG_SENSORS_PCF8574 is not set
|
||||||
|
# CONFIG_SENSORS_PCA9539 is not set
|
||||||
|
# CONFIG_SENSORS_PCF8591 is not set
|
||||||
|
# CONFIG_SENSORS_RTC8564 is not set
|
||||||
|
# CONFIG_SENSORS_MAX6875 is not set
|
||||||
|
# CONFIG_I2C_DEBUG_CORE is not set
|
||||||
|
# CONFIG_I2C_DEBUG_ALGO is not set
|
||||||
|
# CONFIG_I2C_DEBUG_BUS is not set
|
||||||
|
# CONFIG_I2C_DEBUG_CHIP is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# Hardware Monitoring support
|
||||||
|
#
|
||||||
|
CONFIG_HWMON=y
|
||||||
# CONFIG_SENSORS_ADM1021 is not set
|
# CONFIG_SENSORS_ADM1021 is not set
|
||||||
# CONFIG_SENSORS_ADM1025 is not set
|
# CONFIG_SENSORS_ADM1025 is not set
|
||||||
# CONFIG_SENSORS_ADM1026 is not set
|
# CONFIG_SENSORS_ADM1026 is not set
|
||||||
|
@ -680,30 +697,15 @@ CONFIG_I2C_SENSOR=y
|
||||||
# CONFIG_SENSORS_LM92 is not set
|
# CONFIG_SENSORS_LM92 is not set
|
||||||
# CONFIG_SENSORS_MAX1619 is not set
|
# CONFIG_SENSORS_MAX1619 is not set
|
||||||
# CONFIG_SENSORS_PC87360 is not set
|
# CONFIG_SENSORS_PC87360 is not set
|
||||||
# CONFIG_SENSORS_SMSC47B397 is not set
|
|
||||||
# CONFIG_SENSORS_SIS5595 is not set
|
# CONFIG_SENSORS_SIS5595 is not set
|
||||||
# CONFIG_SENSORS_SMSC47M1 is not set
|
# CONFIG_SENSORS_SMSC47M1 is not set
|
||||||
|
# CONFIG_SENSORS_SMSC47B397 is not set
|
||||||
# CONFIG_SENSORS_VIA686A is not set
|
# CONFIG_SENSORS_VIA686A is not set
|
||||||
# CONFIG_SENSORS_W83781D is not set
|
# CONFIG_SENSORS_W83781D is not set
|
||||||
# CONFIG_SENSORS_W83L785TS is not set
|
# CONFIG_SENSORS_W83L785TS is not set
|
||||||
# CONFIG_SENSORS_W83627HF is not set
|
# CONFIG_SENSORS_W83627HF is not set
|
||||||
# CONFIG_SENSORS_W83627EHF is not set
|
# CONFIG_SENSORS_W83627EHF is not set
|
||||||
|
# CONFIG_HWMON_DEBUG_CHIP is not set
|
||||||
#
|
|
||||||
# Other I2C Chip support
|
|
||||||
#
|
|
||||||
# CONFIG_SENSORS_DS1337 is not set
|
|
||||||
# CONFIG_SENSORS_DS1374 is not set
|
|
||||||
CONFIG_SENSORS_EEPROM=y
|
|
||||||
# CONFIG_SENSORS_PCF8574 is not set
|
|
||||||
# CONFIG_SENSORS_PCA9539 is not set
|
|
||||||
# CONFIG_SENSORS_PCF8591 is not set
|
|
||||||
# CONFIG_SENSORS_RTC8564 is not set
|
|
||||||
# CONFIG_SENSORS_MAX6875 is not set
|
|
||||||
# CONFIG_I2C_DEBUG_CORE is not set
|
|
||||||
# CONFIG_I2C_DEBUG_ALGO is not set
|
|
||||||
# CONFIG_I2C_DEBUG_BUS is not set
|
|
||||||
# CONFIG_I2C_DEBUG_CHIP is not set
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Misc devices
|
# Misc devices
|
||||||
|
@ -771,6 +773,7 @@ CONFIG_FS_POSIX_ACL=y
|
||||||
# CONFIG_XFS_FS is not set
|
# CONFIG_XFS_FS is not set
|
||||||
# CONFIG_MINIX_FS is not set
|
# CONFIG_MINIX_FS is not set
|
||||||
# CONFIG_ROMFS_FS is not set
|
# CONFIG_ROMFS_FS is not set
|
||||||
|
CONFIG_INOTIFY=y
|
||||||
# CONFIG_QUOTA is not set
|
# CONFIG_QUOTA is not set
|
||||||
CONFIG_DNOTIFY=y
|
CONFIG_DNOTIFY=y
|
||||||
# CONFIG_AUTOFS_FS is not set
|
# CONFIG_AUTOFS_FS is not set
|
||||||
|
@ -813,8 +816,7 @@ CONFIG_RAMFS=y
|
||||||
# CONFIG_JFFS_FS is not set
|
# CONFIG_JFFS_FS is not set
|
||||||
CONFIG_JFFS2_FS=y
|
CONFIG_JFFS2_FS=y
|
||||||
CONFIG_JFFS2_FS_DEBUG=0
|
CONFIG_JFFS2_FS_DEBUG=0
|
||||||
# CONFIG_JFFS2_FS_NAND is not set
|
CONFIG_JFFS2_FS_WRITEBUFFER=y
|
||||||
# CONFIG_JFFS2_FS_NOR_ECC is not set
|
|
||||||
# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
|
# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
|
||||||
CONFIG_JFFS2_ZLIB=y
|
CONFIG_JFFS2_ZLIB=y
|
||||||
CONFIG_JFFS2_RTIME=y
|
CONFIG_JFFS2_RTIME=y
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#
|
#
|
||||||
# Automatically generated make config: don't edit
|
# Automatically generated make config: don't edit
|
||||||
# Linux kernel version: 2.6.13-rc2
|
# Linux kernel version: 2.6.13
|
||||||
# Thu Jul 7 16:49:13 2005
|
# Wed Sep 14 10:52:16 2005
|
||||||
#
|
#
|
||||||
CONFIG_ARM=y
|
CONFIG_ARM=y
|
||||||
CONFIG_MMU=y
|
CONFIG_MMU=y
|
||||||
|
@ -136,7 +136,6 @@ CONFIG_PCI_NAMES=y
|
||||||
#
|
#
|
||||||
# Kernel Features
|
# Kernel Features
|
||||||
#
|
#
|
||||||
# CONFIG_SMP is not set
|
|
||||||
# CONFIG_PREEMPT is not set
|
# CONFIG_PREEMPT is not set
|
||||||
# CONFIG_NO_IDLE_HZ is not set
|
# CONFIG_NO_IDLE_HZ is not set
|
||||||
# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
|
# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
|
||||||
|
@ -179,6 +178,68 @@ CONFIG_BINFMT_ELF=y
|
||||||
#
|
#
|
||||||
# CONFIG_PM is not set
|
# CONFIG_PM is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# Networking
|
||||||
|
#
|
||||||
|
CONFIG_NET=y
|
||||||
|
|
||||||
|
#
|
||||||
|
# Networking options
|
||||||
|
#
|
||||||
|
CONFIG_PACKET=y
|
||||||
|
CONFIG_PACKET_MMAP=y
|
||||||
|
CONFIG_UNIX=y
|
||||||
|
# CONFIG_NET_KEY is not set
|
||||||
|
CONFIG_INET=y
|
||||||
|
# CONFIG_IP_MULTICAST is not set
|
||||||
|
# CONFIG_IP_ADVANCED_ROUTER is not set
|
||||||
|
CONFIG_IP_FIB_HASH=y
|
||||||
|
CONFIG_IP_PNP=y
|
||||||
|
CONFIG_IP_PNP_DHCP=y
|
||||||
|
CONFIG_IP_PNP_BOOTP=y
|
||||||
|
# CONFIG_IP_PNP_RARP is not set
|
||||||
|
# CONFIG_NET_IPIP is not set
|
||||||
|
# CONFIG_NET_IPGRE is not set
|
||||||
|
# CONFIG_ARPD is not set
|
||||||
|
CONFIG_SYN_COOKIES=y
|
||||||
|
# CONFIG_INET_AH is not set
|
||||||
|
# CONFIG_INET_ESP is not set
|
||||||
|
# CONFIG_INET_IPCOMP is not set
|
||||||
|
# CONFIG_INET_TUNNEL is not set
|
||||||
|
# CONFIG_IP_TCPDIAG is not set
|
||||||
|
# CONFIG_IP_TCPDIAG_IPV6 is not set
|
||||||
|
# CONFIG_TCP_CONG_ADVANCED is not set
|
||||||
|
CONFIG_TCP_CONG_BIC=y
|
||||||
|
# CONFIG_IPV6 is not set
|
||||||
|
# CONFIG_NETFILTER is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# SCTP Configuration (EXPERIMENTAL)
|
||||||
|
#
|
||||||
|
# CONFIG_IP_SCTP is not set
|
||||||
|
# CONFIG_ATM is not set
|
||||||
|
# CONFIG_BRIDGE is not set
|
||||||
|
# CONFIG_VLAN_8021Q is not set
|
||||||
|
# CONFIG_DECNET is not set
|
||||||
|
# CONFIG_LLC2 is not set
|
||||||
|
# CONFIG_IPX is not set
|
||||||
|
# CONFIG_ATALK is not set
|
||||||
|
# CONFIG_X25 is not set
|
||||||
|
# CONFIG_LAPB is not set
|
||||||
|
# CONFIG_NET_DIVERT is not set
|
||||||
|
# CONFIG_ECONET is not set
|
||||||
|
# CONFIG_WAN_ROUTER is not set
|
||||||
|
# CONFIG_NET_SCHED is not set
|
||||||
|
# CONFIG_NET_CLS_ROUTE is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# Network testing
|
||||||
|
#
|
||||||
|
# CONFIG_NET_PKTGEN is not set
|
||||||
|
# CONFIG_HAMRADIO is not set
|
||||||
|
# CONFIG_IRDA is not set
|
||||||
|
# CONFIG_BT is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# Device Drivers
|
# Device Drivers
|
||||||
#
|
#
|
||||||
|
@ -249,6 +310,7 @@ CONFIG_MTD_COMPLEX_MAPPINGS=y
|
||||||
CONFIG_MTD_IXP2000=y
|
CONFIG_MTD_IXP2000=y
|
||||||
# CONFIG_MTD_EDB7312 is not set
|
# CONFIG_MTD_EDB7312 is not set
|
||||||
# CONFIG_MTD_PCI is not set
|
# CONFIG_MTD_PCI is not set
|
||||||
|
# CONFIG_MTD_PLATRAM is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# Self-contained MTD device drivers
|
# Self-contained MTD device drivers
|
||||||
|
@ -335,72 +397,8 @@ CONFIG_IOSCHED_CFQ=y
|
||||||
# CONFIG_I2O is not set
|
# CONFIG_I2O is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# Networking support
|
# Network device support
|
||||||
#
|
#
|
||||||
CONFIG_NET=y
|
|
||||||
|
|
||||||
#
|
|
||||||
# Networking options
|
|
||||||
#
|
|
||||||
CONFIG_PACKET=y
|
|
||||||
CONFIG_PACKET_MMAP=y
|
|
||||||
CONFIG_UNIX=y
|
|
||||||
# CONFIG_NET_KEY is not set
|
|
||||||
CONFIG_INET=y
|
|
||||||
# CONFIG_IP_MULTICAST is not set
|
|
||||||
# CONFIG_IP_ADVANCED_ROUTER is not set
|
|
||||||
CONFIG_IP_FIB_HASH=y
|
|
||||||
CONFIG_IP_PNP=y
|
|
||||||
CONFIG_IP_PNP_DHCP=y
|
|
||||||
CONFIG_IP_PNP_BOOTP=y
|
|
||||||
# CONFIG_IP_PNP_RARP is not set
|
|
||||||
# CONFIG_NET_IPIP is not set
|
|
||||||
# CONFIG_NET_IPGRE is not set
|
|
||||||
# CONFIG_ARPD is not set
|
|
||||||
CONFIG_SYN_COOKIES=y
|
|
||||||
# CONFIG_INET_AH is not set
|
|
||||||
# CONFIG_INET_ESP is not set
|
|
||||||
# CONFIG_INET_IPCOMP is not set
|
|
||||||
# CONFIG_INET_TUNNEL is not set
|
|
||||||
# CONFIG_IP_TCPDIAG is not set
|
|
||||||
# CONFIG_IP_TCPDIAG_IPV6 is not set
|
|
||||||
# CONFIG_TCP_CONG_ADVANCED is not set
|
|
||||||
CONFIG_TCP_CONG_BIC=y
|
|
||||||
# CONFIG_IPV6 is not set
|
|
||||||
# CONFIG_NETFILTER is not set
|
|
||||||
|
|
||||||
#
|
|
||||||
# SCTP Configuration (EXPERIMENTAL)
|
|
||||||
#
|
|
||||||
# CONFIG_IP_SCTP is not set
|
|
||||||
# CONFIG_ATM is not set
|
|
||||||
# CONFIG_BRIDGE is not set
|
|
||||||
# CONFIG_VLAN_8021Q is not set
|
|
||||||
# CONFIG_DECNET is not set
|
|
||||||
# CONFIG_LLC2 is not set
|
|
||||||
# CONFIG_IPX is not set
|
|
||||||
# CONFIG_ATALK is not set
|
|
||||||
# CONFIG_X25 is not set
|
|
||||||
# CONFIG_LAPB is not set
|
|
||||||
# CONFIG_NET_DIVERT is not set
|
|
||||||
# CONFIG_ECONET is not set
|
|
||||||
# CONFIG_WAN_ROUTER is not set
|
|
||||||
|
|
||||||
#
|
|
||||||
# QoS and/or fair queueing
|
|
||||||
#
|
|
||||||
# CONFIG_NET_SCHED is not set
|
|
||||||
# CONFIG_NET_CLS_ROUTE is not set
|
|
||||||
|
|
||||||
#
|
|
||||||
# Network testing
|
|
||||||
#
|
|
||||||
# CONFIG_NET_PKTGEN is not set
|
|
||||||
# CONFIG_NETPOLL is not set
|
|
||||||
# CONFIG_NET_POLL_CONTROLLER is not set
|
|
||||||
# CONFIG_HAMRADIO is not set
|
|
||||||
# CONFIG_IRDA is not set
|
|
||||||
# CONFIG_BT is not set
|
|
||||||
CONFIG_NETDEVICES=y
|
CONFIG_NETDEVICES=y
|
||||||
CONFIG_DUMMY=y
|
CONFIG_DUMMY=y
|
||||||
# CONFIG_BONDING is not set
|
# CONFIG_BONDING is not set
|
||||||
|
@ -511,6 +509,8 @@ CONFIG_DLCI_MAX=8
|
||||||
# CONFIG_SLIP is not set
|
# CONFIG_SLIP is not set
|
||||||
# CONFIG_SHAPER is not set
|
# CONFIG_SHAPER is not set
|
||||||
# CONFIG_NETCONSOLE is not set
|
# CONFIG_NETCONSOLE is not set
|
||||||
|
# CONFIG_NETPOLL is not set
|
||||||
|
# CONFIG_NET_POLL_CONTROLLER is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# ISDN subsystem
|
# ISDN subsystem
|
||||||
|
@ -637,7 +637,7 @@ CONFIG_I2C_ALGOBIT=y
|
||||||
# CONFIG_I2C_I810 is not set
|
# CONFIG_I2C_I810 is not set
|
||||||
# CONFIG_I2C_PIIX4 is not set
|
# CONFIG_I2C_PIIX4 is not set
|
||||||
# CONFIG_I2C_ISA is not set
|
# CONFIG_I2C_ISA is not set
|
||||||
# CONFIG_I2C_IXP2000 is not set
|
CONFIG_I2C_IXP2000=y
|
||||||
# CONFIG_I2C_NFORCE2 is not set
|
# CONFIG_I2C_NFORCE2 is not set
|
||||||
# CONFIG_I2C_PARPORT_LIGHT is not set
|
# CONFIG_I2C_PARPORT_LIGHT is not set
|
||||||
# CONFIG_I2C_PROSAVAGE is not set
|
# CONFIG_I2C_PROSAVAGE is not set
|
||||||
|
@ -651,11 +651,28 @@ CONFIG_I2C_ALGOBIT=y
|
||||||
# CONFIG_I2C_VIAPRO is not set
|
# CONFIG_I2C_VIAPRO is not set
|
||||||
# CONFIG_I2C_VOODOO3 is not set
|
# CONFIG_I2C_VOODOO3 is not set
|
||||||
# CONFIG_I2C_PCA_ISA is not set
|
# CONFIG_I2C_PCA_ISA is not set
|
||||||
|
CONFIG_I2C_SENSOR=y
|
||||||
|
|
||||||
#
|
#
|
||||||
# Hardware Sensors Chip support
|
# Miscellaneous I2C Chip support
|
||||||
#
|
#
|
||||||
CONFIG_I2C_SENSOR=y
|
# CONFIG_SENSORS_DS1337 is not set
|
||||||
|
# CONFIG_SENSORS_DS1374 is not set
|
||||||
|
CONFIG_SENSORS_EEPROM=y
|
||||||
|
# CONFIG_SENSORS_PCF8574 is not set
|
||||||
|
# CONFIG_SENSORS_PCA9539 is not set
|
||||||
|
# CONFIG_SENSORS_PCF8591 is not set
|
||||||
|
# CONFIG_SENSORS_RTC8564 is not set
|
||||||
|
# CONFIG_SENSORS_MAX6875 is not set
|
||||||
|
# CONFIG_I2C_DEBUG_CORE is not set
|
||||||
|
# CONFIG_I2C_DEBUG_ALGO is not set
|
||||||
|
# CONFIG_I2C_DEBUG_BUS is not set
|
||||||
|
# CONFIG_I2C_DEBUG_CHIP is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# Hardware Monitoring support
|
||||||
|
#
|
||||||
|
CONFIG_HWMON=y
|
||||||
# CONFIG_SENSORS_ADM1021 is not set
|
# CONFIG_SENSORS_ADM1021 is not set
|
||||||
# CONFIG_SENSORS_ADM1025 is not set
|
# CONFIG_SENSORS_ADM1025 is not set
|
||||||
# CONFIG_SENSORS_ADM1026 is not set
|
# CONFIG_SENSORS_ADM1026 is not set
|
||||||
|
@ -681,30 +698,15 @@ CONFIG_I2C_SENSOR=y
|
||||||
# CONFIG_SENSORS_LM92 is not set
|
# CONFIG_SENSORS_LM92 is not set
|
||||||
# CONFIG_SENSORS_MAX1619 is not set
|
# CONFIG_SENSORS_MAX1619 is not set
|
||||||
# CONFIG_SENSORS_PC87360 is not set
|
# CONFIG_SENSORS_PC87360 is not set
|
||||||
# CONFIG_SENSORS_SMSC47B397 is not set
|
|
||||||
# CONFIG_SENSORS_SIS5595 is not set
|
# CONFIG_SENSORS_SIS5595 is not set
|
||||||
# CONFIG_SENSORS_SMSC47M1 is not set
|
# CONFIG_SENSORS_SMSC47M1 is not set
|
||||||
|
# CONFIG_SENSORS_SMSC47B397 is not set
|
||||||
# CONFIG_SENSORS_VIA686A is not set
|
# CONFIG_SENSORS_VIA686A is not set
|
||||||
# CONFIG_SENSORS_W83781D is not set
|
# CONFIG_SENSORS_W83781D is not set
|
||||||
# CONFIG_SENSORS_W83L785TS is not set
|
# CONFIG_SENSORS_W83L785TS is not set
|
||||||
# CONFIG_SENSORS_W83627HF is not set
|
# CONFIG_SENSORS_W83627HF is not set
|
||||||
# CONFIG_SENSORS_W83627EHF is not set
|
# CONFIG_SENSORS_W83627EHF is not set
|
||||||
|
# CONFIG_HWMON_DEBUG_CHIP is not set
|
||||||
#
|
|
||||||
# Other I2C Chip support
|
|
||||||
#
|
|
||||||
# CONFIG_SENSORS_DS1337 is not set
|
|
||||||
# CONFIG_SENSORS_DS1374 is not set
|
|
||||||
CONFIG_SENSORS_EEPROM=y
|
|
||||||
# CONFIG_SENSORS_PCF8574 is not set
|
|
||||||
# CONFIG_SENSORS_PCA9539 is not set
|
|
||||||
# CONFIG_SENSORS_PCF8591 is not set
|
|
||||||
# CONFIG_SENSORS_RTC8564 is not set
|
|
||||||
# CONFIG_SENSORS_MAX6875 is not set
|
|
||||||
# CONFIG_I2C_DEBUG_CORE is not set
|
|
||||||
# CONFIG_I2C_DEBUG_ALGO is not set
|
|
||||||
# CONFIG_I2C_DEBUG_BUS is not set
|
|
||||||
# CONFIG_I2C_DEBUG_CHIP is not set
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Misc devices
|
# Misc devices
|
||||||
|
@ -772,6 +774,7 @@ CONFIG_FS_POSIX_ACL=y
|
||||||
# CONFIG_XFS_FS is not set
|
# CONFIG_XFS_FS is not set
|
||||||
# CONFIG_MINIX_FS is not set
|
# CONFIG_MINIX_FS is not set
|
||||||
# CONFIG_ROMFS_FS is not set
|
# CONFIG_ROMFS_FS is not set
|
||||||
|
CONFIG_INOTIFY=y
|
||||||
# CONFIG_QUOTA is not set
|
# CONFIG_QUOTA is not set
|
||||||
CONFIG_DNOTIFY=y
|
CONFIG_DNOTIFY=y
|
||||||
# CONFIG_AUTOFS_FS is not set
|
# CONFIG_AUTOFS_FS is not set
|
||||||
|
@ -814,8 +817,7 @@ CONFIG_RAMFS=y
|
||||||
# CONFIG_JFFS_FS is not set
|
# CONFIG_JFFS_FS is not set
|
||||||
CONFIG_JFFS2_FS=y
|
CONFIG_JFFS2_FS=y
|
||||||
CONFIG_JFFS2_FS_DEBUG=0
|
CONFIG_JFFS2_FS_DEBUG=0
|
||||||
# CONFIG_JFFS2_FS_NAND is not set
|
CONFIG_JFFS2_FS_WRITEBUFFER=y
|
||||||
# CONFIG_JFFS2_FS_NOR_ECC is not set
|
|
||||||
# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
|
# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
|
||||||
CONFIG_JFFS2_ZLIB=y
|
CONFIG_JFFS2_ZLIB=y
|
||||||
CONFIG_JFFS2_RTIME=y
|
CONFIG_JFFS2_RTIME=y
|
||||||
|
|
|
@ -131,7 +131,7 @@ __syscall_start:
|
||||||
.long sys_wait4
|
.long sys_wait4
|
||||||
/* 115 */ .long sys_swapoff
|
/* 115 */ .long sys_swapoff
|
||||||
.long sys_sysinfo
|
.long sys_sysinfo
|
||||||
.long sys_ipc
|
.long sys_ipc_wrapper
|
||||||
.long sys_fsync
|
.long sys_fsync
|
||||||
.long sys_sigreturn_wrapper
|
.long sys_sigreturn_wrapper
|
||||||
/* 120 */ .long sys_clone_wrapper
|
/* 120 */ .long sys_clone_wrapper
|
||||||
|
|
|
@ -273,6 +273,10 @@ sys_mbind_wrapper:
|
||||||
str r5, [sp, #4]
|
str r5, [sp, #4]
|
||||||
b sys_mbind
|
b sys_mbind
|
||||||
|
|
||||||
|
sys_ipc_wrapper:
|
||||||
|
str r5, [sp, #4] @ push sixth arg
|
||||||
|
b sys_ipc
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Note: off_4k (r5) is always units of 4K. If we can't do the requested
|
* Note: off_4k (r5) is always units of 4K. If we can't do the requested
|
||||||
* offset, we return EINVAL.
|
* offset, we return EINVAL.
|
||||||
|
|
|
@ -178,7 +178,7 @@ int __down_trylock(struct semaphore * sem)
|
||||||
* registers (r0 to r3 and lr), but not ip, as we use it as a return
|
* registers (r0 to r3 and lr), but not ip, as we use it as a return
|
||||||
* value in some cases..
|
* value in some cases..
|
||||||
*/
|
*/
|
||||||
asm(" .section .sched.text,\"ax\" \n\
|
asm(" .section .sched.text,\"ax\",%progbits \n\
|
||||||
.align 5 \n\
|
.align 5 \n\
|
||||||
.globl __down_failed \n\
|
.globl __down_failed \n\
|
||||||
__down_failed: \n\
|
__down_failed: \n\
|
||||||
|
|
|
@ -624,6 +624,9 @@ void __attribute__((noreturn)) __bug(const char *file, int line, void *data)
|
||||||
printk(" - extra data = %p", data);
|
printk(" - extra data = %p", data);
|
||||||
printk("\n");
|
printk("\n");
|
||||||
*(int *)0 = 0;
|
*(int *)0 = 0;
|
||||||
|
|
||||||
|
/* Avoid "noreturn function does return" */
|
||||||
|
for (;;);
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL(__bug);
|
EXPORT_SYMBOL(__bug);
|
||||||
|
|
||||||
|
|
|
@ -23,20 +23,20 @@ SECTIONS
|
||||||
*(.init.text)
|
*(.init.text)
|
||||||
_einittext = .;
|
_einittext = .;
|
||||||
__proc_info_begin = .;
|
__proc_info_begin = .;
|
||||||
*(.proc.info)
|
*(.proc.info.init)
|
||||||
__proc_info_end = .;
|
__proc_info_end = .;
|
||||||
__arch_info_begin = .;
|
__arch_info_begin = .;
|
||||||
*(.arch.info)
|
*(.arch.info.init)
|
||||||
__arch_info_end = .;
|
__arch_info_end = .;
|
||||||
__tagtable_begin = .;
|
__tagtable_begin = .;
|
||||||
*(.taglist)
|
*(.taglist.init)
|
||||||
__tagtable_end = .;
|
__tagtable_end = .;
|
||||||
. = ALIGN(16);
|
. = ALIGN(16);
|
||||||
__setup_start = .;
|
__setup_start = .;
|
||||||
*(.init.setup)
|
*(.init.setup)
|
||||||
__setup_end = .;
|
__setup_end = .;
|
||||||
__early_begin = .;
|
__early_begin = .;
|
||||||
*(__early_param)
|
*(.early_param.init)
|
||||||
__early_end = .;
|
__early_end = .;
|
||||||
__initcall_start = .;
|
__initcall_start = .;
|
||||||
*(.initcall1.init)
|
*(.initcall1.init)
|
||||||
|
|
|
@ -123,6 +123,7 @@ static void __init ixdp425_init(void)
|
||||||
platform_add_devices(ixdp425_devices, ARRAY_SIZE(ixdp425_devices));
|
platform_add_devices(ixdp425_devices, ARRAY_SIZE(ixdp425_devices));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef CONFIG_ARCH_IXDP465
|
||||||
MACHINE_START(IXDP425, "Intel IXDP425 Development Platform")
|
MACHINE_START(IXDP425, "Intel IXDP425 Development Platform")
|
||||||
/* Maintainer: MontaVista Software, Inc. */
|
/* Maintainer: MontaVista Software, Inc. */
|
||||||
.phys_ram = PHYS_OFFSET,
|
.phys_ram = PHYS_OFFSET,
|
||||||
|
@ -134,7 +135,9 @@ MACHINE_START(IXDP425, "Intel IXDP425 Development Platform")
|
||||||
.boot_params = 0x0100,
|
.boot_params = 0x0100,
|
||||||
.init_machine = ixdp425_init,
|
.init_machine = ixdp425_init,
|
||||||
MACHINE_END
|
MACHINE_END
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef CONFIG_MACH_IXDP465
|
||||||
MACHINE_START(IXDP465, "Intel IXDP465 Development Platform")
|
MACHINE_START(IXDP465, "Intel IXDP465 Development Platform")
|
||||||
/* Maintainer: MontaVista Software, Inc. */
|
/* Maintainer: MontaVista Software, Inc. */
|
||||||
.phys_ram = PHYS_OFFSET,
|
.phys_ram = PHYS_OFFSET,
|
||||||
|
@ -146,7 +149,9 @@ MACHINE_START(IXDP465, "Intel IXDP465 Development Platform")
|
||||||
.boot_params = 0x0100,
|
.boot_params = 0x0100,
|
||||||
.init_machine = ixdp425_init,
|
.init_machine = ixdp425_init,
|
||||||
MACHINE_END
|
MACHINE_END
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef CONFIG_ARCH_PRPMC1100
|
||||||
MACHINE_START(IXCDP1100, "Intel IXCDP1100 Development Platform")
|
MACHINE_START(IXCDP1100, "Intel IXCDP1100 Development Platform")
|
||||||
/* Maintainer: MontaVista Software, Inc. */
|
/* Maintainer: MontaVista Software, Inc. */
|
||||||
.phys_ram = PHYS_OFFSET,
|
.phys_ram = PHYS_OFFSET,
|
||||||
|
@ -158,6 +163,7 @@ MACHINE_START(IXCDP1100, "Intel IXCDP1100 Development Platform")
|
||||||
.boot_params = 0x0100,
|
.boot_params = 0x0100,
|
||||||
.init_machine = ixdp425_init,
|
.init_machine = ixdp425_init,
|
||||||
MACHINE_END
|
MACHINE_END
|
||||||
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Avila is functionally equivalent to IXDP425 except that it adds
|
* Avila is functionally equivalent to IXDP425 except that it adds
|
||||||
|
|
|
@ -20,40 +20,66 @@ config ARCH_PXA_IDP
|
||||||
select PXA25x
|
select PXA25x
|
||||||
|
|
||||||
config PXA_SHARPSL
|
config PXA_SHARPSL
|
||||||
bool "SHARP SL-5600 and SL-C7xx Models"
|
bool "SHARP Zaurus SL-5600, SL-C7xx and SL-Cxx00 Models"
|
||||||
select PXA25x
|
|
||||||
select SHARP_SCOOP
|
select SHARP_SCOOP
|
||||||
select SHARP_PARAM
|
select SHARP_PARAM
|
||||||
help
|
help
|
||||||
Say Y here if you intend to run this kernel on a
|
Say Y here if you intend to run this kernel on a
|
||||||
Sharp SL-5600 (Poodle), Sharp SL-C700 (Corgi),
|
Sharp Zaurus SL-5600 (Poodle), SL-C700 (Corgi),
|
||||||
SL-C750 (Shepherd) or a Sharp SL-C760 (Husky)
|
SL-C750 (Shepherd), SL-C760 (Husky), SL-C1000 (Akita),
|
||||||
handheld computer.
|
SL-C3000 (Spitz) or SL-C3100 (Borzoi) handheld computer.
|
||||||
|
|
||||||
endchoice
|
endchoice
|
||||||
|
|
||||||
|
if PXA_SHARPSL
|
||||||
|
|
||||||
|
choice
|
||||||
|
prompt "Select target Sharp Zaurus device range"
|
||||||
|
|
||||||
|
config PXA_SHARPSL_25x
|
||||||
|
bool "Sharp PXA25x models (SL-5600 and SL-C7xx)"
|
||||||
|
select PXA25x
|
||||||
|
|
||||||
|
config PXA_SHARPSL_27x
|
||||||
|
bool "Sharp PXA270 models (SL-Cxx00)"
|
||||||
|
select PXA27x
|
||||||
|
|
||||||
|
endchoice
|
||||||
|
|
||||||
|
endif
|
||||||
|
|
||||||
endmenu
|
endmenu
|
||||||
|
|
||||||
config MACH_POODLE
|
config MACH_POODLE
|
||||||
bool "Enable Sharp SL-5600 (Poodle) Support"
|
bool "Enable Sharp SL-5600 (Poodle) Support"
|
||||||
depends PXA_SHARPSL
|
depends PXA_SHARPSL_25x
|
||||||
select SHARP_LOCOMO
|
select SHARP_LOCOMO
|
||||||
|
|
||||||
config MACH_CORGI
|
config MACH_CORGI
|
||||||
bool "Enable Sharp SL-C700 (Corgi) Support"
|
bool "Enable Sharp SL-C700 (Corgi) Support"
|
||||||
depends PXA_SHARPSL
|
depends PXA_SHARPSL_25x
|
||||||
select PXA_SHARP_C7xx
|
select PXA_SHARP_C7xx
|
||||||
|
|
||||||
config MACH_SHEPHERD
|
config MACH_SHEPHERD
|
||||||
bool "Enable Sharp SL-C750 (Shepherd) Support"
|
bool "Enable Sharp SL-C750 (Shepherd) Support"
|
||||||
depends PXA_SHARPSL
|
depends PXA_SHARPSL_25x
|
||||||
select PXA_SHARP_C7xx
|
select PXA_SHARP_C7xx
|
||||||
|
|
||||||
config MACH_HUSKY
|
config MACH_HUSKY
|
||||||
bool "Enable Sharp SL-C760 (Husky) Support"
|
bool "Enable Sharp SL-C760 (Husky) Support"
|
||||||
depends PXA_SHARPSL
|
depends PXA_SHARPSL_25x
|
||||||
select PXA_SHARP_C7xx
|
select PXA_SHARP_C7xx
|
||||||
|
|
||||||
|
config MACH_SPITZ
|
||||||
|
bool "Enable Sharp Zaurus SL-3000 (Spitz) Support"
|
||||||
|
depends PXA_SHARPSL_27x
|
||||||
|
select PXA_SHARP_Cxx00
|
||||||
|
|
||||||
|
config MACH_BORZOI
|
||||||
|
bool "Enable Sharp Zaurus SL-3100 (Borzoi) Support"
|
||||||
|
depends PXA_SHARPSL_27x
|
||||||
|
select PXA_SHARP_Cxx00
|
||||||
|
|
||||||
config PXA25x
|
config PXA25x
|
||||||
bool
|
bool
|
||||||
help
|
help
|
||||||
|
@ -74,4 +100,9 @@ config PXA_SHARP_C7xx
|
||||||
help
|
help
|
||||||
Enable support for all Sharp C7xx models
|
Enable support for all Sharp C7xx models
|
||||||
|
|
||||||
|
config PXA_SHARP_Cxx00
|
||||||
|
bool
|
||||||
|
help
|
||||||
|
Enable common support for Sharp Cxx00 models
|
||||||
|
|
||||||
endif
|
endif
|
||||||
|
|
|
@ -12,6 +12,7 @@ obj-$(CONFIG_ARCH_LUBBOCK) += lubbock.o
|
||||||
obj-$(CONFIG_MACH_MAINSTONE) += mainstone.o
|
obj-$(CONFIG_MACH_MAINSTONE) += mainstone.o
|
||||||
obj-$(CONFIG_ARCH_PXA_IDP) += idp.o
|
obj-$(CONFIG_ARCH_PXA_IDP) += idp.o
|
||||||
obj-$(CONFIG_PXA_SHARP_C7xx) += corgi.o corgi_ssp.o corgi_lcd.o ssp.o
|
obj-$(CONFIG_PXA_SHARP_C7xx) += corgi.o corgi_ssp.o corgi_lcd.o ssp.o
|
||||||
|
obj-$(CONFIG_PXA_SHARP_Cxx00) += spitz.o corgi_ssp.o corgi_lcd.o ssp.o
|
||||||
obj-$(CONFIG_MACH_POODLE) += poodle.o
|
obj-$(CONFIG_MACH_POODLE) += poodle.o
|
||||||
|
|
||||||
# Support for blinky lights
|
# Support for blinky lights
|
||||||
|
|
|
@ -41,6 +41,7 @@
|
||||||
#include <asm/hardware/scoop.h>
|
#include <asm/hardware/scoop.h>
|
||||||
|
|
||||||
#include "generic.h"
|
#include "generic.h"
|
||||||
|
#include "sharpsl.h"
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -94,14 +95,30 @@ struct platform_device corgissp_device = {
|
||||||
.id = -1,
|
.id = -1,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
struct corgissp_machinfo corgi_ssp_machinfo = {
|
||||||
|
.port = 1,
|
||||||
|
.cs_lcdcon = CORGI_GPIO_LCDCON_CS,
|
||||||
|
.cs_ads7846 = CORGI_GPIO_ADS7846_CS,
|
||||||
|
.cs_max1111 = CORGI_GPIO_MAX1111_CS,
|
||||||
|
.clk_lcdcon = 76,
|
||||||
|
.clk_ads7846 = 2,
|
||||||
|
.clk_max1111 = 8,
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Corgi Backlight Device
|
* Corgi Backlight Device
|
||||||
*/
|
*/
|
||||||
|
static struct corgibl_machinfo corgi_bl_machinfo = {
|
||||||
|
.max_intensity = 0x2f,
|
||||||
|
.set_bl_intensity = corgi_bl_set_intensity,
|
||||||
|
};
|
||||||
|
|
||||||
static struct platform_device corgibl_device = {
|
static struct platform_device corgibl_device = {
|
||||||
.name = "corgi-bl",
|
.name = "corgi-bl",
|
||||||
.dev = {
|
.dev = {
|
||||||
.parent = &corgifb_device.dev,
|
.parent = &corgifb_device.dev,
|
||||||
|
.platform_data = &corgi_bl_machinfo,
|
||||||
},
|
},
|
||||||
.id = -1,
|
.id = -1,
|
||||||
};
|
};
|
||||||
|
@ -119,12 +136,29 @@ static struct platform_device corgikbd_device = {
|
||||||
/*
|
/*
|
||||||
* Corgi Touch Screen Device
|
* Corgi Touch Screen Device
|
||||||
*/
|
*/
|
||||||
|
static struct resource corgits_resources[] = {
|
||||||
|
[0] = {
|
||||||
|
.start = CORGI_IRQ_GPIO_TP_INT,
|
||||||
|
.end = CORGI_IRQ_GPIO_TP_INT,
|
||||||
|
.flags = IORESOURCE_IRQ,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
static struct corgits_machinfo corgi_ts_machinfo = {
|
||||||
|
.get_hsync_len = corgi_get_hsync_len,
|
||||||
|
.put_hsync = corgi_put_hsync,
|
||||||
|
.wait_hsync = corgi_wait_hsync,
|
||||||
|
};
|
||||||
|
|
||||||
static struct platform_device corgits_device = {
|
static struct platform_device corgits_device = {
|
||||||
.name = "corgi-ts",
|
.name = "corgi-ts",
|
||||||
.dev = {
|
.dev = {
|
||||||
.parent = &corgissp_device.dev,
|
.parent = &corgissp_device.dev,
|
||||||
|
.platform_data = &corgi_ts_machinfo,
|
||||||
},
|
},
|
||||||
.id = -1,
|
.id = -1,
|
||||||
|
.num_resources = ARRAY_SIZE(corgits_resources),
|
||||||
|
.resource = corgits_resources,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -164,13 +198,10 @@ static void corgi_mci_setpower(struct device *dev, unsigned int vdd)
|
||||||
{
|
{
|
||||||
struct pxamci_platform_data* p_d = dev->platform_data;
|
struct pxamci_platform_data* p_d = dev->platform_data;
|
||||||
|
|
||||||
if (( 1 << vdd) & p_d->ocr_mask) {
|
if (( 1 << vdd) & p_d->ocr_mask)
|
||||||
printk(KERN_DEBUG "%s: on\n", __FUNCTION__);
|
|
||||||
GPSR1 = GPIO_bit(CORGI_GPIO_SD_PWR);
|
GPSR1 = GPIO_bit(CORGI_GPIO_SD_PWR);
|
||||||
} else {
|
else
|
||||||
printk(KERN_DEBUG "%s: off\n", __FUNCTION__);
|
|
||||||
GPCR1 = GPIO_bit(CORGI_GPIO_SD_PWR);
|
GPCR1 = GPIO_bit(CORGI_GPIO_SD_PWR);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int corgi_mci_get_ro(struct device *dev)
|
static int corgi_mci_get_ro(struct device *dev)
|
||||||
|
@ -225,7 +256,20 @@ static struct platform_device *devices[] __initdata = {
|
||||||
|
|
||||||
static void __init corgi_init(void)
|
static void __init corgi_init(void)
|
||||||
{
|
{
|
||||||
|
/* setup sleep mode values */
|
||||||
|
PWER = 0x00000002;
|
||||||
|
PFER = 0x00000000;
|
||||||
|
PRER = 0x00000002;
|
||||||
|
PGSR0 = 0x0158C000;
|
||||||
|
PGSR1 = 0x00FF0080;
|
||||||
|
PGSR2 = 0x0001C004;
|
||||||
|
/* Stop 3.6MHz and drive HIGH to PCMCIA and CS */
|
||||||
|
PCFR |= PCFR_OPDE;
|
||||||
|
|
||||||
|
corgi_ssp_set_machinfo(&corgi_ssp_machinfo);
|
||||||
|
|
||||||
pxa_gpio_mode(CORGI_GPIO_USB_PULLUP | GPIO_OUT);
|
pxa_gpio_mode(CORGI_GPIO_USB_PULLUP | GPIO_OUT);
|
||||||
|
pxa_gpio_mode(CORGI_GPIO_HSYNC | GPIO_IN);
|
||||||
pxa_set_udc_info(&udc_info);
|
pxa_set_udc_info(&udc_info);
|
||||||
pxa_set_mci_info(&corgi_mci_platform_data);
|
pxa_set_mci_info(&corgi_mci_platform_data);
|
||||||
|
|
||||||
|
@ -248,42 +292,14 @@ static void __init fixup_corgi(struct machine_desc *desc,
|
||||||
mi->bank[0].size = (64*1024*1024);
|
mi->bank[0].size = (64*1024*1024);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void __init corgi_init_irq(void)
|
|
||||||
{
|
|
||||||
pxa_init_irq();
|
|
||||||
}
|
|
||||||
|
|
||||||
static struct map_desc corgi_io_desc[] __initdata = {
|
|
||||||
/* virtual physical length */
|
|
||||||
/* { 0xf1000000, 0x08000000, 0x01000000, MT_DEVICE },*/ /* LCDC (readable for Qt driver) */
|
|
||||||
/* { 0xef700000, 0x10800000, 0x00001000, MT_DEVICE },*/ /* SCOOP */
|
|
||||||
{ 0xef800000, 0x00000000, 0x00800000, MT_DEVICE }, /* Boot Flash */
|
|
||||||
};
|
|
||||||
|
|
||||||
static void __init corgi_map_io(void)
|
|
||||||
{
|
|
||||||
pxa_map_io();
|
|
||||||
iotable_init(corgi_io_desc,ARRAY_SIZE(corgi_io_desc));
|
|
||||||
|
|
||||||
/* setup sleep mode values */
|
|
||||||
PWER = 0x00000002;
|
|
||||||
PFER = 0x00000000;
|
|
||||||
PRER = 0x00000002;
|
|
||||||
PGSR0 = 0x0158C000;
|
|
||||||
PGSR1 = 0x00FF0080;
|
|
||||||
PGSR2 = 0x0001C004;
|
|
||||||
/* Stop 3.6MHz and drive HIGH to PCMCIA and CS */
|
|
||||||
PCFR |= PCFR_OPDE;
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifdef CONFIG_MACH_CORGI
|
#ifdef CONFIG_MACH_CORGI
|
||||||
MACHINE_START(CORGI, "SHARP Corgi")
|
MACHINE_START(CORGI, "SHARP Corgi")
|
||||||
.phys_ram = 0xa0000000,
|
.phys_ram = 0xa0000000,
|
||||||
.phys_io = 0x40000000,
|
.phys_io = 0x40000000,
|
||||||
.io_pg_offst = (io_p2v(0x40000000) >> 18) & 0xfffc,
|
.io_pg_offst = (io_p2v(0x40000000) >> 18) & 0xfffc,
|
||||||
.fixup = fixup_corgi,
|
.fixup = fixup_corgi,
|
||||||
.map_io = corgi_map_io,
|
.map_io = pxa_map_io,
|
||||||
.init_irq = corgi_init_irq,
|
.init_irq = pxa_init_irq,
|
||||||
.init_machine = corgi_init,
|
.init_machine = corgi_init,
|
||||||
.timer = &pxa_timer,
|
.timer = &pxa_timer,
|
||||||
MACHINE_END
|
MACHINE_END
|
||||||
|
@ -295,8 +311,8 @@ MACHINE_START(SHEPHERD, "SHARP Shepherd")
|
||||||
.phys_io = 0x40000000,
|
.phys_io = 0x40000000,
|
||||||
.io_pg_offst = (io_p2v(0x40000000) >> 18) & 0xfffc,
|
.io_pg_offst = (io_p2v(0x40000000) >> 18) & 0xfffc,
|
||||||
.fixup = fixup_corgi,
|
.fixup = fixup_corgi,
|
||||||
.map_io = corgi_map_io,
|
.map_io = pxa_map_io,
|
||||||
.init_irq = corgi_init_irq,
|
.init_irq = pxa_init_irq,
|
||||||
.init_machine = corgi_init,
|
.init_machine = corgi_init,
|
||||||
.timer = &pxa_timer,
|
.timer = &pxa_timer,
|
||||||
MACHINE_END
|
MACHINE_END
|
||||||
|
@ -308,8 +324,8 @@ MACHINE_START(HUSKY, "SHARP Husky")
|
||||||
.phys_io = 0x40000000,
|
.phys_io = 0x40000000,
|
||||||
.io_pg_offst = (io_p2v(0x40000000) >> 18) & 0xfffc,
|
.io_pg_offst = (io_p2v(0x40000000) >> 18) & 0xfffc,
|
||||||
.fixup = fixup_corgi,
|
.fixup = fixup_corgi,
|
||||||
.map_io = corgi_map_io,
|
.map_io = pxa_map_io,
|
||||||
.init_irq = corgi_init_irq,
|
.init_irq = pxa_init_irq,
|
||||||
.init_machine = corgi_init,
|
.init_machine = corgi_init,
|
||||||
.timer = &pxa_timer,
|
.timer = &pxa_timer,
|
||||||
MACHINE_END
|
MACHINE_END
|
||||||
|
|
|
@ -1,10 +1,14 @@
|
||||||
/*
|
/*
|
||||||
* linux/drivers/video/w100fb.c
|
* linux/drivers/video/w100fb.c
|
||||||
*
|
*
|
||||||
* Corgi LCD Specific Code for ATI Imageon w100 (Wallaby)
|
* Corgi/Spitz LCD Specific Code
|
||||||
*
|
*
|
||||||
* Copyright (C) 2005 Richard Purdie
|
* Copyright (C) 2005 Richard Purdie
|
||||||
*
|
*
|
||||||
|
* Connectivity:
|
||||||
|
* Corgi - LCD to ATI Imageon w100 (Wallaby)
|
||||||
|
* Spitz - LCD to PXA Framebuffer
|
||||||
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License version 2 as
|
* it under the terms of the GNU General Public License version 2 as
|
||||||
* published by the Free Software Foundation.
|
* published by the Free Software Foundation.
|
||||||
|
@ -14,9 +18,17 @@
|
||||||
#include <linux/delay.h>
|
#include <linux/delay.h>
|
||||||
#include <linux/kernel.h>
|
#include <linux/kernel.h>
|
||||||
#include <linux/device.h>
|
#include <linux/device.h>
|
||||||
|
#include <linux/module.h>
|
||||||
|
#include <asm/mach-types.h>
|
||||||
|
#include <asm/arch/akita.h>
|
||||||
#include <asm/arch/corgi.h>
|
#include <asm/arch/corgi.h>
|
||||||
|
#include <asm/arch/hardware.h>
|
||||||
|
#include <asm/arch/pxa-regs.h>
|
||||||
|
#include <asm/arch/sharpsl.h>
|
||||||
|
#include <asm/arch/spitz.h>
|
||||||
|
#include <asm/hardware/scoop.h>
|
||||||
#include <asm/mach/sharpsl_param.h>
|
#include <asm/mach/sharpsl_param.h>
|
||||||
#include <video/w100fb.h>
|
#include "generic.h"
|
||||||
|
|
||||||
/* Register Addresses */
|
/* Register Addresses */
|
||||||
#define RESCTL_ADRS 0x00
|
#define RESCTL_ADRS 0x00
|
||||||
|
@ -134,10 +146,10 @@ static void lcdtg_set_common_voltage(u8 base_data, u8 data)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Set Phase Adjuct */
|
/* Set Phase Adjuct */
|
||||||
static void lcdtg_set_phadadj(struct w100fb_par *par)
|
static void lcdtg_set_phadadj(int mode)
|
||||||
{
|
{
|
||||||
int adj;
|
int adj;
|
||||||
switch(par->xres) {
|
switch(mode) {
|
||||||
case 480:
|
case 480:
|
||||||
case 640:
|
case 640:
|
||||||
/* Setting for VGA */
|
/* Setting for VGA */
|
||||||
|
@ -161,7 +173,7 @@ static void lcdtg_set_phadadj(struct w100fb_par *par)
|
||||||
|
|
||||||
static int lcd_inited;
|
static int lcd_inited;
|
||||||
|
|
||||||
static void lcdtg_hw_init(struct w100fb_par *par)
|
static void lcdtg_hw_init(int mode)
|
||||||
{
|
{
|
||||||
if (!lcd_inited) {
|
if (!lcd_inited) {
|
||||||
int comadj;
|
int comadj;
|
||||||
|
@ -215,7 +227,7 @@ static void lcdtg_hw_init(struct w100fb_par *par)
|
||||||
corgi_ssp_lcdtg_send(PICTRL_ADRS, 0);
|
corgi_ssp_lcdtg_send(PICTRL_ADRS, 0);
|
||||||
|
|
||||||
/* Set Phase Adjuct */
|
/* Set Phase Adjuct */
|
||||||
lcdtg_set_phadadj(par);
|
lcdtg_set_phadadj(mode);
|
||||||
|
|
||||||
/* Initialize for Input Signals from ATI */
|
/* Initialize for Input Signals from ATI */
|
||||||
corgi_ssp_lcdtg_send(POLCTRL_ADRS, POLCTRL_SYNC_POL_RISE | POLCTRL_EN_POL_RISE
|
corgi_ssp_lcdtg_send(POLCTRL_ADRS, POLCTRL_SYNC_POL_RISE | POLCTRL_EN_POL_RISE
|
||||||
|
@ -224,10 +236,10 @@ static void lcdtg_hw_init(struct w100fb_par *par)
|
||||||
|
|
||||||
lcd_inited=1;
|
lcd_inited=1;
|
||||||
} else {
|
} else {
|
||||||
lcdtg_set_phadadj(par);
|
lcdtg_set_phadadj(mode);
|
||||||
}
|
}
|
||||||
|
|
||||||
switch(par->xres) {
|
switch(mode) {
|
||||||
case 480:
|
case 480:
|
||||||
case 640:
|
case 640:
|
||||||
/* Set Lcd Resolution (VGA) */
|
/* Set Lcd Resolution (VGA) */
|
||||||
|
@ -242,7 +254,7 @@ static void lcdtg_hw_init(struct w100fb_par *par)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void lcdtg_suspend(struct w100fb_par *par)
|
static void lcdtg_suspend(void)
|
||||||
{
|
{
|
||||||
/* 60Hz x 2 frame = 16.7msec x 2 = 33.4 msec */
|
/* 60Hz x 2 frame = 16.7msec x 2 = 33.4 msec */
|
||||||
mdelay(34);
|
mdelay(34);
|
||||||
|
@ -276,15 +288,30 @@ static void lcdtg_suspend(struct w100fb_par *par)
|
||||||
lcd_inited = 0;
|
lcd_inited = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct w100_tg_info corgi_lcdtg_info = {
|
|
||||||
.change=lcdtg_hw_init,
|
|
||||||
.suspend=lcdtg_suspend,
|
|
||||||
.resume=lcdtg_hw_init,
|
|
||||||
};
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Corgi w100 Frame Buffer Device
|
* Corgi w100 Frame Buffer Device
|
||||||
*/
|
*/
|
||||||
|
#ifdef CONFIG_PXA_SHARP_C7xx
|
||||||
|
|
||||||
|
#include <video/w100fb.h>
|
||||||
|
|
||||||
|
static void w100_lcdtg_suspend(struct w100fb_par *par)
|
||||||
|
{
|
||||||
|
lcdtg_suspend();
|
||||||
|
}
|
||||||
|
|
||||||
|
static void w100_lcdtg_init(struct w100fb_par *par)
|
||||||
|
{
|
||||||
|
lcdtg_hw_init(par->xres);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static struct w100_tg_info corgi_lcdtg_info = {
|
||||||
|
.change = w100_lcdtg_init,
|
||||||
|
.suspend = w100_lcdtg_suspend,
|
||||||
|
.resume = w100_lcdtg_init,
|
||||||
|
};
|
||||||
|
|
||||||
static struct w100_mem_info corgi_fb_mem = {
|
static struct w100_mem_info corgi_fb_mem = {
|
||||||
.ext_cntl = 0x00040003,
|
.ext_cntl = 0x00040003,
|
||||||
|
@ -394,3 +421,145 @@ struct platform_device corgifb_device = {
|
||||||
},
|
},
|
||||||
|
|
||||||
};
|
};
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Spitz PXA Frame Buffer Device
|
||||||
|
*/
|
||||||
|
#ifdef CONFIG_PXA_SHARP_Cxx00
|
||||||
|
|
||||||
|
#include <asm/arch/pxafb.h>
|
||||||
|
|
||||||
|
void spitz_lcd_power(int on)
|
||||||
|
{
|
||||||
|
if (on)
|
||||||
|
lcdtg_hw_init(480);
|
||||||
|
else
|
||||||
|
lcdtg_suspend();
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Corgi/Spitz Touchscreen to LCD interface
|
||||||
|
*/
|
||||||
|
static unsigned long (*get_hsync_time)(struct device *dev);
|
||||||
|
|
||||||
|
static void inline sharpsl_wait_sync(int gpio)
|
||||||
|
{
|
||||||
|
while((GPLR(gpio) & GPIO_bit(gpio)) == 0);
|
||||||
|
while((GPLR(gpio) & GPIO_bit(gpio)) != 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifdef CONFIG_PXA_SHARP_C7xx
|
||||||
|
unsigned long corgi_get_hsync_len(void)
|
||||||
|
{
|
||||||
|
if (!get_hsync_time)
|
||||||
|
get_hsync_time = symbol_get(w100fb_get_hsynclen);
|
||||||
|
if (!get_hsync_time)
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
return get_hsync_time(&corgifb_device.dev);
|
||||||
|
}
|
||||||
|
|
||||||
|
void corgi_put_hsync(void)
|
||||||
|
{
|
||||||
|
if (get_hsync_time)
|
||||||
|
symbol_put(w100fb_get_hsynclen);
|
||||||
|
}
|
||||||
|
|
||||||
|
void corgi_wait_hsync(void)
|
||||||
|
{
|
||||||
|
sharpsl_wait_sync(CORGI_GPIO_HSYNC);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef CONFIG_PXA_SHARP_Cxx00
|
||||||
|
unsigned long spitz_get_hsync_len(void)
|
||||||
|
{
|
||||||
|
if (!get_hsync_time)
|
||||||
|
get_hsync_time = symbol_get(pxafb_get_hsync_time);
|
||||||
|
if (!get_hsync_time)
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
return pxafb_get_hsync_time(&pxafb_device.dev);
|
||||||
|
}
|
||||||
|
|
||||||
|
void spitz_put_hsync(void)
|
||||||
|
{
|
||||||
|
if (get_hsync_time)
|
||||||
|
symbol_put(pxafb_get_hsync_time);
|
||||||
|
}
|
||||||
|
|
||||||
|
void spitz_wait_hsync(void)
|
||||||
|
{
|
||||||
|
sharpsl_wait_sync(SPITZ_GPIO_HSYNC);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Corgi/Spitz Backlight Power
|
||||||
|
*/
|
||||||
|
#ifdef CONFIG_PXA_SHARP_C7xx
|
||||||
|
void corgi_bl_set_intensity(int intensity)
|
||||||
|
{
|
||||||
|
if (intensity > 0x10)
|
||||||
|
intensity += 0x10;
|
||||||
|
|
||||||
|
/* Bits 0-4 are accessed via the SSP interface */
|
||||||
|
corgi_ssp_blduty_set(intensity & 0x1f);
|
||||||
|
|
||||||
|
/* Bit 5 is via SCOOP */
|
||||||
|
if (intensity & 0x0020)
|
||||||
|
set_scoop_gpio(&corgiscoop_device.dev, CORGI_SCP_BACKLIGHT_CONT);
|
||||||
|
else
|
||||||
|
reset_scoop_gpio(&corgiscoop_device.dev, CORGI_SCP_BACKLIGHT_CONT);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#if defined(CONFIG_MACH_SPITZ) || defined(CONFIG_MACH_BORZOI)
|
||||||
|
void spitz_bl_set_intensity(int intensity)
|
||||||
|
{
|
||||||
|
if (intensity > 0x10)
|
||||||
|
intensity += 0x10;
|
||||||
|
|
||||||
|
/* Bits 0-4 are accessed via the SSP interface */
|
||||||
|
corgi_ssp_blduty_set(intensity & 0x1f);
|
||||||
|
|
||||||
|
/* Bit 5 is via SCOOP */
|
||||||
|
if (intensity & 0x0020)
|
||||||
|
reset_scoop_gpio(&spitzscoop2_device.dev, SPITZ_SCP2_BACKLIGHT_CONT);
|
||||||
|
else
|
||||||
|
set_scoop_gpio(&spitzscoop2_device.dev, SPITZ_SCP2_BACKLIGHT_CONT);
|
||||||
|
|
||||||
|
if (intensity)
|
||||||
|
set_scoop_gpio(&spitzscoop2_device.dev, SPITZ_SCP2_BACKLIGHT_ON);
|
||||||
|
else
|
||||||
|
reset_scoop_gpio(&spitzscoop2_device.dev, SPITZ_SCP2_BACKLIGHT_ON);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef CONFIG_MACH_AKITA
|
||||||
|
void akita_bl_set_intensity(int intensity)
|
||||||
|
{
|
||||||
|
if (intensity > 0x10)
|
||||||
|
intensity += 0x10;
|
||||||
|
|
||||||
|
/* Bits 0-4 are accessed via the SSP interface */
|
||||||
|
corgi_ssp_blduty_set(intensity & 0x1f);
|
||||||
|
|
||||||
|
/* Bit 5 is via IO-Expander */
|
||||||
|
if (intensity & 0x0020)
|
||||||
|
akita_reset_ioexp(&akitaioexp_device.dev, AKITA_IOEXP_BACKLIGHT_CONT);
|
||||||
|
else
|
||||||
|
akita_set_ioexp(&akitaioexp_device.dev, AKITA_IOEXP_BACKLIGHT_CONT);
|
||||||
|
|
||||||
|
if (intensity)
|
||||||
|
akita_set_ioexp(&akitaioexp_device.dev, AKITA_IOEXP_BACKLIGHT_ON);
|
||||||
|
else
|
||||||
|
akita_reset_ioexp(&akitaioexp_device.dev, AKITA_IOEXP_BACKLIGHT_ON);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* SSP control code for Sharp Corgi devices
|
* SSP control code for Sharp Corgi devices
|
||||||
*
|
*
|
||||||
* Copyright (c) 2004 Richard Purdie
|
* Copyright (c) 2004-2005 Richard Purdie
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License version 2 as
|
* it under the terms of the GNU General Public License version 2 as
|
||||||
|
@ -17,14 +17,16 @@
|
||||||
#include <linux/delay.h>
|
#include <linux/delay.h>
|
||||||
#include <linux/device.h>
|
#include <linux/device.h>
|
||||||
#include <asm/hardware.h>
|
#include <asm/hardware.h>
|
||||||
|
#include <asm/mach-types.h>
|
||||||
|
|
||||||
#include <asm/arch/ssp.h>
|
#include <asm/arch/ssp.h>
|
||||||
#include <asm/arch/corgi.h>
|
|
||||||
#include <asm/arch/pxa-regs.h>
|
#include <asm/arch/pxa-regs.h>
|
||||||
|
#include "sharpsl.h"
|
||||||
|
|
||||||
static DEFINE_SPINLOCK(corgi_ssp_lock);
|
static DEFINE_SPINLOCK(corgi_ssp_lock);
|
||||||
static struct ssp_dev corgi_ssp_dev;
|
static struct ssp_dev corgi_ssp_dev;
|
||||||
static struct ssp_state corgi_ssp_state;
|
static struct ssp_state corgi_ssp_state;
|
||||||
|
static struct corgissp_machinfo *ssp_machinfo;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* There are three devices connected to the SSP interface:
|
* There are three devices connected to the SSP interface:
|
||||||
|
@ -48,12 +50,12 @@ unsigned long corgi_ssp_ads7846_putget(ulong data)
|
||||||
unsigned long ret,flag;
|
unsigned long ret,flag;
|
||||||
|
|
||||||
spin_lock_irqsave(&corgi_ssp_lock, flag);
|
spin_lock_irqsave(&corgi_ssp_lock, flag);
|
||||||
GPCR0 = GPIO_bit(CORGI_GPIO_ADS7846_CS);
|
GPCR(ssp_machinfo->cs_ads7846) = GPIO_bit(ssp_machinfo->cs_ads7846);
|
||||||
|
|
||||||
ssp_write_word(&corgi_ssp_dev,data);
|
ssp_write_word(&corgi_ssp_dev,data);
|
||||||
ret = ssp_read_word(&corgi_ssp_dev);
|
ret = ssp_read_word(&corgi_ssp_dev);
|
||||||
|
|
||||||
GPSR0 = GPIO_bit(CORGI_GPIO_ADS7846_CS);
|
GPSR(ssp_machinfo->cs_ads7846) = GPIO_bit(ssp_machinfo->cs_ads7846);
|
||||||
spin_unlock_irqrestore(&corgi_ssp_lock, flag);
|
spin_unlock_irqrestore(&corgi_ssp_lock, flag);
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
|
@ -66,12 +68,12 @@ unsigned long corgi_ssp_ads7846_putget(ulong data)
|
||||||
void corgi_ssp_ads7846_lock(void)
|
void corgi_ssp_ads7846_lock(void)
|
||||||
{
|
{
|
||||||
spin_lock(&corgi_ssp_lock);
|
spin_lock(&corgi_ssp_lock);
|
||||||
GPCR0 = GPIO_bit(CORGI_GPIO_ADS7846_CS);
|
GPCR(ssp_machinfo->cs_ads7846) = GPIO_bit(ssp_machinfo->cs_ads7846);
|
||||||
}
|
}
|
||||||
|
|
||||||
void corgi_ssp_ads7846_unlock(void)
|
void corgi_ssp_ads7846_unlock(void)
|
||||||
{
|
{
|
||||||
GPSR0 = GPIO_bit(CORGI_GPIO_ADS7846_CS);
|
GPSR(ssp_machinfo->cs_ads7846) = GPIO_bit(ssp_machinfo->cs_ads7846);
|
||||||
spin_unlock(&corgi_ssp_lock);
|
spin_unlock(&corgi_ssp_lock);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -97,23 +99,27 @@ EXPORT_SYMBOL(corgi_ssp_ads7846_get);
|
||||||
*/
|
*/
|
||||||
unsigned long corgi_ssp_dac_put(ulong data)
|
unsigned long corgi_ssp_dac_put(ulong data)
|
||||||
{
|
{
|
||||||
unsigned long flag;
|
unsigned long flag, sscr1 = SSCR1_SPH;
|
||||||
|
|
||||||
spin_lock_irqsave(&corgi_ssp_lock, flag);
|
spin_lock_irqsave(&corgi_ssp_lock, flag);
|
||||||
GPCR0 = GPIO_bit(CORGI_GPIO_LCDCON_CS);
|
|
||||||
|
if (machine_is_spitz() || machine_is_akita() || machine_is_borzoi())
|
||||||
|
sscr1 = 0;
|
||||||
|
|
||||||
ssp_disable(&corgi_ssp_dev);
|
ssp_disable(&corgi_ssp_dev);
|
||||||
ssp_config(&corgi_ssp_dev, (SSCR0_Motorola | (SSCR0_DSS & 0x07 )), SSCR1_SPH, 0, SSCR0_SerClkDiv(76));
|
ssp_config(&corgi_ssp_dev, (SSCR0_Motorola | (SSCR0_DSS & 0x07 )), sscr1, 0, SSCR0_SerClkDiv(ssp_machinfo->clk_lcdcon));
|
||||||
ssp_enable(&corgi_ssp_dev);
|
ssp_enable(&corgi_ssp_dev);
|
||||||
|
|
||||||
|
GPCR(ssp_machinfo->cs_lcdcon) = GPIO_bit(ssp_machinfo->cs_lcdcon);
|
||||||
ssp_write_word(&corgi_ssp_dev,data);
|
ssp_write_word(&corgi_ssp_dev,data);
|
||||||
/* Read null data back from device to prevent SSP overflow */
|
/* Read null data back from device to prevent SSP overflow */
|
||||||
ssp_read_word(&corgi_ssp_dev);
|
ssp_read_word(&corgi_ssp_dev);
|
||||||
|
GPSR(ssp_machinfo->cs_lcdcon) = GPIO_bit(ssp_machinfo->cs_lcdcon);
|
||||||
|
|
||||||
ssp_disable(&corgi_ssp_dev);
|
ssp_disable(&corgi_ssp_dev);
|
||||||
ssp_config(&corgi_ssp_dev, (SSCR0_National | (SSCR0_DSS & 0x0b )), 0, 0, SSCR0_SerClkDiv(2));
|
ssp_config(&corgi_ssp_dev, (SSCR0_National | (SSCR0_DSS & 0x0b )), 0, 0, SSCR0_SerClkDiv(ssp_machinfo->clk_ads7846));
|
||||||
ssp_enable(&corgi_ssp_dev);
|
ssp_enable(&corgi_ssp_dev);
|
||||||
GPSR0 = GPIO_bit(CORGI_GPIO_LCDCON_CS);
|
|
||||||
spin_unlock_irqrestore(&corgi_ssp_lock, flag);
|
spin_unlock_irqrestore(&corgi_ssp_lock, flag);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -141,9 +147,9 @@ int corgi_ssp_max1111_get(ulong data)
|
||||||
int voltage,voltage1,voltage2;
|
int voltage,voltage1,voltage2;
|
||||||
|
|
||||||
spin_lock_irqsave(&corgi_ssp_lock, flag);
|
spin_lock_irqsave(&corgi_ssp_lock, flag);
|
||||||
GPCR0 = GPIO_bit(CORGI_GPIO_MAX1111_CS);
|
GPCR(ssp_machinfo->cs_max1111) = GPIO_bit(ssp_machinfo->cs_max1111);
|
||||||
ssp_disable(&corgi_ssp_dev);
|
ssp_disable(&corgi_ssp_dev);
|
||||||
ssp_config(&corgi_ssp_dev, (SSCR0_Motorola | (SSCR0_DSS & 0x07 )), 0, 0, SSCR0_SerClkDiv(8));
|
ssp_config(&corgi_ssp_dev, (SSCR0_Motorola | (SSCR0_DSS & 0x07 )), 0, 0, SSCR0_SerClkDiv(ssp_machinfo->clk_max1111));
|
||||||
ssp_enable(&corgi_ssp_dev);
|
ssp_enable(&corgi_ssp_dev);
|
||||||
|
|
||||||
udelay(1);
|
udelay(1);
|
||||||
|
@ -161,9 +167,9 @@ int corgi_ssp_max1111_get(ulong data)
|
||||||
voltage2=ssp_read_word(&corgi_ssp_dev);
|
voltage2=ssp_read_word(&corgi_ssp_dev);
|
||||||
|
|
||||||
ssp_disable(&corgi_ssp_dev);
|
ssp_disable(&corgi_ssp_dev);
|
||||||
ssp_config(&corgi_ssp_dev, (SSCR0_National | (SSCR0_DSS & 0x0b )), 0, 0, SSCR0_SerClkDiv(2));
|
ssp_config(&corgi_ssp_dev, (SSCR0_National | (SSCR0_DSS & 0x0b )), 0, 0, SSCR0_SerClkDiv(ssp_machinfo->clk_ads7846));
|
||||||
ssp_enable(&corgi_ssp_dev);
|
ssp_enable(&corgi_ssp_dev);
|
||||||
GPSR0 = GPIO_bit(CORGI_GPIO_MAX1111_CS);
|
GPSR(ssp_machinfo->cs_max1111) = GPIO_bit(ssp_machinfo->cs_max1111);
|
||||||
spin_unlock_irqrestore(&corgi_ssp_lock, flag);
|
spin_unlock_irqrestore(&corgi_ssp_lock, flag);
|
||||||
|
|
||||||
if (voltage1 & 0xc0 || voltage2 & 0x3f)
|
if (voltage1 & 0xc0 || voltage2 & 0x3f)
|
||||||
|
@ -179,25 +185,31 @@ EXPORT_SYMBOL(corgi_ssp_max1111_get);
|
||||||
/*
|
/*
|
||||||
* Support Routines
|
* Support Routines
|
||||||
*/
|
*/
|
||||||
int __init corgi_ssp_probe(struct device *dev)
|
|
||||||
|
void __init corgi_ssp_set_machinfo(struct corgissp_machinfo *machinfo)
|
||||||
|
{
|
||||||
|
ssp_machinfo = machinfo;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int __init corgi_ssp_probe(struct device *dev)
|
||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
/* Chip Select - Disable All */
|
/* Chip Select - Disable All */
|
||||||
GPDR0 |= GPIO_bit(CORGI_GPIO_LCDCON_CS); /* output */
|
GPDR(ssp_machinfo->cs_lcdcon) |= GPIO_bit(ssp_machinfo->cs_lcdcon); /* output */
|
||||||
GPSR0 = GPIO_bit(CORGI_GPIO_LCDCON_CS); /* High - Disable LCD Control/Timing Gen */
|
GPSR(ssp_machinfo->cs_lcdcon) = GPIO_bit(ssp_machinfo->cs_lcdcon); /* High - Disable LCD Control/Timing Gen */
|
||||||
GPDR0 |= GPIO_bit(CORGI_GPIO_MAX1111_CS); /* output */
|
GPDR(ssp_machinfo->cs_max1111) |= GPIO_bit(ssp_machinfo->cs_max1111); /* output */
|
||||||
GPSR0 = GPIO_bit(CORGI_GPIO_MAX1111_CS); /* High - Disable MAX1111*/
|
GPSR(ssp_machinfo->cs_max1111) = GPIO_bit(ssp_machinfo->cs_max1111); /* High - Disable MAX1111*/
|
||||||
GPDR0 |= GPIO_bit(CORGI_GPIO_ADS7846_CS); /* output */
|
GPDR(ssp_machinfo->cs_ads7846) |= GPIO_bit(ssp_machinfo->cs_ads7846); /* output */
|
||||||
GPSR0 = GPIO_bit(CORGI_GPIO_ADS7846_CS); /* High - Disable ADS7846*/
|
GPSR(ssp_machinfo->cs_ads7846) = GPIO_bit(ssp_machinfo->cs_ads7846); /* High - Disable ADS7846*/
|
||||||
|
|
||||||
ret=ssp_init(&corgi_ssp_dev,1);
|
ret = ssp_init(&corgi_ssp_dev,ssp_machinfo->port);
|
||||||
|
|
||||||
if (ret)
|
if (ret)
|
||||||
printk(KERN_ERR "Unable to register SSP handler!\n");
|
printk(KERN_ERR "Unable to register SSP handler!\n");
|
||||||
else {
|
else {
|
||||||
ssp_disable(&corgi_ssp_dev);
|
ssp_disable(&corgi_ssp_dev);
|
||||||
ssp_config(&corgi_ssp_dev, (SSCR0_National | (SSCR0_DSS & 0x0b )), 0, 0, SSCR0_SerClkDiv(2));
|
ssp_config(&corgi_ssp_dev, (SSCR0_National | (SSCR0_DSS & 0x0b )), 0, 0, SSCR0_SerClkDiv(ssp_machinfo->clk_ads7846));
|
||||||
ssp_enable(&corgi_ssp_dev);
|
ssp_enable(&corgi_ssp_dev);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -222,9 +234,9 @@ static int corgi_ssp_suspend(struct device *dev, pm_message_t state, u32 level)
|
||||||
static int corgi_ssp_resume(struct device *dev, u32 level)
|
static int corgi_ssp_resume(struct device *dev, u32 level)
|
||||||
{
|
{
|
||||||
if (level == RESUME_POWER_ON) {
|
if (level == RESUME_POWER_ON) {
|
||||||
GPSR0 = GPIO_bit(CORGI_GPIO_LCDCON_CS); /* High - Disable LCD Control/Timing Gen */
|
GPSR(ssp_machinfo->cs_lcdcon) = GPIO_bit(ssp_machinfo->cs_lcdcon); /* High - Disable LCD Control/Timing Gen */
|
||||||
GPSR0 = GPIO_bit(CORGI_GPIO_MAX1111_CS); /* High - Disable MAX1111*/
|
GPSR(ssp_machinfo->cs_max1111) = GPIO_bit(ssp_machinfo->cs_max1111); /* High - Disable MAX1111*/
|
||||||
GPSR0 = GPIO_bit(CORGI_GPIO_ADS7846_CS); /* High - Disable ADS7846*/
|
GPSR(ssp_machinfo->cs_ads7846) = GPIO_bit(ssp_machinfo->cs_ads7846); /* High - Disable ADS7846*/
|
||||||
ssp_restore_state(&corgi_ssp_dev,&corgi_ssp_state);
|
ssp_restore_state(&corgi_ssp_dev,&corgi_ssp_state);
|
||||||
ssp_enable(&corgi_ssp_dev);
|
ssp_enable(&corgi_ssp_dev);
|
||||||
}
|
}
|
||||||
|
|
|
@ -146,6 +146,11 @@ static struct pxa2xx_udc_mach_info udc_info __initdata = {
|
||||||
// no D+ pullup; lubbock can't connect/disconnect in software
|
// no D+ pullup; lubbock can't connect/disconnect in software
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static struct platform_device lub_audio_device = {
|
||||||
|
.name = "pxa2xx-ac97",
|
||||||
|
.id = -1,
|
||||||
|
};
|
||||||
|
|
||||||
static struct resource sa1111_resources[] = {
|
static struct resource sa1111_resources[] = {
|
||||||
[0] = {
|
[0] = {
|
||||||
.start = 0x10000000,
|
.start = 0x10000000,
|
||||||
|
@ -195,6 +200,7 @@ static struct platform_device smc91x_device = {
|
||||||
|
|
||||||
static struct platform_device *devices[] __initdata = {
|
static struct platform_device *devices[] __initdata = {
|
||||||
&sa1111_device,
|
&sa1111_device,
|
||||||
|
&lub_audio_device,
|
||||||
&smc91x_device,
|
&smc91x_device,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -30,6 +30,8 @@
|
||||||
|
|
||||||
#include <asm/arch/pxa-regs.h>
|
#include <asm/arch/pxa-regs.h>
|
||||||
#include <asm/arch/irq.h>
|
#include <asm/arch/irq.h>
|
||||||
|
#include <asm/arch/mmc.h>
|
||||||
|
#include <asm/arch/udc.h>
|
||||||
#include <asm/arch/poodle.h>
|
#include <asm/arch/poodle.h>
|
||||||
#include <asm/arch/pxafb.h>
|
#include <asm/arch/pxafb.h>
|
||||||
|
|
||||||
|
@ -93,6 +95,83 @@ static struct platform_device locomo_device = {
|
||||||
.resource = locomo_resources,
|
.resource = locomo_resources,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* MMC/SD Device
|
||||||
|
*
|
||||||
|
* The card detect interrupt isn't debounced so we delay it by 250ms
|
||||||
|
* to give the card a chance to fully insert/eject.
|
||||||
|
*/
|
||||||
|
static struct pxamci_platform_data poodle_mci_platform_data;
|
||||||
|
|
||||||
|
static int poodle_mci_init(struct device *dev, irqreturn_t (*poodle_detect_int)(int, void *, struct pt_regs *), void *data)
|
||||||
|
{
|
||||||
|
int err;
|
||||||
|
|
||||||
|
/* setup GPIO for PXA25x MMC controller */
|
||||||
|
pxa_gpio_mode(GPIO6_MMCCLK_MD);
|
||||||
|
pxa_gpio_mode(GPIO8_MMCCS0_MD);
|
||||||
|
pxa_gpio_mode(POODLE_GPIO_nSD_DETECT | GPIO_IN);
|
||||||
|
pxa_gpio_mode(POODLE_GPIO_SD_PWR | GPIO_OUT);
|
||||||
|
|
||||||
|
poodle_mci_platform_data.detect_delay = msecs_to_jiffies(250);
|
||||||
|
|
||||||
|
err = request_irq(POODLE_IRQ_GPIO_nSD_DETECT, poodle_detect_int, SA_INTERRUPT,
|
||||||
|
"MMC card detect", data);
|
||||||
|
if (err) {
|
||||||
|
printk(KERN_ERR "poodle_mci_init: MMC/SD: can't request MMC card detect IRQ\n");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
set_irq_type(POODLE_IRQ_GPIO_nSD_DETECT, IRQT_BOTHEDGE);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void poodle_mci_setpower(struct device *dev, unsigned int vdd)
|
||||||
|
{
|
||||||
|
struct pxamci_platform_data* p_d = dev->platform_data;
|
||||||
|
|
||||||
|
if (( 1 << vdd) & p_d->ocr_mask)
|
||||||
|
GPSR1 = GPIO_bit(POODLE_GPIO_SD_PWR);
|
||||||
|
else
|
||||||
|
GPCR1 = GPIO_bit(POODLE_GPIO_SD_PWR);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void poodle_mci_exit(struct device *dev, void *data)
|
||||||
|
{
|
||||||
|
free_irq(POODLE_IRQ_GPIO_nSD_DETECT, data);
|
||||||
|
}
|
||||||
|
|
||||||
|
static struct pxamci_platform_data poodle_mci_platform_data = {
|
||||||
|
.ocr_mask = MMC_VDD_32_33|MMC_VDD_33_34,
|
||||||
|
.init = poodle_mci_init,
|
||||||
|
.setpower = poodle_mci_setpower,
|
||||||
|
.exit = poodle_mci_exit,
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* USB Device Controller
|
||||||
|
*/
|
||||||
|
static void poodle_udc_command(int cmd)
|
||||||
|
{
|
||||||
|
switch(cmd) {
|
||||||
|
case PXA2XX_UDC_CMD_CONNECT:
|
||||||
|
GPSR(POODLE_GPIO_USB_PULLUP) = GPIO_bit(POODLE_GPIO_USB_PULLUP);
|
||||||
|
break;
|
||||||
|
case PXA2XX_UDC_CMD_DISCONNECT:
|
||||||
|
GPCR(POODLE_GPIO_USB_PULLUP) = GPIO_bit(POODLE_GPIO_USB_PULLUP);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static struct pxa2xx_udc_mach_info udc_info __initdata = {
|
||||||
|
/* no connect GPIO; poodle can't tell connection status */
|
||||||
|
.udc_command = poodle_udc_command,
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
/* PXAFB device */
|
/* PXAFB device */
|
||||||
static struct pxafb_mach_info poodle_fb_info __initdata = {
|
static struct pxafb_mach_info poodle_fb_info __initdata = {
|
||||||
.pixclock = 144700,
|
.pixclock = 144700,
|
||||||
|
@ -126,6 +205,15 @@ static void __init poodle_init(void)
|
||||||
{
|
{
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
|
|
||||||
|
/* setup sleep mode values */
|
||||||
|
PWER = 0x00000002;
|
||||||
|
PFER = 0x00000000;
|
||||||
|
PRER = 0x00000002;
|
||||||
|
PGSR0 = 0x00008000;
|
||||||
|
PGSR1 = 0x003F0202;
|
||||||
|
PGSR2 = 0x0001C000;
|
||||||
|
PCFR |= PCFR_OPDE;
|
||||||
|
|
||||||
/* cpu initialize */
|
/* cpu initialize */
|
||||||
/* Pgsr Register */
|
/* Pgsr Register */
|
||||||
PGSR0 = 0x0146dd80;
|
PGSR0 = 0x0146dd80;
|
||||||
|
@ -155,6 +243,9 @@ static void __init poodle_init(void)
|
||||||
GPSR2 = 0x00000000;
|
GPSR2 = 0x00000000;
|
||||||
|
|
||||||
set_pxa_fb_info(&poodle_fb_info);
|
set_pxa_fb_info(&poodle_fb_info);
|
||||||
|
pxa_gpio_mode(POODLE_GPIO_USB_PULLUP | GPIO_OUT);
|
||||||
|
pxa_set_udc_info(&udc_info);
|
||||||
|
pxa_set_mci_info(&poodle_mci_platform_data);
|
||||||
|
|
||||||
scoop_num = 1;
|
scoop_num = 1;
|
||||||
scoop_devs = &poodle_pcmcia_scoop[0];
|
scoop_devs = &poodle_pcmcia_scoop[0];
|
||||||
|
@ -171,32 +262,12 @@ static void __init fixup_poodle(struct machine_desc *desc,
|
||||||
sharpsl_save_param();
|
sharpsl_save_param();
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct map_desc poodle_io_desc[] __initdata = {
|
|
||||||
/* virtual physical length */
|
|
||||||
{ 0xef800000, 0x00000000, 0x00800000, MT_DEVICE }, /* Boot Flash */
|
|
||||||
};
|
|
||||||
|
|
||||||
static void __init poodle_map_io(void)
|
|
||||||
{
|
|
||||||
pxa_map_io();
|
|
||||||
iotable_init(poodle_io_desc, ARRAY_SIZE(poodle_io_desc));
|
|
||||||
|
|
||||||
/* setup sleep mode values */
|
|
||||||
PWER = 0x00000002;
|
|
||||||
PFER = 0x00000000;
|
|
||||||
PRER = 0x00000002;
|
|
||||||
PGSR0 = 0x00008000;
|
|
||||||
PGSR1 = 0x003F0202;
|
|
||||||
PGSR2 = 0x0001C000;
|
|
||||||
PCFR |= PCFR_OPDE;
|
|
||||||
}
|
|
||||||
|
|
||||||
MACHINE_START(POODLE, "SHARP Poodle")
|
MACHINE_START(POODLE, "SHARP Poodle")
|
||||||
.phys_ram = 0xa0000000,
|
.phys_ram = 0xa0000000,
|
||||||
.phys_io = 0x40000000,
|
.phys_io = 0x40000000,
|
||||||
.io_pg_offst = (io_p2v(0x40000000) >> 18) & 0xfffc,
|
.io_pg_offst = (io_p2v(0x40000000) >> 18) & 0xfffc,
|
||||||
.fixup = fixup_poodle,
|
.fixup = fixup_poodle,
|
||||||
.map_io = poodle_map_io,
|
.map_io = pxa_map_io,
|
||||||
.init_irq = pxa_init_irq,
|
.init_irq = pxa_init_irq,
|
||||||
.timer = &pxa_timer,
|
.timer = &pxa_timer,
|
||||||
.init_machine = poodle_init,
|
.init_machine = poodle_init,
|
||||||
|
|
|
@ -0,0 +1,34 @@
|
||||||
|
/*
|
||||||
|
* SharpSL SSP Driver
|
||||||
|
*/
|
||||||
|
|
||||||
|
struct corgissp_machinfo {
|
||||||
|
int port;
|
||||||
|
int cs_lcdcon;
|
||||||
|
int cs_ads7846;
|
||||||
|
int cs_max1111;
|
||||||
|
int clk_lcdcon;
|
||||||
|
int clk_ads7846;
|
||||||
|
int clk_max1111;
|
||||||
|
};
|
||||||
|
|
||||||
|
void corgi_ssp_set_machinfo(struct corgissp_machinfo *machinfo);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* SharpSL Backlight
|
||||||
|
*/
|
||||||
|
|
||||||
|
void corgi_bl_set_intensity(int intensity);
|
||||||
|
void spitz_bl_set_intensity(int intensity);
|
||||||
|
void akita_bl_set_intensity(int intensity);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* SharpSL Touchscreen Driver
|
||||||
|
*/
|
||||||
|
|
||||||
|
unsigned long corgi_get_hsync_len(void);
|
||||||
|
unsigned long spitz_get_hsync_len(void);
|
||||||
|
void corgi_put_hsync(void);
|
||||||
|
void spitz_put_hsync(void);
|
||||||
|
void corgi_wait_hsync(void);
|
||||||
|
void spitz_wait_hsync(void);
|
|
@ -0,0 +1,380 @@
|
||||||
|
/*
|
||||||
|
* Support for Sharp SL-Cxx00 Series of PDAs
|
||||||
|
* Models: SL-C3000 (Spitz), SL-C1000 (Akita) and SL-C3100 (Borzoi)
|
||||||
|
*
|
||||||
|
* Copyright (c) 2005 Richard Purdie
|
||||||
|
*
|
||||||
|
* Based on Sharp's 2.4 kernel patches/lubbock.c
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License version 2 as
|
||||||
|
* published by the Free Software Foundation.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <linux/kernel.h>
|
||||||
|
#include <linux/init.h>
|
||||||
|
#include <linux/device.h>
|
||||||
|
#include <linux/delay.h>
|
||||||
|
#include <linux/major.h>
|
||||||
|
#include <linux/fs.h>
|
||||||
|
#include <linux/interrupt.h>
|
||||||
|
#include <linux/mmc/host.h>
|
||||||
|
|
||||||
|
#include <asm/setup.h>
|
||||||
|
#include <asm/memory.h>
|
||||||
|
#include <asm/mach-types.h>
|
||||||
|
#include <asm/hardware.h>
|
||||||
|
#include <asm/irq.h>
|
||||||
|
#include <asm/io.h>
|
||||||
|
|
||||||
|
#include <asm/mach/arch.h>
|
||||||
|
#include <asm/mach/map.h>
|
||||||
|
#include <asm/mach/irq.h>
|
||||||
|
|
||||||
|
#include <asm/arch/pxa-regs.h>
|
||||||
|
#include <asm/arch/irq.h>
|
||||||
|
#include <asm/arch/mmc.h>
|
||||||
|
#include <asm/arch/udc.h>
|
||||||
|
#include <asm/arch/ohci.h>
|
||||||
|
#include <asm/arch/pxafb.h>
|
||||||
|
#include <asm/arch/akita.h>
|
||||||
|
#include <asm/arch/spitz.h>
|
||||||
|
#include <asm/arch/sharpsl.h>
|
||||||
|
|
||||||
|
#include <asm/mach/sharpsl_param.h>
|
||||||
|
#include <asm/hardware/scoop.h>
|
||||||
|
|
||||||
|
#include "generic.h"
|
||||||
|
#include "sharpsl.h"
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Spitz SCOOP Device #1
|
||||||
|
*/
|
||||||
|
static struct resource spitz_scoop_resources[] = {
|
||||||
|
[0] = {
|
||||||
|
.start = 0x10800000,
|
||||||
|
.end = 0x10800fff,
|
||||||
|
.flags = IORESOURCE_MEM,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
static struct scoop_config spitz_scoop_setup = {
|
||||||
|
.io_dir = SPITZ_SCP_IO_DIR,
|
||||||
|
.io_out = SPITZ_SCP_IO_OUT,
|
||||||
|
.suspend_clr = SPITZ_SCP_SUS_CLR,
|
||||||
|
.suspend_set = SPITZ_SCP_SUS_SET,
|
||||||
|
};
|
||||||
|
|
||||||
|
struct platform_device spitzscoop_device = {
|
||||||
|
.name = "sharp-scoop",
|
||||||
|
.id = 0,
|
||||||
|
.dev = {
|
||||||
|
.platform_data = &spitz_scoop_setup,
|
||||||
|
},
|
||||||
|
.num_resources = ARRAY_SIZE(spitz_scoop_resources),
|
||||||
|
.resource = spitz_scoop_resources,
|
||||||
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Spitz SCOOP Device #2
|
||||||
|
*/
|
||||||
|
static struct resource spitz_scoop2_resources[] = {
|
||||||
|
[0] = {
|
||||||
|
.start = 0x08800040,
|
||||||
|
.end = 0x08800fff,
|
||||||
|
.flags = IORESOURCE_MEM,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
static struct scoop_config spitz_scoop2_setup = {
|
||||||
|
.io_dir = SPITZ_SCP2_IO_DIR,
|
||||||
|
.io_out = SPITZ_SCP2_IO_OUT,
|
||||||
|
.suspend_clr = SPITZ_SCP2_SUS_CLR,
|
||||||
|
.suspend_set = SPITZ_SCP2_SUS_SET,
|
||||||
|
};
|
||||||
|
|
||||||
|
struct platform_device spitzscoop2_device = {
|
||||||
|
.name = "sharp-scoop",
|
||||||
|
.id = 1,
|
||||||
|
.dev = {
|
||||||
|
.platform_data = &spitz_scoop2_setup,
|
||||||
|
},
|
||||||
|
.num_resources = ARRAY_SIZE(spitz_scoop2_resources),
|
||||||
|
.resource = spitz_scoop2_resources,
|
||||||
|
};
|
||||||
|
|
||||||
|
static struct scoop_pcmcia_dev spitz_pcmcia_scoop[] = {
|
||||||
|
{
|
||||||
|
.dev = &spitzscoop_device.dev,
|
||||||
|
.irq = SPITZ_IRQ_GPIO_CF_IRQ,
|
||||||
|
.cd_irq = SPITZ_IRQ_GPIO_CF_CD,
|
||||||
|
.cd_irq_str = "PCMCIA0 CD",
|
||||||
|
},{
|
||||||
|
.dev = &spitzscoop2_device.dev,
|
||||||
|
.irq = SPITZ_IRQ_GPIO_CF2_IRQ,
|
||||||
|
.cd_irq = -1,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Spitz SSP Device
|
||||||
|
*
|
||||||
|
* Set the parent as the scoop device because a lot of SSP devices
|
||||||
|
* also use scoop functions and this makes the power up/down order
|
||||||
|
* work correctly.
|
||||||
|
*/
|
||||||
|
struct platform_device spitzssp_device = {
|
||||||
|
.name = "corgi-ssp",
|
||||||
|
.dev = {
|
||||||
|
.parent = &spitzscoop_device.dev,
|
||||||
|
},
|
||||||
|
.id = -1,
|
||||||
|
};
|
||||||
|
|
||||||
|
struct corgissp_machinfo spitz_ssp_machinfo = {
|
||||||
|
.port = 2,
|
||||||
|
.cs_lcdcon = SPITZ_GPIO_LCDCON_CS,
|
||||||
|
.cs_ads7846 = SPITZ_GPIO_ADS7846_CS,
|
||||||
|
.cs_max1111 = SPITZ_GPIO_MAX1111_CS,
|
||||||
|
.clk_lcdcon = 520,
|
||||||
|
.clk_ads7846 = 14,
|
||||||
|
.clk_max1111 = 56,
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Spitz Backlight Device
|
||||||
|
*/
|
||||||
|
static struct corgibl_machinfo spitz_bl_machinfo = {
|
||||||
|
.max_intensity = 0x2f,
|
||||||
|
};
|
||||||
|
|
||||||
|
static struct platform_device spitzbl_device = {
|
||||||
|
.name = "corgi-bl",
|
||||||
|
.dev = {
|
||||||
|
.platform_data = &spitz_bl_machinfo,
|
||||||
|
},
|
||||||
|
.id = -1,
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Spitz Keyboard Device
|
||||||
|
*/
|
||||||
|
static struct platform_device spitzkbd_device = {
|
||||||
|
.name = "spitz-keyboard",
|
||||||
|
.id = -1,
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Spitz Touch Screen Device
|
||||||
|
*/
|
||||||
|
static struct resource spitzts_resources[] = {
|
||||||
|
[0] = {
|
||||||
|
.start = SPITZ_IRQ_GPIO_TP_INT,
|
||||||
|
.end = SPITZ_IRQ_GPIO_TP_INT,
|
||||||
|
.flags = IORESOURCE_IRQ,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
static struct corgits_machinfo spitz_ts_machinfo = {
|
||||||
|
.get_hsync_len = spitz_get_hsync_len,
|
||||||
|
.put_hsync = spitz_put_hsync,
|
||||||
|
.wait_hsync = spitz_wait_hsync,
|
||||||
|
};
|
||||||
|
|
||||||
|
static struct platform_device spitzts_device = {
|
||||||
|
.name = "corgi-ts",
|
||||||
|
.dev = {
|
||||||
|
.parent = &spitzssp_device.dev,
|
||||||
|
.platform_data = &spitz_ts_machinfo,
|
||||||
|
},
|
||||||
|
.id = -1,
|
||||||
|
.num_resources = ARRAY_SIZE(spitzts_resources),
|
||||||
|
.resource = spitzts_resources,
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* MMC/SD Device
|
||||||
|
*
|
||||||
|
* The card detect interrupt isn't debounced so we delay it by 250ms
|
||||||
|
* to give the card a chance to fully insert/eject.
|
||||||
|
*/
|
||||||
|
|
||||||
|
static struct pxamci_platform_data spitz_mci_platform_data;
|
||||||
|
|
||||||
|
static int spitz_mci_init(struct device *dev, irqreturn_t (*spitz_detect_int)(int, void *, struct pt_regs *), void *data)
|
||||||
|
{
|
||||||
|
int err;
|
||||||
|
|
||||||
|
/* setup GPIO for PXA27x MMC controller */
|
||||||
|
pxa_gpio_mode(GPIO32_MMCCLK_MD);
|
||||||
|
pxa_gpio_mode(GPIO112_MMCCMD_MD);
|
||||||
|
pxa_gpio_mode(GPIO92_MMCDAT0_MD);
|
||||||
|
pxa_gpio_mode(GPIO109_MMCDAT1_MD);
|
||||||
|
pxa_gpio_mode(GPIO110_MMCDAT2_MD);
|
||||||
|
pxa_gpio_mode(GPIO111_MMCDAT3_MD);
|
||||||
|
pxa_gpio_mode(SPITZ_GPIO_nSD_DETECT | GPIO_IN);
|
||||||
|
pxa_gpio_mode(SPITZ_GPIO_nSD_WP | GPIO_IN);
|
||||||
|
|
||||||
|
spitz_mci_platform_data.detect_delay = msecs_to_jiffies(250);
|
||||||
|
|
||||||
|
err = request_irq(SPITZ_IRQ_GPIO_nSD_DETECT, spitz_detect_int, SA_INTERRUPT,
|
||||||
|
"MMC card detect", data);
|
||||||
|
if (err) {
|
||||||
|
printk(KERN_ERR "spitz_mci_init: MMC/SD: can't request MMC card detect IRQ\n");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
set_irq_type(SPITZ_IRQ_GPIO_nSD_DETECT, IRQT_BOTHEDGE);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Power control is shared with one of the CF slots so we have a mess */
|
||||||
|
static void spitz_mci_setpower(struct device *dev, unsigned int vdd)
|
||||||
|
{
|
||||||
|
struct pxamci_platform_data* p_d = dev->platform_data;
|
||||||
|
|
||||||
|
unsigned short cpr = read_scoop_reg(&spitzscoop_device.dev, SCOOP_CPR);
|
||||||
|
|
||||||
|
if (( 1 << vdd) & p_d->ocr_mask) {
|
||||||
|
/* printk(KERN_DEBUG "%s: on\n", __FUNCTION__); */
|
||||||
|
set_scoop_gpio(&spitzscoop_device.dev, SPITZ_SCP_CF_POWER);
|
||||||
|
mdelay(2);
|
||||||
|
write_scoop_reg(&spitzscoop_device.dev, SCOOP_CPR, cpr | 0x04);
|
||||||
|
} else {
|
||||||
|
/* printk(KERN_DEBUG "%s: off\n", __FUNCTION__); */
|
||||||
|
write_scoop_reg(&spitzscoop_device.dev, SCOOP_CPR, cpr & ~0x04);
|
||||||
|
|
||||||
|
if (!(cpr | 0x02)) {
|
||||||
|
mdelay(1);
|
||||||
|
reset_scoop_gpio(&spitzscoop_device.dev, SPITZ_SCP_CF_POWER);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static int spitz_mci_get_ro(struct device *dev)
|
||||||
|
{
|
||||||
|
return GPLR(SPITZ_GPIO_nSD_WP) & GPIO_bit(SPITZ_GPIO_nSD_WP);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void spitz_mci_exit(struct device *dev, void *data)
|
||||||
|
{
|
||||||
|
free_irq(SPITZ_IRQ_GPIO_nSD_DETECT, data);
|
||||||
|
}
|
||||||
|
|
||||||
|
static struct pxamci_platform_data spitz_mci_platform_data = {
|
||||||
|
.ocr_mask = MMC_VDD_32_33|MMC_VDD_33_34,
|
||||||
|
.init = spitz_mci_init,
|
||||||
|
.get_ro = spitz_mci_get_ro,
|
||||||
|
.setpower = spitz_mci_setpower,
|
||||||
|
.exit = spitz_mci_exit,
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Spitz PXA Framebuffer
|
||||||
|
*/
|
||||||
|
static struct pxafb_mach_info spitz_pxafb_info __initdata = {
|
||||||
|
.pixclock = 19231,
|
||||||
|
.xres = 480,
|
||||||
|
.yres = 640,
|
||||||
|
.bpp = 16,
|
||||||
|
.hsync_len = 40,
|
||||||
|
.left_margin = 46,
|
||||||
|
.right_margin = 125,
|
||||||
|
.vsync_len = 3,
|
||||||
|
.upper_margin = 1,
|
||||||
|
.lower_margin = 0,
|
||||||
|
.sync = 0,
|
||||||
|
.lccr0 = LCCR0_Color | LCCR0_Sngl | LCCR0_Act | LCCR0_LDDALT | LCCR0_OUC | LCCR0_CMDIM | LCCR0_RDSTM,
|
||||||
|
.lccr3 = LCCR3_PixRsEdg | LCCR3_OutEnH,
|
||||||
|
.pxafb_lcd_power = spitz_lcd_power,
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
static struct platform_device *devices[] __initdata = {
|
||||||
|
&spitzscoop_device,
|
||||||
|
&spitzssp_device,
|
||||||
|
&spitzkbd_device,
|
||||||
|
&spitzts_device,
|
||||||
|
&spitzbl_device,
|
||||||
|
&spitzbattery_device,
|
||||||
|
};
|
||||||
|
|
||||||
|
static void __init common_init(void)
|
||||||
|
{
|
||||||
|
PMCR = 0x00;
|
||||||
|
|
||||||
|
/* setup sleep mode values */
|
||||||
|
PWER = 0x00000002;
|
||||||
|
PFER = 0x00000000;
|
||||||
|
PRER = 0x00000002;
|
||||||
|
PGSR0 = 0x0158C000;
|
||||||
|
PGSR1 = 0x00FF0080;
|
||||||
|
PGSR2 = 0x0001C004;
|
||||||
|
|
||||||
|
/* Stop 3.6MHz and drive HIGH to PCMCIA and CS */
|
||||||
|
PCFR |= PCFR_OPDE;
|
||||||
|
|
||||||
|
corgi_ssp_set_machinfo(&spitz_ssp_machinfo);
|
||||||
|
|
||||||
|
pxa_gpio_mode(SPITZ_GPIO_HSYNC | GPIO_IN);
|
||||||
|
|
||||||
|
platform_add_devices(devices, ARRAY_SIZE(devices));
|
||||||
|
pxa_set_mci_info(&spitz_mci_platform_data);
|
||||||
|
pxafb_device.dev.parent = &spitzssp_device.dev;
|
||||||
|
set_pxa_fb_info(&spitz_pxafb_info);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void __init spitz_init(void)
|
||||||
|
{
|
||||||
|
scoop_num = 2;
|
||||||
|
scoop_devs = &spitz_pcmcia_scoop[0];
|
||||||
|
spitz_bl_machinfo.set_bl_intensity = spitz_bl_set_intensity;
|
||||||
|
|
||||||
|
common_init();
|
||||||
|
|
||||||
|
platform_device_register(&spitzscoop2_device);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void __init fixup_spitz(struct machine_desc *desc,
|
||||||
|
struct tag *tags, char **cmdline, struct meminfo *mi)
|
||||||
|
{
|
||||||
|
sharpsl_save_param();
|
||||||
|
mi->nr_banks = 1;
|
||||||
|
mi->bank[0].start = 0xa0000000;
|
||||||
|
mi->bank[0].node = 0;
|
||||||
|
mi->bank[0].size = (64*1024*1024);
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifdef CONFIG_MACH_SPITZ
|
||||||
|
MACHINE_START(SPITZ, "SHARP Spitz")
|
||||||
|
.phys_ram = 0xa0000000,
|
||||||
|
.phys_io = 0x40000000,
|
||||||
|
.io_pg_offst = (io_p2v(0x40000000) >> 18) & 0xfffc,
|
||||||
|
.fixup = fixup_spitz,
|
||||||
|
.map_io = pxa_map_io,
|
||||||
|
.init_irq = pxa_init_irq,
|
||||||
|
.init_machine = spitz_init,
|
||||||
|
.timer = &pxa_timer,
|
||||||
|
MACHINE_END
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef CONFIG_MACH_BORZOI
|
||||||
|
MACHINE_START(BORZOI, "SHARP Borzoi")
|
||||||
|
.phys_ram = 0xa0000000,
|
||||||
|
.phys_io = 0x40000000,
|
||||||
|
.io_pg_offst = (io_p2v(0x40000000) >> 18) & 0xfffc,
|
||||||
|
.fixup = fixup_spitz,
|
||||||
|
.map_io = pxa_map_io,
|
||||||
|
.init_irq = pxa_init_irq,
|
||||||
|
.init_machine = spitz_init,
|
||||||
|
.timer = &pxa_timer,
|
||||||
|
MACHINE_END
|
||||||
|
#endif
|
|
@ -12,6 +12,7 @@
|
||||||
*
|
*
|
||||||
* Modifications:
|
* Modifications:
|
||||||
* 02-May-2005 BJD Copied from mach-bast.c
|
* 02-May-2005 BJD Copied from mach-bast.c
|
||||||
|
* 20-Sep-2005 BJD Added static to non-exported items
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <linux/kernel.h>
|
#include <linux/kernel.h>
|
||||||
|
@ -232,7 +233,7 @@ static struct s3c24xx_board anubis_board __initdata = {
|
||||||
.clocks_count = ARRAY_SIZE(anubis_clocks)
|
.clocks_count = ARRAY_SIZE(anubis_clocks)
|
||||||
};
|
};
|
||||||
|
|
||||||
void __init anubis_map_io(void)
|
static void __init anubis_map_io(void)
|
||||||
{
|
{
|
||||||
/* initialise the clocks */
|
/* initialise the clocks */
|
||||||
|
|
||||||
|
|
|
@ -31,6 +31,7 @@
|
||||||
* 17-Jul-2005 BJD Changed to platform device for SuperIO 16550s
|
* 17-Jul-2005 BJD Changed to platform device for SuperIO 16550s
|
||||||
* 25-Jul-2005 BJD Removed ASIX static mappings
|
* 25-Jul-2005 BJD Removed ASIX static mappings
|
||||||
* 27-Jul-2005 BJD Ensure maximum frequency of i2c bus
|
* 27-Jul-2005 BJD Ensure maximum frequency of i2c bus
|
||||||
|
* 20-Sep-2005 BJD Added static to non-exported items
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <linux/kernel.h>
|
#include <linux/kernel.h>
|
||||||
|
@ -428,7 +429,7 @@ static struct s3c24xx_board bast_board __initdata = {
|
||||||
.clocks_count = ARRAY_SIZE(bast_clocks)
|
.clocks_count = ARRAY_SIZE(bast_clocks)
|
||||||
};
|
};
|
||||||
|
|
||||||
void __init bast_map_io(void)
|
static void __init bast_map_io(void)
|
||||||
{
|
{
|
||||||
/* initialise the clocks */
|
/* initialise the clocks */
|
||||||
|
|
||||||
|
|
|
@ -24,6 +24,7 @@
|
||||||
* 10-Jan-2005 BJD Removed include of s3c2410.h
|
* 10-Jan-2005 BJD Removed include of s3c2410.h
|
||||||
* 14-Jan-2005 BJD Added clock init
|
* 14-Jan-2005 BJD Added clock init
|
||||||
* 10-Mar-2005 LCVR Changed S3C2410_VA to S3C24XX_VA
|
* 10-Mar-2005 LCVR Changed S3C2410_VA to S3C24XX_VA
|
||||||
|
* 20-Sep-2005 BJD Added static to non-exported items
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <linux/kernel.h>
|
#include <linux/kernel.h>
|
||||||
|
@ -147,7 +148,7 @@ static struct s3c24xx_board h1940_board __initdata = {
|
||||||
.devices_count = ARRAY_SIZE(h1940_devices)
|
.devices_count = ARRAY_SIZE(h1940_devices)
|
||||||
};
|
};
|
||||||
|
|
||||||
void __init h1940_map_io(void)
|
static void __init h1940_map_io(void)
|
||||||
{
|
{
|
||||||
s3c24xx_init_io(h1940_iodesc, ARRAY_SIZE(h1940_iodesc));
|
s3c24xx_init_io(h1940_iodesc, ARRAY_SIZE(h1940_iodesc));
|
||||||
s3c24xx_init_clocks(0);
|
s3c24xx_init_clocks(0);
|
||||||
|
@ -155,13 +156,13 @@ void __init h1940_map_io(void)
|
||||||
s3c24xx_set_board(&h1940_board);
|
s3c24xx_set_board(&h1940_board);
|
||||||
}
|
}
|
||||||
|
|
||||||
void __init h1940_init_irq(void)
|
static void __init h1940_init_irq(void)
|
||||||
{
|
{
|
||||||
s3c24xx_init_irq();
|
s3c24xx_init_irq();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void __init h1940_init(void)
|
static void __init h1940_init(void)
|
||||||
{
|
{
|
||||||
set_s3c2410fb_info(&h1940_lcdcfg);
|
set_s3c2410fb_info(&h1940_lcdcfg);
|
||||||
}
|
}
|
||||||
|
|
|
@ -97,7 +97,7 @@ static struct s3c24xx_board n30_board __initdata = {
|
||||||
.devices_count = ARRAY_SIZE(n30_devices)
|
.devices_count = ARRAY_SIZE(n30_devices)
|
||||||
};
|
};
|
||||||
|
|
||||||
void __init n30_map_io(void)
|
static void __init n30_map_io(void)
|
||||||
{
|
{
|
||||||
s3c24xx_init_io(n30_iodesc, ARRAY_SIZE(n30_iodesc));
|
s3c24xx_init_io(n30_iodesc, ARRAY_SIZE(n30_iodesc));
|
||||||
s3c24xx_init_clocks(0);
|
s3c24xx_init_clocks(0);
|
||||||
|
@ -105,14 +105,14 @@ void __init n30_map_io(void)
|
||||||
s3c24xx_set_board(&n30_board);
|
s3c24xx_set_board(&n30_board);
|
||||||
}
|
}
|
||||||
|
|
||||||
void __init n30_init_irq(void)
|
static void __init n30_init_irq(void)
|
||||||
{
|
{
|
||||||
s3c24xx_init_irq();
|
s3c24xx_init_irq();
|
||||||
}
|
}
|
||||||
|
|
||||||
/* GPB3 is the line that controls the pull-up for the USB D+ line */
|
/* GPB3 is the line that controls the pull-up for the USB D+ line */
|
||||||
|
|
||||||
void __init n30_init(void)
|
static void __init n30_init(void)
|
||||||
{
|
{
|
||||||
s3c_device_i2c.dev.platform_data = &n30_i2ccfg;
|
s3c_device_i2c.dev.platform_data = &n30_i2ccfg;
|
||||||
|
|
||||||
|
|
|
@ -136,7 +136,7 @@ static void __init nexcoder_sensorboard_init(void)
|
||||||
s3c2410_gpio_cfgpin(S3C2410_GPF2, S3C2410_GPF2_OUTP); // CAM_GPIO6 => CAM_PWRDN
|
s3c2410_gpio_cfgpin(S3C2410_GPF2, S3C2410_GPF2_OUTP); // CAM_GPIO6 => CAM_PWRDN
|
||||||
}
|
}
|
||||||
|
|
||||||
void __init nexcoder_map_io(void)
|
static void __init nexcoder_map_io(void)
|
||||||
{
|
{
|
||||||
s3c24xx_init_io(nexcoder_iodesc, ARRAY_SIZE(nexcoder_iodesc));
|
s3c24xx_init_io(nexcoder_iodesc, ARRAY_SIZE(nexcoder_iodesc));
|
||||||
s3c24xx_init_clocks(0);
|
s3c24xx_init_clocks(0);
|
||||||
|
|
|
@ -105,7 +105,7 @@ static struct s3c24xx_board otom11_board __initdata = {
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
void __init otom11_map_io(void)
|
static void __init otom11_map_io(void)
|
||||||
{
|
{
|
||||||
s3c24xx_init_io(otom11_iodesc, ARRAY_SIZE(otom11_iodesc));
|
s3c24xx_init_io(otom11_iodesc, ARRAY_SIZE(otom11_iodesc));
|
||||||
s3c24xx_init_clocks(0);
|
s3c24xx_init_clocks(0);
|
||||||
|
|
|
@ -16,6 +16,7 @@
|
||||||
* 14-Jan-2005 BJD Added new clock init
|
* 14-Jan-2005 BJD Added new clock init
|
||||||
* 10-Mar-2005 LCVR Changed S3C2410_VA to S3C24XX_VA
|
* 10-Mar-2005 LCVR Changed S3C2410_VA to S3C24XX_VA
|
||||||
* 14-Mar-2005 BJD Fixed __iomem warnings
|
* 14-Mar-2005 BJD Fixed __iomem warnings
|
||||||
|
* 20-Sep-2005 BJD Added static to non-exported items
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <linux/kernel.h>
|
#include <linux/kernel.h>
|
||||||
|
@ -108,7 +109,7 @@ static struct s3c24xx_board rx3715_board __initdata = {
|
||||||
.devices_count = ARRAY_SIZE(rx3715_devices)
|
.devices_count = ARRAY_SIZE(rx3715_devices)
|
||||||
};
|
};
|
||||||
|
|
||||||
void __init rx3715_map_io(void)
|
static void __init rx3715_map_io(void)
|
||||||
{
|
{
|
||||||
s3c24xx_init_io(rx3715_iodesc, ARRAY_SIZE(rx3715_iodesc));
|
s3c24xx_init_io(rx3715_iodesc, ARRAY_SIZE(rx3715_iodesc));
|
||||||
s3c24xx_init_clocks(16934000);
|
s3c24xx_init_clocks(16934000);
|
||||||
|
@ -116,7 +117,7 @@ void __init rx3715_map_io(void)
|
||||||
s3c24xx_set_board(&rx3715_board);
|
s3c24xx_set_board(&rx3715_board);
|
||||||
}
|
}
|
||||||
|
|
||||||
void __init rx3715_init_irq(void)
|
static void __init rx3715_init_irq(void)
|
||||||
{
|
{
|
||||||
s3c24xx_init_irq();
|
s3c24xx_init_irq();
|
||||||
}
|
}
|
||||||
|
|
|
@ -28,6 +28,7 @@
|
||||||
* Ben Dooks <ben@simtec.co.uk>
|
* Ben Dooks <ben@simtec.co.uk>
|
||||||
*
|
*
|
||||||
* 10-Mar-2005 LCVR Changed S3C2410_VA to S3C24XX_VA
|
* 10-Mar-2005 LCVR Changed S3C2410_VA to S3C24XX_VA
|
||||||
|
* 20-Sep-2005 BJD Added static to non-exported items
|
||||||
*
|
*
|
||||||
***********************************************************************/
|
***********************************************************************/
|
||||||
|
|
||||||
|
@ -97,7 +98,7 @@ static struct s3c24xx_board smdk2410_board __initdata = {
|
||||||
.devices_count = ARRAY_SIZE(smdk2410_devices)
|
.devices_count = ARRAY_SIZE(smdk2410_devices)
|
||||||
};
|
};
|
||||||
|
|
||||||
void __init smdk2410_map_io(void)
|
static void __init smdk2410_map_io(void)
|
||||||
{
|
{
|
||||||
s3c24xx_init_io(smdk2410_iodesc, ARRAY_SIZE(smdk2410_iodesc));
|
s3c24xx_init_io(smdk2410_iodesc, ARRAY_SIZE(smdk2410_iodesc));
|
||||||
s3c24xx_init_clocks(0);
|
s3c24xx_init_clocks(0);
|
||||||
|
@ -105,7 +106,7 @@ void __init smdk2410_map_io(void)
|
||||||
s3c24xx_set_board(&smdk2410_board);
|
s3c24xx_set_board(&smdk2410_board);
|
||||||
}
|
}
|
||||||
|
|
||||||
void __init smdk2410_init_irq(void)
|
static void __init smdk2410_init_irq(void)
|
||||||
{
|
{
|
||||||
s3c24xx_init_irq();
|
s3c24xx_init_irq();
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,6 +18,7 @@
|
||||||
* 22-Feb-2005 BJD Updated for 2.6.11-rc5 relesa
|
* 22-Feb-2005 BJD Updated for 2.6.11-rc5 relesa
|
||||||
* 10-Mar-2005 LCVR Replaced S3C2410_VA by S3C24XX_VA
|
* 10-Mar-2005 LCVR Replaced S3C2410_VA by S3C24XX_VA
|
||||||
* 14-Mar-2005 BJD void __iomem fixes
|
* 14-Mar-2005 BJD void __iomem fixes
|
||||||
|
* 20-Sep-2005 BJD Added static to non-exported items
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <linux/kernel.h>
|
#include <linux/kernel.h>
|
||||||
|
@ -98,7 +99,7 @@ static struct s3c24xx_board smdk2440_board __initdata = {
|
||||||
.devices_count = ARRAY_SIZE(smdk2440_devices)
|
.devices_count = ARRAY_SIZE(smdk2440_devices)
|
||||||
};
|
};
|
||||||
|
|
||||||
void __init smdk2440_map_io(void)
|
static void __init smdk2440_map_io(void)
|
||||||
{
|
{
|
||||||
s3c24xx_init_io(smdk2440_iodesc, ARRAY_SIZE(smdk2440_iodesc));
|
s3c24xx_init_io(smdk2440_iodesc, ARRAY_SIZE(smdk2440_iodesc));
|
||||||
s3c24xx_init_clocks(16934400);
|
s3c24xx_init_clocks(16934400);
|
||||||
|
@ -106,7 +107,7 @@ void __init smdk2440_map_io(void)
|
||||||
s3c24xx_set_board(&smdk2440_board);
|
s3c24xx_set_board(&smdk2440_board);
|
||||||
}
|
}
|
||||||
|
|
||||||
void __init smdk2440_machine_init(void)
|
static void __init smdk2440_machine_init(void)
|
||||||
{
|
{
|
||||||
/* Configure the LEDs (even if we have no LED support)*/
|
/* Configure the LEDs (even if we have no LED support)*/
|
||||||
|
|
||||||
|
|
|
@ -28,6 +28,7 @@
|
||||||
* 10-Mar-2005 LCVR Changed S3C2410_VA to S3C24XX_VA
|
* 10-Mar-2005 LCVR Changed S3C2410_VA to S3C24XX_VA
|
||||||
* 14-Mar-2006 BJD void __iomem fixes
|
* 14-Mar-2006 BJD void __iomem fixes
|
||||||
* 22-Jun-2006 BJD Added DM9000 platform information
|
* 22-Jun-2006 BJD Added DM9000 platform information
|
||||||
|
* 20-Sep-2005 BJD Added static to non-exported items
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <linux/kernel.h>
|
#include <linux/kernel.h>
|
||||||
|
@ -347,7 +348,7 @@ static void vr1000_power_off(void)
|
||||||
s3c2410_gpio_setpin(S3C2410_GPB9, 1);
|
s3c2410_gpio_setpin(S3C2410_GPB9, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
void __init vr1000_map_io(void)
|
static void __init vr1000_map_io(void)
|
||||||
{
|
{
|
||||||
/* initialise clock sources */
|
/* initialise clock sources */
|
||||||
|
|
||||||
|
|
|
@ -111,12 +111,11 @@ static struct mtd_partition collie_partitions[] = {
|
||||||
|
|
||||||
static void collie_set_vpp(int vpp)
|
static void collie_set_vpp(int vpp)
|
||||||
{
|
{
|
||||||
write_scoop_reg(SCOOP_GPCR, read_scoop_reg(SCOOP_GPCR) | COLLIE_SCP_VPEN);
|
write_scoop_reg(&colliescoop_device.dev, SCOOP_GPCR, read_scoop_reg(SCOOP_GPCR) | COLLIE_SCP_VPEN);
|
||||||
if (vpp) {
|
if (vpp)
|
||||||
write_scoop_reg(SCOOP_GPWR, read_scoop_reg(SCOOP_GPWR) | COLLIE_SCP_VPEN);
|
write_scoop_reg(&colliescoop_device.dev, SCOOP_GPWR, read_scoop_reg(SCOOP_GPWR) | COLLIE_SCP_VPEN);
|
||||||
} else {
|
else
|
||||||
write_scoop_reg(SCOOP_GPWR, read_scoop_reg(SCOOP_GPWR) & ~COLLIE_SCP_VPEN);
|
write_scoop_reg(&colliescoop_device.dev, SCOOP_GPWR, read_scoop_reg(SCOOP_GPWR) & ~COLLIE_SCP_VPEN);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct flash_platform_data collie_flash_data = {
|
static struct flash_platform_data collie_flash_data = {
|
||||||
|
|
|
@ -39,3 +39,6 @@ extern void sa11x0_set_ssp_data(struct sa11x0_ssp_plat_ops *ops);
|
||||||
|
|
||||||
struct irda_platform_data;
|
struct irda_platform_data;
|
||||||
void sa11x0_set_irda_data(struct irda_platform_data *irda);
|
void sa11x0_set_irda_data(struct irda_platform_data *irda);
|
||||||
|
|
||||||
|
struct mcp_plat_data;
|
||||||
|
void sa11x0_set_mcp_data(struct mcp_plat_data *data);
|
||||||
|
|
|
@ -233,7 +233,17 @@ do_page_fault(unsigned long addr, unsigned int fsr, struct pt_regs *regs)
|
||||||
if (in_interrupt() || !mm)
|
if (in_interrupt() || !mm)
|
||||||
goto no_context;
|
goto no_context;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* As per x86, we may deadlock here. However, since the kernel only
|
||||||
|
* validly references user space from well defined areas of the code,
|
||||||
|
* we can bug out early if this is from code which shouldn't.
|
||||||
|
*/
|
||||||
|
if (!down_read_trylock(&mm->mmap_sem)) {
|
||||||
|
if (!user_mode(regs) && !search_exception_tables(regs->ARM_pc))
|
||||||
|
goto no_context;
|
||||||
down_read(&mm->mmap_sem);
|
down_read(&mm->mmap_sem);
|
||||||
|
}
|
||||||
|
|
||||||
fault = __do_page_fault(mm, addr, fsr, tsk);
|
fault = __do_page_fault(mm, addr, fsr, tsk);
|
||||||
up_read(&mm->mmap_sem);
|
up_read(&mm->mmap_sem);
|
||||||
|
|
||||||
|
|
|
@ -509,7 +509,7 @@ cpu_arm1020_name:
|
||||||
|
|
||||||
.align
|
.align
|
||||||
|
|
||||||
.section ".proc.info", #alloc, #execinstr
|
.section ".proc.info.init", #alloc, #execinstr
|
||||||
|
|
||||||
.type __arm1020_proc_info,#object
|
.type __arm1020_proc_info,#object
|
||||||
__arm1020_proc_info:
|
__arm1020_proc_info:
|
||||||
|
|
|
@ -491,7 +491,7 @@ cpu_arm1020e_name:
|
||||||
|
|
||||||
.align
|
.align
|
||||||
|
|
||||||
.section ".proc.info", #alloc, #execinstr
|
.section ".proc.info.init", #alloc, #execinstr
|
||||||
|
|
||||||
.type __arm1020e_proc_info,#object
|
.type __arm1020e_proc_info,#object
|
||||||
__arm1020e_proc_info:
|
__arm1020e_proc_info:
|
||||||
|
|
|
@ -473,7 +473,7 @@ cpu_arm1022_name:
|
||||||
|
|
||||||
.align
|
.align
|
||||||
|
|
||||||
.section ".proc.info", #alloc, #execinstr
|
.section ".proc.info.init", #alloc, #execinstr
|
||||||
|
|
||||||
.type __arm1022_proc_info,#object
|
.type __arm1022_proc_info,#object
|
||||||
__arm1022_proc_info:
|
__arm1022_proc_info:
|
||||||
|
|
|
@ -469,7 +469,7 @@ cpu_arm1026_name:
|
||||||
|
|
||||||
.align
|
.align
|
||||||
|
|
||||||
.section ".proc.info", #alloc, #execinstr
|
.section ".proc.info.init", #alloc, #execinstr
|
||||||
|
|
||||||
.type __arm1026_proc_info,#object
|
.type __arm1026_proc_info,#object
|
||||||
__arm1026_proc_info:
|
__arm1026_proc_info:
|
||||||
|
|
|
@ -332,7 +332,7 @@ cpu_arm710_name:
|
||||||
|
|
||||||
.align
|
.align
|
||||||
|
|
||||||
.section ".proc.info", #alloc, #execinstr
|
.section ".proc.info.init", #alloc, #execinstr
|
||||||
|
|
||||||
.type __arm6_proc_info, #object
|
.type __arm6_proc_info, #object
|
||||||
__arm6_proc_info:
|
__arm6_proc_info:
|
||||||
|
|
|
@ -222,7 +222,7 @@ cpu_arm720_name:
|
||||||
* See linux/include/asm-arm/procinfo.h for a definition of this structure.
|
* See linux/include/asm-arm/procinfo.h for a definition of this structure.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
.section ".proc.info", #alloc, #execinstr
|
.section ".proc.info.init", #alloc, #execinstr
|
||||||
|
|
||||||
.type __arm710_proc_info, #object
|
.type __arm710_proc_info, #object
|
||||||
__arm710_proc_info:
|
__arm710_proc_info:
|
||||||
|
|
|
@ -452,7 +452,7 @@ cpu_arm920_name:
|
||||||
|
|
||||||
.align
|
.align
|
||||||
|
|
||||||
.section ".proc.info", #alloc, #execinstr
|
.section ".proc.info.init", #alloc, #execinstr
|
||||||
|
|
||||||
.type __arm920_proc_info,#object
|
.type __arm920_proc_info,#object
|
||||||
__arm920_proc_info:
|
__arm920_proc_info:
|
||||||
|
|
|
@ -456,7 +456,7 @@ cpu_arm922_name:
|
||||||
|
|
||||||
.align
|
.align
|
||||||
|
|
||||||
.section ".proc.info", #alloc, #execinstr
|
.section ".proc.info.init", #alloc, #execinstr
|
||||||
|
|
||||||
.type __arm922_proc_info,#object
|
.type __arm922_proc_info,#object
|
||||||
__arm922_proc_info:
|
__arm922_proc_info:
|
||||||
|
|
|
@ -521,7 +521,7 @@ cpu_arm925_name:
|
||||||
|
|
||||||
.align
|
.align
|
||||||
|
|
||||||
.section ".proc.info", #alloc, #execinstr
|
.section ".proc.info.init", #alloc, #execinstr
|
||||||
|
|
||||||
.type __arm925_proc_info,#object
|
.type __arm925_proc_info,#object
|
||||||
__arm925_proc_info:
|
__arm925_proc_info:
|
||||||
|
|
|
@ -471,7 +471,7 @@ cpu_arm926_name:
|
||||||
|
|
||||||
.align
|
.align
|
||||||
|
|
||||||
.section ".proc.info", #alloc, #execinstr
|
.section ".proc.info.init", #alloc, #execinstr
|
||||||
|
|
||||||
.type __arm926_proc_info,#object
|
.type __arm926_proc_info,#object
|
||||||
__arm926_proc_info:
|
__arm926_proc_info:
|
||||||
|
|
|
@ -249,7 +249,7 @@ cpu_sa110_name:
|
||||||
|
|
||||||
.align
|
.align
|
||||||
|
|
||||||
.section ".proc.info", #alloc, #execinstr
|
.section ".proc.info.init", #alloc, #execinstr
|
||||||
|
|
||||||
.type __sa110_proc_info,#object
|
.type __sa110_proc_info,#object
|
||||||
__sa110_proc_info:
|
__sa110_proc_info:
|
||||||
|
|
|
@ -280,7 +280,7 @@ cpu_sa1110_name:
|
||||||
|
|
||||||
.align
|
.align
|
||||||
|
|
||||||
.section ".proc.info", #alloc, #execinstr
|
.section ".proc.info.init", #alloc, #execinstr
|
||||||
|
|
||||||
.type __sa1100_proc_info,#object
|
.type __sa1100_proc_info,#object
|
||||||
__sa1100_proc_info:
|
__sa1100_proc_info:
|
||||||
|
|
|
@ -240,7 +240,7 @@ cpu_elf_name:
|
||||||
.size cpu_elf_name, . - cpu_elf_name
|
.size cpu_elf_name, . - cpu_elf_name
|
||||||
.align
|
.align
|
||||||
|
|
||||||
.section ".proc.info", #alloc, #execinstr
|
.section ".proc.info.init", #alloc, #execinstr
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Match any ARMv6 processor core.
|
* Match any ARMv6 processor core.
|
||||||
|
|
|
@ -578,7 +578,7 @@ cpu_pxa270_name:
|
||||||
|
|
||||||
.align
|
.align
|
||||||
|
|
||||||
.section ".proc.info", #alloc, #execinstr
|
.section ".proc.info.init", #alloc, #execinstr
|
||||||
|
|
||||||
.type __80200_proc_info,#object
|
.type __80200_proc_info,#object
|
||||||
__80200_proc_info:
|
__80200_proc_info:
|
||||||
|
|
|
@ -1,74 +0,0 @@
|
||||||
/*
|
|
||||||
* Bright Star Engineering Inc.
|
|
||||||
*
|
|
||||||
* code for readng parameters from the
|
|
||||||
* parameter blocks of the boot block
|
|
||||||
* flash memory
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
static int strcmp(const char *s1, const char *s2)
|
|
||||||
{
|
|
||||||
while (*s1 != '\0' && *s1 == *s2)
|
|
||||||
{
|
|
||||||
s1++;
|
|
||||||
s2++;
|
|
||||||
}
|
|
||||||
|
|
||||||
return (*(unsigned char *) s1) - (*(unsigned char *) s2);
|
|
||||||
}
|
|
||||||
|
|
||||||
struct pblk_t {
|
|
||||||
char type;
|
|
||||||
unsigned short size;
|
|
||||||
};
|
|
||||||
|
|
||||||
static char *bse_getflashparam(char *name) {
|
|
||||||
unsigned int esize;
|
|
||||||
char *q,*r;
|
|
||||||
unsigned char *p,*e;
|
|
||||||
struct pblk_t *thepb = (struct pblk_t *) 0x00004000;
|
|
||||||
struct pblk_t *altpb = (struct pblk_t *) 0x00006000;
|
|
||||||
if (thepb->type&1) {
|
|
||||||
if (altpb->type&1) {
|
|
||||||
/* no valid param block */
|
|
||||||
return (char*)0;
|
|
||||||
} else {
|
|
||||||
/* altpb is valid */
|
|
||||||
struct pblk_t *tmp;
|
|
||||||
tmp = thepb;
|
|
||||||
thepb = altpb;
|
|
||||||
altpb = tmp;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
p = (char*)thepb + sizeof(struct pblk_t);
|
|
||||||
e = p + thepb->size;
|
|
||||||
while (p < e) {
|
|
||||||
q = p;
|
|
||||||
esize = *p;
|
|
||||||
if (esize == 0xFF) break;
|
|
||||||
if (esize == 0) break;
|
|
||||||
if (esize > 127) {
|
|
||||||
esize = (esize&0x7F)<<8 | p[1];
|
|
||||||
q++;
|
|
||||||
}
|
|
||||||
q++;
|
|
||||||
r=q;
|
|
||||||
if (*r && ((name == 0) || (!strcmp(name,r)))) {
|
|
||||||
while (*q++) ;
|
|
||||||
return q;
|
|
||||||
}
|
|
||||||
p+=esize;
|
|
||||||
}
|
|
||||||
return (char*)0;
|
|
||||||
}
|
|
||||||
|
|
||||||
void bse_setup(void) {
|
|
||||||
/* extract the linux cmdline from flash */
|
|
||||||
char *name=bse_getflashparam("linuxboot");
|
|
||||||
char *x = (char *)0xc0000100;
|
|
||||||
if (name) {
|
|
||||||
while (*name) *x++=*name++;
|
|
||||||
}
|
|
||||||
*x=0;
|
|
||||||
}
|
|
|
@ -908,11 +908,6 @@ config IRQBALANCE
|
||||||
The default yes will allow the kernel to do irq load balancing.
|
The default yes will allow the kernel to do irq load balancing.
|
||||||
Saying no will keep the kernel from doing irq load balancing.
|
Saying no will keep the kernel from doing irq load balancing.
|
||||||
|
|
||||||
config HAVE_DEC_LOCK
|
|
||||||
bool
|
|
||||||
depends on (SMP || PREEMPT) && X86_CMPXCHG
|
|
||||||
default y
|
|
||||||
|
|
||||||
# turning this on wastes a bunch of space.
|
# turning this on wastes a bunch of space.
|
||||||
# Summit needs it only when NUMA is on
|
# Summit needs it only when NUMA is on
|
||||||
config BOOT_IOREMAP
|
config BOOT_IOREMAP
|
||||||
|
|
|
@ -7,7 +7,6 @@
|
||||||
#include <linux/pci.h>
|
#include <linux/pci.h>
|
||||||
#include <asm/pci-direct.h>
|
#include <asm/pci-direct.h>
|
||||||
#include <asm/acpi.h>
|
#include <asm/acpi.h>
|
||||||
#include <asm/apic.h>
|
|
||||||
|
|
||||||
static int __init check_bridge(int vendor, int device)
|
static int __init check_bridge(int vendor, int device)
|
||||||
{
|
{
|
||||||
|
@ -16,15 +15,6 @@ static int __init check_bridge(int vendor, int device)
|
||||||
if (vendor == PCI_VENDOR_ID_NVIDIA) {
|
if (vendor == PCI_VENDOR_ID_NVIDIA) {
|
||||||
acpi_skip_timer_override = 1;
|
acpi_skip_timer_override = 1;
|
||||||
}
|
}
|
||||||
#ifdef CONFIG_X86_LOCAL_APIC
|
|
||||||
/*
|
|
||||||
* ATI IXP chipsets get double timer interrupts.
|
|
||||||
* For now just do this for all ATI chipsets.
|
|
||||||
* FIXME: this needs to be checked for the non ACPI case too.
|
|
||||||
*/
|
|
||||||
if (vendor == PCI_VENDOR_ID_ATI)
|
|
||||||
disable_timer_pin_1 = 1;
|
|
||||||
#endif
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -11,6 +11,7 @@
|
||||||
#include <linux/mc146818rtc.h>
|
#include <linux/mc146818rtc.h>
|
||||||
#include <linux/efi.h>
|
#include <linux/efi.h>
|
||||||
#include <linux/dmi.h>
|
#include <linux/dmi.h>
|
||||||
|
#include <linux/ctype.h>
|
||||||
#include <asm/uaccess.h>
|
#include <asm/uaccess.h>
|
||||||
#include <asm/apic.h>
|
#include <asm/apic.h>
|
||||||
#include <asm/desc.h>
|
#include <asm/desc.h>
|
||||||
|
@ -28,8 +29,6 @@ static int reboot_thru_bios;
|
||||||
|
|
||||||
#ifdef CONFIG_SMP
|
#ifdef CONFIG_SMP
|
||||||
static int reboot_cpu = -1;
|
static int reboot_cpu = -1;
|
||||||
/* shamelessly grabbed from lib/vsprintf.c for readability */
|
|
||||||
#define is_digit(c) ((c) >= '0' && (c) <= '9')
|
|
||||||
#endif
|
#endif
|
||||||
static int __init reboot_setup(char *str)
|
static int __init reboot_setup(char *str)
|
||||||
{
|
{
|
||||||
|
@ -49,9 +48,9 @@ static int __init reboot_setup(char *str)
|
||||||
break;
|
break;
|
||||||
#ifdef CONFIG_SMP
|
#ifdef CONFIG_SMP
|
||||||
case 's': /* "smp" reboot by executing reset on BSP or other CPU*/
|
case 's': /* "smp" reboot by executing reset on BSP or other CPU*/
|
||||||
if (is_digit(*(str+1))) {
|
if (isdigit(*(str+1))) {
|
||||||
reboot_cpu = (int) (*(str+1) - '0');
|
reboot_cpu = (int) (*(str+1) - '0');
|
||||||
if (is_digit(*(str+2)))
|
if (isdigit(*(str+2)))
|
||||||
reboot_cpu = reboot_cpu*10 + (int)(*(str+2) - '0');
|
reboot_cpu = reboot_cpu*10 + (int)(*(str+2) - '0');
|
||||||
}
|
}
|
||||||
/* we will leave sorting out the final value
|
/* we will leave sorting out the final value
|
||||||
|
|
|
@ -848,9 +848,7 @@ static void __init parse_cmdline_early (char ** cmdline_p)
|
||||||
#ifdef CONFIG_X86_IO_APIC
|
#ifdef CONFIG_X86_IO_APIC
|
||||||
else if (!memcmp(from, "acpi_skip_timer_override", 24))
|
else if (!memcmp(from, "acpi_skip_timer_override", 24))
|
||||||
acpi_skip_timer_override = 1;
|
acpi_skip_timer_override = 1;
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef CONFIG_X86_LOCAL_APIC
|
|
||||||
if (!memcmp(from, "disable_timer_pin_1", 19))
|
if (!memcmp(from, "disable_timer_pin_1", 19))
|
||||||
disable_timer_pin_1 = 1;
|
disable_timer_pin_1 = 1;
|
||||||
if (!memcmp(from, "enable_timer_pin_1", 18))
|
if (!memcmp(from, "enable_timer_pin_1", 18))
|
||||||
|
@ -859,7 +857,7 @@ static void __init parse_cmdline_early (char ** cmdline_p)
|
||||||
/* disable IO-APIC */
|
/* disable IO-APIC */
|
||||||
else if (!memcmp(from, "noapic", 6))
|
else if (!memcmp(from, "noapic", 6))
|
||||||
disable_ioapic_setup();
|
disable_ioapic_setup();
|
||||||
#endif /* CONFIG_X86_LOCAL_APIC */
|
#endif /* CONFIG_X86_IO_APIC */
|
||||||
#endif /* CONFIG_ACPI */
|
#endif /* CONFIG_ACPI */
|
||||||
|
|
||||||
#ifdef CONFIG_X86_LOCAL_APIC
|
#ifdef CONFIG_X86_LOCAL_APIC
|
||||||
|
|
|
@ -202,7 +202,7 @@ static void __devinit smp_store_cpu_info(int id)
|
||||||
goto valid_k7;
|
goto valid_k7;
|
||||||
|
|
||||||
/* If we get here, it's not a certified SMP capable AMD system. */
|
/* If we get here, it's not a certified SMP capable AMD system. */
|
||||||
tainted |= TAINT_UNSAFE_SMP;
|
add_taint(TAINT_UNSAFE_SMP);
|
||||||
}
|
}
|
||||||
|
|
||||||
valid_k7:
|
valid_k7:
|
||||||
|
|
|
@ -807,8 +807,9 @@ void math_error(void __user *eip)
|
||||||
cwd = get_fpu_cwd(task);
|
cwd = get_fpu_cwd(task);
|
||||||
swd = get_fpu_swd(task);
|
swd = get_fpu_swd(task);
|
||||||
switch (swd & ~cwd & 0x3f) {
|
switch (swd & ~cwd & 0x3f) {
|
||||||
case 0x000:
|
case 0x000: /* No unmasked exception */
|
||||||
default:
|
return;
|
||||||
|
default: /* Multiple exceptions */
|
||||||
break;
|
break;
|
||||||
case 0x001: /* Invalid Op */
|
case 0x001: /* Invalid Op */
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -7,4 +7,3 @@ lib-y = checksum.o delay.o usercopy.o getuser.o putuser.o memcpy.o strstr.o \
|
||||||
bitops.o
|
bitops.o
|
||||||
|
|
||||||
lib-$(CONFIG_X86_USE_3DNOW) += mmx.o
|
lib-$(CONFIG_X86_USE_3DNOW) += mmx.o
|
||||||
lib-$(CONFIG_HAVE_DEC_LOCK) += dec_and_lock.o
|
|
||||||
|
|
|
@ -1,42 +0,0 @@
|
||||||
/*
|
|
||||||
* x86 version of "atomic_dec_and_lock()" using
|
|
||||||
* the atomic "cmpxchg" instruction.
|
|
||||||
*
|
|
||||||
* (For CPU's lacking cmpxchg, we use the slow
|
|
||||||
* generic version, and this one never even gets
|
|
||||||
* compiled).
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <linux/spinlock.h>
|
|
||||||
#include <linux/module.h>
|
|
||||||
#include <asm/atomic.h>
|
|
||||||
|
|
||||||
int _atomic_dec_and_lock(atomic_t *atomic, spinlock_t *lock)
|
|
||||||
{
|
|
||||||
int counter;
|
|
||||||
int newcount;
|
|
||||||
|
|
||||||
repeat:
|
|
||||||
counter = atomic_read(atomic);
|
|
||||||
newcount = counter-1;
|
|
||||||
|
|
||||||
if (!newcount)
|
|
||||||
goto slow_path;
|
|
||||||
|
|
||||||
asm volatile("lock; cmpxchgl %1,%2"
|
|
||||||
:"=a" (newcount)
|
|
||||||
:"r" (newcount), "m" (atomic->counter), "0" (counter));
|
|
||||||
|
|
||||||
/* If the above failed, "eax" will have changed */
|
|
||||||
if (newcount != counter)
|
|
||||||
goto repeat;
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
slow_path:
|
|
||||||
spin_lock(lock);
|
|
||||||
if (atomic_dec_and_test(atomic))
|
|
||||||
return 1;
|
|
||||||
spin_unlock(lock);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
EXPORT_SYMBOL(_atomic_dec_and_lock);
|
|
|
@ -298,11 +298,6 @@ config PREEMPT
|
||||||
|
|
||||||
source "mm/Kconfig"
|
source "mm/Kconfig"
|
||||||
|
|
||||||
config HAVE_DEC_LOCK
|
|
||||||
bool
|
|
||||||
depends on (SMP || PREEMPT)
|
|
||||||
default y
|
|
||||||
|
|
||||||
config IA32_SUPPORT
|
config IA32_SUPPORT
|
||||||
bool "Support for Linux/x86 binaries"
|
bool "Support for Linux/x86 binaries"
|
||||||
help
|
help
|
||||||
|
|
|
@ -82,17 +82,7 @@ unwcheck: vmlinux
|
||||||
archclean:
|
archclean:
|
||||||
$(Q)$(MAKE) $(clean)=$(boot)
|
$(Q)$(MAKE) $(clean)=$(boot)
|
||||||
|
|
||||||
archprepare: include/asm-ia64/.offsets.h.stamp
|
CLEAN_FILES += vmlinux.gz bootloader
|
||||||
|
|
||||||
include/asm-ia64/.offsets.h.stamp:
|
|
||||||
mkdir -p include/asm-ia64
|
|
||||||
[ -s include/asm-ia64/asm-offsets.h ] \
|
|
||||||
|| echo "#define IA64_TASK_SIZE 0" > include/asm-ia64/asm-offsets.h
|
|
||||||
touch $@
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
CLEAN_FILES += vmlinux.gz bootloader include/asm-ia64/.offsets.h.stamp
|
|
||||||
|
|
||||||
boot: lib/lib.a vmlinux
|
boot: lib/lib.a vmlinux
|
||||||
$(Q)$(MAKE) $(build)=$(boot) $@
|
$(Q)$(MAKE) $(build)=$(boot) $@
|
||||||
|
|
|
@ -216,12 +216,6 @@ ia32_setup_arg_pages (struct linux_binprm *bprm, int executable_stack)
|
||||||
if (!mpnt)
|
if (!mpnt)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
|
||||||
if (security_vm_enough_memory((IA32_STACK_TOP - (PAGE_MASK & (unsigned long) bprm->p))
|
|
||||||
>> PAGE_SHIFT)) {
|
|
||||||
kmem_cache_free(vm_area_cachep, mpnt);
|
|
||||||
return -ENOMEM;
|
|
||||||
}
|
|
||||||
|
|
||||||
memset(mpnt, 0, sizeof(*mpnt));
|
memset(mpnt, 0, sizeof(*mpnt));
|
||||||
|
|
||||||
down_write(¤t->mm->mmap_sem);
|
down_write(¤t->mm->mmap_sem);
|
||||||
|
|
|
@ -899,7 +899,7 @@ int acpi_register_ioapic(acpi_handle handle, u64 phys_addr, u32 gsi_base)
|
||||||
if ((err = iosapic_init(phys_addr, gsi_base)))
|
if ((err = iosapic_init(phys_addr, gsi_base)))
|
||||||
return err;
|
return err;
|
||||||
|
|
||||||
#if CONFIG_ACPI_NUMA
|
#ifdef CONFIG_ACPI_NUMA
|
||||||
acpi_map_iosapic(handle, 0, NULL, NULL);
|
acpi_map_iosapic(handle, 0, NULL, NULL);
|
||||||
#endif /* CONFIG_ACPI_NUMA */
|
#endif /* CONFIG_ACPI_NUMA */
|
||||||
|
|
||||||
|
|
|
@ -4,6 +4,7 @@
|
||||||
* to extract and format the required data.
|
* to extract and format the required data.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#define ASM_OFFSETS_C 1
|
||||||
#include <linux/config.h>
|
#include <linux/config.h>
|
||||||
|
|
||||||
#include <linux/sched.h>
|
#include <linux/sched.h>
|
||||||
|
|
|
@ -491,7 +491,7 @@ GLOBAL_ENTRY(prefetch_stack)
|
||||||
;;
|
;;
|
||||||
lfetch.fault [r16], 128
|
lfetch.fault [r16], 128
|
||||||
br.ret.sptk.many rp
|
br.ret.sptk.many rp
|
||||||
END(prefetch_switch_stack)
|
END(prefetch_stack)
|
||||||
|
|
||||||
GLOBAL_ENTRY(execve)
|
GLOBAL_ENTRY(execve)
|
||||||
mov r15=__NR_execve // put syscall number in place
|
mov r15=__NR_execve // put syscall number in place
|
||||||
|
|
|
@ -84,23 +84,23 @@ mca_page_isolate(unsigned long paddr)
|
||||||
struct page *p;
|
struct page *p;
|
||||||
|
|
||||||
/* whether physical address is valid or not */
|
/* whether physical address is valid or not */
|
||||||
if ( !ia64_phys_addr_valid(paddr) )
|
if (!ia64_phys_addr_valid(paddr))
|
||||||
return ISOLATE_NG;
|
return ISOLATE_NG;
|
||||||
|
|
||||||
/* convert physical address to physical page number */
|
/* convert physical address to physical page number */
|
||||||
p = pfn_to_page(paddr>>PAGE_SHIFT);
|
p = pfn_to_page(paddr>>PAGE_SHIFT);
|
||||||
|
|
||||||
/* check whether a page number have been already registered or not */
|
/* check whether a page number have been already registered or not */
|
||||||
for( i = 0; i < num_page_isolate; i++ )
|
for (i = 0; i < num_page_isolate; i++)
|
||||||
if( page_isolate[i] == p )
|
if (page_isolate[i] == p)
|
||||||
return ISOLATE_OK; /* already listed */
|
return ISOLATE_OK; /* already listed */
|
||||||
|
|
||||||
/* limitation check */
|
/* limitation check */
|
||||||
if( num_page_isolate == MAX_PAGE_ISOLATE )
|
if (num_page_isolate == MAX_PAGE_ISOLATE)
|
||||||
return ISOLATE_NG;
|
return ISOLATE_NG;
|
||||||
|
|
||||||
/* kick pages having attribute 'SLAB' or 'Reserved' */
|
/* kick pages having attribute 'SLAB' or 'Reserved' */
|
||||||
if( PageSlab(p) || PageReserved(p) )
|
if (PageSlab(p) || PageReserved(p))
|
||||||
return ISOLATE_NG;
|
return ISOLATE_NG;
|
||||||
|
|
||||||
/* add attribute 'Reserved' and register the page */
|
/* add attribute 'Reserved' and register the page */
|
||||||
|
@ -172,7 +172,7 @@ mca_make_peidx(sal_log_processor_info_t *slpi, peidx_table_t *peidx)
|
||||||
* 1 if record has platform error / 0 if not
|
* 1 if record has platform error / 0 if not
|
||||||
*/
|
*/
|
||||||
#define LOG_INDEX_ADD_SECT_PTR(sect, ptr) \
|
#define LOG_INDEX_ADD_SECT_PTR(sect, ptr) \
|
||||||
{ slidx_list_t *hl = &slidx_pool.buffer[slidx_pool.cur_idx]; \
|
{slidx_list_t *hl = &slidx_pool.buffer[slidx_pool.cur_idx]; \
|
||||||
hl->hdr = ptr; \
|
hl->hdr = ptr; \
|
||||||
list_add(&hl->list, &(sect)); \
|
list_add(&hl->list, &(sect)); \
|
||||||
slidx_pool.cur_idx = (slidx_pool.cur_idx + 1)%slidx_pool.max_idx; }
|
slidx_pool.cur_idx = (slidx_pool.cur_idx + 1)%slidx_pool.max_idx; }
|
||||||
|
@ -214,28 +214,36 @@ mca_make_slidx(void *buffer, slidx_table_t *slidx)
|
||||||
sp = (sal_log_section_hdr_t *)((char*)buffer + ercd_pos);
|
sp = (sal_log_section_hdr_t *)((char*)buffer + ercd_pos);
|
||||||
if (!efi_guidcmp(sp->guid, SAL_PROC_DEV_ERR_SECT_GUID)) {
|
if (!efi_guidcmp(sp->guid, SAL_PROC_DEV_ERR_SECT_GUID)) {
|
||||||
LOG_INDEX_ADD_SECT_PTR(slidx->proc_err, sp);
|
LOG_INDEX_ADD_SECT_PTR(slidx->proc_err, sp);
|
||||||
} else if (!efi_guidcmp(sp->guid, SAL_PLAT_MEM_DEV_ERR_SECT_GUID)) {
|
} else if (!efi_guidcmp(sp->guid,
|
||||||
|
SAL_PLAT_MEM_DEV_ERR_SECT_GUID)) {
|
||||||
platform_err = 1;
|
platform_err = 1;
|
||||||
LOG_INDEX_ADD_SECT_PTR(slidx->mem_dev_err, sp);
|
LOG_INDEX_ADD_SECT_PTR(slidx->mem_dev_err, sp);
|
||||||
} else if (!efi_guidcmp(sp->guid, SAL_PLAT_SEL_DEV_ERR_SECT_GUID)) {
|
} else if (!efi_guidcmp(sp->guid,
|
||||||
|
SAL_PLAT_SEL_DEV_ERR_SECT_GUID)) {
|
||||||
platform_err = 1;
|
platform_err = 1;
|
||||||
LOG_INDEX_ADD_SECT_PTR(slidx->sel_dev_err, sp);
|
LOG_INDEX_ADD_SECT_PTR(slidx->sel_dev_err, sp);
|
||||||
} else if (!efi_guidcmp(sp->guid, SAL_PLAT_PCI_BUS_ERR_SECT_GUID)) {
|
} else if (!efi_guidcmp(sp->guid,
|
||||||
|
SAL_PLAT_PCI_BUS_ERR_SECT_GUID)) {
|
||||||
platform_err = 1;
|
platform_err = 1;
|
||||||
LOG_INDEX_ADD_SECT_PTR(slidx->pci_bus_err, sp);
|
LOG_INDEX_ADD_SECT_PTR(slidx->pci_bus_err, sp);
|
||||||
} else if (!efi_guidcmp(sp->guid, SAL_PLAT_SMBIOS_DEV_ERR_SECT_GUID)) {
|
} else if (!efi_guidcmp(sp->guid,
|
||||||
|
SAL_PLAT_SMBIOS_DEV_ERR_SECT_GUID)) {
|
||||||
platform_err = 1;
|
platform_err = 1;
|
||||||
LOG_INDEX_ADD_SECT_PTR(slidx->smbios_dev_err, sp);
|
LOG_INDEX_ADD_SECT_PTR(slidx->smbios_dev_err, sp);
|
||||||
} else if (!efi_guidcmp(sp->guid, SAL_PLAT_PCI_COMP_ERR_SECT_GUID)) {
|
} else if (!efi_guidcmp(sp->guid,
|
||||||
|
SAL_PLAT_PCI_COMP_ERR_SECT_GUID)) {
|
||||||
platform_err = 1;
|
platform_err = 1;
|
||||||
LOG_INDEX_ADD_SECT_PTR(slidx->pci_comp_err, sp);
|
LOG_INDEX_ADD_SECT_PTR(slidx->pci_comp_err, sp);
|
||||||
} else if (!efi_guidcmp(sp->guid, SAL_PLAT_SPECIFIC_ERR_SECT_GUID)) {
|
} else if (!efi_guidcmp(sp->guid,
|
||||||
|
SAL_PLAT_SPECIFIC_ERR_SECT_GUID)) {
|
||||||
platform_err = 1;
|
platform_err = 1;
|
||||||
LOG_INDEX_ADD_SECT_PTR(slidx->plat_specific_err, sp);
|
LOG_INDEX_ADD_SECT_PTR(slidx->plat_specific_err, sp);
|
||||||
} else if (!efi_guidcmp(sp->guid, SAL_PLAT_HOST_CTLR_ERR_SECT_GUID)) {
|
} else if (!efi_guidcmp(sp->guid,
|
||||||
|
SAL_PLAT_HOST_CTLR_ERR_SECT_GUID)) {
|
||||||
platform_err = 1;
|
platform_err = 1;
|
||||||
LOG_INDEX_ADD_SECT_PTR(slidx->host_ctlr_err, sp);
|
LOG_INDEX_ADD_SECT_PTR(slidx->host_ctlr_err, sp);
|
||||||
} else if (!efi_guidcmp(sp->guid, SAL_PLAT_BUS_ERR_SECT_GUID)) {
|
} else if (!efi_guidcmp(sp->guid,
|
||||||
|
SAL_PLAT_BUS_ERR_SECT_GUID)) {
|
||||||
platform_err = 1;
|
platform_err = 1;
|
||||||
LOG_INDEX_ADD_SECT_PTR(slidx->plat_bus_err, sp);
|
LOG_INDEX_ADD_SECT_PTR(slidx->plat_bus_err, sp);
|
||||||
} else {
|
} else {
|
||||||
|
@ -261,7 +269,8 @@ init_record_index_pools(void)
|
||||||
int sect_min_size; /* Minimum size of SAL error sections */
|
int sect_min_size; /* Minimum size of SAL error sections */
|
||||||
/* minimum size table of each section */
|
/* minimum size table of each section */
|
||||||
static int sal_log_sect_min_sizes[] = {
|
static int sal_log_sect_min_sizes[] = {
|
||||||
sizeof(sal_log_processor_info_t) + sizeof(sal_processor_static_info_t),
|
sizeof(sal_log_processor_info_t)
|
||||||
|
+ sizeof(sal_processor_static_info_t),
|
||||||
sizeof(sal_log_mem_dev_err_info_t),
|
sizeof(sal_log_mem_dev_err_info_t),
|
||||||
sizeof(sal_log_sel_dev_err_info_t),
|
sizeof(sal_log_sel_dev_err_info_t),
|
||||||
sizeof(sal_log_pci_bus_err_info_t),
|
sizeof(sal_log_pci_bus_err_info_t),
|
||||||
|
@ -294,7 +303,8 @@ init_record_index_pools(void)
|
||||||
|
|
||||||
/* - 3 - */
|
/* - 3 - */
|
||||||
slidx_pool.max_idx = (rec_max_size/sect_min_size) * 2 + 1;
|
slidx_pool.max_idx = (rec_max_size/sect_min_size) * 2 + 1;
|
||||||
slidx_pool.buffer = (slidx_list_t *) kmalloc(slidx_pool.max_idx * sizeof(slidx_list_t), GFP_KERNEL);
|
slidx_pool.buffer = (slidx_list_t *)
|
||||||
|
kmalloc(slidx_pool.max_idx * sizeof(slidx_list_t), GFP_KERNEL);
|
||||||
|
|
||||||
return slidx_pool.buffer ? 0 : -ENOMEM;
|
return slidx_pool.buffer ? 0 : -ENOMEM;
|
||||||
}
|
}
|
||||||
|
@ -308,6 +318,7 @@ init_record_index_pools(void)
|
||||||
* is_mca_global - Check whether this MCA is global or not
|
* is_mca_global - Check whether this MCA is global or not
|
||||||
* @peidx: pointer of index of processor error section
|
* @peidx: pointer of index of processor error section
|
||||||
* @pbci: pointer to pal_bus_check_info_t
|
* @pbci: pointer to pal_bus_check_info_t
|
||||||
|
* @sos: pointer to hand off struct between SAL and OS
|
||||||
*
|
*
|
||||||
* Return value:
|
* Return value:
|
||||||
* MCA_IS_LOCAL / MCA_IS_GLOBAL
|
* MCA_IS_LOCAL / MCA_IS_GLOBAL
|
||||||
|
@ -317,7 +328,8 @@ static mca_type_t
|
||||||
is_mca_global(peidx_table_t *peidx, pal_bus_check_info_t *pbci,
|
is_mca_global(peidx_table_t *peidx, pal_bus_check_info_t *pbci,
|
||||||
struct ia64_sal_os_state *sos)
|
struct ia64_sal_os_state *sos)
|
||||||
{
|
{
|
||||||
pal_processor_state_info_t *psp = (pal_processor_state_info_t*)peidx_psp(peidx);
|
pal_processor_state_info_t *psp =
|
||||||
|
(pal_processor_state_info_t*)peidx_psp(peidx);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* PAL can request a rendezvous, if the MCA has a global scope.
|
* PAL can request a rendezvous, if the MCA has a global scope.
|
||||||
|
@ -381,13 +393,15 @@ is_mca_global(peidx_table_t *peidx, pal_bus_check_info_t *pbci,
|
||||||
* @slidx: pointer of index of SAL error record
|
* @slidx: pointer of index of SAL error record
|
||||||
* @peidx: pointer of index of processor error section
|
* @peidx: pointer of index of processor error section
|
||||||
* @pbci: pointer of pal_bus_check_info
|
* @pbci: pointer of pal_bus_check_info
|
||||||
|
* @sos: pointer to hand off struct between SAL and OS
|
||||||
*
|
*
|
||||||
* Return value:
|
* Return value:
|
||||||
* 1 on Success / 0 on Failure
|
* 1 on Success / 0 on Failure
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static int
|
static int
|
||||||
recover_from_read_error(slidx_table_t *slidx, peidx_table_t *peidx, pal_bus_check_info_t *pbci,
|
recover_from_read_error(slidx_table_t *slidx,
|
||||||
|
peidx_table_t *peidx, pal_bus_check_info_t *pbci,
|
||||||
struct ia64_sal_os_state *sos)
|
struct ia64_sal_os_state *sos)
|
||||||
{
|
{
|
||||||
sal_log_mod_error_info_t *smei;
|
sal_log_mod_error_info_t *smei;
|
||||||
|
@ -453,24 +467,28 @@ recover_from_read_error(slidx_table_t *slidx, peidx_table_t *peidx, pal_bus_chec
|
||||||
* @slidx: pointer of index of SAL error record
|
* @slidx: pointer of index of SAL error record
|
||||||
* @peidx: pointer of index of processor error section
|
* @peidx: pointer of index of processor error section
|
||||||
* @pbci: pointer of pal_bus_check_info
|
* @pbci: pointer of pal_bus_check_info
|
||||||
|
* @sos: pointer to hand off struct between SAL and OS
|
||||||
*
|
*
|
||||||
* Return value:
|
* Return value:
|
||||||
* 1 on Success / 0 on Failure
|
* 1 on Success / 0 on Failure
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static int
|
static int
|
||||||
recover_from_platform_error(slidx_table_t *slidx, peidx_table_t *peidx, pal_bus_check_info_t *pbci,
|
recover_from_platform_error(slidx_table_t *slidx, peidx_table_t *peidx,
|
||||||
|
pal_bus_check_info_t *pbci,
|
||||||
struct ia64_sal_os_state *sos)
|
struct ia64_sal_os_state *sos)
|
||||||
{
|
{
|
||||||
int status = 0;
|
int status = 0;
|
||||||
pal_processor_state_info_t *psp = (pal_processor_state_info_t*)peidx_psp(peidx);
|
pal_processor_state_info_t *psp =
|
||||||
|
(pal_processor_state_info_t*)peidx_psp(peidx);
|
||||||
|
|
||||||
if (psp->bc && pbci->eb && pbci->bsi == 0) {
|
if (psp->bc && pbci->eb && pbci->bsi == 0) {
|
||||||
switch(pbci->type) {
|
switch(pbci->type) {
|
||||||
case 1: /* partial read */
|
case 1: /* partial read */
|
||||||
case 3: /* full line(cpu) read */
|
case 3: /* full line(cpu) read */
|
||||||
case 9: /* I/O space read */
|
case 9: /* I/O space read */
|
||||||
status = recover_from_read_error(slidx, peidx, pbci, sos);
|
status = recover_from_read_error(slidx, peidx, pbci,
|
||||||
|
sos);
|
||||||
break;
|
break;
|
||||||
case 0: /* unknown */
|
case 0: /* unknown */
|
||||||
case 2: /* partial write */
|
case 2: /* partial write */
|
||||||
|
@ -481,7 +499,8 @@ recover_from_platform_error(slidx_table_t *slidx, peidx_table_t *peidx, pal_bus_
|
||||||
case 8: /* write coalescing transactions */
|
case 8: /* write coalescing transactions */
|
||||||
case 10: /* I/O space write */
|
case 10: /* I/O space write */
|
||||||
case 11: /* inter-processor interrupt message(IPI) */
|
case 11: /* inter-processor interrupt message(IPI) */
|
||||||
case 12: /* interrupt acknowledge or external task priority cycle */
|
case 12: /* interrupt acknowledge or
|
||||||
|
external task priority cycle */
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -496,6 +515,7 @@ recover_from_platform_error(slidx_table_t *slidx, peidx_table_t *peidx, pal_bus_
|
||||||
* @slidx: pointer of index of SAL error record
|
* @slidx: pointer of index of SAL error record
|
||||||
* @peidx: pointer of index of processor error section
|
* @peidx: pointer of index of processor error section
|
||||||
* @pbci: pointer of pal_bus_check_info
|
* @pbci: pointer of pal_bus_check_info
|
||||||
|
* @sos: pointer to hand off struct between SAL and OS
|
||||||
*
|
*
|
||||||
* Return value:
|
* Return value:
|
||||||
* 1 on Success / 0 on Failure
|
* 1 on Success / 0 on Failure
|
||||||
|
@ -509,10 +529,12 @@ recover_from_platform_error(slidx_table_t *slidx, peidx_table_t *peidx, pal_bus_
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static int
|
static int
|
||||||
recover_from_processor_error(int platform, slidx_table_t *slidx, peidx_table_t *peidx, pal_bus_check_info_t *pbci,
|
recover_from_processor_error(int platform, slidx_table_t *slidx,
|
||||||
|
peidx_table_t *peidx, pal_bus_check_info_t *pbci,
|
||||||
struct ia64_sal_os_state *sos)
|
struct ia64_sal_os_state *sos)
|
||||||
{
|
{
|
||||||
pal_processor_state_info_t *psp = (pal_processor_state_info_t*)peidx_psp(peidx);
|
pal_processor_state_info_t *psp =
|
||||||
|
(pal_processor_state_info_t*)peidx_psp(peidx);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* We cannot recover errors with other than bus_check.
|
* We cannot recover errors with other than bus_check.
|
||||||
|
@ -557,14 +579,14 @@ recover_from_processor_error(int platform, slidx_table_t *slidx, peidx_table_t *
|
||||||
/**
|
/**
|
||||||
* mca_try_to_recover - Try to recover from MCA
|
* mca_try_to_recover - Try to recover from MCA
|
||||||
* @rec: pointer to a SAL error record
|
* @rec: pointer to a SAL error record
|
||||||
|
* @sos: pointer to hand off struct between SAL and OS
|
||||||
*
|
*
|
||||||
* Return value:
|
* Return value:
|
||||||
* 1 on Success / 0 on Failure
|
* 1 on Success / 0 on Failure
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static int
|
static int
|
||||||
mca_try_to_recover(void *rec,
|
mca_try_to_recover(void *rec, struct ia64_sal_os_state *sos)
|
||||||
struct ia64_sal_os_state *sos)
|
|
||||||
{
|
{
|
||||||
int platform_err;
|
int platform_err;
|
||||||
int n_proc_err;
|
int n_proc_err;
|
||||||
|
@ -588,7 +610,8 @@ mca_try_to_recover(void *rec,
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Make index of processor error section */
|
/* Make index of processor error section */
|
||||||
mca_make_peidx((sal_log_processor_info_t*)slidx_first_entry(&slidx.proc_err)->hdr, &peidx);
|
mca_make_peidx((sal_log_processor_info_t*)
|
||||||
|
slidx_first_entry(&slidx.proc_err)->hdr, &peidx);
|
||||||
|
|
||||||
/* Extract Processor BUS_CHECK[0] */
|
/* Extract Processor BUS_CHECK[0] */
|
||||||
*((u64*)&pbci) = peidx_check_info(&peidx, bus_check, 0);
|
*((u64*)&pbci) = peidx_check_info(&peidx, bus_check, 0);
|
||||||
|
@ -598,7 +621,8 @@ mca_try_to_recover(void *rec,
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
/* Try to recover a processor error */
|
/* Try to recover a processor error */
|
||||||
return recover_from_processor_error(platform_err, &slidx, &peidx, &pbci, sos);
|
return recover_from_processor_error(platform_err, &slidx, &peidx,
|
||||||
|
&pbci, sos);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -611,7 +635,7 @@ int __init mca_external_handler_init(void)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
|
||||||
/* register external mca handlers */
|
/* register external mca handlers */
|
||||||
if (ia64_reg_MCA_extension(mca_try_to_recover)){
|
if (ia64_reg_MCA_extension(mca_try_to_recover)) {
|
||||||
printk(KERN_ERR "ia64_reg_MCA_extension failed.\n");
|
printk(KERN_ERR "ia64_reg_MCA_extension failed.\n");
|
||||||
kfree(slidx_pool.buffer);
|
kfree(slidx_pool.buffer);
|
||||||
return -EFAULT;
|
return -EFAULT;
|
||||||
|
|
|
@ -14,10 +14,10 @@
|
||||||
|
|
||||||
GLOBAL_ENTRY(mca_handler_bhhook)
|
GLOBAL_ENTRY(mca_handler_bhhook)
|
||||||
invala // clear RSE ?
|
invala // clear RSE ?
|
||||||
;; //
|
;;
|
||||||
cover //
|
cover
|
||||||
;; //
|
;;
|
||||||
clrrrb //
|
clrrrb
|
||||||
;;
|
;;
|
||||||
alloc r16=ar.pfs,0,2,1,0 // make a new frame
|
alloc r16=ar.pfs,0,2,1,0 // make a new frame
|
||||||
;;
|
;;
|
||||||
|
|
|
@ -574,7 +574,7 @@ pfm_protect_ctx_ctxsw(pfm_context_t *x)
|
||||||
return 0UL;
|
return 0UL;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline unsigned long
|
static inline void
|
||||||
pfm_unprotect_ctx_ctxsw(pfm_context_t *x, unsigned long f)
|
pfm_unprotect_ctx_ctxsw(pfm_context_t *x, unsigned long f)
|
||||||
{
|
{
|
||||||
spin_unlock(&(x)->ctx_lock);
|
spin_unlock(&(x)->ctx_lock);
|
||||||
|
@ -2218,12 +2218,13 @@ static void
|
||||||
pfm_free_fd(int fd, struct file *file)
|
pfm_free_fd(int fd, struct file *file)
|
||||||
{
|
{
|
||||||
struct files_struct *files = current->files;
|
struct files_struct *files = current->files;
|
||||||
struct fdtable *fdt = files_fdtable(files);
|
struct fdtable *fdt;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* there ie no fd_uninstall(), so we do it here
|
* there ie no fd_uninstall(), so we do it here
|
||||||
*/
|
*/
|
||||||
spin_lock(&files->file_lock);
|
spin_lock(&files->file_lock);
|
||||||
|
fdt = files_fdtable(files);
|
||||||
rcu_assign_pointer(fdt->fd[fd], NULL);
|
rcu_assign_pointer(fdt->fd[fd], NULL);
|
||||||
spin_unlock(&files->file_lock);
|
spin_unlock(&files->file_lock);
|
||||||
|
|
||||||
|
|
|
@ -15,7 +15,6 @@ lib-$(CONFIG_ITANIUM) += copy_page.o copy_user.o memcpy.o
|
||||||
lib-$(CONFIG_MCKINLEY) += copy_page_mck.o memcpy_mck.o
|
lib-$(CONFIG_MCKINLEY) += copy_page_mck.o memcpy_mck.o
|
||||||
lib-$(CONFIG_PERFMON) += carta_random.o
|
lib-$(CONFIG_PERFMON) += carta_random.o
|
||||||
lib-$(CONFIG_MD_RAID5) += xor.o
|
lib-$(CONFIG_MD_RAID5) += xor.o
|
||||||
lib-$(CONFIG_HAVE_DEC_LOCK) += dec_and_lock.o
|
|
||||||
|
|
||||||
AFLAGS___divdi3.o =
|
AFLAGS___divdi3.o =
|
||||||
AFLAGS___udivdi3.o = -DUNSIGNED
|
AFLAGS___udivdi3.o = -DUNSIGNED
|
||||||
|
|
|
@ -1,42 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright (C) 2003 Jerome Marchand, Bull S.A.
|
|
||||||
* Cleaned up by David Mosberger-Tang <davidm@hpl.hp.com>
|
|
||||||
*
|
|
||||||
* This file is released under the GPLv2, or at your option any later version.
|
|
||||||
*
|
|
||||||
* ia64 version of "atomic_dec_and_lock()" using the atomic "cmpxchg" instruction. This
|
|
||||||
* code is an adaptation of the x86 version of "atomic_dec_and_lock()".
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <linux/compiler.h>
|
|
||||||
#include <linux/module.h>
|
|
||||||
#include <linux/spinlock.h>
|
|
||||||
#include <asm/atomic.h>
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Decrement REFCOUNT and if the count reaches zero, acquire the spinlock. Both of these
|
|
||||||
* operations have to be done atomically, so that the count doesn't drop to zero without
|
|
||||||
* acquiring the spinlock first.
|
|
||||||
*/
|
|
||||||
int
|
|
||||||
_atomic_dec_and_lock (atomic_t *refcount, spinlock_t *lock)
|
|
||||||
{
|
|
||||||
int old, new;
|
|
||||||
|
|
||||||
do {
|
|
||||||
old = atomic_read(refcount);
|
|
||||||
new = old - 1;
|
|
||||||
|
|
||||||
if (unlikely (old == 1)) {
|
|
||||||
/* oops, we may be decrementing to zero, do it the slow way... */
|
|
||||||
spin_lock(lock);
|
|
||||||
if (atomic_dec_and_test(refcount))
|
|
||||||
return 1;
|
|
||||||
spin_unlock(lock);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
} while (cmpxchg(&refcount->counter, old, new) != old);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
EXPORT_SYMBOL(_atomic_dec_and_lock);
|
|
|
@ -220,11 +220,6 @@ config PREEMPT
|
||||||
Say Y here if you are building a kernel for a desktop, embedded
|
Say Y here if you are building a kernel for a desktop, embedded
|
||||||
or real-time system. Say N if you are unsure.
|
or real-time system. Say N if you are unsure.
|
||||||
|
|
||||||
config HAVE_DEC_LOCK
|
|
||||||
bool
|
|
||||||
depends on (SMP || PREEMPT)
|
|
||||||
default n
|
|
||||||
|
|
||||||
config SMP
|
config SMP
|
||||||
bool "Symmetric multi-processing support"
|
bool "Symmetric multi-processing support"
|
||||||
---help---
|
---help---
|
||||||
|
|
|
@ -1009,10 +1009,6 @@ config GENERIC_CALIBRATE_DELAY
|
||||||
bool
|
bool
|
||||||
default y
|
default y
|
||||||
|
|
||||||
config HAVE_DEC_LOCK
|
|
||||||
bool
|
|
||||||
default y
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Select some configuration options automatically based on user selections.
|
# Select some configuration options automatically based on user selections.
|
||||||
#
|
#
|
||||||
|
|
|
@ -581,18 +581,13 @@ asmlinkage int irix_brk(unsigned long brk)
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Check if we have enough memory..
|
* Ok, looks good - let it rip.
|
||||||
*/
|
*/
|
||||||
if (security_vm_enough_memory((newbrk-oldbrk) >> PAGE_SHIFT)) {
|
if (do_brk(oldbrk, newbrk-oldbrk) != oldbrk) {
|
||||||
ret = -ENOMEM;
|
ret = -ENOMEM;
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
* Ok, looks good - let it rip.
|
|
||||||
*/
|
|
||||||
mm->brk = brk;
|
mm->brk = brk;
|
||||||
do_brk(oldbrk, newbrk-oldbrk);
|
|
||||||
ret = 0;
|
ret = 0;
|
||||||
|
|
||||||
out:
|
out:
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
# Makefile for MIPS-specific library files..
|
# Makefile for MIPS-specific library files..
|
||||||
#
|
#
|
||||||
|
|
||||||
lib-y += csum_partial_copy.o dec_and_lock.o memcpy.o promlib.o \
|
lib-y += csum_partial_copy.o memcpy.o promlib.o \
|
||||||
strlen_user.o strncpy_user.o strnlen_user.o
|
strlen_user.o strncpy_user.o strnlen_user.o
|
||||||
|
|
||||||
obj-y += iomap.o
|
obj-y += iomap.o
|
||||||
|
|
|
@ -1,47 +0,0 @@
|
||||||
/*
|
|
||||||
* MIPS version of atomic_dec_and_lock() using cmpxchg
|
|
||||||
*
|
|
||||||
* This program is free software; you can redistribute it and/or
|
|
||||||
* modify it under the terms of the GNU General Public License
|
|
||||||
* as published by the Free Software Foundation; either version
|
|
||||||
* 2 of the License, or (at your option) any later version.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <linux/module.h>
|
|
||||||
#include <linux/spinlock.h>
|
|
||||||
#include <asm/atomic.h>
|
|
||||||
#include <asm/system.h>
|
|
||||||
|
|
||||||
/*
|
|
||||||
* This is an implementation of the notion of "decrement a
|
|
||||||
* reference count, and return locked if it decremented to zero".
|
|
||||||
*
|
|
||||||
* This implementation can be used on any architecture that
|
|
||||||
* has a cmpxchg, and where atomic->value is an int holding
|
|
||||||
* the value of the atomic (i.e. the high bits aren't used
|
|
||||||
* for a lock or anything like that).
|
|
||||||
*/
|
|
||||||
int _atomic_dec_and_lock(atomic_t *atomic, spinlock_t *lock)
|
|
||||||
{
|
|
||||||
int counter;
|
|
||||||
int newcount;
|
|
||||||
|
|
||||||
for (;;) {
|
|
||||||
counter = atomic_read(atomic);
|
|
||||||
newcount = counter - 1;
|
|
||||||
if (!newcount)
|
|
||||||
break; /* do it the slow way */
|
|
||||||
|
|
||||||
newcount = cmpxchg(&atomic->counter, counter, newcount);
|
|
||||||
if (newcount == counter)
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
spin_lock(lock);
|
|
||||||
if (atomic_dec_and_test(atomic))
|
|
||||||
return 1;
|
|
||||||
spin_unlock(lock);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
EXPORT_SYMBOL(_atomic_dec_and_lock);
|
|
|
@ -26,10 +26,6 @@ config GENERIC_CALIBRATE_DELAY
|
||||||
bool
|
bool
|
||||||
default y
|
default y
|
||||||
|
|
||||||
config HAVE_DEC_LOCK
|
|
||||||
bool
|
|
||||||
default y
|
|
||||||
|
|
||||||
config PPC
|
config PPC
|
||||||
bool
|
bool
|
||||||
default y
|
default y
|
||||||
|
|
|
@ -21,7 +21,6 @@
|
||||||
#include <linux/interrupt.h>
|
#include <linux/interrupt.h>
|
||||||
#include <linux/init.h>
|
#include <linux/init.h>
|
||||||
|
|
||||||
#include <asm/segment.h>
|
|
||||||
#include <asm/io.h>
|
#include <asm/io.h>
|
||||||
#include <asm/reg.h>
|
#include <asm/reg.h>
|
||||||
#include <asm/nvram.h>
|
#include <asm/nvram.h>
|
||||||
|
|
|
@ -58,7 +58,6 @@
|
||||||
#include <linux/init.h>
|
#include <linux/init.h>
|
||||||
#include <linux/profile.h>
|
#include <linux/profile.h>
|
||||||
|
|
||||||
#include <asm/segment.h>
|
|
||||||
#include <asm/io.h>
|
#include <asm/io.h>
|
||||||
#include <asm/nvram.h>
|
#include <asm/nvram.h>
|
||||||
#include <asm/cache.h>
|
#include <asm/cache.h>
|
||||||
|
|
|
@ -96,6 +96,9 @@ SECTIONS
|
||||||
*(.init.text)
|
*(.init.text)
|
||||||
_einittext = .;
|
_einittext = .;
|
||||||
}
|
}
|
||||||
|
/* .exit.text is discarded at runtime, not link time,
|
||||||
|
to deal with references from __bug_table */
|
||||||
|
.exit.text : { *(.exit.text) }
|
||||||
.init.data : {
|
.init.data : {
|
||||||
*(.init.data);
|
*(.init.data);
|
||||||
__vtop_table_begin = .;
|
__vtop_table_begin = .;
|
||||||
|
@ -190,5 +193,6 @@ SECTIONS
|
||||||
/* Sections to be discarded. */
|
/* Sections to be discarded. */
|
||||||
/DISCARD/ : {
|
/DISCARD/ : {
|
||||||
*(.exitcall.exit)
|
*(.exitcall.exit)
|
||||||
|
*(.exit.data)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
# Makefile for ppc-specific library files..
|
# Makefile for ppc-specific library files..
|
||||||
#
|
#
|
||||||
|
|
||||||
obj-y := checksum.o string.o strcase.o dec_and_lock.o div64.o
|
obj-y := checksum.o string.o strcase.o div64.o
|
||||||
|
|
||||||
obj-$(CONFIG_8xx) += rheap.o
|
obj-$(CONFIG_8xx) += rheap.o
|
||||||
obj-$(CONFIG_CPM2) += rheap.o
|
obj-$(CONFIG_CPM2) += rheap.o
|
||||||
|
|
|
@ -1,38 +0,0 @@
|
||||||
#include <linux/module.h>
|
|
||||||
#include <linux/spinlock.h>
|
|
||||||
#include <asm/atomic.h>
|
|
||||||
#include <asm/system.h>
|
|
||||||
|
|
||||||
/*
|
|
||||||
* This is an implementation of the notion of "decrement a
|
|
||||||
* reference count, and return locked if it decremented to zero".
|
|
||||||
*
|
|
||||||
* This implementation can be used on any architecture that
|
|
||||||
* has a cmpxchg, and where atomic->value is an int holding
|
|
||||||
* the value of the atomic (i.e. the high bits aren't used
|
|
||||||
* for a lock or anything like that).
|
|
||||||
*/
|
|
||||||
int _atomic_dec_and_lock(atomic_t *atomic, spinlock_t *lock)
|
|
||||||
{
|
|
||||||
int counter;
|
|
||||||
int newcount;
|
|
||||||
|
|
||||||
for (;;) {
|
|
||||||
counter = atomic_read(atomic);
|
|
||||||
newcount = counter - 1;
|
|
||||||
if (!newcount)
|
|
||||||
break; /* do it the slow way */
|
|
||||||
|
|
||||||
newcount = cmpxchg(&atomic->counter, counter, newcount);
|
|
||||||
if (newcount == counter)
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
spin_lock(lock);
|
|
||||||
if (atomic_dec_and_test(atomic))
|
|
||||||
return 1;
|
|
||||||
spin_unlock(lock);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
EXPORT_SYMBOL(_atomic_dec_and_lock);
|
|
|
@ -22,7 +22,6 @@
|
||||||
#include <linux/init.h>
|
#include <linux/init.h>
|
||||||
#include <linux/bcd.h>
|
#include <linux/bcd.h>
|
||||||
|
|
||||||
#include <asm/segment.h>
|
|
||||||
#include <asm/io.h>
|
#include <asm/io.h>
|
||||||
#include <asm/nvram.h>
|
#include <asm/nvram.h>
|
||||||
#include <asm/prom.h>
|
#include <asm/prom.h>
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue