Merge from Linus' tree
This commit is contained in:
Коммит
b6ec995a21
|
@ -301,8 +301,84 @@ now, but you can do this to mark internal company procedures or just
|
|||
point out some special detail about the sign-off.
|
||||
|
||||
|
||||
12) The canonical patch format
|
||||
|
||||
12) More references for submitting patches
|
||||
The canonical patch subject line is:
|
||||
|
||||
Subject: [PATCH 001/123] subsystem: summary phrase
|
||||
|
||||
The canonical patch message body contains the following:
|
||||
|
||||
- A "from" line specifying the patch author.
|
||||
|
||||
- An empty line.
|
||||
|
||||
- The body of the explanation, which will be copied to the
|
||||
permanent changelog to describe this patch.
|
||||
|
||||
- The "Signed-off-by:" lines, described above, which will
|
||||
also go in the changelog.
|
||||
|
||||
- A marker line containing simply "---".
|
||||
|
||||
- Any additional comments not suitable for the changelog.
|
||||
|
||||
- The actual patch (diff output).
|
||||
|
||||
The Subject line format makes it very easy to sort the emails
|
||||
alphabetically by subject line - pretty much any email reader will
|
||||
support that - since because the sequence number is zero-padded,
|
||||
the numerical and alphabetic sort is the same.
|
||||
|
||||
The "subsystem" in the email's Subject should identify which
|
||||
area or subsystem of the kernel is being patched.
|
||||
|
||||
The "summary phrase" in the email's Subject should concisely
|
||||
describe the patch which that email contains. The "summary
|
||||
phrase" should not be a filename. Do not use the same "summary
|
||||
phrase" for every patch in a whole patch series.
|
||||
|
||||
Bear in mind that the "summary phrase" of your email becomes
|
||||
a globally-unique identifier for that patch. It propagates
|
||||
all the way into the git changelog. The "summary phrase" may
|
||||
later be used in developer discussions which refer to the patch.
|
||||
People will want to google for the "summary phrase" to read
|
||||
discussion regarding that patch.
|
||||
|
||||
A couple of example Subjects:
|
||||
|
||||
Subject: [patch 2/5] ext2: improve scalability of bitmap searching
|
||||
Subject: [PATCHv2 001/207] x86: fix eflags tracking
|
||||
|
||||
The "from" line must be the very first line in the message body,
|
||||
and has the form:
|
||||
|
||||
From: Original Author <author@example.com>
|
||||
|
||||
The "from" line specifies who will be credited as the author of the
|
||||
patch in the permanent changelog. If the "from" line is missing,
|
||||
then the "From:" line from the email header will be used to determine
|
||||
the patch author in the changelog.
|
||||
|
||||
The explanation body will be committed to the permanent source
|
||||
changelog, so should make sense to a competent reader who has long
|
||||
since forgotten the immediate details of the discussion that might
|
||||
have led to this patch.
|
||||
|
||||
The "---" marker line serves the essential purpose of marking for patch
|
||||
handling tools where the changelog message ends.
|
||||
|
||||
One good use for the additional comments after the "---" marker is for
|
||||
a diffstat, to show what files have changed, and the number of inserted
|
||||
and deleted lines per file. A diffstat is especially useful on bigger
|
||||
patches. Other comments relevant only to the moment or the maintainer,
|
||||
not suitable for the permanent changelog, should also go here.
|
||||
|
||||
See more details on the proper patch format in the following
|
||||
references.
|
||||
|
||||
|
||||
13) More references for submitting patches
|
||||
|
||||
Andrew Morton, "The perfect patch" (tpp).
|
||||
<http://www.zip.com.au/~akpm/linux/patches/stuff/tpp.txt>
|
||||
|
@ -310,6 +386,14 @@ Andrew Morton, "The perfect patch" (tpp).
|
|||
Jeff Garzik, "Linux kernel patch submission format."
|
||||
<http://linux.yyz.us/patch-format.html>
|
||||
|
||||
Greg KH, "How to piss off a kernel subsystem maintainer"
|
||||
<http://www.kroah.com/log/2005/03/31/>
|
||||
|
||||
Kernel Documentation/CodingStyle
|
||||
<http://sosdg.org/~coywolf/lxr/source/Documentation/CodingStyle>
|
||||
|
||||
Linus Torvald's mail on the canonical patch format:
|
||||
<http://lkml.org/lkml/2005/4/7/183>
|
||||
|
||||
|
||||
-----------------------------------
|
||||
|
|
|
@ -35,6 +35,7 @@ The driver load creates the following directories under the /sys file system.
|
|||
/sys/class/firmware/dell_rbu/data
|
||||
/sys/devices/platform/dell_rbu/image_type
|
||||
/sys/devices/platform/dell_rbu/data
|
||||
/sys/devices/platform/dell_rbu/packet_size
|
||||
|
||||
The driver supports two types of update mechanism; monolithic and packetized.
|
||||
These update mechanism depends upon the BIOS currently running on the system.
|
||||
|
@ -47,8 +48,26 @@ By default the driver uses monolithic memory for the update type. This can be
|
|||
changed to packets during the driver load time by specifying the load
|
||||
parameter image_type=packet. This can also be changed later as below
|
||||
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.
|
||||
|
||||
In packet update mode the packet size has to be given before any packets can
|
||||
be downloaded. It is done as below
|
||||
echo XXXX > /sys/devices/platform/dell_rbu/packet_size
|
||||
In the packet update mechanism, the user neesd to create a new file having
|
||||
packets of data arranged back to back. It can be done as follows
|
||||
The user creates packets header, gets the chunk of the BIOS image and
|
||||
placs it next to the packetheader; now, the packetheader + BIOS image chunk
|
||||
added to geather should match the specified packet_size. This makes one
|
||||
packet, the user needs to create more such packets out of the entire BIOS
|
||||
image file and then arrange all these packets back to back in to one single
|
||||
file.
|
||||
This file is then copied to /sys/class/firmware/dell_rbu/data.
|
||||
Once this file gets to the driver, the driver extracts packet_size data from
|
||||
the file and spreads it accross the physical memory in contiguous packet_sized
|
||||
space.
|
||||
This method makes sure that all the packets get to the driver in a single operation.
|
||||
|
||||
In monolithic update the user simply get the BIOS image (.hdr file) and copies
|
||||
to the data file as is without any change to the BIOS image itself.
|
||||
|
||||
Do the steps below to download the BIOS image.
|
||||
1) echo 1 > /sys/class/firmware/dell_rbu/loading
|
||||
|
@ -58,7 +77,10 @@ Do the steps below to download the BIOS image.
|
|||
The /sys/class/firmware/dell_rbu/ entries will remain till the following is
|
||||
done.
|
||||
echo -1 > /sys/class/firmware/dell_rbu/loading.
|
||||
Until this step is completed the drivr cannot be unloaded.
|
||||
Until this step is completed the driver cannot be unloaded.
|
||||
Also echoing either mono ,packet or init in to image_type will free up the
|
||||
memory allocated by the driver.
|
||||
|
||||
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
|
||||
|
@ -66,15 +88,11 @@ 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
|
||||
read back the image downloaded. This is useful in case of packet update
|
||||
mechanism where the above steps 1,2,3 will repeated for every packet.
|
||||
By reading the /sys/devices/platform/dell_rbu/data file all packet data
|
||||
downloaded can be verified in a single file.
|
||||
The packets are arranged in this file one after the other in a FIFO order.
|
||||
read back the image downloaded.
|
||||
|
||||
NOTE:
|
||||
This driver requires a patch for firmware_class.c which has the addition
|
||||
of request_firmware_nowait_nohotplug function to wortk
|
||||
This driver requires a patch for firmware_class.c which has the modified
|
||||
request_firmware_nowait function.
|
||||
Also after updating the BIOS image an user mdoe application neeeds to execute
|
||||
code which message the BIOS update request to the BIOS. So on the next reboot
|
||||
the BIOS knows about the new image downloaded and it updates it self.
|
||||
|
|
|
@ -0,0 +1,161 @@
|
|||
===================
|
||||
KEY REQUEST SERVICE
|
||||
===================
|
||||
|
||||
The key request service is part of the key retention service (refer to
|
||||
Documentation/keys.txt). This document explains more fully how that the
|
||||
requesting algorithm works.
|
||||
|
||||
The process starts by either the kernel requesting a service by calling
|
||||
request_key():
|
||||
|
||||
struct key *request_key(const struct key_type *type,
|
||||
const char *description,
|
||||
const char *callout_string);
|
||||
|
||||
Or by userspace invoking the request_key system call:
|
||||
|
||||
key_serial_t request_key(const char *type,
|
||||
const char *description,
|
||||
const char *callout_info,
|
||||
key_serial_t dest_keyring);
|
||||
|
||||
The main difference between the two access points is that the in-kernel
|
||||
interface does not need to link the key to a keyring to prevent it from being
|
||||
immediately destroyed. The kernel interface returns a pointer directly to the
|
||||
key, and it's up to the caller to destroy the key.
|
||||
|
||||
The userspace interface links the key to a keyring associated with the process
|
||||
to prevent the key from going away, and returns the serial number of the key to
|
||||
the caller.
|
||||
|
||||
|
||||
===========
|
||||
THE PROCESS
|
||||
===========
|
||||
|
||||
A request proceeds in the following manner:
|
||||
|
||||
(1) Process A calls request_key() [the userspace syscall calls the kernel
|
||||
interface].
|
||||
|
||||
(2) request_key() searches the process's subscribed keyrings to see if there's
|
||||
a suitable key there. If there is, it returns the key. If there isn't, and
|
||||
callout_info is not set, an error is returned. Otherwise the process
|
||||
proceeds to the next step.
|
||||
|
||||
(3) request_key() sees that A doesn't have the desired key yet, so it creates
|
||||
two things:
|
||||
|
||||
(a) An uninstantiated key U of requested type and description.
|
||||
|
||||
(b) An authorisation key V that refers to key U and notes that process A
|
||||
is the context in which key U should be instantiated and secured, and
|
||||
from which associated key requests may be satisfied.
|
||||
|
||||
(4) request_key() then forks and executes /sbin/request-key with a new session
|
||||
keyring that contains a link to auth key V.
|
||||
|
||||
(5) /sbin/request-key execs an appropriate program to perform the actual
|
||||
instantiation.
|
||||
|
||||
(6) The program may want to access another key from A's context (say a
|
||||
Kerberos TGT key). It just requests the appropriate key, and the keyring
|
||||
search notes that the session keyring has auth key V in its bottom level.
|
||||
|
||||
This will permit it to then search the keyrings of process A with the
|
||||
UID, GID, groups and security info of process A as if it was process A,
|
||||
and come up with key W.
|
||||
|
||||
(7) The program then does what it must to get the data with which to
|
||||
instantiate key U, using key W as a reference (perhaps it contacts a
|
||||
Kerberos server using the TGT) and then instantiates key U.
|
||||
|
||||
(8) Upon instantiating key U, auth key V is automatically revoked so that it
|
||||
may not be used again.
|
||||
|
||||
(9) The program then exits 0 and request_key() deletes key V and returns key
|
||||
U to the caller.
|
||||
|
||||
This also extends further. If key W (step 5 above) didn't exist, key W would be
|
||||
created uninstantiated, another auth key (X) would be created [as per step 3]
|
||||
and another copy of /sbin/request-key spawned [as per step 4]; but the context
|
||||
specified by auth key X will still be process A, as it was in auth key V.
|
||||
|
||||
This is because process A's keyrings can't simply be attached to
|
||||
/sbin/request-key at the appropriate places because (a) execve will discard two
|
||||
of them, and (b) it requires the same UID/GID/Groups all the way through.
|
||||
|
||||
|
||||
======================
|
||||
NEGATIVE INSTANTIATION
|
||||
======================
|
||||
|
||||
Rather than instantiating a key, it is possible for the possessor of an
|
||||
authorisation key to negatively instantiate a key that's under construction.
|
||||
This is a short duration placeholder that causes any attempt at re-requesting
|
||||
the key whilst it exists to fail with error ENOKEY.
|
||||
|
||||
This is provided to prevent excessive repeated spawning of /sbin/request-key
|
||||
processes for a key that will never be obtainable.
|
||||
|
||||
Should the /sbin/request-key process exit anything other than 0 or die on a
|
||||
signal, the key under construction will be automatically negatively
|
||||
instantiated for a short amount of time.
|
||||
|
||||
|
||||
====================
|
||||
THE SEARCH ALGORITHM
|
||||
====================
|
||||
|
||||
A search of any particular keyring proceeds in the following fashion:
|
||||
|
||||
(1) When the key management code searches for a key (keyring_search_aux) it
|
||||
firstly calls key_permission(SEARCH) on the keyring it's starting with,
|
||||
if this denies permission, it doesn't search further.
|
||||
|
||||
(2) It considers all the non-keyring keys within that keyring and, if any key
|
||||
matches the criteria specified, calls key_permission(SEARCH) on it to see
|
||||
if the key is allowed to be found. If it is, that key is returned; if
|
||||
not, the search continues, and the error code is retained if of higher
|
||||
priority than the one currently set.
|
||||
|
||||
(3) It then considers all the keyring-type keys in the keyring it's currently
|
||||
searching. It calls key_permission(SEARCH) on each keyring, and if this
|
||||
grants permission, it recurses, executing steps (2) and (3) on that
|
||||
keyring.
|
||||
|
||||
The process stops immediately a valid key is found with permission granted to
|
||||
use it. Any error from a previous match attempt is discarded and the key is
|
||||
returned.
|
||||
|
||||
When search_process_keyrings() is invoked, it performs the following searches
|
||||
until one succeeds:
|
||||
|
||||
(1) If extant, the process's thread keyring is searched.
|
||||
|
||||
(2) If extant, the process's process keyring is searched.
|
||||
|
||||
(3) The process's session keyring is searched.
|
||||
|
||||
(4) If the process has a request_key() authorisation key in its session
|
||||
keyring then:
|
||||
|
||||
(a) If extant, the calling process's thread keyring is searched.
|
||||
|
||||
(b) If extant, the calling process's process keyring is searched.
|
||||
|
||||
(c) The calling process's session keyring is searched.
|
||||
|
||||
The moment one succeeds, all pending errors are discarded and the found key is
|
||||
returned.
|
||||
|
||||
Only if all these fail does the whole thing fail with the highest priority
|
||||
error. Note that several errors may have come from LSM.
|
||||
|
||||
The error priority is:
|
||||
|
||||
EKEYREVOKED > EKEYEXPIRED > ENOKEY
|
||||
|
||||
EACCES/EPERM are only returned on a direct search of a specific keyring where
|
||||
the basal keyring does not grant Search permission.
|
|
@ -361,6 +361,8 @@ The main syscalls are:
|
|||
/sbin/request-key will be invoked in an attempt to obtain a key. The
|
||||
callout_info string will be passed as an argument to the program.
|
||||
|
||||
See also Documentation/keys-request-key.txt.
|
||||
|
||||
|
||||
The keyctl syscall functions are:
|
||||
|
||||
|
@ -533,8 +535,8 @@ The keyctl syscall functions are:
|
|||
|
||||
(*) Read the payload data from a key:
|
||||
|
||||
key_serial_t keyctl(KEYCTL_READ, key_serial_t keyring, char *buffer,
|
||||
size_t buflen);
|
||||
long keyctl(KEYCTL_READ, key_serial_t keyring, char *buffer,
|
||||
size_t buflen);
|
||||
|
||||
This function attempts to read the payload data from the specified key
|
||||
into the buffer. The process must have read permission on the key to
|
||||
|
@ -555,9 +557,9 @@ The keyctl syscall functions are:
|
|||
|
||||
(*) Instantiate a partially constructed key.
|
||||
|
||||
key_serial_t keyctl(KEYCTL_INSTANTIATE, key_serial_t key,
|
||||
const void *payload, size_t plen,
|
||||
key_serial_t keyring);
|
||||
long keyctl(KEYCTL_INSTANTIATE, key_serial_t key,
|
||||
const void *payload, size_t plen,
|
||||
key_serial_t keyring);
|
||||
|
||||
If the kernel calls back to userspace to complete the instantiation of a
|
||||
key, userspace should use this call to supply data for the key before the
|
||||
|
@ -576,8 +578,8 @@ The keyctl syscall functions are:
|
|||
|
||||
(*) Negatively instantiate a partially constructed key.
|
||||
|
||||
key_serial_t keyctl(KEYCTL_NEGATE, key_serial_t key,
|
||||
unsigned timeout, key_serial_t keyring);
|
||||
long keyctl(KEYCTL_NEGATE, key_serial_t key,
|
||||
unsigned timeout, key_serial_t keyring);
|
||||
|
||||
If the kernel calls back to userspace to complete the instantiation of a
|
||||
key, userspace should use this call mark the key as negative before the
|
||||
|
@ -688,6 +690,8 @@ payload contents" for more information.
|
|||
If successful, the key will have been attached to the default keyring for
|
||||
implicitly obtained request-key keys, as set by KEYCTL_SET_REQKEY_KEYRING.
|
||||
|
||||
See also Documentation/keys-request-key.txt.
|
||||
|
||||
|
||||
(*) When it is no longer required, the key should be released using:
|
||||
|
||||
|
|
|
@ -355,10 +355,14 @@ ip_dynaddr - BOOLEAN
|
|||
Default: 0
|
||||
|
||||
icmp_echo_ignore_all - BOOLEAN
|
||||
If set non-zero, then the kernel will ignore all ICMP ECHO
|
||||
requests sent to it.
|
||||
Default: 0
|
||||
|
||||
icmp_echo_ignore_broadcasts - BOOLEAN
|
||||
If either is set to true, then the kernel will ignore either all
|
||||
ICMP ECHO requests sent to it or just those to broadcast/multicast
|
||||
addresses, respectively.
|
||||
If set non-zero, then the kernel will ignore all ICMP ECHO and
|
||||
TIMESTAMP requests sent to it via broadcast/multicast.
|
||||
Default: 1
|
||||
|
||||
icmp_ratelimit - INTEGER
|
||||
Limit the maximal rates for sending ICMP packets whose type matches
|
||||
|
|
17
MAINTAINERS
17
MAINTAINERS
|
@ -1168,11 +1168,6 @@ L: linux1394-devel@lists.sourceforge.net
|
|||
W: http://www.linux1394.org/
|
||||
S: Orphan
|
||||
|
||||
IEEE 1394 SBP2
|
||||
L: linux1394-devel@lists.sourceforge.net
|
||||
W: http://www.linux1394.org/
|
||||
S: Orphan
|
||||
|
||||
IEEE 1394 SUBSYSTEM
|
||||
P: Ben Collins
|
||||
M: bcollins@debian.org
|
||||
|
@ -1207,6 +1202,15 @@ L: linux1394-devel@lists.sourceforge.net
|
|||
W: http://www.linux1394.org/
|
||||
S: Maintained
|
||||
|
||||
IEEE 1394 SBP2
|
||||
P: Ben Collins
|
||||
M: bcollins@debian.org
|
||||
P: Stefan Richter
|
||||
M: stefanr@s5r6.in-berlin.de
|
||||
L: linux1394-devel@lists.sourceforge.net
|
||||
W: http://www.linux1394.org/
|
||||
S: Maintained
|
||||
|
||||
IMS TWINTURBO FRAMEBUFFER DRIVER
|
||||
P: Paul Mundt
|
||||
M: lethal@chaoticdreams.org
|
||||
|
@ -1743,8 +1747,11 @@ S: Maintained
|
|||
IPVS
|
||||
P: Wensong Zhang
|
||||
M: wensong@linux-vs.org
|
||||
P: Simon Horman
|
||||
M: horms@verge.net.au
|
||||
P: Julian Anastasov
|
||||
M: ja@ssi.bg
|
||||
L: netdev@vger.kernel.org
|
||||
S: Maintained
|
||||
|
||||
NFS CLIENT
|
||||
|
|
2
Makefile
2
Makefile
|
@ -1,7 +1,7 @@
|
|||
VERSION = 2
|
||||
PATCHLEVEL = 6
|
||||
SUBLEVEL = 14
|
||||
EXTRAVERSION =-rc2
|
||||
EXTRAVERSION =-rc4
|
||||
NAME=Affluent Albatross
|
||||
|
||||
# *DOCUMENTATION*
|
||||
|
|
|
@ -196,6 +196,7 @@ entUna:
|
|||
stq $26, 208($sp)
|
||||
stq $27, 216($sp)
|
||||
stq $28, 224($sp)
|
||||
mov $sp, $19
|
||||
stq $gp, 232($sp)
|
||||
lda $8, 0x3fff
|
||||
stq $31, 248($sp)
|
||||
|
|
|
@ -446,16 +446,15 @@ struct unaligned_stat {
|
|||
|
||||
|
||||
/* Macro for exception fixup code to access integer registers. */
|
||||
#define una_reg(r) (regs.regs[(r) >= 16 && (r) <= 18 ? (r)+19 : (r)])
|
||||
#define una_reg(r) (regs->regs[(r) >= 16 && (r) <= 18 ? (r)+19 : (r)])
|
||||
|
||||
|
||||
asmlinkage void
|
||||
do_entUna(void * va, unsigned long opcode, unsigned long reg,
|
||||
unsigned long a3, unsigned long a4, unsigned long a5,
|
||||
struct allregs regs)
|
||||
struct allregs *regs)
|
||||
{
|
||||
long error, tmp1, tmp2, tmp3, tmp4;
|
||||
unsigned long pc = regs.pc - 4;
|
||||
unsigned long pc = regs->pc - 4;
|
||||
const struct exception_table_entry *fixup;
|
||||
|
||||
unaligned[0].count++;
|
||||
|
@ -636,7 +635,7 @@ got_exception:
|
|||
printk("Forwarding unaligned exception at %lx (%lx)\n",
|
||||
pc, newpc);
|
||||
|
||||
(®s)->pc = newpc;
|
||||
regs->pc = newpc;
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -650,7 +649,7 @@ got_exception:
|
|||
current->comm, current->pid);
|
||||
|
||||
printk("pc = [<%016lx>] ra = [<%016lx>] ps = %04lx\n",
|
||||
pc, una_reg(26), regs.ps);
|
||||
pc, una_reg(26), regs->ps);
|
||||
printk("r0 = %016lx r1 = %016lx r2 = %016lx\n",
|
||||
una_reg(0), una_reg(1), una_reg(2));
|
||||
printk("r3 = %016lx r4 = %016lx r5 = %016lx\n",
|
||||
|
@ -670,10 +669,10 @@ got_exception:
|
|||
una_reg(22), una_reg(23), una_reg(24));
|
||||
printk("r25= %016lx r27= %016lx r28= %016lx\n",
|
||||
una_reg(25), una_reg(27), una_reg(28));
|
||||
printk("gp = %016lx sp = %p\n", regs.gp, ®s+1);
|
||||
printk("gp = %016lx sp = %p\n", regs->gp, regs+1);
|
||||
|
||||
dik_show_code((unsigned int *)pc);
|
||||
dik_show_trace((unsigned long *)(®s+1));
|
||||
dik_show_trace((unsigned long *)(regs+1));
|
||||
|
||||
if (test_and_set_thread_flag (TIF_DIE_IF_KERNEL)) {
|
||||
printk("die_if_kernel recursion detected.\n");
|
||||
|
|
|
@ -68,6 +68,7 @@ static void gic_unmask_irq(unsigned int irq)
|
|||
writel(mask, gic_dist_base + GIC_DIST_ENABLE_SET + (irq / 32) * 4);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_SMP
|
||||
static void gic_set_cpu(struct irqdesc *desc, unsigned int irq, unsigned int cpu)
|
||||
{
|
||||
void __iomem *reg = gic_dist_base + GIC_DIST_TARGET + (irq & ~3);
|
||||
|
@ -78,6 +79,7 @@ static void gic_set_cpu(struct irqdesc *desc, unsigned int irq, unsigned int cpu
|
|||
val |= 1 << (cpu + shift);
|
||||
writel(val, reg);
|
||||
}
|
||||
#endif
|
||||
|
||||
static struct irqchip gic_chip = {
|
||||
.ack = gic_ack_irq,
|
||||
|
|
|
@ -27,7 +27,6 @@
|
|||
#include <linux/spinlock.h>
|
||||
|
||||
#include <asm/hardware.h>
|
||||
#include <asm/mach-types.h>
|
||||
#include <asm/io.h>
|
||||
#include <asm/irq.h>
|
||||
#include <asm/mach/irq.h>
|
||||
|
|
|
@ -26,6 +26,8 @@ struct scoop_pcmcia_dev *scoop_devs;
|
|||
struct scoop_dev {
|
||||
void *base;
|
||||
spinlock_t scoop_lock;
|
||||
unsigned short suspend_clr;
|
||||
unsigned short suspend_set;
|
||||
u32 scoop_gpwr;
|
||||
};
|
||||
|
||||
|
@ -90,14 +92,24 @@ EXPORT_SYMBOL(reset_scoop);
|
|||
EXPORT_SYMBOL(read_scoop_reg);
|
||||
EXPORT_SYMBOL(write_scoop_reg);
|
||||
|
||||
static void check_scoop_reg(struct scoop_dev *sdev)
|
||||
{
|
||||
unsigned short mcr;
|
||||
|
||||
mcr = SCOOP_REG(sdev->base, SCOOP_MCR);
|
||||
if ((mcr & 0x100) == 0)
|
||||
SCOOP_REG(sdev->base, SCOOP_MCR) = 0x0101;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_PM
|
||||
static int scoop_suspend(struct device *dev, pm_message_t state, uint32_t level)
|
||||
{
|
||||
if (level == SUSPEND_POWER_DOWN) {
|
||||
struct scoop_dev *sdev = dev_get_drvdata(dev);
|
||||
|
||||
sdev->scoop_gpwr = SCOOP_REG(sdev->base,SCOOP_GPWR);
|
||||
SCOOP_REG(sdev->base,SCOOP_GPWR) = 0;
|
||||
check_scoop_reg(sdev);
|
||||
sdev->scoop_gpwr = SCOOP_REG(sdev->base, SCOOP_GPWR);
|
||||
SCOOP_REG(sdev->base, SCOOP_GPWR) = (sdev->scoop_gpwr & ~sdev->suspend_clr) | sdev->suspend_set;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
@ -107,6 +119,7 @@ static int scoop_resume(struct device *dev, uint32_t level)
|
|||
if (level == RESUME_POWER_ON) {
|
||||
struct scoop_dev *sdev = dev_get_drvdata(dev);
|
||||
|
||||
check_scoop_reg(sdev);
|
||||
SCOOP_REG(sdev->base,SCOOP_GPWR) = sdev->scoop_gpwr;
|
||||
}
|
||||
return 0;
|
||||
|
@ -151,6 +164,9 @@ int __init scoop_probe(struct device *dev)
|
|||
SCOOP_REG(devptr->base, SCOOP_GPCR) = inf->io_dir & 0xffff;
|
||||
SCOOP_REG(devptr->base, SCOOP_GPWR) = inf->io_out & 0xffff;
|
||||
|
||||
devptr->suspend_clr = inf->suspend_clr;
|
||||
devptr->suspend_set = inf->suspend_set;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -0,0 +1,888 @@
|
|||
#
|
||||
# Automatically generated make config: don't edit
|
||||
# Linux kernel version: 2.6.14-rc3
|
||||
# Sun Oct 9 16:55:14 2005
|
||||
#
|
||||
CONFIG_ARM=y
|
||||
CONFIG_MMU=y
|
||||
CONFIG_UID16=y
|
||||
CONFIG_RWSEM_GENERIC_SPINLOCK=y
|
||||
CONFIG_GENERIC_CALIBRATE_DELAY=y
|
||||
|
||||
#
|
||||
# Code maturity level options
|
||||
#
|
||||
CONFIG_EXPERIMENTAL=y
|
||||
# CONFIG_CLEAN_COMPILE is not set
|
||||
CONFIG_BROKEN=y
|
||||
CONFIG_BROKEN_ON_SMP=y
|
||||
CONFIG_LOCK_KERNEL=y
|
||||
CONFIG_INIT_ENV_ARG_LIMIT=32
|
||||
|
||||
#
|
||||
# General setup
|
||||
#
|
||||
CONFIG_LOCALVERSION=""
|
||||
CONFIG_LOCALVERSION_AUTO=y
|
||||
CONFIG_SWAP=y
|
||||
CONFIG_SYSVIPC=y
|
||||
# CONFIG_POSIX_MQUEUE is not set
|
||||
CONFIG_BSD_PROCESS_ACCT=y
|
||||
# CONFIG_BSD_PROCESS_ACCT_V3 is not set
|
||||
CONFIG_SYSCTL=y
|
||||
# CONFIG_AUDIT is not set
|
||||
CONFIG_HOTPLUG=y
|
||||
CONFIG_KOBJECT_UEVENT=y
|
||||
# CONFIG_IKCONFIG is not set
|
||||
CONFIG_INITRAMFS_SOURCE=""
|
||||
CONFIG_EMBEDDED=y
|
||||
CONFIG_KALLSYMS=y
|
||||
# CONFIG_KALLSYMS_ALL is not set
|
||||
# CONFIG_KALLSYMS_EXTRA_PASS is not set
|
||||
CONFIG_PRINTK=y
|
||||
CONFIG_BUG=y
|
||||
CONFIG_BASE_FULL=y
|
||||
CONFIG_FUTEX=y
|
||||
CONFIG_EPOLL=y
|
||||
# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
|
||||
CONFIG_SHMEM=y
|
||||
CONFIG_CC_ALIGN_FUNCTIONS=0
|
||||
CONFIG_CC_ALIGN_LABELS=0
|
||||
CONFIG_CC_ALIGN_LOOPS=0
|
||||
CONFIG_CC_ALIGN_JUMPS=0
|
||||
# CONFIG_TINY_SHMEM is not set
|
||||
CONFIG_BASE_SMALL=0
|
||||
|
||||
#
|
||||
# Loadable module support
|
||||
#
|
||||
CONFIG_MODULES=y
|
||||
CONFIG_MODULE_UNLOAD=y
|
||||
CONFIG_MODULE_FORCE_UNLOAD=y
|
||||
CONFIG_OBSOLETE_MODPARM=y
|
||||
CONFIG_MODVERSIONS=y
|
||||
# CONFIG_MODULE_SRCVERSION_ALL is not set
|
||||
CONFIG_KMOD=y
|
||||
|
||||
#
|
||||
# System Type
|
||||
#
|
||||
# CONFIG_ARCH_CLPS7500 is not set
|
||||
# CONFIG_ARCH_CLPS711X is not set
|
||||
# CONFIG_ARCH_CO285 is not set
|
||||
# CONFIG_ARCH_EBSA110 is not set
|
||||
# CONFIG_ARCH_CAMELOT is not set
|
||||
# CONFIG_ARCH_FOOTBRIDGE is not set
|
||||
# CONFIG_ARCH_INTEGRATOR is not set
|
||||
# CONFIG_ARCH_IOP3XX is not set
|
||||
# CONFIG_ARCH_IXP4XX is not set
|
||||
# CONFIG_ARCH_IXP2000 is not set
|
||||
# CONFIG_ARCH_L7200 is not set
|
||||
# CONFIG_ARCH_PXA is not set
|
||||
# CONFIG_ARCH_RPC is not set
|
||||
CONFIG_ARCH_SA1100=y
|
||||
# CONFIG_ARCH_S3C2410 is not set
|
||||
# CONFIG_ARCH_SHARK is not set
|
||||
# CONFIG_ARCH_LH7A40X is not set
|
||||
# CONFIG_ARCH_OMAP is not set
|
||||
# CONFIG_ARCH_VERSATILE is not set
|
||||
# CONFIG_ARCH_IMX is not set
|
||||
# CONFIG_ARCH_H720X is not set
|
||||
# CONFIG_ARCH_AAEC2000 is not set
|
||||
|
||||
#
|
||||
# SA11x0 Implementations
|
||||
#
|
||||
# CONFIG_SA1100_ASSABET is not set
|
||||
# CONFIG_SA1100_CERF is not set
|
||||
CONFIG_SA1100_COLLIE=y
|
||||
# CONFIG_SA1100_H3100 is not set
|
||||
# CONFIG_SA1100_H3600 is not set
|
||||
# CONFIG_SA1100_H3800 is not set
|
||||
# CONFIG_SA1100_BADGE4 is not set
|
||||
# CONFIG_SA1100_JORNADA720 is not set
|
||||
# CONFIG_SA1100_HACKKIT is not set
|
||||
# CONFIG_SA1100_LART is not set
|
||||
# CONFIG_SA1100_PLEB is not set
|
||||
# CONFIG_SA1100_SHANNON is not set
|
||||
# CONFIG_SA1100_SIMPAD is not set
|
||||
# CONFIG_SA1100_SSP is not set
|
||||
|
||||
#
|
||||
# Processor Type
|
||||
#
|
||||
CONFIG_CPU_32=y
|
||||
CONFIG_CPU_SA1100=y
|
||||
CONFIG_CPU_32v4=y
|
||||
CONFIG_CPU_ABRT_EV4=y
|
||||
CONFIG_CPU_CACHE_V4WB=y
|
||||
CONFIG_CPU_CACHE_VIVT=y
|
||||
CONFIG_CPU_TLB_V4WB=y
|
||||
|
||||
#
|
||||
# Processor Features
|
||||
#
|
||||
CONFIG_SHARP_LOCOMO=y
|
||||
CONFIG_SHARP_PARAM=y
|
||||
CONFIG_SHARP_SCOOP=y
|
||||
|
||||
#
|
||||
# Bus support
|
||||
#
|
||||
CONFIG_ISA=y
|
||||
CONFIG_ISA_DMA_API=y
|
||||
|
||||
#
|
||||
# PCCARD (PCMCIA/CardBus) support
|
||||
#
|
||||
# CONFIG_PCCARD is not set
|
||||
|
||||
#
|
||||
# Kernel Features
|
||||
#
|
||||
# CONFIG_SMP is not set
|
||||
CONFIG_PREEMPT=y
|
||||
# CONFIG_NO_IDLE_HZ is not set
|
||||
CONFIG_ARCH_DISCONTIGMEM_ENABLE=y
|
||||
CONFIG_SELECT_MEMORY_MODEL=y
|
||||
# CONFIG_FLATMEM_MANUAL is not set
|
||||
CONFIG_DISCONTIGMEM_MANUAL=y
|
||||
# CONFIG_SPARSEMEM_MANUAL is not set
|
||||
CONFIG_DISCONTIGMEM=y
|
||||
CONFIG_FLAT_NODE_MEM_MAP=y
|
||||
CONFIG_NEED_MULTIPLE_NODES=y
|
||||
# CONFIG_SPARSEMEM_STATIC is not set
|
||||
# CONFIG_LEDS is not set
|
||||
CONFIG_ALIGNMENT_TRAP=y
|
||||
|
||||
#
|
||||
# Boot options
|
||||
#
|
||||
CONFIG_ZBOOT_ROM_TEXT=0x0
|
||||
CONFIG_ZBOOT_ROM_BSS=0x0
|
||||
CONFIG_CMDLINE="console=ttyS0,115200n8 console=tty1 noinitrd root=/dev/mtdblock2 rootfstype=jffs2 debug"
|
||||
# CONFIG_XIP_KERNEL is not set
|
||||
|
||||
#
|
||||
# CPU Frequency scaling
|
||||
#
|
||||
# CONFIG_CPU_FREQ is not set
|
||||
|
||||
#
|
||||
# Floating point emulation
|
||||
#
|
||||
|
||||
#
|
||||
# At least one emulation must be selected
|
||||
#
|
||||
CONFIG_FPE_NWFPE=y
|
||||
# CONFIG_FPE_NWFPE_XP is not set
|
||||
# CONFIG_FPE_FASTFPE is not set
|
||||
|
||||
#
|
||||
# Userspace binary formats
|
||||
#
|
||||
CONFIG_BINFMT_ELF=y
|
||||
CONFIG_BINFMT_AOUT=m
|
||||
CONFIG_BINFMT_MISC=m
|
||||
# CONFIG_ARTHUR is not set
|
||||
|
||||
#
|
||||
# Power management options
|
||||
#
|
||||
CONFIG_PM=y
|
||||
CONFIG_APM=y
|
||||
|
||||
#
|
||||
# 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 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_INET_DIAG=y
|
||||
CONFIG_INET_TCP_DIAG=y
|
||||
# CONFIG_TCP_CONG_ADVANCED is not set
|
||||
CONFIG_TCP_CONG_BIC=y
|
||||
# CONFIG_IPV6 is not set
|
||||
# CONFIG_NETFILTER is not set
|
||||
|
||||
#
|
||||
# DCCP Configuration (EXPERIMENTAL)
|
||||
#
|
||||
# CONFIG_IP_DCCP 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
|
||||
# CONFIG_IEEE80211 is not set
|
||||
|
||||
#
|
||||
# Device Drivers
|
||||
#
|
||||
|
||||
#
|
||||
# Generic Driver Options
|
||||
#
|
||||
CONFIG_STANDALONE=y
|
||||
CONFIG_PREVENT_FIRMWARE_BUILD=y
|
||||
CONFIG_FW_LOADER=m
|
||||
# CONFIG_DEBUG_DRIVER is not set
|
||||
|
||||
#
|
||||
# Memory Technology Devices (MTD)
|
||||
#
|
||||
CONFIG_MTD=y
|
||||
# CONFIG_MTD_DEBUG is not set
|
||||
# CONFIG_MTD_CONCAT is not set
|
||||
CONFIG_MTD_PARTITIONS=y
|
||||
# CONFIG_MTD_REDBOOT_PARTS is not set
|
||||
# CONFIG_MTD_CMDLINE_PARTS is not set
|
||||
# CONFIG_MTD_AFS_PARTS is not set
|
||||
|
||||
#
|
||||
# User Modules And Translation Layers
|
||||
#
|
||||
CONFIG_MTD_CHAR=y
|
||||
CONFIG_MTD_BLOCK=y
|
||||
# CONFIG_FTL is not set
|
||||
# CONFIG_NFTL is not set
|
||||
# CONFIG_INFTL is not set
|
||||
|
||||
#
|
||||
# RAM/ROM/Flash chip drivers
|
||||
#
|
||||
# CONFIG_MTD_CFI is not set
|
||||
# CONFIG_MTD_JEDECPROBE is not set
|
||||
CONFIG_MTD_MAP_BANK_WIDTH_1=y
|
||||
CONFIG_MTD_MAP_BANK_WIDTH_2=y
|
||||
CONFIG_MTD_MAP_BANK_WIDTH_4=y
|
||||
# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
|
||||
# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
|
||||
# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
|
||||
CONFIG_MTD_CFI_I1=y
|
||||
CONFIG_MTD_CFI_I2=y
|
||||
# CONFIG_MTD_CFI_I4 is not set
|
||||
# CONFIG_MTD_CFI_I8 is not set
|
||||
# CONFIG_MTD_RAM is not set
|
||||
# CONFIG_MTD_ROM is not set
|
||||
# CONFIG_MTD_ABSENT is not set
|
||||
CONFIG_MTD_OBSOLETE_CHIPS=y
|
||||
# CONFIG_MTD_AMDSTD is not set
|
||||
CONFIG_MTD_SHARP=y
|
||||
# CONFIG_MTD_JEDEC is not set
|
||||
|
||||
#
|
||||
# Mapping drivers for chip access
|
||||
#
|
||||
# CONFIG_MTD_COMPLEX_MAPPINGS is not set
|
||||
# CONFIG_MTD_PLATRAM is not set
|
||||
|
||||
#
|
||||
# Self-contained MTD device drivers
|
||||
#
|
||||
# CONFIG_MTD_SLRAM is not set
|
||||
# CONFIG_MTD_PHRAM is not set
|
||||
# CONFIG_MTD_MTDRAM is not set
|
||||
# CONFIG_MTD_BLKMTD is not set
|
||||
# CONFIG_MTD_BLOCK2MTD is not set
|
||||
|
||||
#
|
||||
# Disk-On-Chip Device Drivers
|
||||
#
|
||||
# CONFIG_MTD_DOC2000 is not set
|
||||
# CONFIG_MTD_DOC2001 is not set
|
||||
# CONFIG_MTD_DOC2001PLUS is not set
|
||||
|
||||
#
|
||||
# NAND Flash Device Drivers
|
||||
#
|
||||
# CONFIG_MTD_NAND is not set
|
||||
|
||||
#
|
||||
# Parallel port support
|
||||
#
|
||||
# CONFIG_PARPORT is not set
|
||||
|
||||
#
|
||||
# Plug and Play support
|
||||
#
|
||||
# CONFIG_PNP is not set
|
||||
|
||||
#
|
||||
# Block devices
|
||||
#
|
||||
# CONFIG_BLK_DEV_XD is not set
|
||||
# CONFIG_BLK_DEV_COW_COMMON is not set
|
||||
CONFIG_BLK_DEV_LOOP=y
|
||||
# CONFIG_BLK_DEV_CRYPTOLOOP is not set
|
||||
# CONFIG_BLK_DEV_NBD is not set
|
||||
CONFIG_BLK_DEV_RAM=y
|
||||
CONFIG_BLK_DEV_RAM_COUNT=16
|
||||
CONFIG_BLK_DEV_RAM_SIZE=1024
|
||||
CONFIG_BLK_DEV_INITRD=y
|
||||
# CONFIG_CDROM_PKTCDVD is not set
|
||||
|
||||
#
|
||||
# IO Schedulers
|
||||
#
|
||||
CONFIG_IOSCHED_NOOP=y
|
||||
CONFIG_IOSCHED_AS=y
|
||||
CONFIG_IOSCHED_DEADLINE=y
|
||||
CONFIG_IOSCHED_CFQ=y
|
||||
CONFIG_ATA_OVER_ETH=m
|
||||
|
||||
#
|
||||
# ATA/ATAPI/MFM/RLL support
|
||||
#
|
||||
# CONFIG_IDE is not set
|
||||
|
||||
#
|
||||
# SCSI device support
|
||||
#
|
||||
# CONFIG_RAID_ATTRS is not set
|
||||
# CONFIG_SCSI is not set
|
||||
|
||||
#
|
||||
# Multi-device support (RAID and LVM)
|
||||
#
|
||||
# CONFIG_MD is not set
|
||||
|
||||
#
|
||||
# Fusion MPT device support
|
||||
#
|
||||
# CONFIG_FUSION is not set
|
||||
|
||||
#
|
||||
# IEEE 1394 (FireWire) support
|
||||
#
|
||||
# CONFIG_IEEE1394 is not set
|
||||
|
||||
#
|
||||
# I2O device support
|
||||
#
|
||||
|
||||
#
|
||||
# Network device support
|
||||
#
|
||||
# CONFIG_NETDEVICES is not set
|
||||
# CONFIG_NETPOLL is not set
|
||||
# CONFIG_NET_POLL_CONTROLLER is not set
|
||||
|
||||
#
|
||||
# ISDN subsystem
|
||||
#
|
||||
# CONFIG_ISDN is not set
|
||||
|
||||
#
|
||||
# Input device support
|
||||
#
|
||||
CONFIG_INPUT=y
|
||||
|
||||
#
|
||||
# Userland interfaces
|
||||
#
|
||||
# CONFIG_INPUT_MOUSEDEV is not set
|
||||
# CONFIG_INPUT_JOYDEV is not set
|
||||
CONFIG_INPUT_TSDEV=y
|
||||
CONFIG_INPUT_TSDEV_SCREEN_X=240
|
||||
CONFIG_INPUT_TSDEV_SCREEN_Y=320
|
||||
CONFIG_INPUT_EVDEV=y
|
||||
CONFIG_INPUT_EVBUG=y
|
||||
|
||||
#
|
||||
# Input Device Drivers
|
||||
#
|
||||
CONFIG_INPUT_KEYBOARD=y
|
||||
# CONFIG_KEYBOARD_ATKBD is not set
|
||||
# CONFIG_KEYBOARD_SUNKBD is not set
|
||||
# CONFIG_KEYBOARD_LKKBD is not set
|
||||
CONFIG_KEYBOARD_LOCOMO=y
|
||||
# CONFIG_KEYBOARD_XTKBD is not set
|
||||
# CONFIG_KEYBOARD_NEWTON is not set
|
||||
# CONFIG_INPUT_MOUSE is not set
|
||||
# CONFIG_INPUT_JOYSTICK is not set
|
||||
# CONFIG_INPUT_TOUCHSCREEN is not set
|
||||
# CONFIG_INPUT_MISC is not set
|
||||
|
||||
#
|
||||
# Hardware I/O ports
|
||||
#
|
||||
CONFIG_SERIO=y
|
||||
# CONFIG_SERIO_SERPORT is not set
|
||||
# CONFIG_SERIO_LIBPS2 is not set
|
||||
# CONFIG_SERIO_RAW is not set
|
||||
# CONFIG_GAMEPORT is not set
|
||||
|
||||
#
|
||||
# Character devices
|
||||
#
|
||||
CONFIG_VT=y
|
||||
CONFIG_VT_CONSOLE=y
|
||||
CONFIG_HW_CONSOLE=y
|
||||
# CONFIG_SERIAL_NONSTANDARD is not set
|
||||
|
||||
#
|
||||
# Serial drivers
|
||||
#
|
||||
# CONFIG_SERIAL_8250 is not set
|
||||
|
||||
#
|
||||
# Non-8250 serial port support
|
||||
#
|
||||
CONFIG_SERIAL_SA1100=y
|
||||
CONFIG_SERIAL_SA1100_CONSOLE=y
|
||||
CONFIG_SERIAL_CORE=y
|
||||
CONFIG_SERIAL_CORE_CONSOLE=y
|
||||
CONFIG_UNIX98_PTYS=y
|
||||
# CONFIG_LEGACY_PTYS is not set
|
||||
|
||||
#
|
||||
# IPMI
|
||||
#
|
||||
# CONFIG_IPMI_HANDLER is not set
|
||||
|
||||
#
|
||||
# Watchdog Cards
|
||||
#
|
||||
# CONFIG_WATCHDOG is not set
|
||||
# CONFIG_NVRAM is not set
|
||||
# CONFIG_RTC is not set
|
||||
# CONFIG_DTLK is not set
|
||||
# CONFIG_R3964 is not set
|
||||
|
||||
#
|
||||
# Ftape, the floppy tape device driver
|
||||
#
|
||||
# CONFIG_RAW_DRIVER is not set
|
||||
|
||||
#
|
||||
# TPM devices
|
||||
#
|
||||
|
||||
#
|
||||
# I2C support
|
||||
#
|
||||
CONFIG_I2C=m
|
||||
# CONFIG_I2C_CHARDEV is not set
|
||||
|
||||
#
|
||||
# I2C Algorithms
|
||||
#
|
||||
CONFIG_I2C_ALGOBIT=m
|
||||
# CONFIG_I2C_ALGOPCF is not set
|
||||
# CONFIG_I2C_ALGOPCA is not set
|
||||
|
||||
#
|
||||
# I2C Hardware Bus support
|
||||
#
|
||||
# CONFIG_I2C_ELEKTOR is not set
|
||||
# CONFIG_I2C_PARPORT_LIGHT is not set
|
||||
# CONFIG_I2C_STUB is not set
|
||||
# CONFIG_I2C_PCA_ISA is not set
|
||||
|
||||
#
|
||||
# Miscellaneous I2C Chip support
|
||||
#
|
||||
# CONFIG_SENSORS_DS1337 is not set
|
||||
# CONFIG_SENSORS_DS1374 is not set
|
||||
# CONFIG_SENSORS_EEPROM is not set
|
||||
# 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_HWMON_VID is not set
|
||||
# CONFIG_SENSORS_ADM1021 is not set
|
||||
# CONFIG_SENSORS_ADM1025 is not set
|
||||
# CONFIG_SENSORS_ADM1026 is not set
|
||||
# CONFIG_SENSORS_ADM1031 is not set
|
||||
# CONFIG_SENSORS_ADM9240 is not set
|
||||
# CONFIG_SENSORS_ASB100 is not set
|
||||
# CONFIG_SENSORS_ATXP1 is not set
|
||||
# CONFIG_SENSORS_DS1621 is not set
|
||||
# CONFIG_SENSORS_FSCHER is not set
|
||||
# CONFIG_SENSORS_FSCPOS is not set
|
||||
# CONFIG_SENSORS_GL518SM is not set
|
||||
# CONFIG_SENSORS_GL520SM is not set
|
||||
# CONFIG_SENSORS_IT87 is not set
|
||||
# CONFIG_SENSORS_LM63 is not set
|
||||
# CONFIG_SENSORS_LM75 is not set
|
||||
# CONFIG_SENSORS_LM77 is not set
|
||||
# CONFIG_SENSORS_LM78 is not set
|
||||
# CONFIG_SENSORS_LM80 is not set
|
||||
# CONFIG_SENSORS_LM83 is not set
|
||||
# CONFIG_SENSORS_LM85 is not set
|
||||
# CONFIG_SENSORS_LM87 is not set
|
||||
# CONFIG_SENSORS_LM90 is not set
|
||||
# CONFIG_SENSORS_LM92 is not set
|
||||
# CONFIG_SENSORS_MAX1619 is not set
|
||||
# CONFIG_SENSORS_PC87360 is not set
|
||||
# CONFIG_SENSORS_SMSC47M1 is not set
|
||||
# CONFIG_SENSORS_SMSC47B397 is not set
|
||||
# CONFIG_SENSORS_W83781D is not set
|
||||
# CONFIG_SENSORS_W83792D is not set
|
||||
# CONFIG_SENSORS_W83L785TS is not set
|
||||
# CONFIG_SENSORS_W83627HF is not set
|
||||
# CONFIG_SENSORS_W83627EHF is not set
|
||||
# CONFIG_HWMON_DEBUG_CHIP is not set
|
||||
|
||||
#
|
||||
# Misc devices
|
||||
#
|
||||
|
||||
#
|
||||
# Multimedia Capabilities Port drivers
|
||||
#
|
||||
# CONFIG_MCP_SA11X0 is not set
|
||||
|
||||
#
|
||||
# Multimedia devices
|
||||
#
|
||||
CONFIG_VIDEO_DEV=m
|
||||
|
||||
#
|
||||
# Video For Linux
|
||||
#
|
||||
|
||||
#
|
||||
# Video Adapters
|
||||
#
|
||||
# CONFIG_VIDEO_PMS is not set
|
||||
# CONFIG_VIDEO_CPIA is not set
|
||||
# CONFIG_VIDEO_SAA5246A is not set
|
||||
# CONFIG_VIDEO_SAA5249 is not set
|
||||
# CONFIG_TUNER_3036 is not set
|
||||
# CONFIG_VIDEO_OVCAMCHIP is not set
|
||||
|
||||
#
|
||||
# Radio Adapters
|
||||
#
|
||||
# CONFIG_RADIO_CADET is not set
|
||||
# CONFIG_RADIO_RTRACK is not set
|
||||
# CONFIG_RADIO_RTRACK2 is not set
|
||||
# CONFIG_RADIO_AZTECH is not set
|
||||
# CONFIG_RADIO_GEMTEK is not set
|
||||
# CONFIG_RADIO_MAESTRO is not set
|
||||
# CONFIG_RADIO_SF16FMI is not set
|
||||
# CONFIG_RADIO_SF16FMR2 is not set
|
||||
# CONFIG_RADIO_TERRATEC is not set
|
||||
# CONFIG_RADIO_TRUST is not set
|
||||
# CONFIG_RADIO_TYPHOON is not set
|
||||
# CONFIG_RADIO_ZOLTRIX is not set
|
||||
|
||||
#
|
||||
# Digital Video Broadcasting Devices
|
||||
#
|
||||
# CONFIG_DVB is not set
|
||||
|
||||
#
|
||||
# Graphics support
|
||||
#
|
||||
CONFIG_FB=y
|
||||
CONFIG_FB_CFB_FILLRECT=y
|
||||
CONFIG_FB_CFB_COPYAREA=y
|
||||
CONFIG_FB_CFB_IMAGEBLIT=y
|
||||
CONFIG_FB_SOFT_CURSOR=y
|
||||
# CONFIG_FB_MACMODES is not set
|
||||
CONFIG_FB_MODE_HELPERS=y
|
||||
# CONFIG_FB_TILEBLITTING is not set
|
||||
CONFIG_FB_SA1100=y
|
||||
# CONFIG_FB_S1D13XXX is not set
|
||||
# CONFIG_FB_VIRTUAL is not set
|
||||
|
||||
#
|
||||
# Console display driver support
|
||||
#
|
||||
# CONFIG_VGA_CONSOLE is not set
|
||||
# CONFIG_MDA_CONSOLE is not set
|
||||
CONFIG_DUMMY_CONSOLE=y
|
||||
CONFIG_FRAMEBUFFER_CONSOLE=y
|
||||
CONFIG_FONTS=y
|
||||
CONFIG_FONT_8x8=y
|
||||
# CONFIG_FONT_8x16 is not set
|
||||
# CONFIG_FONT_6x11 is not set
|
||||
# CONFIG_FONT_7x14 is not set
|
||||
# CONFIG_FONT_PEARL_8x8 is not set
|
||||
# CONFIG_FONT_ACORN_8x8 is not set
|
||||
# CONFIG_FONT_MINI_4x6 is not set
|
||||
# CONFIG_FONT_SUN8x16 is not set
|
||||
# CONFIG_FONT_SUN12x22 is not set
|
||||
# CONFIG_FONT_10x18 is not set
|
||||
|
||||
#
|
||||
# Logo configuration
|
||||
#
|
||||
# CONFIG_LOGO is not set
|
||||
# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
|
||||
|
||||
#
|
||||
# Sound
|
||||
#
|
||||
# CONFIG_SOUND is not set
|
||||
|
||||
#
|
||||
# USB support
|
||||
#
|
||||
CONFIG_USB_ARCH_HAS_HCD=y
|
||||
# CONFIG_USB_ARCH_HAS_OHCI is not set
|
||||
# CONFIG_USB is not set
|
||||
|
||||
#
|
||||
# USB Gadget Support
|
||||
#
|
||||
CONFIG_USB_GADGET=y
|
||||
# CONFIG_USB_GADGET_DEBUG_FILES is not set
|
||||
# CONFIG_USB_GADGET_NET2280 is not set
|
||||
# CONFIG_USB_GADGET_PXA2XX is not set
|
||||
# CONFIG_USB_GADGET_GOKU is not set
|
||||
# CONFIG_USB_GADGET_LH7A40X is not set
|
||||
# CONFIG_USB_GADGET_OMAP is not set
|
||||
# CONFIG_USB_GADGET_DUMMY_HCD is not set
|
||||
# CONFIG_USB_GADGET_DUALSPEED is not set
|
||||
|
||||
#
|
||||
# MMC/SD Card support
|
||||
#
|
||||
# CONFIG_MMC is not set
|
||||
|
||||
#
|
||||
# File systems
|
||||
#
|
||||
CONFIG_EXT2_FS=y
|
||||
CONFIG_EXT2_FS_XATTR=y
|
||||
CONFIG_EXT2_FS_POSIX_ACL=y
|
||||
CONFIG_EXT2_FS_SECURITY=y
|
||||
# CONFIG_EXT2_FS_XIP is not set
|
||||
# CONFIG_EXT3_FS is not set
|
||||
# CONFIG_JBD is not set
|
||||
CONFIG_FS_MBCACHE=y
|
||||
# CONFIG_REISERFS_FS is not set
|
||||
# CONFIG_JFS_FS is not set
|
||||
CONFIG_FS_POSIX_ACL=y
|
||||
# CONFIG_XFS_FS is not set
|
||||
# CONFIG_MINIX_FS is not set
|
||||
CONFIG_ROMFS_FS=y
|
||||
CONFIG_INOTIFY=y
|
||||
# CONFIG_QUOTA is not set
|
||||
# CONFIG_DNOTIFY is not set
|
||||
# CONFIG_AUTOFS_FS is not set
|
||||
# CONFIG_AUTOFS4_FS is not set
|
||||
# CONFIG_FUSE_FS is not set
|
||||
|
||||
#
|
||||
# CD-ROM/DVD Filesystems
|
||||
#
|
||||
# CONFIG_ISO9660_FS is not set
|
||||
# CONFIG_UDF_FS is not set
|
||||
|
||||
#
|
||||
# DOS/FAT/NT Filesystems
|
||||
#
|
||||
CONFIG_FAT_FS=y
|
||||
CONFIG_MSDOS_FS=y
|
||||
CONFIG_VFAT_FS=y
|
||||
CONFIG_FAT_DEFAULT_CODEPAGE=437
|
||||
CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
|
||||
# CONFIG_NTFS_FS is not set
|
||||
|
||||
#
|
||||
# Pseudo filesystems
|
||||
#
|
||||
CONFIG_PROC_FS=y
|
||||
CONFIG_SYSFS=y
|
||||
CONFIG_TMPFS=y
|
||||
# CONFIG_HUGETLBFS is not set
|
||||
# CONFIG_HUGETLB_PAGE is not set
|
||||
CONFIG_RAMFS=y
|
||||
# CONFIG_RELAYFS_FS is not set
|
||||
|
||||
#
|
||||
# Miscellaneous filesystems
|
||||
#
|
||||
# CONFIG_ADFS_FS is not set
|
||||
# CONFIG_AFFS_FS is not set
|
||||
# CONFIG_HFS_FS is not set
|
||||
# CONFIG_HFSPLUS_FS is not set
|
||||
# CONFIG_BEFS_FS is not set
|
||||
# CONFIG_BFS_FS is not set
|
||||
# CONFIG_EFS_FS is not set
|
||||
# CONFIG_JFFS_FS is not set
|
||||
CONFIG_JFFS2_FS=y
|
||||
CONFIG_JFFS2_FS_DEBUG=0
|
||||
CONFIG_JFFS2_FS_WRITEBUFFER=y
|
||||
# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
|
||||
CONFIG_JFFS2_ZLIB=y
|
||||
CONFIG_JFFS2_RTIME=y
|
||||
# CONFIG_JFFS2_RUBIN is not set
|
||||
CONFIG_CRAMFS=y
|
||||
# CONFIG_VXFS_FS is not set
|
||||
# CONFIG_HPFS_FS is not set
|
||||
# CONFIG_QNX4FS_FS is not set
|
||||
# CONFIG_SYSV_FS is not set
|
||||
# CONFIG_UFS_FS is not set
|
||||
|
||||
#
|
||||
# Network File Systems
|
||||
#
|
||||
# CONFIG_NFS_FS is not set
|
||||
# CONFIG_NFSD is not set
|
||||
# CONFIG_SMB_FS is not set
|
||||
# CONFIG_CIFS is not set
|
||||
# CONFIG_NCP_FS is not set
|
||||
# CONFIG_CODA_FS is not set
|
||||
# CONFIG_AFS_FS is not set
|
||||
# CONFIG_9P_FS is not set
|
||||
|
||||
#
|
||||
# Partition Types
|
||||
#
|
||||
# CONFIG_PARTITION_ADVANCED is not set
|
||||
CONFIG_MSDOS_PARTITION=y
|
||||
|
||||
#
|
||||
# Native Language Support
|
||||
#
|
||||
CONFIG_NLS=y
|
||||
CONFIG_NLS_DEFAULT="cp437"
|
||||
CONFIG_NLS_CODEPAGE_437=m
|
||||
# CONFIG_NLS_CODEPAGE_737 is not set
|
||||
# CONFIG_NLS_CODEPAGE_775 is not set
|
||||
# CONFIG_NLS_CODEPAGE_850 is not set
|
||||
# CONFIG_NLS_CODEPAGE_852 is not set
|
||||
# CONFIG_NLS_CODEPAGE_855 is not set
|
||||
# CONFIG_NLS_CODEPAGE_857 is not set
|
||||
# CONFIG_NLS_CODEPAGE_860 is not set
|
||||
# CONFIG_NLS_CODEPAGE_861 is not set
|
||||
# CONFIG_NLS_CODEPAGE_862 is not set
|
||||
# CONFIG_NLS_CODEPAGE_863 is not set
|
||||
# CONFIG_NLS_CODEPAGE_864 is not set
|
||||
# CONFIG_NLS_CODEPAGE_865 is not set
|
||||
# CONFIG_NLS_CODEPAGE_866 is not set
|
||||
# CONFIG_NLS_CODEPAGE_869 is not set
|
||||
# CONFIG_NLS_CODEPAGE_936 is not set
|
||||
# CONFIG_NLS_CODEPAGE_950 is not set
|
||||
# CONFIG_NLS_CODEPAGE_932 is not set
|
||||
# CONFIG_NLS_CODEPAGE_949 is not set
|
||||
# CONFIG_NLS_CODEPAGE_874 is not set
|
||||
# CONFIG_NLS_ISO8859_8 is not set
|
||||
# CONFIG_NLS_CODEPAGE_1250 is not set
|
||||
# CONFIG_NLS_CODEPAGE_1251 is not set
|
||||
# CONFIG_NLS_ASCII is not set
|
||||
CONFIG_NLS_ISO8859_1=m
|
||||
# CONFIG_NLS_ISO8859_2 is not set
|
||||
# CONFIG_NLS_ISO8859_3 is not set
|
||||
# CONFIG_NLS_ISO8859_4 is not set
|
||||
# CONFIG_NLS_ISO8859_5 is not set
|
||||
# CONFIG_NLS_ISO8859_6 is not set
|
||||
# CONFIG_NLS_ISO8859_7 is not set
|
||||
# CONFIG_NLS_ISO8859_9 is not set
|
||||
# CONFIG_NLS_ISO8859_13 is not set
|
||||
# CONFIG_NLS_ISO8859_14 is not set
|
||||
# CONFIG_NLS_ISO8859_15 is not set
|
||||
# CONFIG_NLS_KOI8_R is not set
|
||||
# CONFIG_NLS_KOI8_U is not set
|
||||
CONFIG_NLS_UTF8=m
|
||||
|
||||
#
|
||||
# Profiling support
|
||||
#
|
||||
# CONFIG_PROFILING is not set
|
||||
|
||||
#
|
||||
# Kernel hacking
|
||||
#
|
||||
# CONFIG_PRINTK_TIME is not set
|
||||
CONFIG_DEBUG_KERNEL=y
|
||||
CONFIG_MAGIC_SYSRQ=y
|
||||
CONFIG_LOG_BUF_SHIFT=14
|
||||
CONFIG_DETECT_SOFTLOCKUP=y
|
||||
# CONFIG_SCHEDSTATS is not set
|
||||
# CONFIG_DEBUG_SLAB is not set
|
||||
CONFIG_DEBUG_PREEMPT=y
|
||||
# CONFIG_DEBUG_SPINLOCK is not set
|
||||
# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
|
||||
# CONFIG_DEBUG_KOBJECT is not set
|
||||
# CONFIG_DEBUG_BUGVERBOSE is not set
|
||||
# CONFIG_DEBUG_INFO is not set
|
||||
# CONFIG_DEBUG_FS is not set
|
||||
CONFIG_FRAME_POINTER=y
|
||||
# CONFIG_DEBUG_USER is not set
|
||||
# CONFIG_DEBUG_WAITQ is not set
|
||||
CONFIG_DEBUG_ERRORS=y
|
||||
# CONFIG_DEBUG_LL is not set
|
||||
|
||||
#
|
||||
# Security options
|
||||
#
|
||||
# CONFIG_KEYS is not set
|
||||
# CONFIG_SECURITY is not set
|
||||
|
||||
#
|
||||
# Cryptographic options
|
||||
#
|
||||
# CONFIG_CRYPTO is not set
|
||||
|
||||
#
|
||||
# Hardware crypto devices
|
||||
#
|
||||
|
||||
#
|
||||
# Library routines
|
||||
#
|
||||
# CONFIG_CRC_CCITT is not set
|
||||
# CONFIG_CRC16 is not set
|
||||
CONFIG_CRC32=y
|
||||
# CONFIG_LIBCRC32C is not set
|
||||
CONFIG_ZLIB_INFLATE=y
|
||||
CONFIG_ZLIB_DEFLATE=y
|
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
|
@ -305,7 +305,7 @@ long execve(const char *filename, char **argv, char **envp)
|
|||
"Ir" (THREAD_START_SP - sizeof(regs)),
|
||||
"r" (®s),
|
||||
"Ir" (sizeof(regs))
|
||||
: "r0", "r1", "r2", "r3", "ip", "memory");
|
||||
: "r0", "r1", "r2", "r3", "ip", "lr", "memory");
|
||||
|
||||
out:
|
||||
return ret;
|
||||
|
|
|
@ -504,7 +504,7 @@ asmlinkage int arm_syscall(int no, struct pt_regs *regs)
|
|||
|
||||
bad_access:
|
||||
spin_unlock(&mm->page_table_lock);
|
||||
/* simulate a read access fault */
|
||||
/* simulate a write access fault */
|
||||
do_DataAbort(addr, 15 + (1 << 11), regs);
|
||||
return -1;
|
||||
}
|
||||
|
|
|
@ -31,6 +31,8 @@
|
|||
|
||||
#include <asm/mach/arch.h>
|
||||
|
||||
#include <asm/memory.h>
|
||||
|
||||
#include "common.h"
|
||||
|
||||
struct meminfo memmap = {
|
||||
|
|
|
@ -28,14 +28,15 @@
|
|||
#include <linux/module.h>
|
||||
#include <asm/arch/imxfb.h>
|
||||
#include <asm/hardware.h>
|
||||
#include <asm/arch/imx-regs.h>
|
||||
|
||||
#include <asm/mach/map.h>
|
||||
|
||||
void imx_gpio_mode(int gpio_mode)
|
||||
{
|
||||
unsigned int pin = gpio_mode & GPIO_PIN_MASK;
|
||||
unsigned int port = (gpio_mode & GPIO_PORT_MASK) >> 5;
|
||||
unsigned int ocr = (gpio_mode & GPIO_OCR_MASK) >> 10;
|
||||
unsigned int port = (gpio_mode & GPIO_PORT_MASK) >> GPIO_PORT_SHIFT;
|
||||
unsigned int ocr = (gpio_mode & GPIO_OCR_MASK) >> GPIO_OCR_SHIFT;
|
||||
unsigned int tmp;
|
||||
|
||||
/* Pullup enable */
|
||||
|
@ -57,7 +58,7 @@ void imx_gpio_mode(int gpio_mode)
|
|||
GPR(port) &= ~(1<<pin);
|
||||
|
||||
/* use as gpio? */
|
||||
if( ocr == 3 )
|
||||
if(gpio_mode & GPIO_GIUS)
|
||||
GIUS(port) |= (1<<pin);
|
||||
else
|
||||
GIUS(port) &= ~(1<<pin);
|
||||
|
@ -72,20 +73,20 @@ void imx_gpio_mode(int gpio_mode)
|
|||
tmp |= (ocr << (pin*2));
|
||||
OCR1(port) = tmp;
|
||||
|
||||
if( gpio_mode & GPIO_AOUT )
|
||||
ICONFA1(port) &= ~( 3<<(pin*2));
|
||||
if( gpio_mode & GPIO_BOUT )
|
||||
ICONFB1(port) &= ~( 3<<(pin*2));
|
||||
ICONFA1(port) &= ~( 3<<(pin*2));
|
||||
ICONFA1(port) |= ((gpio_mode >> GPIO_AOUT_SHIFT) & 3) << (pin * 2);
|
||||
ICONFB1(port) &= ~( 3<<(pin*2));
|
||||
ICONFB1(port) |= ((gpio_mode >> GPIO_BOUT_SHIFT) & 3) << (pin * 2);
|
||||
} else {
|
||||
tmp = OCR2(port);
|
||||
tmp &= ~( 3<<((pin-16)*2));
|
||||
tmp |= (ocr << ((pin-16)*2));
|
||||
OCR2(port) = tmp;
|
||||
|
||||
if( gpio_mode & GPIO_AOUT )
|
||||
ICONFA2(port) &= ~( 3<<((pin-16)*2));
|
||||
if( gpio_mode & GPIO_BOUT )
|
||||
ICONFB2(port) &= ~( 3<<((pin-16)*2));
|
||||
ICONFA2(port) &= ~( 3<<((pin-16)*2));
|
||||
ICONFA2(port) |= ((gpio_mode >> GPIO_AOUT_SHIFT) & 3) << ((pin-16) * 2);
|
||||
ICONFB2(port) &= ~( 3<<((pin-16)*2));
|
||||
ICONFB2(port) |= ((gpio_mode >> GPIO_BOUT_SHIFT) & 3) << ((pin-16) * 2);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -17,7 +17,6 @@
|
|||
#include <asm/system.h>
|
||||
#include <asm/io.h>
|
||||
#include <asm/leds.h>
|
||||
#include <asm/mach-types.h>
|
||||
#include "leds.h"
|
||||
|
||||
/*
|
||||
|
|
|
@ -55,7 +55,7 @@ static void __init
|
|||
mx1ads_init(void)
|
||||
{
|
||||
#ifdef CONFIG_LEDS
|
||||
imx_gpio_mode(GPIO_PORTA | GPIO_OUT | GPIO_GPIO | 2);
|
||||
imx_gpio_mode(GPIO_PORTA | GPIO_OUT | 2);
|
||||
#endif
|
||||
platform_add_devices(devices, ARRAY_SIZE(devices));
|
||||
}
|
||||
|
|
|
@ -27,7 +27,6 @@ unsigned long iop3xx_pcibios_min_mem = 0;
|
|||
/*
|
||||
* Default power-off for EP80219
|
||||
*/
|
||||
#include <asm/mach-types.h>
|
||||
|
||||
static inline void ep80219_send_to_pic(__u8 c) {
|
||||
}
|
||||
|
|
|
@ -23,7 +23,6 @@
|
|||
#include <asm/io.h>
|
||||
#include <asm/irq.h>
|
||||
#include <asm/uaccess.h>
|
||||
#include <asm/mach-types.h>
|
||||
#include <asm/mach/irq.h>
|
||||
#include <asm/mach/time.h>
|
||||
|
||||
|
|
|
@ -23,7 +23,6 @@
|
|||
#include <asm/io.h>
|
||||
#include <asm/irq.h>
|
||||
#include <asm/uaccess.h>
|
||||
#include <asm/mach-types.h>
|
||||
#include <asm/mach/irq.h>
|
||||
#include <asm/mach/time.h>
|
||||
|
||||
|
|
|
@ -21,7 +21,6 @@
|
|||
#include <asm/page.h>
|
||||
|
||||
#include <asm/mach/map.h>
|
||||
#include <asm/mach-types.h>
|
||||
|
||||
|
||||
/*
|
||||
|
|
|
@ -21,7 +21,6 @@
|
|||
#include <asm/page.h>
|
||||
|
||||
#include <asm/mach/map.h>
|
||||
#include <asm/mach-types.h>
|
||||
|
||||
|
||||
/*
|
||||
|
|
|
@ -21,7 +21,6 @@
|
|||
#include <asm/page.h>
|
||||
|
||||
#include <asm/mach/map.h>
|
||||
#include <asm/mach-types.h>
|
||||
|
||||
|
||||
/*
|
||||
|
|
|
@ -21,7 +21,6 @@
|
|||
#include <asm/page.h>
|
||||
|
||||
#include <asm/mach/map.h>
|
||||
#include <asm/mach-types.h>
|
||||
|
||||
|
||||
/*
|
||||
|
|
|
@ -30,7 +30,6 @@
|
|||
#include <asm/setup.h>
|
||||
#include <asm/memory.h>
|
||||
#include <asm/hardware.h>
|
||||
#include <asm/mach-types.h>
|
||||
#include <asm/irq.h>
|
||||
#include <asm/system.h>
|
||||
#include <asm/tlbflush.h>
|
||||
|
@ -168,7 +167,7 @@ static struct plat_serial8250_port ixp2000_serial_port[] = {
|
|||
|
||||
static struct resource ixp2000_uart_resource = {
|
||||
.start = IXP2000_UART_PHYS_BASE,
|
||||
.end = IXP2000_UART_PHYS_BASE + 0xffff,
|
||||
.end = IXP2000_UART_PHYS_BASE + 0x1f,
|
||||
.flags = IORESOURCE_MEM,
|
||||
};
|
||||
|
||||
|
|
|
@ -28,7 +28,6 @@
|
|||
#include <asm/io.h>
|
||||
#include <asm/irq.h>
|
||||
#include <asm/system.h>
|
||||
#include <asm/mach-types.h>
|
||||
#include <asm/hardware.h>
|
||||
|
||||
#include <asm/mach/pci.h>
|
||||
|
|
|
@ -123,7 +123,7 @@ static void __init ixdp425_init(void)
|
|||
platform_add_devices(ixdp425_devices, ARRAY_SIZE(ixdp425_devices));
|
||||
}
|
||||
|
||||
#ifdef CONFIG_ARCH_IXDP465
|
||||
#ifdef CONFIG_ARCH_IXDP425
|
||||
MACHINE_START(IXDP425, "Intel IXDP425 Development Platform")
|
||||
/* Maintainer: MontaVista Software, Inc. */
|
||||
.phys_ram = PHYS_OFFSET,
|
||||
|
|
|
@ -12,7 +12,6 @@
|
|||
#include <asm/page.h>
|
||||
|
||||
#include <asm/mach/map.h>
|
||||
#include <asm/arch/hardware.h>
|
||||
|
||||
/*
|
||||
* IRQ base register
|
||||
|
|
|
@ -36,6 +36,7 @@
|
|||
#include <asm/arch/mmc.h>
|
||||
#include <asm/arch/udc.h>
|
||||
#include <asm/arch/corgi.h>
|
||||
#include <asm/arch/sharpsl.h>
|
||||
|
||||
#include <asm/mach/sharpsl_param.h>
|
||||
#include <asm/hardware/scoop.h>
|
||||
|
|
|
@ -19,7 +19,6 @@
|
|||
#include <linux/kernel.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/hardware.h>
|
||||
|
|
|
@ -34,6 +34,7 @@
|
|||
#include <asm/arch/udc.h>
|
||||
#include <asm/arch/pxafb.h>
|
||||
#include <asm/arch/mmc.h>
|
||||
#include <asm/arch/i2c.h>
|
||||
|
||||
#include "generic.h"
|
||||
|
||||
|
|
|
@ -40,7 +40,6 @@
|
|||
#include <asm/hardware.h>
|
||||
#include <asm/io.h>
|
||||
#include <asm/irq.h>
|
||||
#include <asm/mach-types.h>
|
||||
|
||||
#include "devs.h"
|
||||
#include "usb-simtec.h"
|
||||
|
|
|
@ -111,11 +111,11 @@ static struct mtd_partition collie_partitions[] = {
|
|||
|
||||
static void collie_set_vpp(int vpp)
|
||||
{
|
||||
write_scoop_reg(&colliescoop_device.dev, SCOOP_GPCR, read_scoop_reg(SCOOP_GPCR) | COLLIE_SCP_VPEN);
|
||||
write_scoop_reg(&colliescoop_device.dev, SCOOP_GPCR, read_scoop_reg(&colliescoop_device.dev, SCOOP_GPCR) | COLLIE_SCP_VPEN);
|
||||
if (vpp)
|
||||
write_scoop_reg(&colliescoop_device.dev, SCOOP_GPWR, read_scoop_reg(SCOOP_GPWR) | COLLIE_SCP_VPEN);
|
||||
write_scoop_reg(&colliescoop_device.dev, SCOOP_GPWR, read_scoop_reg(&colliescoop_device.dev, SCOOP_GPWR) | COLLIE_SCP_VPEN);
|
||||
else
|
||||
write_scoop_reg(&colliescoop_device.dev, SCOOP_GPWR, read_scoop_reg(SCOOP_GPWR) & ~COLLIE_SCP_VPEN);
|
||||
write_scoop_reg(&colliescoop_device.dev, SCOOP_GPWR, read_scoop_reg(&colliescoop_device.dev, SCOOP_GPWR) & ~COLLIE_SCP_VPEN);
|
||||
}
|
||||
|
||||
static struct flash_platform_data collie_flash_data = {
|
||||
|
|
|
@ -30,7 +30,6 @@
|
|||
#include <asm/io.h>
|
||||
#include <asm/irq.h>
|
||||
#include <asm/leds.h>
|
||||
#include <asm/mach-types.h>
|
||||
#include <asm/hardware/amba.h>
|
||||
#include <asm/hardware/amba_clcd.h>
|
||||
#include <asm/hardware/arm_timer.h>
|
||||
|
@ -52,8 +51,9 @@
|
|||
*
|
||||
* Setup a VA for the Versatile Vectored Interrupt Controller.
|
||||
*/
|
||||
#define VA_VIC_BASE IO_ADDRESS(VERSATILE_VIC_BASE)
|
||||
#define VA_SIC_BASE IO_ADDRESS(VERSATILE_SIC_BASE)
|
||||
#define __io_address(n) __io(IO_ADDRESS(n))
|
||||
#define VA_VIC_BASE __io_address(VERSATILE_VIC_BASE)
|
||||
#define VA_SIC_BASE __io_address(VERSATILE_SIC_BASE)
|
||||
|
||||
static void vic_mask_irq(unsigned int irq)
|
||||
{
|
||||
|
@ -214,7 +214,7 @@ void __init versatile_map_io(void)
|
|||
iotable_init(versatile_io_desc, ARRAY_SIZE(versatile_io_desc));
|
||||
}
|
||||
|
||||
#define VERSATILE_REFCOUNTER (IO_ADDRESS(VERSATILE_SYS_BASE) + VERSATILE_SYS_24MHz_OFFSET)
|
||||
#define VERSATILE_REFCOUNTER (__io_address(VERSATILE_SYS_BASE) + VERSATILE_SYS_24MHz_OFFSET)
|
||||
|
||||
/*
|
||||
* This is the Versatile sched_clock implementation. This has
|
||||
|
@ -231,7 +231,7 @@ unsigned long long sched_clock(void)
|
|||
}
|
||||
|
||||
|
||||
#define VERSATILE_FLASHCTRL (IO_ADDRESS(VERSATILE_SYS_BASE) + VERSATILE_SYS_FLASH_OFFSET)
|
||||
#define VERSATILE_FLASHCTRL (__io_address(VERSATILE_SYS_BASE) + VERSATILE_SYS_FLASH_OFFSET)
|
||||
|
||||
static int versatile_flash_init(void)
|
||||
{
|
||||
|
@ -309,7 +309,7 @@ static struct platform_device smc91x_device = {
|
|||
.resource = smc91x_resources,
|
||||
};
|
||||
|
||||
#define VERSATILE_SYSMCI (IO_ADDRESS(VERSATILE_SYS_BASE) + VERSATILE_SYS_MCI_OFFSET)
|
||||
#define VERSATILE_SYSMCI (__io_address(VERSATILE_SYS_BASE) + VERSATILE_SYS_MCI_OFFSET)
|
||||
|
||||
unsigned int mmc_status(struct device *dev)
|
||||
{
|
||||
|
@ -343,11 +343,11 @@ static const struct icst307_params versatile_oscvco_params = {
|
|||
|
||||
static void versatile_oscvco_set(struct clk *clk, struct icst307_vco vco)
|
||||
{
|
||||
unsigned long sys_lock = IO_ADDRESS(VERSATILE_SYS_BASE) + VERSATILE_SYS_LOCK_OFFSET;
|
||||
void __iomem *sys_lock = __io_address(VERSATILE_SYS_BASE) + VERSATILE_SYS_LOCK_OFFSET;
|
||||
#if defined(CONFIG_ARCH_VERSATILE_PB)
|
||||
unsigned long sys_osc = IO_ADDRESS(VERSATILE_SYS_BASE) + VERSATILE_SYS_OSC4_OFFSET;
|
||||
void __iomem *sys_osc = __io_address(VERSATILE_SYS_BASE) + VERSATILE_SYS_OSC4_OFFSET;
|
||||
#elif defined(CONFIG_MACH_VERSATILE_AB)
|
||||
unsigned long sys_osc = IO_ADDRESS(VERSATILE_SYS_BASE) + VERSATILE_SYS_OSC1_OFFSET;
|
||||
void __iomem *sys_osc = __io_address(VERSATILE_SYS_BASE) + VERSATILE_SYS_OSC1_OFFSET;
|
||||
#endif
|
||||
u32 val;
|
||||
|
||||
|
@ -483,7 +483,7 @@ static struct clcd_panel epson_2_2_in = {
|
|||
*/
|
||||
static struct clcd_panel *versatile_clcd_panel(void)
|
||||
{
|
||||
unsigned long sys_clcd = IO_ADDRESS(VERSATILE_SYS_BASE) + VERSATILE_SYS_CLCD_OFFSET;
|
||||
void __iomem *sys_clcd = __io_address(VERSATILE_SYS_BASE) + VERSATILE_SYS_CLCD_OFFSET;
|
||||
struct clcd_panel *panel = &vga;
|
||||
u32 val;
|
||||
|
||||
|
@ -510,7 +510,7 @@ static struct clcd_panel *versatile_clcd_panel(void)
|
|||
*/
|
||||
static void versatile_clcd_disable(struct clcd_fb *fb)
|
||||
{
|
||||
unsigned long sys_clcd = IO_ADDRESS(VERSATILE_SYS_BASE) + VERSATILE_SYS_CLCD_OFFSET;
|
||||
void __iomem *sys_clcd = __io_address(VERSATILE_SYS_BASE) + VERSATILE_SYS_CLCD_OFFSET;
|
||||
u32 val;
|
||||
|
||||
val = readl(sys_clcd);
|
||||
|
@ -522,7 +522,7 @@ static void versatile_clcd_disable(struct clcd_fb *fb)
|
|||
* If the LCD is Sanyo 2x5 in on the IB2 board, turn the back-light off
|
||||
*/
|
||||
if (fb->panel == &sanyo_2_5_in) {
|
||||
unsigned long versatile_ib2_ctrl = IO_ADDRESS(VERSATILE_IB2_CTRL);
|
||||
void __iomem *versatile_ib2_ctrl = __io_address(VERSATILE_IB2_CTRL);
|
||||
unsigned long ctrl;
|
||||
|
||||
ctrl = readl(versatile_ib2_ctrl);
|
||||
|
@ -537,7 +537,7 @@ static void versatile_clcd_disable(struct clcd_fb *fb)
|
|||
*/
|
||||
static void versatile_clcd_enable(struct clcd_fb *fb)
|
||||
{
|
||||
unsigned long sys_clcd = IO_ADDRESS(VERSATILE_SYS_BASE) + VERSATILE_SYS_CLCD_OFFSET;
|
||||
void __iomem *sys_clcd = __io_address(VERSATILE_SYS_BASE) + VERSATILE_SYS_CLCD_OFFSET;
|
||||
u32 val;
|
||||
|
||||
val = readl(sys_clcd);
|
||||
|
@ -571,7 +571,7 @@ static void versatile_clcd_enable(struct clcd_fb *fb)
|
|||
* If the LCD is Sanyo 2x5 in on the IB2 board, turn the back-light on
|
||||
*/
|
||||
if (fb->panel == &sanyo_2_5_in) {
|
||||
unsigned long versatile_ib2_ctrl = IO_ADDRESS(VERSATILE_IB2_CTRL);
|
||||
void __iomem *versatile_ib2_ctrl = __io_address(VERSATILE_IB2_CTRL);
|
||||
unsigned long ctrl;
|
||||
|
||||
ctrl = readl(versatile_ib2_ctrl);
|
||||
|
@ -720,7 +720,7 @@ static struct amba_device *amba_devs[] __initdata = {
|
|||
};
|
||||
|
||||
#ifdef CONFIG_LEDS
|
||||
#define VA_LEDS_BASE (IO_ADDRESS(VERSATILE_SYS_BASE) + VERSATILE_SYS_LED_OFFSET)
|
||||
#define VA_LEDS_BASE (__io_address(VERSATILE_SYS_BASE) + VERSATILE_SYS_LED_OFFSET)
|
||||
|
||||
static void versatile_leds_event(led_event_t ledevt)
|
||||
{
|
||||
|
@ -778,11 +778,11 @@ void __init versatile_init(void)
|
|||
/*
|
||||
* Where is the timer (VA)?
|
||||
*/
|
||||
#define TIMER0_VA_BASE IO_ADDRESS(VERSATILE_TIMER0_1_BASE)
|
||||
#define TIMER1_VA_BASE (IO_ADDRESS(VERSATILE_TIMER0_1_BASE) + 0x20)
|
||||
#define TIMER2_VA_BASE IO_ADDRESS(VERSATILE_TIMER2_3_BASE)
|
||||
#define TIMER3_VA_BASE (IO_ADDRESS(VERSATILE_TIMER2_3_BASE) + 0x20)
|
||||
#define VA_IC_BASE IO_ADDRESS(VERSATILE_VIC_BASE)
|
||||
#define TIMER0_VA_BASE __io_address(VERSATILE_TIMER0_1_BASE)
|
||||
#define TIMER1_VA_BASE (__io_address(VERSATILE_TIMER0_1_BASE) + 0x20)
|
||||
#define TIMER2_VA_BASE __io_address(VERSATILE_TIMER2_3_BASE)
|
||||
#define TIMER3_VA_BASE (__io_address(VERSATILE_TIMER2_3_BASE) + 0x20)
|
||||
#define VA_IC_BASE __io_address(VERSATILE_VIC_BASE)
|
||||
|
||||
/*
|
||||
* How long is the timer interval?
|
||||
|
@ -877,12 +877,12 @@ static void __init versatile_timer_init(void)
|
|||
* VERSATILE_REFCLK is 32KHz
|
||||
* VERSATILE_TIMCLK is 1MHz
|
||||
*/
|
||||
val = readl(IO_ADDRESS(VERSATILE_SCTL_BASE));
|
||||
val = readl(__io_address(VERSATILE_SCTL_BASE));
|
||||
writel((VERSATILE_TIMCLK << VERSATILE_TIMER1_EnSel) |
|
||||
(VERSATILE_TIMCLK << VERSATILE_TIMER2_EnSel) |
|
||||
(VERSATILE_TIMCLK << VERSATILE_TIMER3_EnSel) |
|
||||
(VERSATILE_TIMCLK << VERSATILE_TIMER4_EnSel) | val,
|
||||
IO_ADDRESS(VERSATILE_SCTL_BASE));
|
||||
__io_address(VERSATILE_SCTL_BASE));
|
||||
|
||||
/*
|
||||
* Initialise to a known state (all timers off)
|
||||
|
|
|
@ -29,7 +29,6 @@
|
|||
#include <asm/irq.h>
|
||||
#include <asm/system.h>
|
||||
#include <asm/mach/pci.h>
|
||||
#include <asm/mach-types.h>
|
||||
|
||||
/*
|
||||
* these spaces are mapped using the following base registers:
|
||||
|
|
|
@ -370,21 +370,21 @@ config CPU_BIG_ENDIAN
|
|||
|
||||
config CPU_ICACHE_DISABLE
|
||||
bool "Disable I-Cache"
|
||||
depends on CPU_ARM920T || CPU_ARM922T || CPU_ARM925T || CPU_ARM926T || CPU_ARM1020
|
||||
depends on CPU_ARM920T || CPU_ARM922T || CPU_ARM925T || CPU_ARM926T || CPU_ARM1020 || CPU_V6
|
||||
help
|
||||
Say Y here to disable the processor instruction cache. Unless
|
||||
you have a reason not to or are unsure, say N.
|
||||
|
||||
config CPU_DCACHE_DISABLE
|
||||
bool "Disable D-Cache"
|
||||
depends on CPU_ARM920T || CPU_ARM922T || CPU_ARM925T || CPU_ARM926T || CPU_ARM1020
|
||||
depends on CPU_ARM920T || CPU_ARM922T || CPU_ARM925T || CPU_ARM926T || CPU_ARM1020 || CPU_V6
|
||||
help
|
||||
Say Y here to disable the processor data cache. Unless
|
||||
you have a reason not to or are unsure, say N.
|
||||
|
||||
config CPU_DCACHE_WRITETHROUGH
|
||||
bool "Force write through D-cache"
|
||||
depends on (CPU_ARM920T || CPU_ARM922T || CPU_ARM925T || CPU_ARM926T || CPU_ARM1020) && !CPU_DCACHE_DISABLE
|
||||
depends on (CPU_ARM920T || CPU_ARM922T || CPU_ARM925T || CPU_ARM926T || CPU_ARM1020 || CPU_V6) && !CPU_DCACHE_DISABLE
|
||||
default y if CPU_ARM925T
|
||||
help
|
||||
Say Y here to use the data cache in writethrough mode. Unless you
|
||||
|
@ -399,7 +399,7 @@ config CPU_CACHE_ROUND_ROBIN
|
|||
|
||||
config CPU_BPREDICT_DISABLE
|
||||
bool "Disable branch prediction"
|
||||
depends on CPU_ARM1020
|
||||
depends on CPU_ARM1020 || CPU_V6
|
||||
help
|
||||
Say Y here to disable branch prediction. If unsure, say N.
|
||||
|
||||
|
|
|
@ -20,6 +20,11 @@
|
|||
*/
|
||||
.align 5
|
||||
ENTRY(v6_early_abort)
|
||||
#ifdef CONFIG_CPU_MPCORE
|
||||
clrex
|
||||
#else
|
||||
strex r0, r1, [sp] @ Clear the exclusive monitor
|
||||
#endif
|
||||
mrc p15, 0, r1, c5, c0, 0 @ get FSR
|
||||
mrc p15, 0, r0, c6, c0, 0 @ get FAR
|
||||
/*
|
||||
|
|
|
@ -330,6 +330,9 @@ do_alignment_ldrdstrd(unsigned long addr, unsigned long instr,
|
|||
{
|
||||
unsigned int rd = RD_BITS(instr);
|
||||
|
||||
if (((rd & 1) == 1) || (rd == 14))
|
||||
goto bad;
|
||||
|
||||
ai_dword += 1;
|
||||
|
||||
if (user_mode(regs))
|
||||
|
@ -361,7 +364,8 @@ do_alignment_ldrdstrd(unsigned long addr, unsigned long instr,
|
|||
}
|
||||
|
||||
return TYPE_LDST;
|
||||
|
||||
bad:
|
||||
return TYPE_ERROR;
|
||||
fault:
|
||||
return TYPE_FAULT;
|
||||
}
|
||||
|
@ -663,6 +667,8 @@ do_alignment(unsigned long addr, unsigned int fsr, struct pt_regs *regs)
|
|||
else if ((instr & 0x001000f0) == 0x000000d0 || /* LDRD */
|
||||
(instr & 0x001000f0) == 0x000000f0) /* STRD */
|
||||
handler = do_alignment_ldrdstrd;
|
||||
else if ((instr & 0x01f00ff0) == 0x01000090) /* SWP */
|
||||
goto swp;
|
||||
else
|
||||
goto bad;
|
||||
break;
|
||||
|
@ -733,6 +739,9 @@ do_alignment(unsigned long addr, unsigned int fsr, struct pt_regs *regs)
|
|||
do_bad_area(current, current->mm, addr, fsr, regs);
|
||||
return 0;
|
||||
|
||||
swp:
|
||||
printk(KERN_ERR "Alignment trap: not handling swp instruction\n");
|
||||
|
||||
bad:
|
||||
/*
|
||||
* Oops, we didn't handle the instruction.
|
||||
|
|
|
@ -18,6 +18,7 @@
|
|||
#define HARVARD_CACHE
|
||||
#define CACHE_LINE_SIZE 32
|
||||
#define D_CACHE_LINE_SIZE 32
|
||||
#define BTB_FLUSH_SIZE 8
|
||||
|
||||
/*
|
||||
* v6_flush_cache_all()
|
||||
|
@ -98,7 +99,13 @@ ENTRY(v6_coherent_user_range)
|
|||
mcr p15, 0, r0, c7, c5, 1 @ invalidate I line
|
||||
#endif
|
||||
mcr p15, 0, r0, c7, c5, 7 @ invalidate BTB entry
|
||||
add r0, r0, #CACHE_LINE_SIZE
|
||||
add r0, r0, #BTB_FLUSH_SIZE
|
||||
mcr p15, 0, r0, c7, c5, 7 @ invalidate BTB entry
|
||||
add r0, r0, #BTB_FLUSH_SIZE
|
||||
mcr p15, 0, r0, c7, c5, 7 @ invalidate BTB entry
|
||||
add r0, r0, #BTB_FLUSH_SIZE
|
||||
mcr p15, 0, r0, c7, c5, 7 @ invalidate BTB entry
|
||||
add r0, r0, #BTB_FLUSH_SIZE
|
||||
cmp r0, r1
|
||||
blo 1b
|
||||
#ifdef HARVARD_CACHE
|
||||
|
|
|
@ -17,6 +17,24 @@
|
|||
|
||||
#ifdef CONFIG_CPU_CACHE_VIPT
|
||||
|
||||
#define ALIAS_FLUSH_START 0xffff4000
|
||||
|
||||
#define TOP_PTE(x) pte_offset_kernel(top_pmd, x)
|
||||
|
||||
static void flush_pfn_alias(unsigned long pfn, unsigned long vaddr)
|
||||
{
|
||||
unsigned long to = ALIAS_FLUSH_START + (CACHE_COLOUR(vaddr) << PAGE_SHIFT);
|
||||
|
||||
set_pte(TOP_PTE(to), pfn_pte(pfn, PAGE_KERNEL));
|
||||
flush_tlb_kernel_page(to);
|
||||
|
||||
asm( "mcrr p15, 0, %1, %0, c14\n"
|
||||
" mcrr p15, 0, %1, %0, c5\n"
|
||||
:
|
||||
: "r" (to), "r" (to + PAGE_SIZE - L1_CACHE_BYTES)
|
||||
: "cc");
|
||||
}
|
||||
|
||||
void flush_cache_mm(struct mm_struct *mm)
|
||||
{
|
||||
if (cache_is_vivt()) {
|
||||
|
@ -67,24 +85,6 @@ void flush_cache_page(struct vm_area_struct *vma, unsigned long user_addr, unsig
|
|||
if (cache_is_vipt_aliasing())
|
||||
flush_pfn_alias(pfn, user_addr);
|
||||
}
|
||||
|
||||
#define ALIAS_FLUSH_START 0xffff4000
|
||||
|
||||
#define TOP_PTE(x) pte_offset_kernel(top_pmd, x)
|
||||
|
||||
static void flush_pfn_alias(unsigned long pfn, unsigned long vaddr)
|
||||
{
|
||||
unsigned long to = ALIAS_FLUSH_START + (CACHE_COLOUR(vaddr) << PAGE_SHIFT);
|
||||
|
||||
set_pte(TOP_PTE(to), pfn_pte(pfn, PAGE_KERNEL));
|
||||
flush_tlb_kernel_page(to);
|
||||
|
||||
asm( "mcrr p15, 0, %1, %0, c14\n"
|
||||
" mcrr p15, 0, %1, %0, c5\n"
|
||||
:
|
||||
: "r" (to), "r" (to + PAGE_SIZE - L1_CACHE_BYTES)
|
||||
: "cc");
|
||||
}
|
||||
#else
|
||||
#define flush_pfn_alias(pfn,vaddr) do { } while (0)
|
||||
#endif
|
||||
|
|
|
@ -25,7 +25,6 @@
|
|||
#include <asm/mach/map.h>
|
||||
#include <asm/hardware/clock.h>
|
||||
#include <asm/io.h>
|
||||
#include <asm/mach-types.h>
|
||||
#include <asm/setup.h>
|
||||
|
||||
#include <asm/arch/board.h>
|
||||
|
|
|
@ -21,7 +21,6 @@
|
|||
#include <linux/err.h>
|
||||
|
||||
#include <asm/hardware.h>
|
||||
#include <asm/mach-types.h>
|
||||
#include <asm/io.h>
|
||||
#include <asm/system.h>
|
||||
|
||||
|
|
|
@ -33,7 +33,6 @@
|
|||
#include <asm/irq.h>
|
||||
#include <asm/system.h>
|
||||
#include <asm/hardware.h>
|
||||
#include <asm/mach-types.h>
|
||||
|
||||
#include <asm/arch/mux.h>
|
||||
#include <asm/arch/usb.h>
|
||||
|
|
|
@ -2,11 +2,17 @@
|
|||
#
|
||||
# This file is linux/arch/arm/tools/mach-types
|
||||
#
|
||||
# Up to date versions of this file can be obtained from:
|
||||
#
|
||||
# http://www.arm.linux.org.uk/developer/machines/?action=download
|
||||
#
|
||||
# Please do not send patches to this file; it is automatically generated!
|
||||
# To add an entry into this database, please see Documentation/arm/README,
|
||||
# or contact rmk@arm.linux.org.uk
|
||||
# or visit:
|
||||
#
|
||||
# Last update: Thu Jun 23 20:19:33 2005
|
||||
# http://www.arm.linux.org.uk/developer/machines/?action=new
|
||||
#
|
||||
# Last update: Mon Oct 10 09:46:25 2005
|
||||
#
|
||||
# machine_is_xxx CONFIG_xxxx MACH_TYPE_xxx number
|
||||
#
|
||||
|
@ -421,7 +427,7 @@ mt02 MACH_MT02 MT02 410
|
|||
mport3s MACH_MPORT3S MPORT3S 411
|
||||
ra_alpha MACH_RA_ALPHA RA_ALPHA 412
|
||||
xcep MACH_XCEP XCEP 413
|
||||
arcom_mercury MACH_ARCOM_MERCURY ARCOM_MERCURY 414
|
||||
arcom_vulcan MACH_ARCOM_VULCAN ARCOM_VULCAN 414
|
||||
stargate MACH_STARGATE STARGATE 415
|
||||
armadilloj MACH_ARMADILLOJ ARMADILLOJ 416
|
||||
elroy_jack MACH_ELROY_JACK ELROY_JACK 417
|
||||
|
@ -454,7 +460,7 @@ esl_sarva MACH_ESL_SARVA ESL_SARVA 443
|
|||
xm250 MACH_XM250 XM250 444
|
||||
t6tc1xb MACH_T6TC1XB T6TC1XB 445
|
||||
ess710 MACH_ESS710 ESS710 446
|
||||
mx3ads MACH_MX3ADS MX3ADS 447
|
||||
mx31ads MACH_MX3ADS MX3ADS 447
|
||||
himalaya MACH_HIMALAYA HIMALAYA 448
|
||||
bolfenk MACH_BOLFENK BOLFENK 449
|
||||
at91rm9200kr MACH_AT91RM9200KR AT91RM9200KR 450
|
||||
|
@ -787,3 +793,79 @@ ez_ixp42x MACH_EZ_IXP42X EZ_IXP42X 778
|
|||
tapwave_zodiac MACH_TAPWAVE_ZODIAC TAPWAVE_ZODIAC 779
|
||||
universalmeter MACH_UNIVERSALMETER UNIVERSALMETER 780
|
||||
hicoarm9 MACH_HICOARM9 HICOARM9 781
|
||||
pnx4008 MACH_PNX4008 PNX4008 782
|
||||
kws6000 MACH_KWS6000 KWS6000 783
|
||||
portux920t MACH_PORTUX920T PORTUX920T 784
|
||||
ez_x5 MACH_EZ_X5 EZ_X5 785
|
||||
omap_rudolph MACH_OMAP_RUDOLPH OMAP_RUDOLPH 786
|
||||
cpuat91 MACH_CPUAT91 CPUAT91 787
|
||||
rea9200 MACH_REA9200 REA9200 788
|
||||
acts_pune_sa1110 MACH_ACTS_PUNE_SA1110 ACTS_PUNE_SA1110 789
|
||||
ixp425 MACH_IXP425 IXP425 790
|
||||
argonplusodyssey MACH_ODYSSEY ODYSSEY 791
|
||||
perch MACH_PERCH PERCH 792
|
||||
eis05r1 MACH_EIS05R1 EIS05R1 793
|
||||
pepperpad MACH_PEPPERPAD PEPPERPAD 794
|
||||
sb3010 MACH_SB3010 SB3010 795
|
||||
rm9200 MACH_RM9200 RM9200 796
|
||||
dma03 MACH_DMA03 DMA03 797
|
||||
road_s101 MACH_ROAD_S101 ROAD_S101 798
|
||||
iq_nextgen_a MACH_IQ_NEXTGEN_A IQ_NEXTGEN_A 799
|
||||
iq_nextgen_b MACH_IQ_NEXTGEN_B IQ_NEXTGEN_B 800
|
||||
iq_nextgen_c MACH_IQ_NEXTGEN_C IQ_NEXTGEN_C 801
|
||||
iq_nextgen_d MACH_IQ_NEXTGEN_D IQ_NEXTGEN_D 802
|
||||
iq_nextgen_e MACH_IQ_NEXTGEN_E IQ_NEXTGEN_E 803
|
||||
mallow_at91 MACH_MALLOW_AT91 MALLOW_AT91 804
|
||||
cybertracker MACH_CYBERTRACKER CYBERTRACKER 805
|
||||
gesbc931x MACH_GESBC931X GESBC931X 806
|
||||
centipad MACH_CENTIPAD CENTIPAD 807
|
||||
armsoc MACH_ARMSOC ARMSOC 808
|
||||
se4200 MACH_SE4200 SE4200 809
|
||||
ems197a MACH_EMS197A EMS197A 810
|
||||
micro9 MACH_MICRO9 MICRO9 811
|
||||
micro9l MACH_MICRO9L MICRO9L 812
|
||||
uc5471dsp MACH_UC5471DSP UC5471DSP 813
|
||||
sj5471eng MACH_SJ5471ENG SJ5471ENG 814
|
||||
none MACH_CMPXA26X CMPXA26X 815
|
||||
nc MACH_NC NC 816
|
||||
omap_palmte MACH_OMAP_PALMTE OMAP_PALMTE 817
|
||||
ajax52x MACH_AJAX52X AJAX52X 818
|
||||
siriustar MACH_SIRIUSTAR SIRIUSTAR 819
|
||||
iodata_hdlg MACH_IODATA_HDLG IODATA_HDLG 820
|
||||
at91rm9200utl MACH_AT91RM9200UTL AT91RM9200UTL 821
|
||||
biosafe MACH_BIOSAFE BIOSAFE 822
|
||||
mp1000 MACH_MP1000 MP1000 823
|
||||
parsy MACH_PARSY PARSY 824
|
||||
ccxp270 MACH_CCXP CCXP 825
|
||||
omap_gsample MACH_OMAP_GSAMPLE OMAP_GSAMPLE 826
|
||||
realview_eb MACH_REALVIEW_EB REALVIEW_EB 827
|
||||
samoa MACH_SAMOA SAMOA 828
|
||||
t3xscale MACH_T3XSCALE T3XSCALE 829
|
||||
i878 MACH_I878 I878 830
|
||||
borzoi MACH_BORZOI BORZOI 831
|
||||
gecko MACH_GECKO GECKO 832
|
||||
ds101 MACH_DS101 DS101 833
|
||||
omap_palmtt2 MACH_OMAP_PALMTT2 OMAP_PALMTT2 834
|
||||
xscale_palmld MACH_XSCALE_PALMLD XSCALE_PALMLD 835
|
||||
cc9c MACH_CC9C CC9C 836
|
||||
sbc1670 MACH_SBC1670 SBC1670 837
|
||||
ixdp28x5 MACH_IXDP28X5 IXDP28X5 838
|
||||
omap_palmtt MACH_OMAP_PALMTT OMAP_PALMTT 839
|
||||
ml696k MACH_ML696K ML696K 840
|
||||
arcom_zeus MACH_ARCOM_ZEUS ARCOM_ZEUS 841
|
||||
osiris MACH_OSIRIS OSIRIS 842
|
||||
maestro MACH_MAESTRO MAESTRO 843
|
||||
tunge2 MACH_TUNGE2 TUNGE2 844
|
||||
ixbbm MACH_IXBBM IXBBM 845
|
||||
mx27 MACH_MX27 MX27 846
|
||||
ax8004 MACH_AX8004 AX8004 847
|
||||
at91sam9261ek MACH_AT91SAM9261EK AT91SAM9261EK 848
|
||||
loft MACH_LOFT LOFT 849
|
||||
magpie MACH_MAGPIE MAGPIE 850
|
||||
mx21 MACH_MX21 MX21 851
|
||||
mb87m3400 MACH_MB87M3400 MB87M3400 852
|
||||
mguard_delta MACH_MGUARD_DELTA MGUARD_DELTA 853
|
||||
davinci_dvdp MACH_DAVINCI_DVDP DAVINCI_DVDP 854
|
||||
htcuniversal MACH_HTCUNIVERSAL HTCUNIVERSAL 855
|
||||
tpad MACH_TPAD TPAD 856
|
||||
roverp3 MACH_ROVERP3 ROVERP3 857
|
||||
|
|
|
@ -24,7 +24,7 @@ struct dma_coherent_mem {
|
|||
};
|
||||
|
||||
void *dma_alloc_coherent(struct device *dev, size_t size,
|
||||
dma_addr_t *dma_handle, unsigned int __nocast gfp)
|
||||
dma_addr_t *dma_handle, gfp_t gfp)
|
||||
{
|
||||
void *ret;
|
||||
struct dma_coherent_mem *mem = dev ? dev->dma_mem : NULL;
|
||||
|
|
|
@ -29,12 +29,12 @@
|
|||
#include <linux/efi.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/dmi.h>
|
||||
#include <linux/irq.h>
|
||||
|
||||
#include <asm/pgtable.h>
|
||||
#include <asm/io_apic.h>
|
||||
#include <asm/apic.h>
|
||||
#include <asm/io.h>
|
||||
#include <asm/irq.h>
|
||||
#include <asm/mpspec.h>
|
||||
|
||||
#ifdef CONFIG_X86_64
|
||||
|
|
|
@ -28,6 +28,22 @@ static void __init init_amd(struct cpuinfo_x86 *c)
|
|||
int mbytes = num_physpages >> (20-PAGE_SHIFT);
|
||||
int r;
|
||||
|
||||
#ifdef CONFIG_SMP
|
||||
unsigned long long value;
|
||||
|
||||
/* Disable TLB flush filter by setting HWCR.FFDIS on K8
|
||||
* bit 6 of msr C001_0015
|
||||
*
|
||||
* Errata 63 for SH-B3 steppings
|
||||
* Errata 122 for all steppings (F+ have it disabled by default)
|
||||
*/
|
||||
if (c->x86 == 15) {
|
||||
rdmsrl(MSR_K7_HWCR, value);
|
||||
value |= 1 << 6;
|
||||
wrmsrl(MSR_K7_HWCR, value);
|
||||
}
|
||||
#endif
|
||||
|
||||
/*
|
||||
* FIXME: We should handle the K5 here. Set up the write
|
||||
* range and also turn on MSR 83 bits 4 and 31 (write alloc,
|
||||
|
|
|
@ -23,7 +23,7 @@ struct dma_coherent_mem {
|
|||
};
|
||||
|
||||
void *dma_alloc_coherent(struct device *dev, size_t size,
|
||||
dma_addr_t *dma_handle, unsigned int __nocast gfp)
|
||||
dma_addr_t *dma_handle, gfp_t gfp)
|
||||
{
|
||||
void *ret;
|
||||
struct dma_coherent_mem *mem = dev ? dev->dma_mem : NULL;
|
||||
|
|
|
@ -338,7 +338,11 @@ get_sigframe(struct k_sigaction *ka, struct pt_regs * regs, size_t frame_size)
|
|||
esp = (unsigned long) ka->sa.sa_restorer;
|
||||
}
|
||||
|
||||
return (void __user *)((esp - frame_size) & -8ul);
|
||||
esp -= frame_size;
|
||||
/* Align the stack pointer according to the i386 ABI,
|
||||
* i.e. so that on function entry ((sp + 4) & 15) == 0. */
|
||||
esp = ((esp + 4) & -16ul) - 4;
|
||||
return (void __user *) esp;
|
||||
}
|
||||
|
||||
/* These symbols are defined with the addresses in the vsyscall page.
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
#include <linux/pci.h>
|
||||
#include <linux/acpi.h>
|
||||
#include <linux/init.h>
|
||||
#include <asm/hw_irq.h>
|
||||
#include <linux/irq.h>
|
||||
#include <asm/numa.h>
|
||||
#include "pci.h"
|
||||
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
#include <asm/io.h>
|
||||
#include <asm/smp.h>
|
||||
#include <asm/io_apic.h>
|
||||
#include <asm/hw_irq.h>
|
||||
#include <linux/irq.h>
|
||||
#include <linux/acpi.h>
|
||||
|
||||
#include "pci.h"
|
||||
|
|
|
@ -1016,6 +1016,11 @@ ia64_mca_cmc_int_handler(int cmc_irq, void *arg, struct pt_regs *ptregs)
|
|||
|
||||
cmc_polling_enabled = 1;
|
||||
spin_unlock(&cmc_history_lock);
|
||||
/* If we're being hit with CMC interrupts, we won't
|
||||
* ever execute the schedule_work() below. Need to
|
||||
* disable CMC interrupts on this processor now.
|
||||
*/
|
||||
ia64_mca_cmc_vector_disable(NULL);
|
||||
schedule_work(&cmc_disable_work);
|
||||
|
||||
/*
|
||||
|
|
|
@ -681,6 +681,15 @@ ENTRY(debug_trap)
|
|||
bl do_debug_trap
|
||||
bra error_code
|
||||
|
||||
ENTRY(ill_trap)
|
||||
/* void ill_trap(void) */
|
||||
SWITCH_TO_KERNEL_STACK
|
||||
SAVE_ALL
|
||||
ldi r1, #0 ; error_code ; FIXME
|
||||
mv r0, sp ; pt_regs
|
||||
bl do_ill_trap
|
||||
bra error_code
|
||||
|
||||
|
||||
/* Cache flushing handler */
|
||||
ENTRY(cache_flushing_handler)
|
||||
|
|
|
@ -5,8 +5,6 @@
|
|||
* Hitoshi Yamamoto
|
||||
*/
|
||||
|
||||
/* $Id$ */
|
||||
|
||||
/*
|
||||
* 'traps.c' handles hardware traps and faults after we have saved some
|
||||
* state in 'entry.S'.
|
||||
|
@ -35,6 +33,7 @@ asmlinkage void ei_handler(void);
|
|||
asmlinkage void rie_handler(void);
|
||||
asmlinkage void debug_trap(void);
|
||||
asmlinkage void cache_flushing_handler(void);
|
||||
asmlinkage void ill_trap(void);
|
||||
|
||||
#ifdef CONFIG_SMP
|
||||
extern void smp_reschedule_interrupt(void);
|
||||
|
@ -77,22 +76,22 @@ void set_eit_vector_entries(void)
|
|||
eit_vector[5] = BRA_INSN(default_eit_handler, 5);
|
||||
eit_vector[8] = BRA_INSN(rie_handler, 8);
|
||||
eit_vector[12] = BRA_INSN(alignment_check, 12);
|
||||
eit_vector[16] = 0xff000000UL;
|
||||
eit_vector[16] = BRA_INSN(ill_trap, 16);
|
||||
eit_vector[17] = BRA_INSN(debug_trap, 17);
|
||||
eit_vector[18] = BRA_INSN(system_call, 18);
|
||||
eit_vector[19] = 0xff000000UL;
|
||||
eit_vector[20] = 0xff000000UL;
|
||||
eit_vector[21] = 0xff000000UL;
|
||||
eit_vector[22] = 0xff000000UL;
|
||||
eit_vector[23] = 0xff000000UL;
|
||||
eit_vector[24] = 0xff000000UL;
|
||||
eit_vector[25] = 0xff000000UL;
|
||||
eit_vector[26] = 0xff000000UL;
|
||||
eit_vector[27] = 0xff000000UL;
|
||||
eit_vector[19] = BRA_INSN(ill_trap, 19);
|
||||
eit_vector[20] = BRA_INSN(ill_trap, 20);
|
||||
eit_vector[21] = BRA_INSN(ill_trap, 21);
|
||||
eit_vector[22] = BRA_INSN(ill_trap, 22);
|
||||
eit_vector[23] = BRA_INSN(ill_trap, 23);
|
||||
eit_vector[24] = BRA_INSN(ill_trap, 24);
|
||||
eit_vector[25] = BRA_INSN(ill_trap, 25);
|
||||
eit_vector[26] = BRA_INSN(ill_trap, 26);
|
||||
eit_vector[27] = BRA_INSN(ill_trap, 27);
|
||||
eit_vector[28] = BRA_INSN(cache_flushing_handler, 28);
|
||||
eit_vector[29] = 0xff000000UL;
|
||||
eit_vector[30] = 0xff000000UL;
|
||||
eit_vector[31] = 0xff000000UL;
|
||||
eit_vector[29] = BRA_INSN(ill_trap, 29);
|
||||
eit_vector[30] = BRA_INSN(ill_trap, 30);
|
||||
eit_vector[31] = BRA_INSN(ill_trap, 31);
|
||||
eit_vector[32] = BRA_INSN(ei_handler, 32);
|
||||
eit_vector[64] = BRA_INSN(pie_handler, 64);
|
||||
#ifdef CONFIG_MMU
|
||||
|
@ -286,7 +285,8 @@ asmlinkage void do_##name(struct pt_regs * regs, long error_code) \
|
|||
|
||||
DO_ERROR( 1, SIGTRAP, "debug trap", debug_trap)
|
||||
DO_ERROR_INFO(0x20, SIGILL, "reserved instruction ", rie_handler, ILL_ILLOPC, regs->bpc)
|
||||
DO_ERROR_INFO(0x100, SIGILL, "privilege instruction", pie_handler, ILL_PRVOPC, regs->bpc)
|
||||
DO_ERROR_INFO(0x100, SIGILL, "privileged instruction", pie_handler, ILL_PRVOPC, regs->bpc)
|
||||
DO_ERROR_INFO(-1, SIGILL, "illegal trap", ill_trap, ILL_ILLTRP, regs->bpc)
|
||||
|
||||
extern int handle_unaligned_access(unsigned long, struct pt_regs *);
|
||||
|
||||
|
@ -329,4 +329,3 @@ asmlinkage void do_alignment_check(struct pt_regs *regs, long error_code)
|
|||
set_fs(oldfs);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -31,7 +31,7 @@
|
|||
#include <asm/prom.h>
|
||||
#include <asm/ppc-pci.h>
|
||||
|
||||
static int __initdata s7a_workaround = -1;
|
||||
static int __devinitdata s7a_workaround = -1;
|
||||
|
||||
#if 0
|
||||
void pcibios_name_device(struct pci_dev *dev)
|
||||
|
@ -59,7 +59,7 @@ void pcibios_name_device(struct pci_dev *dev)
|
|||
DECLARE_PCI_FIXUP_HEADER(PCI_ANY_ID, PCI_ANY_ID, pcibios_name_device);
|
||||
#endif
|
||||
|
||||
static void __init check_s7a(void)
|
||||
static void __devinit check_s7a(void)
|
||||
{
|
||||
struct device_node *root;
|
||||
char *model;
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
OUTPUT_ARCH(powerpc)
|
||||
OUTPUT_ARCH(powerpc:common)
|
||||
SECTIONS
|
||||
{
|
||||
/* Read-only sections, merged into text segment: */
|
||||
|
|
|
@ -401,10 +401,10 @@ EXPORT_SYMBOL(__dma_sync);
|
|||
static inline void __dma_sync_page_highmem(struct page *page,
|
||||
unsigned long offset, size_t size, int direction)
|
||||
{
|
||||
size_t seg_size = min((size_t)PAGE_SIZE, size) - offset;
|
||||
size_t seg_size = min((size_t)(PAGE_SIZE - offset), size);
|
||||
size_t cur_size = seg_size;
|
||||
unsigned long flags, start, seg_offset = offset;
|
||||
int nr_segs = PAGE_ALIGN(size + (PAGE_SIZE - offset))/PAGE_SIZE;
|
||||
int nr_segs = 1 + ((size - seg_size) + PAGE_SIZE - 1)/PAGE_SIZE;
|
||||
int seg_nr = 0;
|
||||
|
||||
local_irq_save(flags);
|
||||
|
|
|
@ -27,7 +27,6 @@
|
|||
#include <linux/delay.h>
|
||||
#include <linux/ide.h>
|
||||
#include <linux/initrd.h>
|
||||
#include <linux/irq.h>
|
||||
#include <linux/seq_file.h>
|
||||
#include <linux/root_dev.h>
|
||||
#include <linux/tty.h>
|
||||
|
|
|
@ -30,7 +30,6 @@
|
|||
#include <linux/delay.h>
|
||||
#include <linux/ide.h>
|
||||
#include <linux/initrd.h>
|
||||
#include <linux/irq.h>
|
||||
#include <linux/seq_file.h>
|
||||
#include <linux/root_dev.h>
|
||||
#include <linux/tty.h>
|
||||
|
|
|
@ -28,7 +28,6 @@
|
|||
#include <linux/delay.h>
|
||||
#include <linux/ide.h>
|
||||
#include <linux/initrd.h>
|
||||
#include <linux/irq.h>
|
||||
#include <linux/seq_file.h>
|
||||
#include <linux/root_dev.h>
|
||||
#include <linux/tty.h>
|
||||
|
|
|
@ -28,7 +28,6 @@
|
|||
#include <linux/delay.h>
|
||||
#include <linux/ide.h>
|
||||
#include <linux/initrd.h>
|
||||
#include <linux/irq.h>
|
||||
#include <linux/seq_file.h>
|
||||
#include <linux/root_dev.h>
|
||||
#include <linux/tty.h>
|
||||
|
|
|
@ -24,7 +24,6 @@
|
|||
#include <linux/major.h>
|
||||
#include <linux/console.h>
|
||||
#include <linux/delay.h>
|
||||
#include <linux/irq.h>
|
||||
#include <linux/seq_file.h>
|
||||
#include <linux/root_dev.h>
|
||||
#include <linux/serial.h>
|
||||
|
|
|
@ -24,7 +24,6 @@
|
|||
#include <linux/major.h>
|
||||
#include <linux/console.h>
|
||||
#include <linux/delay.h>
|
||||
#include <linux/irq.h>
|
||||
#include <linux/seq_file.h>
|
||||
#include <linux/root_dev.h>
|
||||
#include <linux/serial.h>
|
||||
|
|
|
@ -24,7 +24,6 @@
|
|||
#include <linux/major.h>
|
||||
#include <linux/console.h>
|
||||
#include <linux/delay.h>
|
||||
#include <linux/irq.h>
|
||||
#include <linux/seq_file.h>
|
||||
#include <linux/root_dev.h>
|
||||
#include <linux/serial.h>
|
||||
|
|
|
@ -24,7 +24,6 @@
|
|||
#include <linux/major.h>
|
||||
#include <linux/console.h>
|
||||
#include <linux/delay.h>
|
||||
#include <linux/irq.h>
|
||||
#include <linux/seq_file.h>
|
||||
#include <linux/serial.h>
|
||||
#include <linux/module.h>
|
||||
|
|
|
@ -24,7 +24,6 @@
|
|||
#include <linux/major.h>
|
||||
#include <linux/console.h>
|
||||
#include <linux/delay.h>
|
||||
#include <linux/irq.h>
|
||||
#include <linux/seq_file.h>
|
||||
#include <linux/serial.h>
|
||||
#include <linux/module.h>
|
||||
|
|
|
@ -24,7 +24,6 @@
|
|||
#include <linux/major.h>
|
||||
#include <linux/console.h>
|
||||
#include <linux/delay.h>
|
||||
#include <linux/irq.h>
|
||||
#include <linux/seq_file.h>
|
||||
#include <linux/root_dev.h>
|
||||
#include <linux/serial.h>
|
||||
|
|
|
@ -23,7 +23,6 @@
|
|||
#include <linux/major.h>
|
||||
#include <linux/console.h>
|
||||
#include <linux/delay.h>
|
||||
#include <linux/irq.h>
|
||||
#include <linux/seq_file.h>
|
||||
#include <linux/serial.h>
|
||||
#include <linux/module.h>
|
||||
|
|
|
@ -30,7 +30,6 @@
|
|||
#include <linux/blkdev.h>
|
||||
#include <linux/console.h>
|
||||
#include <linux/delay.h>
|
||||
#include <linux/irq.h>
|
||||
#include <linux/root_dev.h>
|
||||
#include <linux/seq_file.h>
|
||||
#include <linux/serial.h>
|
||||
|
|
|
@ -35,7 +35,6 @@
|
|||
#include <asm/time.h>
|
||||
#include <asm/dma.h>
|
||||
#include <asm/io.h>
|
||||
#include <linux/irq.h>
|
||||
#include <asm/hw_irq.h>
|
||||
#include <asm/machdep.h>
|
||||
#include <asm/kgdb.h>
|
||||
|
|
|
@ -32,7 +32,6 @@
|
|||
#include <linux/module.h>
|
||||
#include <linux/delay.h>
|
||||
#include <linux/ide.h>
|
||||
#include <linux/irq.h>
|
||||
#include <linux/console.h>
|
||||
#include <linux/seq_file.h>
|
||||
#include <linux/root_dev.h>
|
||||
|
|
|
@ -21,7 +21,6 @@
|
|||
#include <linux/major.h>
|
||||
#include <linux/initrd.h>
|
||||
#include <linux/console.h>
|
||||
#include <linux/irq.h>
|
||||
#include <linux/seq_file.h>
|
||||
#include <linux/root_dev.h>
|
||||
#include <linux/bcd.h>
|
||||
|
|
|
@ -20,7 +20,6 @@
|
|||
#include <linux/initrd.h>
|
||||
#include <linux/console.h>
|
||||
#include <linux/delay.h>
|
||||
#include <linux/irq.h>
|
||||
#include <linux/ide.h>
|
||||
#include <linux/seq_file.h>
|
||||
#include <linux/kdev_t.h>
|
||||
|
|
|
@ -695,6 +695,13 @@ static int __init pmac_cpufreq_setup(void)
|
|||
set_speed_proc = pmu_set_cpu_speed;
|
||||
is_pmu_based = 1;
|
||||
}
|
||||
/* Else check for TiPb 550 */
|
||||
else if (machine_is_compatible("PowerBook3,3") && cur_freq == 550000) {
|
||||
hi_freq = cur_freq;
|
||||
low_freq = 500000;
|
||||
set_speed_proc = pmu_set_cpu_speed;
|
||||
is_pmu_based = 1;
|
||||
}
|
||||
/* Else check for TiPb 400 & 500 */
|
||||
else if (machine_is_compatible("PowerBook3,2")) {
|
||||
/* We only know about the 400 MHz and the 500Mhz model
|
||||
|
|
|
@ -2337,6 +2337,10 @@ static struct pmac_mb_def pmac_mb_defs[] = {
|
|||
PMAC_TYPE_UNKNOWN_INTREPID, intrepid_features,
|
||||
PMAC_MB_MAY_SLEEP | PMAC_MB_HAS_FW_POWER | PMAC_MB_MOBILE,
|
||||
},
|
||||
{ "PowerBook6,7", "iBook G4",
|
||||
PMAC_TYPE_UNKNOWN_INTREPID, intrepid_features,
|
||||
PMAC_MB_MAY_SLEEP | PMAC_MB_HAS_FW_POWER | PMAC_MB_MOBILE,
|
||||
},
|
||||
{ "PowerBook6,8", "PowerBook G4 12\"",
|
||||
PMAC_TYPE_UNKNOWN_INTREPID, intrepid_features,
|
||||
PMAC_MB_MAY_SLEEP | PMAC_MB_HAS_FW_POWER | PMAC_MB_MOBILE,
|
||||
|
|
|
@ -48,7 +48,6 @@
|
|||
#include <linux/adb.h>
|
||||
#include <linux/cuda.h>
|
||||
#include <linux/pmu.h>
|
||||
#include <linux/irq.h>
|
||||
#include <linux/seq_file.h>
|
||||
#include <linux/root_dev.h>
|
||||
#include <linux/bitops.h>
|
||||
|
|
|
@ -195,7 +195,7 @@ via_calibrate_decr(void)
|
|||
;
|
||||
dend = get_dec();
|
||||
|
||||
tb_ticks_per_jiffy = (dstart - dend) / (6 * (HZ/100));
|
||||
tb_ticks_per_jiffy = (dstart - dend) / ((6 * HZ)/100);
|
||||
tb_to_us = mulhwu_scale_factor(dstart - dend, 60000);
|
||||
|
||||
printk(KERN_INFO "via_calibrate_decr: ticks per jiffy = %u (%u ticks)\n",
|
||||
|
|
|
@ -26,7 +26,6 @@
|
|||
#include <linux/initrd.h>
|
||||
#include <linux/console.h>
|
||||
#include <linux/delay.h>
|
||||
#include <linux/irq.h>
|
||||
#include <linux/slab.h>
|
||||
#include <linux/seq_file.h>
|
||||
#include <linux/ide.h>
|
||||
|
|
|
@ -22,7 +22,6 @@
|
|||
#include <linux/ioport.h>
|
||||
#include <linux/console.h>
|
||||
#include <linux/pci.h>
|
||||
#include <linux/irq.h>
|
||||
#include <linux/ide.h>
|
||||
#include <linux/seq_file.h>
|
||||
#include <linux/root_dev.h>
|
||||
|
|
|
@ -24,7 +24,6 @@
|
|||
#include <linux/initrd.h>
|
||||
#include <linux/console.h>
|
||||
#include <linux/delay.h>
|
||||
#include <linux/irq.h>
|
||||
#include <linux/seq_file.h>
|
||||
#include <linux/ide.h>
|
||||
#include <linux/root_dev.h>
|
||||
|
|
|
@ -22,7 +22,6 @@
|
|||
#include <linux/initrd.h>
|
||||
#include <linux/console.h>
|
||||
#include <linux/delay.h>
|
||||
#include <linux/irq.h>
|
||||
#include <linux/seq_file.h>
|
||||
#include <linux/ide.h>
|
||||
#include <linux/root_dev.h>
|
||||
|
|
|
@ -32,7 +32,6 @@
|
|||
#include <linux/initrd.h>
|
||||
#include <linux/console.h>
|
||||
#include <linux/delay.h>
|
||||
#include <linux/irq.h>
|
||||
#include <linux/ide.h>
|
||||
#include <linux/seq_file.h>
|
||||
#include <linux/root_dev.h>
|
||||
|
@ -59,7 +58,6 @@
|
|||
#include <asm/mpc10x.h>
|
||||
#include <asm/pci-bridge.h>
|
||||
#include <asm/mv64x60.h>
|
||||
#include <asm/i8259.h>
|
||||
|
||||
#include "radstone_ppc7d.h"
|
||||
|
||||
|
|
|
@ -74,7 +74,6 @@
|
|||
#include <linux/initrd.h>
|
||||
#include <linux/console.h>
|
||||
#include <linux/delay.h>
|
||||
#include <linux/irq.h>
|
||||
#include <linux/ide.h>
|
||||
#include <linux/seq_file.h>
|
||||
#include <linux/root_dev.h>
|
||||
|
|
|
@ -34,7 +34,7 @@ u8 mv64x60_pci_exclude_bridge = 1;
|
|||
DEFINE_SPINLOCK(mv64x60_lock);
|
||||
|
||||
static phys_addr_t mv64x60_bridge_pbase;
|
||||
static void *mv64x60_bridge_vbase;
|
||||
static void __iomem *mv64x60_bridge_vbase;
|
||||
static u32 mv64x60_bridge_type = MV64x60_TYPE_INVALID;
|
||||
static u32 mv64x60_bridge_rev;
|
||||
#if defined(CONFIG_SYSFS) && !defined(CONFIG_GT64260)
|
||||
|
@ -938,7 +938,7 @@ mv64x60_setup_for_chip(struct mv64x60_handle *bh)
|
|||
*
|
||||
* Return the virtual address of the bridge's registers.
|
||||
*/
|
||||
void *
|
||||
void __iomem *
|
||||
mv64x60_get_bridge_vbase(void)
|
||||
{
|
||||
return mv64x60_bridge_vbase;
|
||||
|
|
|
@ -13,7 +13,6 @@
|
|||
#include <linux/kernel.h>
|
||||
#include <linux/sched.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/irq.h>
|
||||
#include <linux/interrupt.h>
|
||||
#include <linux/sysdev.h>
|
||||
#include <linux/errno.h>
|
||||
|
|
|
@ -17,7 +17,6 @@
|
|||
#include <linux/kernel.h>
|
||||
#include <linux/sched.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/irq.h>
|
||||
#include <linux/interrupt.h>
|
||||
#include <linux/sysdev.h>
|
||||
#include <linux/errno.h>
|
||||
|
|
|
@ -18,7 +18,6 @@
|
|||
#include <linux/smp.h>
|
||||
#include <linux/threads.h>
|
||||
#include <linux/spinlock.h>
|
||||
#include <linux/irq.h>
|
||||
#include <linux/reboot.h>
|
||||
#include <linux/param.h>
|
||||
#include <linux/string.h>
|
||||
|
|
|
@ -99,7 +99,11 @@ get_iost_entry(unsigned long iopt_base, unsigned long io_address, unsigned page_
|
|||
break;
|
||||
|
||||
default: /* not a known compile time constant */
|
||||
BUG_ON(1);
|
||||
{
|
||||
/* BUILD_BUG_ON() is not usable here */
|
||||
extern void __get_iost_entry_bad_page_size(void);
|
||||
__get_iost_entry_bad_page_size();
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -306,7 +310,7 @@ static void bpa_map_iommu(void)
|
|||
|
||||
|
||||
static void *bpa_alloc_coherent(struct device *hwdev, size_t size,
|
||||
dma_addr_t *dma_handle, unsigned int __nocast flag)
|
||||
dma_addr_t *dma_handle, gfp_t flag)
|
||||
{
|
||||
void *ret;
|
||||
|
||||
|
|
|
@ -53,7 +53,7 @@ int dma_set_mask(struct device *dev, u64 dma_mask)
|
|||
EXPORT_SYMBOL(dma_set_mask);
|
||||
|
||||
void *dma_alloc_coherent(struct device *dev, size_t size,
|
||||
dma_addr_t *dma_handle, unsigned int __nocast flag)
|
||||
dma_addr_t *dma_handle, gfp_t flag)
|
||||
{
|
||||
struct dma_mapping_ops *dma_ops = get_dma_ops(dev);
|
||||
|
||||
|
|
|
@ -519,7 +519,7 @@ void iommu_unmap_single(struct iommu_table *tbl, dma_addr_t dma_handle,
|
|||
* to the dma address (mapping) of the first page.
|
||||
*/
|
||||
void *iommu_alloc_coherent(struct iommu_table *tbl, size_t size,
|
||||
dma_addr_t *dma_handle, unsigned int __nocast flag)
|
||||
dma_addr_t *dma_handle, gfp_t flag)
|
||||
{
|
||||
void *ret = NULL;
|
||||
dma_addr_t mapping;
|
||||
|
|
|
@ -59,9 +59,9 @@ int __kprobes arch_prepare_kprobe(struct kprobe *p)
|
|||
|
||||
/* insn must be on a special executable page on ppc64 */
|
||||
if (!ret) {
|
||||
up(&kprobe_mutex);
|
||||
p->ainsn.insn = get_insn_slot();
|
||||
down(&kprobe_mutex);
|
||||
p->ainsn.insn = get_insn_slot();
|
||||
up(&kprobe_mutex);
|
||||
if (!p->ainsn.insn)
|
||||
ret = -ENOMEM;
|
||||
}
|
||||
|
@ -90,9 +90,9 @@ void __kprobes arch_disarm_kprobe(struct kprobe *p)
|
|||
|
||||
void __kprobes arch_remove_kprobe(struct kprobe *p)
|
||||
{
|
||||
up(&kprobe_mutex);
|
||||
free_insn_slot(p->ainsn.insn);
|
||||
down(&kprobe_mutex);
|
||||
free_insn_slot(p->ainsn.insn);
|
||||
up(&kprobe_mutex);
|
||||
}
|
||||
|
||||
static inline void prepare_singlestep(struct kprobe *p, struct pt_regs *regs)
|
||||
|
|
|
@ -341,6 +341,19 @@ int apply_relocate_add(Elf64_Shdr *sechdrs,
|
|||
*(unsigned long *)location = my_r2(sechdrs, me);
|
||||
break;
|
||||
|
||||
case R_PPC64_TOC16:
|
||||
/* Subtact TOC pointer */
|
||||
value -= my_r2(sechdrs, me);
|
||||
if (value + 0x8000 > 0xffff) {
|
||||
printk("%s: bad TOC16 relocation (%lu)\n",
|
||||
me->name, value);
|
||||
return -ENOEXEC;
|
||||
}
|
||||
*((uint16_t *) location)
|
||||
= (*((uint16_t *) location) & ~0xffff)
|
||||
| (value & 0xffff);
|
||||
break;
|
||||
|
||||
case R_PPC64_TOC16_DS:
|
||||
/* Subtact TOC pointer */
|
||||
value -= my_r2(sechdrs, me);
|
||||
|
|
|
@ -30,7 +30,7 @@
|
|||
#include <asm/ppc-pci.h>
|
||||
|
||||
static void *pci_direct_alloc_coherent(struct device *hwdev, size_t size,
|
||||
dma_addr_t *dma_handle, unsigned int __nocast flag)
|
||||
dma_addr_t *dma_handle, gfp_t flag)
|
||||
{
|
||||
void *ret;
|
||||
|
||||
|
|
|
@ -70,7 +70,7 @@ static inline struct iommu_table *devnode_table(struct device *dev)
|
|||
* to the dma address (mapping) of the first page.
|
||||
*/
|
||||
static void *pci_iommu_alloc_coherent(struct device *hwdev, size_t size,
|
||||
dma_addr_t *dma_handle, unsigned int __nocast flag)
|
||||
dma_addr_t *dma_handle, gfp_t flag)
|
||||
{
|
||||
return iommu_alloc_coherent(devnode_table(hwdev), size, dma_handle,
|
||||
flag);
|
||||
|
|
|
@ -218,7 +218,7 @@ static void vio_unmap_sg(struct device *dev, struct scatterlist *sglist,
|
|||
}
|
||||
|
||||
static void *vio_alloc_coherent(struct device *dev, size_t size,
|
||||
dma_addr_t *dma_handle, unsigned int __nocast flag)
|
||||
dma_addr_t *dma_handle, gfp_t flag)
|
||||
{
|
||||
return iommu_alloc_coherent(to_vio_dev(dev)->iommu_table, size,
|
||||
dma_handle, flag);
|
||||
|
|
Некоторые файлы не были показаны из-за слишком большого количества измененных файлов Показать больше
Загрузка…
Ссылка в новой задаче