Merge branch 'fix' of git://git.kernel.org/pub/scm/linux/kernel/git/ycmiao/pxa-linux-2.6

This commit is contained in:
Russell King 2009-10-12 14:38:08 +01:00
commit edc72786d2
1071 changed files with 68283 additions and 17853 deletions

View File

@ -227,7 +227,14 @@ as the path relative to the root of the cgroup file system.
Each cgroup is represented by a directory in the cgroup file system Each cgroup is represented by a directory in the cgroup file system
containing the following files describing that cgroup: containing the following files describing that cgroup:
- tasks: list of tasks (by pid) attached to that cgroup - tasks: list of tasks (by pid) attached to that cgroup. This list
is not guaranteed to be sorted. Writing a thread id into this file
moves the thread into this cgroup.
- cgroup.procs: list of tgids in the cgroup. This list is not
guaranteed to be sorted or free of duplicate tgids, and userspace
should sort/uniquify the list if this property is required.
Writing a tgid into this file moves all threads with that tgid into
this cgroup.
- notify_on_release flag: run the release agent on exit? - notify_on_release flag: run the release agent on exit?
- release_agent: the path to use for release notifications (this file - release_agent: the path to use for release notifications (this file
exists in the top cgroup only) exists in the top cgroup only)
@ -374,7 +381,7 @@ Now you want to do something with this cgroup.
In this directory you can find several files: In this directory you can find several files:
# ls # ls
notify_on_release tasks cgroup.procs notify_on_release tasks
(plus whatever files added by the attached subsystems) (plus whatever files added by the attached subsystems)
Now attach your shell to this cgroup: Now attach your shell to this cgroup:

View File

@ -128,8 +128,8 @@ Setting IsSM Capability Bit
To create the appropriate character device files automatically with To create the appropriate character device files automatically with
udev, a rule like udev, a rule like
KERNEL="umad*", NAME="infiniband/%k" KERNEL=="umad*", NAME="infiniband/%k"
KERNEL="issm*", NAME="infiniband/%k" KERNEL=="issm*", NAME="infiniband/%k"
can be used. This will create device nodes named can be used. This will create device nodes named

View File

@ -58,7 +58,7 @@ Memory pinning
To create the appropriate character device files automatically with To create the appropriate character device files automatically with
udev, a rule like udev, a rule like
KERNEL="uverbs*", NAME="infiniband/%k" KERNEL=="uverbs*", NAME="infiniband/%k"
can be used. This will create device nodes named can be used. This will create device nodes named

View File

@ -60,10 +60,9 @@ open() operation on regular files or character devices.
After a successful return from register_appl(), CAPI messages from the After a successful return from register_appl(), CAPI messages from the
application may be passed to the driver for the device via calls to the application may be passed to the driver for the device via calls to the
send_message() callback function. The CAPI message to send is stored in the send_message() callback function. Conversely, the driver may call Kernel
data portion of an skb. Conversely, the driver may call Kernel CAPI's CAPI's capi_ctr_handle_message() function to pass a received CAPI message to
capi_ctr_handle_message() function to pass a received CAPI message to Kernel Kernel CAPI for forwarding to an application, specifying its ApplID.
CAPI for forwarding to an application, specifying its ApplID.
Deregistration requests (CAPI operation CAPI_RELEASE) from applications are Deregistration requests (CAPI operation CAPI_RELEASE) from applications are
forwarded as calls to the release_appl() callback function, passing the same forwarded as calls to the release_appl() callback function, passing the same
@ -142,6 +141,7 @@ u16 (*send_message)(struct capi_ctr *ctrlr, struct sk_buff *skb)
to accepting or queueing the message. Errors occurring during the to accepting or queueing the message. Errors occurring during the
actual processing of the message should be signaled with an actual processing of the message should be signaled with an
appropriate reply message. appropriate reply message.
May be called in process or interrupt context.
Calls to this function are not serialized by Kernel CAPI, ie. it must Calls to this function are not serialized by Kernel CAPI, ie. it must
be prepared to be re-entered. be prepared to be re-entered.
@ -154,7 +154,8 @@ read_proc_t *ctr_read_proc
system entry, /proc/capi/controllers/<n>; will be called with a system entry, /proc/capi/controllers/<n>; will be called with a
pointer to the device's capi_ctr structure as the last (data) argument pointer to the device's capi_ctr structure as the last (data) argument
Note: Callback functions are never called in interrupt context. Note: Callback functions except send_message() are never called in interrupt
context.
- to be filled in before calling capi_ctr_ready(): - to be filled in before calling capi_ctr_ready():
@ -171,14 +172,40 @@ u8 serial[CAPI_SERIAL_LEN]
value to return for CAPI_GET_SERIAL value to return for CAPI_GET_SERIAL
4.3 The _cmsg Structure 4.3 SKBs
CAPI messages are passed between Kernel CAPI and the driver via send_message()
and capi_ctr_handle_message(), stored in the data portion of a socket buffer
(skb). Each skb contains a single CAPI message coded according to the CAPI 2.0
standard.
For the data transfer messages, DATA_B3_REQ and DATA_B3_IND, the actual
payload data immediately follows the CAPI message itself within the same skb.
The Data and Data64 parameters are not used for processing. The Data64
parameter may be omitted by setting the length field of the CAPI message to 22
instead of 30.
4.4 The _cmsg Structure
(declared in <linux/isdn/capiutil.h>) (declared in <linux/isdn/capiutil.h>)
The _cmsg structure stores the contents of a CAPI 2.0 message in an easily The _cmsg structure stores the contents of a CAPI 2.0 message in an easily
accessible form. It contains members for all possible CAPI 2.0 parameters, of accessible form. It contains members for all possible CAPI 2.0 parameters,
which only those appearing in the message type currently being processed are including subparameters of the Additional Info and B Protocol structured
actually used. Unused members should be set to zero. parameters, with the following exceptions:
* second Calling party number (CONNECT_IND)
* Data64 (DATA_B3_REQ and DATA_B3_IND)
* Sending complete (subparameter of Additional Info, CONNECT_REQ and INFO_REQ)
* Global Configuration (subparameter of B Protocol, CONNECT_REQ, CONNECT_RESP
and SELECT_B_PROTOCOL_REQ)
Only those parameters appearing in the message type currently being processed
are actually used. Unused members should be set to zero.
Members are named after the CAPI 2.0 standard names of the parameters they Members are named after the CAPI 2.0 standard names of the parameters they
represent. See <linux/isdn/capiutil.h> for the exact spelling. Member data represent. See <linux/isdn/capiutil.h> for the exact spelling. Member data
@ -190,18 +217,19 @@ u16 for CAPI parameters of type 'word'
u32 for CAPI parameters of type 'dword' u32 for CAPI parameters of type 'dword'
_cstruct for CAPI parameters of type 'struct' not containing any _cstruct for CAPI parameters of type 'struct'
variably-sized (struct) subparameters (eg. 'Called Party Number')
The member is a pointer to a buffer containing the parameter in The member is a pointer to a buffer containing the parameter in
CAPI encoding (length + content). It may also be NULL, which will CAPI encoding (length + content). It may also be NULL, which will
be taken to represent an empty (zero length) parameter. be taken to represent an empty (zero length) parameter.
Subparameters are stored in encoded form within the content part.
_cmstruct for CAPI parameters of type 'struct' containing 'struct' _cmstruct alternative representation for CAPI parameters of type 'struct'
subparameters ('Additional Info' and 'B Protocol') (used only for the 'Additional Info' and 'B Protocol' parameters)
The representation is a single byte containing one of the values: The representation is a single byte containing one of the values:
CAPI_DEFAULT: the parameter is empty CAPI_DEFAULT: The parameter is empty/absent.
CAPI_COMPOSE: the values of the subparameters are stored CAPI_COMPOSE: The parameter is present.
individually in the corresponding _cmsg structure members Subparameter values are stored individually in the corresponding
_cmsg structure members.
Functions capi_cmsg2message() and capi_message2cmsg() are provided to convert Functions capi_cmsg2message() and capi_message2cmsg() are provided to convert
messages between their transport encoding described in the CAPI 2.0 standard messages between their transport encoding described in the CAPI 2.0 standard
@ -297,3 +325,26 @@ char *capi_cmd2str(u8 Command, u8 Subcommand)
be NULL if the command/subcommand is not one of those defined in the be NULL if the command/subcommand is not one of those defined in the
CAPI 2.0 standard. CAPI 2.0 standard.
7. Debugging
The module kernelcapi has a module parameter showcapimsgs controlling some
debugging output produced by the module. It can only be set when the module is
loaded, via a parameter "showcapimsgs=<n>" to the modprobe command, either on
the command line or in the configuration file.
If the lowest bit of showcapimsgs is set, kernelcapi logs controller and
application up and down events.
In addition, every registered CAPI controller has an associated traceflag
parameter controlling how CAPI messages sent from and to tha controller are
logged. The traceflag parameter is initialized with the value of the
showcapimsgs parameter when the controller is registered, but can later be
changed via the MANUFACTURER_REQ command KCAPI_CMD_TRACE.
If the value of traceflag is non-zero, CAPI messages are logged.
DATA_B3 messages are only logged if the value of traceflag is > 2.
If the lowest bit of traceflag is set, only the command/subcommand and message
length are logged. Otherwise, kernelcapi logs a readable representation of
the entire message.

View File

@ -671,6 +671,7 @@ and is between 256 and 4096 characters. It is defined in the file
earlyprintk= [X86,SH,BLACKFIN] earlyprintk= [X86,SH,BLACKFIN]
earlyprintk=vga earlyprintk=vga
earlyprintk=serial[,ttySn[,baudrate]] earlyprintk=serial[,ttySn[,baudrate]]
earlyprintk=ttySn[,baudrate]
earlyprintk=dbgp[debugController#] earlyprintk=dbgp[debugController#]
Append ",keep" to not disable it when the real console Append ",keep" to not disable it when the real console

View File

@ -90,6 +90,11 @@ Examples:
pgset "dstmac 00:00:00:00:00:00" sets MAC destination address pgset "dstmac 00:00:00:00:00:00" sets MAC destination address
pgset "srcmac 00:00:00:00:00:00" sets MAC source address pgset "srcmac 00:00:00:00:00:00" sets MAC source address
pgset "queue_map_min 0" Sets the min value of tx queue interval
pgset "queue_map_max 7" Sets the max value of tx queue interval, for multiqueue devices
To select queue 1 of a given device,
use queue_map_min=1 and queue_map_max=1
pgset "src_mac_count 1" Sets the number of MACs we'll range through. pgset "src_mac_count 1" Sets the number of MACs we'll range through.
The 'minimum' MAC is what you set with srcmac. The 'minimum' MAC is what you set with srcmac.
@ -101,6 +106,9 @@ Examples:
IPDST_RND, UDPSRC_RND, IPDST_RND, UDPSRC_RND,
UDPDST_RND, MACSRC_RND, MACDST_RND UDPDST_RND, MACSRC_RND, MACDST_RND
MPLS_RND, VID_RND, SVID_RND MPLS_RND, VID_RND, SVID_RND
QUEUE_MAP_RND # queue map random
QUEUE_MAP_CPU # queue map mirrors smp_processor_id()
pgset "udp_src_min 9" set UDP source port min, If < udp_src_max, then pgset "udp_src_min 9" set UDP source port min, If < udp_src_max, then
cycle through the port range. cycle through the port range.

View File

@ -3,6 +3,25 @@ HIGHPOINT ROCKETRAID 3xxx/4xxx ADAPTER DRIVER (hptiop)
Controller Register Map Controller Register Map
------------------------- -------------------------
For RR44xx Intel IOP based adapters, the controller IOP is accessed via PCI BAR0 and BAR2:
BAR0 offset Register
0x11C5C Link Interface IRQ Set
0x11C60 Link Interface IRQ Clear
BAR2 offset Register
0x10 Inbound Message Register 0
0x14 Inbound Message Register 1
0x18 Outbound Message Register 0
0x1C Outbound Message Register 1
0x20 Inbound Doorbell Register
0x24 Inbound Interrupt Status Register
0x28 Inbound Interrupt Mask Register
0x30 Outbound Interrupt Status Register
0x34 Outbound Interrupt Mask Register
0x40 Inbound Queue Port
0x44 Outbound Queue Port
For Intel IOP based adapters, the controller IOP is accessed via PCI BAR0: For Intel IOP based adapters, the controller IOP is accessed via PCI BAR0:
BAR0 offset Register BAR0 offset Register
@ -93,7 +112,7 @@ The driver exposes following sysfs attributes:
----------------------------------------------------------------------------- -----------------------------------------------------------------------------
Copyright (C) 2006-2007 HighPoint Technologies, Inc. All Rights Reserved. Copyright (C) 2006-2009 HighPoint Technologies, Inc. All Rights Reserved.
This file is distributed in the hope that it will be useful, This file is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of but WITHOUT ANY WARRANTY; without even the implied warranty of

View File

@ -52,15 +52,15 @@ The KSM daemon is controlled by sysfs files in /sys/kernel/mm/ksm/,
readable by all but writable only by root: readable by all but writable only by root:
max_kernel_pages - set to maximum number of kernel pages that KSM may use max_kernel_pages - set to maximum number of kernel pages that KSM may use
e.g. "echo 2000 > /sys/kernel/mm/ksm/max_kernel_pages" e.g. "echo 100000 > /sys/kernel/mm/ksm/max_kernel_pages"
Value 0 imposes no limit on the kernel pages KSM may use; Value 0 imposes no limit on the kernel pages KSM may use;
but note that any process using MADV_MERGEABLE can cause but note that any process using MADV_MERGEABLE can cause
KSM to allocate these pages, unswappable until it exits. KSM to allocate these pages, unswappable until it exits.
Default: 2000 (chosen for demonstration purposes) Default: quarter of memory (chosen to not pin too much)
pages_to_scan - how many present pages to scan before ksmd goes to sleep pages_to_scan - how many present pages to scan before ksmd goes to sleep
e.g. "echo 200 > /sys/kernel/mm/ksm/pages_to_scan" e.g. "echo 100 > /sys/kernel/mm/ksm/pages_to_scan"
Default: 200 (chosen for demonstration purposes) Default: 100 (chosen for demonstration purposes)
sleep_millisecs - how many milliseconds ksmd should sleep before next scan sleep_millisecs - how many milliseconds ksmd should sleep before next scan
e.g. "echo 20 > /sys/kernel/mm/ksm/sleep_millisecs" e.g. "echo 20 > /sys/kernel/mm/ksm/sleep_millisecs"
@ -70,7 +70,8 @@ run - set 0 to stop ksmd from running but keep merged pages,
set 1 to run ksmd e.g. "echo 1 > /sys/kernel/mm/ksm/run", set 1 to run ksmd e.g. "echo 1 > /sys/kernel/mm/ksm/run",
set 2 to stop ksmd and unmerge all pages currently merged, set 2 to stop ksmd and unmerge all pages currently merged,
but leave mergeable areas registered for next run but leave mergeable areas registered for next run
Default: 1 (for immediate use by apps which register) Default: 0 (must be changed to 1 to activate KSM,
except if CONFIG_SYSFS is disabled)
The effectiveness of KSM and MADV_MERGEABLE is shown in /sys/kernel/mm/ksm/: The effectiveness of KSM and MADV_MERGEABLE is shown in /sys/kernel/mm/ksm/:
@ -86,4 +87,4 @@ pages_volatile embraces several different kinds of activity, but a high
proportion there would also indicate poor use of madvise MADV_MERGEABLE. proportion there would also indicate poor use of madvise MADV_MERGEABLE.
Izik Eidus, Izik Eidus,
Hugh Dickins, 30 July 2009 Hugh Dickins, 24 Sept 2009

View File

@ -2,7 +2,10 @@
* page-types: Tool for querying page flags * page-types: Tool for querying page flags
* *
* Copyright (C) 2009 Intel corporation * Copyright (C) 2009 Intel corporation
* Copyright (C) 2009 Wu Fengguang <fengguang.wu@intel.com> *
* Authors: Wu Fengguang <fengguang.wu@intel.com>
*
* Released under the General Public License (GPL).
*/ */
#define _LARGEFILE64_SOURCE #define _LARGEFILE64_SOURCE
@ -69,7 +72,9 @@
#define KPF_COMPOUND_TAIL 16 #define KPF_COMPOUND_TAIL 16
#define KPF_HUGE 17 #define KPF_HUGE 17
#define KPF_UNEVICTABLE 18 #define KPF_UNEVICTABLE 18
#define KPF_HWPOISON 19
#define KPF_NOPAGE 20 #define KPF_NOPAGE 20
#define KPF_KSM 21
/* [32-] kernel hacking assistances */ /* [32-] kernel hacking assistances */
#define KPF_RESERVED 32 #define KPF_RESERVED 32
@ -116,7 +121,9 @@ static char *page_flag_names[] = {
[KPF_COMPOUND_TAIL] = "T:compound_tail", [KPF_COMPOUND_TAIL] = "T:compound_tail",
[KPF_HUGE] = "G:huge", [KPF_HUGE] = "G:huge",
[KPF_UNEVICTABLE] = "u:unevictable", [KPF_UNEVICTABLE] = "u:unevictable",
[KPF_HWPOISON] = "X:hwpoison",
[KPF_NOPAGE] = "n:nopage", [KPF_NOPAGE] = "n:nopage",
[KPF_KSM] = "x:ksm",
[KPF_RESERVED] = "r:reserved", [KPF_RESERVED] = "r:reserved",
[KPF_MLOCKED] = "m:mlocked", [KPF_MLOCKED] = "m:mlocked",
@ -152,9 +159,6 @@ static unsigned long opt_size[MAX_ADDR_RANGES];
static int nr_vmas; static int nr_vmas;
static unsigned long pg_start[MAX_VMAS]; static unsigned long pg_start[MAX_VMAS];
static unsigned long pg_end[MAX_VMAS]; static unsigned long pg_end[MAX_VMAS];
static unsigned long voffset;
static int pagemap_fd;
#define MAX_BIT_FILTERS 64 #define MAX_BIT_FILTERS 64
static int nr_bit_filters; static int nr_bit_filters;
@ -163,9 +167,16 @@ static uint64_t opt_bits[MAX_BIT_FILTERS];
static int page_size; static int page_size;
#define PAGES_BATCH (64 << 10) /* 64k pages */ static int pagemap_fd;
static int kpageflags_fd; static int kpageflags_fd;
static int opt_hwpoison;
static int opt_unpoison;
static char *hwpoison_debug_fs = "/debug/hwpoison";
static int hwpoison_inject_fd;
static int hwpoison_forget_fd;
#define HASH_SHIFT 13 #define HASH_SHIFT 13
#define HASH_SIZE (1 << HASH_SHIFT) #define HASH_SIZE (1 << HASH_SHIFT)
#define HASH_MASK (HASH_SIZE - 1) #define HASH_MASK (HASH_SIZE - 1)
@ -207,6 +218,74 @@ static void fatal(const char *x, ...)
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
} }
int checked_open(const char *pathname, int flags)
{
int fd = open(pathname, flags);
if (fd < 0) {
perror(pathname);
exit(EXIT_FAILURE);
}
return fd;
}
/*
* pagemap/kpageflags routines
*/
static unsigned long do_u64_read(int fd, char *name,
uint64_t *buf,
unsigned long index,
unsigned long count)
{
long bytes;
if (index > ULONG_MAX / 8)
fatal("index overflow: %lu\n", index);
if (lseek(fd, index * 8, SEEK_SET) < 0) {
perror(name);
exit(EXIT_FAILURE);
}
bytes = read(fd, buf, count * 8);
if (bytes < 0) {
perror(name);
exit(EXIT_FAILURE);
}
if (bytes % 8)
fatal("partial read: %lu bytes\n", bytes);
return bytes / 8;
}
static unsigned long kpageflags_read(uint64_t *buf,
unsigned long index,
unsigned long pages)
{
return do_u64_read(kpageflags_fd, PROC_KPAGEFLAGS, buf, index, pages);
}
static unsigned long pagemap_read(uint64_t *buf,
unsigned long index,
unsigned long pages)
{
return do_u64_read(pagemap_fd, "/proc/pid/pagemap", buf, index, pages);
}
static unsigned long pagemap_pfn(uint64_t val)
{
unsigned long pfn;
if (val & PM_PRESENT)
pfn = PM_PFRAME(val);
else
pfn = 0;
return pfn;
}
/* /*
* page flag names * page flag names
@ -255,7 +334,8 @@ static char *page_flag_longname(uint64_t flags)
* page list and summary * page list and summary
*/ */
static void show_page_range(unsigned long offset, uint64_t flags) static void show_page_range(unsigned long voffset,
unsigned long offset, uint64_t flags)
{ {
static uint64_t flags0; static uint64_t flags0;
static unsigned long voff; static unsigned long voff;
@ -281,7 +361,8 @@ static void show_page_range(unsigned long offset, uint64_t flags)
count = 1; count = 1;
} }
static void show_page(unsigned long offset, uint64_t flags) static void show_page(unsigned long voffset,
unsigned long offset, uint64_t flags)
{ {
if (opt_pid) if (opt_pid)
printf("%lx\t", voffset); printf("%lx\t", voffset);
@ -362,6 +443,62 @@ static uint64_t well_known_flags(uint64_t flags)
return flags; return flags;
} }
static uint64_t kpageflags_flags(uint64_t flags)
{
flags = expand_overloaded_flags(flags);
if (!opt_raw)
flags = well_known_flags(flags);
return flags;
}
/*
* page actions
*/
static void prepare_hwpoison_fd(void)
{
char buf[100];
if (opt_hwpoison && !hwpoison_inject_fd) {
sprintf(buf, "%s/corrupt-pfn", hwpoison_debug_fs);
hwpoison_inject_fd = checked_open(buf, O_WRONLY);
}
if (opt_unpoison && !hwpoison_forget_fd) {
sprintf(buf, "%s/renew-pfn", hwpoison_debug_fs);
hwpoison_forget_fd = checked_open(buf, O_WRONLY);
}
}
static int hwpoison_page(unsigned long offset)
{
char buf[100];
int len;
len = sprintf(buf, "0x%lx\n", offset);
len = write(hwpoison_inject_fd, buf, len);
if (len < 0) {
perror("hwpoison inject");
return len;
}
return 0;
}
static int unpoison_page(unsigned long offset)
{
char buf[100];
int len;
len = sprintf(buf, "0x%lx\n", offset);
len = write(hwpoison_forget_fd, buf, len);
if (len < 0) {
perror("hwpoison forget");
return len;
}
return 0;
}
/* /*
* page frame walker * page frame walker
@ -394,104 +531,83 @@ static int hash_slot(uint64_t flags)
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
} }
static void add_page(unsigned long offset, uint64_t flags) static void add_page(unsigned long voffset,
unsigned long offset, uint64_t flags)
{ {
flags = expand_overloaded_flags(flags); flags = kpageflags_flags(flags);
if (!opt_raw)
flags = well_known_flags(flags);
if (!bit_mask_ok(flags)) if (!bit_mask_ok(flags))
return; return;
if (opt_hwpoison)
hwpoison_page(offset);
if (opt_unpoison)
unpoison_page(offset);
if (opt_list == 1) if (opt_list == 1)
show_page_range(offset, flags); show_page_range(voffset, offset, flags);
else if (opt_list == 2) else if (opt_list == 2)
show_page(offset, flags); show_page(voffset, offset, flags);
nr_pages[hash_slot(flags)]++; nr_pages[hash_slot(flags)]++;
total_pages++; total_pages++;
} }
static void walk_pfn(unsigned long index, unsigned long count) #define KPAGEFLAGS_BATCH (64 << 10) /* 64k pages */
static void walk_pfn(unsigned long voffset,
unsigned long index,
unsigned long count)
{ {
uint64_t buf[KPAGEFLAGS_BATCH];
unsigned long batch; unsigned long batch;
unsigned long n; unsigned long pages;
unsigned long i; unsigned long i;
if (index > ULONG_MAX / KPF_BYTES)
fatal("index overflow: %lu\n", index);
lseek(kpageflags_fd, index * KPF_BYTES, SEEK_SET);
while (count) { while (count) {
uint64_t kpageflags_buf[KPF_BYTES * PAGES_BATCH]; batch = min_t(unsigned long, count, KPAGEFLAGS_BATCH);
pages = kpageflags_read(buf, index, batch);
batch = min_t(unsigned long, count, PAGES_BATCH); if (pages == 0)
n = read(kpageflags_fd, kpageflags_buf, batch * KPF_BYTES);
if (n == 0)
break; break;
if (n < 0) {
perror(PROC_KPAGEFLAGS);
exit(EXIT_FAILURE);
}
if (n % KPF_BYTES != 0) for (i = 0; i < pages; i++)
fatal("partial read: %lu bytes\n", n); add_page(voffset + i, index + i, buf[i]);
n = n / KPF_BYTES;
for (i = 0; i < n; i++) index += pages;
add_page(index + i, kpageflags_buf[i]); count -= pages;
index += batch;
count -= batch;
} }
} }
#define PAGEMAP_BATCH (64 << 10)
#define PAGEMAP_BATCH 4096 static void walk_vma(unsigned long index, unsigned long count)
static unsigned long task_pfn(unsigned long pgoff)
{ {
static uint64_t buf[PAGEMAP_BATCH]; uint64_t buf[PAGEMAP_BATCH];
static unsigned long start; unsigned long batch;
static long count; unsigned long pages;
uint64_t pfn; unsigned long pfn;
unsigned long i;
if (pgoff < start || pgoff >= start + count) { while (count) {
if (lseek64(pagemap_fd, batch = min_t(unsigned long, count, PAGEMAP_BATCH);
(uint64_t)pgoff * PM_ENTRY_BYTES, pages = pagemap_read(buf, index, batch);
SEEK_SET) < 0) { if (pages == 0)
perror("pagemap seek"); break;
exit(EXIT_FAILURE);
for (i = 0; i < pages; i++) {
pfn = pagemap_pfn(buf[i]);
if (pfn)
walk_pfn(index + i, pfn, 1);
} }
count = read(pagemap_fd, buf, sizeof(buf));
if (count == 0) index += pages;
return 0; count -= pages;
if (count < 0) {
perror("pagemap read");
exit(EXIT_FAILURE);
}
if (count % PM_ENTRY_BYTES) {
fatal("pagemap read not aligned.\n");
exit(EXIT_FAILURE);
}
count /= PM_ENTRY_BYTES;
start = pgoff;
} }
pfn = buf[pgoff - start];
if (pfn & PM_PRESENT)
pfn = PM_PFRAME(pfn);
else
pfn = 0;
return pfn;
} }
static void walk_task(unsigned long index, unsigned long count) static void walk_task(unsigned long index, unsigned long count)
{ {
int i = 0;
const unsigned long end = index + count; const unsigned long end = index + count;
unsigned long start;
int i = 0;
while (index < end) { while (index < end) {
@ -501,15 +617,11 @@ static void walk_task(unsigned long index, unsigned long count)
if (pg_start[i] >= end) if (pg_start[i] >= end)
return; return;
voffset = max_t(unsigned long, pg_start[i], index); start = max_t(unsigned long, pg_start[i], index);
index = min_t(unsigned long, pg_end[i], end); index = min_t(unsigned long, pg_end[i], end);
assert(voffset < index); assert(start < index);
for (; voffset < index; voffset++) { walk_vma(start, index - start);
unsigned long pfn = task_pfn(voffset);
if (pfn)
walk_pfn(pfn, 1);
}
} }
} }
@ -527,18 +639,14 @@ static void walk_addr_ranges(void)
{ {
int i; int i;
kpageflags_fd = open(PROC_KPAGEFLAGS, O_RDONLY); kpageflags_fd = checked_open(PROC_KPAGEFLAGS, O_RDONLY);
if (kpageflags_fd < 0) {
perror(PROC_KPAGEFLAGS);
exit(EXIT_FAILURE);
}
if (!nr_addr_ranges) if (!nr_addr_ranges)
add_addr_range(0, ULONG_MAX); add_addr_range(0, ULONG_MAX);
for (i = 0; i < nr_addr_ranges; i++) for (i = 0; i < nr_addr_ranges; i++)
if (!opt_pid) if (!opt_pid)
walk_pfn(opt_offset[i], opt_size[i]); walk_pfn(0, opt_offset[i], opt_size[i]);
else else
walk_task(opt_offset[i], opt_size[i]); walk_task(opt_offset[i], opt_size[i]);
@ -575,6 +683,8 @@ static void usage(void)
" -l|--list Show page details in ranges\n" " -l|--list Show page details in ranges\n"
" -L|--list-each Show page details one by one\n" " -L|--list-each Show page details one by one\n"
" -N|--no-summary Don't show summay info\n" " -N|--no-summary Don't show summay info\n"
" -X|--hwpoison hwpoison pages\n"
" -x|--unpoison unpoison pages\n"
" -h|--help Show this usage message\n" " -h|--help Show this usage message\n"
"addr-spec:\n" "addr-spec:\n"
" N one page at offset N (unit: pages)\n" " N one page at offset N (unit: pages)\n"
@ -624,11 +734,7 @@ static void parse_pid(const char *str)
opt_pid = parse_number(str); opt_pid = parse_number(str);
sprintf(buf, "/proc/%d/pagemap", opt_pid); sprintf(buf, "/proc/%d/pagemap", opt_pid);
pagemap_fd = open(buf, O_RDONLY); pagemap_fd = checked_open(buf, O_RDONLY);
if (pagemap_fd < 0) {
perror(buf);
exit(EXIT_FAILURE);
}
sprintf(buf, "/proc/%d/maps", opt_pid); sprintf(buf, "/proc/%d/maps", opt_pid);
file = fopen(buf, "r"); file = fopen(buf, "r");
@ -788,6 +894,8 @@ static struct option opts[] = {
{ "list" , 0, NULL, 'l' }, { "list" , 0, NULL, 'l' },
{ "list-each" , 0, NULL, 'L' }, { "list-each" , 0, NULL, 'L' },
{ "no-summary", 0, NULL, 'N' }, { "no-summary", 0, NULL, 'N' },
{ "hwpoison" , 0, NULL, 'X' },
{ "unpoison" , 0, NULL, 'x' },
{ "help" , 0, NULL, 'h' }, { "help" , 0, NULL, 'h' },
{ NULL , 0, NULL, 0 } { NULL , 0, NULL, 0 }
}; };
@ -799,7 +907,7 @@ int main(int argc, char *argv[])
page_size = getpagesize(); page_size = getpagesize();
while ((c = getopt_long(argc, argv, while ((c = getopt_long(argc, argv,
"rp:f:a:b:lLNh", opts, NULL)) != -1) { "rp:f:a:b:lLNXxh", opts, NULL)) != -1) {
switch (c) { switch (c) {
case 'r': case 'r':
opt_raw = 1; opt_raw = 1;
@ -825,6 +933,14 @@ int main(int argc, char *argv[])
case 'N': case 'N':
opt_no_summary = 1; opt_no_summary = 1;
break; break;
case 'X':
opt_hwpoison = 1;
prepare_hwpoison_fd();
break;
case 'x':
opt_unpoison = 1;
prepare_hwpoison_fd();
break;
case 'h': case 'h':
usage(); usage();
exit(0); exit(0);
@ -844,7 +960,7 @@ int main(int argc, char *argv[])
walk_addr_ranges(); walk_addr_ranges();
if (opt_list == 1) if (opt_list == 1)
show_page_range(0, 0); /* drain the buffer */ show_page_range(0, 0, 0); /* drain the buffer */
if (opt_no_summary) if (opt_no_summary)
return 0; return 0;

View File

@ -57,7 +57,9 @@ There are three components to pagemap:
16. COMPOUND_TAIL 16. COMPOUND_TAIL
16. HUGE 16. HUGE
18. UNEVICTABLE 18. UNEVICTABLE
19. HWPOISON
20. NOPAGE 20. NOPAGE
21. KSM
Short descriptions to the page flags: Short descriptions to the page flags:
@ -86,9 +88,15 @@ Short descriptions to the page flags:
17. HUGE 17. HUGE
this is an integral part of a HugeTLB page this is an integral part of a HugeTLB page
19. HWPOISON
hardware detected memory corruption on this page: don't touch the data!
20. NOPAGE 20. NOPAGE
no page frame exists at the requested address no page frame exists at the requested address
21. KSM
identical memory pages dynamically shared between one or more processes
[IO related page flags] [IO related page flags]
1. ERROR IO error occurred 1. ERROR IO error occurred
3. UPTODATE page has up-to-date data 3. UPTODATE page has up-to-date data

View File

@ -1236,6 +1236,13 @@ L: netdev@vger.kernel.org
S: Supported S: Supported
F: drivers/net/tg3.* F: drivers/net/tg3.*
BROCADE BFA FC SCSI DRIVER
P: Jing Huang
M: huangj@brocade.com
L: linux-scsi@vger.kernel.org
S: Supported
F: drivers/scsi/bfa/
BSG (block layer generic sg v4 driver) BSG (block layer generic sg v4 driver)
M: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp> M: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
L: linux-scsi@vger.kernel.org L: linux-scsi@vger.kernel.org
@ -2063,7 +2070,7 @@ S: Maintained
F: fs/* F: fs/*
FINTEK F75375S HARDWARE MONITOR AND FAN CONTROLLER DRIVER FINTEK F75375S HARDWARE MONITOR AND FAN CONTROLLER DRIVER
M: Riku Voipio <riku.vipio@iki.fi> M: Riku Voipio <riku.voipio@iki.fi>
L: lm-sensors@lm-sensors.org L: lm-sensors@lm-sensors.org
S: Maintained S: Maintained
F: drivers/hwmon/f75375s.c F: drivers/hwmon/f75375s.c
@ -3648,6 +3655,13 @@ F: Documentation/blockdev/nbd.txt
F: drivers/block/nbd.c F: drivers/block/nbd.c
F: include/linux/nbd.h F: include/linux/nbd.h
NETWORK DROP MONITOR
M: Neil Horman <nhorman@tuxdriver.com>
L: netdev@vger.kernel.org
S: Maintained
W: https://fedorahosted.org/dropwatch/
F: net/core/drop_monitor.c
NETWORKING [GENERAL] NETWORKING [GENERAL]
M: "David S. Miller" <davem@davemloft.net> M: "David S. Miller" <davem@davemloft.net>
L: netdev@vger.kernel.org L: netdev@vger.kernel.org
@ -3978,6 +3992,7 @@ F: drivers/block/paride/
PARISC ARCHITECTURE PARISC ARCHITECTURE
M: Kyle McMartin <kyle@mcmartin.ca> M: Kyle McMartin <kyle@mcmartin.ca>
M: Helge Deller <deller@gmx.de> M: Helge Deller <deller@gmx.de>
M: "James E.J. Bottomley" <jejb@parisc-linux.org>
L: linux-parisc@vger.kernel.org L: linux-parisc@vger.kernel.org
W: http://www.parisc-linux.org/ W: http://www.parisc-linux.org/
T: git git://git.kernel.org/pub/scm/linux/kernel/git/kyle/parisc-2.6.git T: git git://git.kernel.org/pub/scm/linux/kernel/git/kyle/parisc-2.6.git
@ -4643,6 +4658,14 @@ F: drivers/ata/
F: include/linux/ata.h F: include/linux/ata.h
F: include/linux/libata.h F: include/linux/libata.h
SERVER ENGINES 10Gbps iSCSI - BladeEngine 2 DRIVER
P: Jayamohan Kallickal
M: jayamohank@serverengines.com
L: linux-scsi@vger.kernel.org
W: http://www.serverengines.com
S: Supported
F: drivers/scsi/be2iscsi/
SERVER ENGINES 10Gbps NIC - BladeEngine 2 DRIVER SERVER ENGINES 10Gbps NIC - BladeEngine 2 DRIVER
M: Sathya Perla <sathyap@serverengines.com> M: Sathya Perla <sathyap@serverengines.com>
M: Subbu Seetharaman <subbus@serverengines.com> M: Subbu Seetharaman <subbus@serverengines.com>

View File

@ -1,7 +1,7 @@
VERSION = 2 VERSION = 2
PATCHLEVEL = 6 PATCHLEVEL = 6
SUBLEVEL = 32 SUBLEVEL = 32
EXTRAVERSION = -rc3 EXTRAVERSION = -rc4
NAME = Man-Eating Seals of Antiquity NAME = Man-Eating Seals of Antiquity
# *DOCUMENTATION* # *DOCUMENTATION*

View File

@ -21,6 +21,7 @@
#include <linux/interrupt.h> #include <linux/interrupt.h>
#include <linux/time.h> #include <linux/time.h>
#include <linux/init.h> #include <linux/init.h>
#include <linux/sched.h>
#include <linux/smp.h> #include <linux/smp.h>
#include <linux/timex.h> #include <linux/timex.h>
#include <linux/errno.h> #include <linux/errno.h>

View File

@ -31,6 +31,7 @@
#include <mach/hardware.h> #include <mach/hardware.h>
#include <asm/irq.h> #include <asm/irq.h>
#include <asm/signal.h>
#include <asm/system.h> #include <asm/system.h>
#include <asm/mach/pci.h> #include <asm/mach/pci.h>
#include <asm/irq_regs.h> #include <asm/irq_regs.h>

View File

@ -38,49 +38,49 @@
static int board_keymap[] = { static int board_keymap[] = {
KEY(0, 0, KEY_Q), KEY(0, 0, KEY_Q),
KEY(0, 1, KEY_W), KEY(0, 1, KEY_O),
KEY(0, 2, KEY_E), KEY(0, 2, KEY_P),
KEY(0, 3, KEY_R), KEY(0, 3, KEY_COMMA),
KEY(0, 4, KEY_T), KEY(0, 4, KEY_BACKSPACE),
KEY(0, 5, KEY_Y), KEY(0, 6, KEY_A),
KEY(0, 6, KEY_U), KEY(0, 7, KEY_S),
KEY(0, 7, KEY_I), KEY(1, 0, KEY_W),
KEY(1, 0, KEY_O),
KEY(1, 1, KEY_D), KEY(1, 1, KEY_D),
KEY(1, 2, KEY_DOT), KEY(1, 2, KEY_F),
KEY(1, 3, KEY_V), KEY(1, 3, KEY_G),
KEY(1, 4, KEY_DOWN), KEY(1, 4, KEY_H),
KEY(2, 0, KEY_P), KEY(1, 5, KEY_J),
KEY(2, 1, KEY_F), KEY(1, 6, KEY_K),
KEY(1, 7, KEY_L),
KEY(2, 0, KEY_E),
KEY(2, 1, KEY_DOT),
KEY(2, 2, KEY_UP), KEY(2, 2, KEY_UP),
KEY(2, 3, KEY_B), KEY(2, 3, KEY_ENTER),
KEY(2, 4, KEY_RIGHT), KEY(2, 5, KEY_Z),
KEY(3, 0, KEY_COMMA), KEY(2, 6, KEY_X),
KEY(3, 1, KEY_G), KEY(2, 7, KEY_C),
KEY(3, 2, KEY_ENTER), KEY(3, 0, KEY_R),
KEY(3, 1, KEY_V),
KEY(3, 2, KEY_B),
KEY(3, 3, KEY_N), KEY(3, 3, KEY_N),
KEY(4, 0, KEY_BACKSPACE), KEY(3, 4, KEY_M),
KEY(4, 1, KEY_H), KEY(3, 5, KEY_SPACE),
KEY(4, 3, KEY_M), KEY(3, 6, KEY_SPACE),
KEY(3, 7, KEY_LEFT),
KEY(4, 0, KEY_T),
KEY(4, 1, KEY_DOWN),
KEY(4, 2, KEY_RIGHT),
KEY(4, 4, KEY_LEFTCTRL), KEY(4, 4, KEY_LEFTCTRL),
KEY(5, 1, KEY_J), KEY(4, 5, KEY_RIGHTALT),
KEY(5, 2, KEY_Z), KEY(4, 6, KEY_LEFTSHIFT),
KEY(5, 3, KEY_SPACE), KEY(5, 0, KEY_Y),
KEY(5, 4, KEY_LEFTSHIFT), KEY(6, 0, KEY_U),
KEY(6, 0, KEY_A), KEY(7, 0, KEY_I),
KEY(6, 1, KEY_K), KEY(7, 1, KEY_F7),
KEY(6, 2, KEY_X), KEY(7, 2, KEY_F8),
KEY(6, 3, KEY_SPACE), KEY(0xff, 2, KEY_F9),
KEY(6, 4, KEY_FN), KEY(0xff, 4, KEY_F10),
KEY(7, 0, KEY_S), KEY(0xff, 5, KEY_F11),
KEY(7, 1, KEY_L),
KEY(7, 2, KEY_C),
KEY(7, 3, KEY_LEFT),
KEY(0xff, 0, KEY_F6),
KEY(0xff, 1, KEY_F7),
KEY(0xff, 2, KEY_F8),
KEY(0xff, 4, KEY_F9),
KEY(0xff, 5, KEY_F10),
}; };
static struct matrix_keymap_data board_map_data = { static struct matrix_keymap_data board_map_data = {

View File

@ -338,6 +338,13 @@ static struct omap_clk omap34xx_clks[] = {
*/ */
#define SDRC_MPURATE_LOOPS 96 #define SDRC_MPURATE_LOOPS 96
/*
* DPLL5_FREQ_FOR_USBHOST: USBHOST and USBTLL are the only clocks
* that are sourced by DPLL5, and both of these require this clock
* to be at 120 MHz for proper operation.
*/
#define DPLL5_FREQ_FOR_USBHOST 120000000
/** /**
* omap3430es2_clk_ssi_find_idlest - return CM_IDLEST info for SSI * omap3430es2_clk_ssi_find_idlest - return CM_IDLEST info for SSI
* @clk: struct clk * being enabled * @clk: struct clk * being enabled
@ -1056,6 +1063,28 @@ void omap2_clk_prepare_for_reboot(void)
#endif #endif
} }
static void omap3_clk_lock_dpll5(void)
{
struct clk *dpll5_clk;
struct clk *dpll5_m2_clk;
dpll5_clk = clk_get(NULL, "dpll5_ck");
clk_set_rate(dpll5_clk, DPLL5_FREQ_FOR_USBHOST);
clk_enable(dpll5_clk);
/* Enable autoidle to allow it to enter low power bypass */
omap3_dpll_allow_idle(dpll5_clk);
/* Program dpll5_m2_clk divider for no division */
dpll5_m2_clk = clk_get(NULL, "dpll5_m2_ck");
clk_enable(dpll5_m2_clk);
clk_set_rate(dpll5_m2_clk, DPLL5_FREQ_FOR_USBHOST);
clk_disable(dpll5_m2_clk);
clk_disable(dpll5_clk);
return;
}
/* REVISIT: Move this init stuff out into clock.c */ /* REVISIT: Move this init stuff out into clock.c */
/* /*
@ -1148,6 +1177,12 @@ int __init omap2_clk_init(void)
*/ */
clk_enable_init_clocks(); clk_enable_init_clocks();
/*
* Lock DPLL5 and put it in autoidle.
*/
if (omap_rev() >= OMAP3430_REV_ES2_0)
omap3_clk_lock_dpll5();
/* Avoid sleeping during omap2_clk_prepare_for_reboot() */ /* Avoid sleeping during omap2_clk_prepare_for_reboot() */
/* REVISIT: not yet ready for 343x */ /* REVISIT: not yet ready for 343x */
#if 0 #if 0

View File

@ -541,7 +541,7 @@ static int __init pm_dbg_init(void)
printk(KERN_ERR "%s: only OMAP3 supported\n", __func__); printk(KERN_ERR "%s: only OMAP3 supported\n", __func__);
return -ENODEV; return -ENODEV;
} }
d = debugfs_create_dir("pm_debug", NULL); d = debugfs_create_dir("pm_debug", NULL);
if (IS_ERR(d)) if (IS_ERR(d))
return PTR_ERR(d); return PTR_ERR(d);
@ -551,7 +551,7 @@ static int __init pm_dbg_init(void)
(void) debugfs_create_file("time", S_IRUGO, (void) debugfs_create_file("time", S_IRUGO,
d, (void *)DEBUG_FILE_TIMERS, &debug_fops); d, (void *)DEBUG_FILE_TIMERS, &debug_fops);
pwrdm_for_each(pwrdms_setup, (void *)d); pwrdm_for_each_nolock(pwrdms_setup, (void *)d);
pm_dbg_dir = debugfs_create_dir("registers", d); pm_dbg_dir = debugfs_create_dir("registers", d);
if (IS_ERR(pm_dbg_dir)) if (IS_ERR(pm_dbg_dir))

View File

@ -51,97 +51,112 @@ static void (*_omap_sram_idle)(u32 *addr, int save_state);
static struct powerdomain *mpu_pwrdm; static struct powerdomain *mpu_pwrdm;
/* PRCM Interrupt Handler for wakeups */ /*
* PRCM Interrupt Handler Helper Function
*
* The purpose of this function is to clear any wake-up events latched
* in the PRCM PM_WKST_x registers. It is possible that a wake-up event
* may occur whilst attempting to clear a PM_WKST_x register and thus
* set another bit in this register. A while loop is used to ensure
* that any peripheral wake-up events occurring while attempting to
* clear the PM_WKST_x are detected and cleared.
*/
static int prcm_clear_mod_irqs(s16 module, u8 regs)
{
u32 wkst, fclk, iclk, clken;
u16 wkst_off = (regs == 3) ? OMAP3430ES2_PM_WKST3 : PM_WKST1;
u16 fclk_off = (regs == 3) ? OMAP3430ES2_CM_FCLKEN3 : CM_FCLKEN1;
u16 iclk_off = (regs == 3) ? CM_ICLKEN3 : CM_ICLKEN1;
u16 grpsel_off = (regs == 3) ?
OMAP3430ES2_PM_MPUGRPSEL3 : OMAP3430_PM_MPUGRPSEL;
int c = 0;
wkst = prm_read_mod_reg(module, wkst_off);
wkst &= prm_read_mod_reg(module, grpsel_off);
if (wkst) {
iclk = cm_read_mod_reg(module, iclk_off);
fclk = cm_read_mod_reg(module, fclk_off);
while (wkst) {
clken = wkst;
cm_set_mod_reg_bits(clken, module, iclk_off);
/*
* For USBHOST, we don't know whether HOST1 or
* HOST2 woke us up, so enable both f-clocks
*/
if (module == OMAP3430ES2_USBHOST_MOD)
clken |= 1 << OMAP3430ES2_EN_USBHOST2_SHIFT;
cm_set_mod_reg_bits(clken, module, fclk_off);
prm_write_mod_reg(wkst, module, wkst_off);
wkst = prm_read_mod_reg(module, wkst_off);
c++;
}
cm_write_mod_reg(iclk, module, iclk_off);
cm_write_mod_reg(fclk, module, fclk_off);
}
return c;
}
static int _prcm_int_handle_wakeup(void)
{
int c;
c = prcm_clear_mod_irqs(WKUP_MOD, 1);
c += prcm_clear_mod_irqs(CORE_MOD, 1);
c += prcm_clear_mod_irqs(OMAP3430_PER_MOD, 1);
if (omap_rev() > OMAP3430_REV_ES1_0) {
c += prcm_clear_mod_irqs(CORE_MOD, 3);
c += prcm_clear_mod_irqs(OMAP3430ES2_USBHOST_MOD, 1);
}
return c;
}
/*
* PRCM Interrupt Handler
*
* The PRM_IRQSTATUS_MPU register indicates if there are any pending
* interrupts from the PRCM for the MPU. These bits must be cleared in
* order to clear the PRCM interrupt. The PRCM interrupt handler is
* implemented to simply clear the PRM_IRQSTATUS_MPU in order to clear
* the PRCM interrupt. Please note that bit 0 of the PRM_IRQSTATUS_MPU
* register indicates that a wake-up event is pending for the MPU and
* this bit can only be cleared if the all the wake-up events latched
* in the various PM_WKST_x registers have been cleared. The interrupt
* handler is implemented using a do-while loop so that if a wake-up
* event occurred during the processing of the prcm interrupt handler
* (setting a bit in the corresponding PM_WKST_x register and thus
* preventing us from clearing bit 0 of the PRM_IRQSTATUS_MPU register)
* this would be handled.
*/
static irqreturn_t prcm_interrupt_handler (int irq, void *dev_id) static irqreturn_t prcm_interrupt_handler (int irq, void *dev_id)
{ {
u32 wkst, irqstatus_mpu; u32 irqstatus_mpu;
u32 fclk, iclk; int c = 0;
/* WKUP */ do {
wkst = prm_read_mod_reg(WKUP_MOD, PM_WKST); irqstatus_mpu = prm_read_mod_reg(OCP_MOD,
if (wkst) { OMAP3_PRM_IRQSTATUS_MPU_OFFSET);
iclk = cm_read_mod_reg(WKUP_MOD, CM_ICLKEN);
fclk = cm_read_mod_reg(WKUP_MOD, CM_FCLKEN);
cm_set_mod_reg_bits(wkst, WKUP_MOD, CM_ICLKEN);
cm_set_mod_reg_bits(wkst, WKUP_MOD, CM_FCLKEN);
prm_write_mod_reg(wkst, WKUP_MOD, PM_WKST);
while (prm_read_mod_reg(WKUP_MOD, PM_WKST))
cpu_relax();
cm_write_mod_reg(iclk, WKUP_MOD, CM_ICLKEN);
cm_write_mod_reg(fclk, WKUP_MOD, CM_FCLKEN);
}
/* CORE */ if (irqstatus_mpu & (OMAP3430_WKUP_ST | OMAP3430_IO_ST)) {
wkst = prm_read_mod_reg(CORE_MOD, PM_WKST1); c = _prcm_int_handle_wakeup();
if (wkst) {
iclk = cm_read_mod_reg(CORE_MOD, CM_ICLKEN1);
fclk = cm_read_mod_reg(CORE_MOD, CM_FCLKEN1);
cm_set_mod_reg_bits(wkst, CORE_MOD, CM_ICLKEN1);
cm_set_mod_reg_bits(wkst, CORE_MOD, CM_FCLKEN1);
prm_write_mod_reg(wkst, CORE_MOD, PM_WKST1);
while (prm_read_mod_reg(CORE_MOD, PM_WKST1))
cpu_relax();
cm_write_mod_reg(iclk, CORE_MOD, CM_ICLKEN1);
cm_write_mod_reg(fclk, CORE_MOD, CM_FCLKEN1);
}
wkst = prm_read_mod_reg(CORE_MOD, OMAP3430ES2_PM_WKST3);
if (wkst) {
iclk = cm_read_mod_reg(CORE_MOD, CM_ICLKEN3);
fclk = cm_read_mod_reg(CORE_MOD, OMAP3430ES2_CM_FCLKEN3);
cm_set_mod_reg_bits(wkst, CORE_MOD, CM_ICLKEN3);
cm_set_mod_reg_bits(wkst, CORE_MOD, OMAP3430ES2_CM_FCLKEN3);
prm_write_mod_reg(wkst, CORE_MOD, OMAP3430ES2_PM_WKST3);
while (prm_read_mod_reg(CORE_MOD, OMAP3430ES2_PM_WKST3))
cpu_relax();
cm_write_mod_reg(iclk, CORE_MOD, CM_ICLKEN3);
cm_write_mod_reg(fclk, CORE_MOD, OMAP3430ES2_CM_FCLKEN3);
}
/* PER */ /*
wkst = prm_read_mod_reg(OMAP3430_PER_MOD, PM_WKST); * Is the MPU PRCM interrupt handler racing with the
if (wkst) { * IVA2 PRCM interrupt handler ?
iclk = cm_read_mod_reg(OMAP3430_PER_MOD, CM_ICLKEN); */
fclk = cm_read_mod_reg(OMAP3430_PER_MOD, CM_FCLKEN); WARN(c == 0, "prcm: WARNING: PRCM indicated MPU wakeup "
cm_set_mod_reg_bits(wkst, OMAP3430_PER_MOD, CM_ICLKEN); "but no wakeup sources are marked\n");
cm_set_mod_reg_bits(wkst, OMAP3430_PER_MOD, CM_FCLKEN); } else {
prm_write_mod_reg(wkst, OMAP3430_PER_MOD, PM_WKST); /* XXX we need to expand our PRCM interrupt handler */
while (prm_read_mod_reg(OMAP3430_PER_MOD, PM_WKST)) WARN(1, "prcm: WARNING: PRCM interrupt received, but "
cpu_relax(); "no code to handle it (%08x)\n", irqstatus_mpu);
cm_write_mod_reg(iclk, OMAP3430_PER_MOD, CM_ICLKEN);
cm_write_mod_reg(fclk, OMAP3430_PER_MOD, CM_FCLKEN);
}
if (omap_rev() > OMAP3430_REV_ES1_0) {
/* USBHOST */
wkst = prm_read_mod_reg(OMAP3430ES2_USBHOST_MOD, PM_WKST);
if (wkst) {
iclk = cm_read_mod_reg(OMAP3430ES2_USBHOST_MOD,
CM_ICLKEN);
fclk = cm_read_mod_reg(OMAP3430ES2_USBHOST_MOD,
CM_FCLKEN);
cm_set_mod_reg_bits(wkst, OMAP3430ES2_USBHOST_MOD,
CM_ICLKEN);
cm_set_mod_reg_bits(wkst, OMAP3430ES2_USBHOST_MOD,
CM_FCLKEN);
prm_write_mod_reg(wkst, OMAP3430ES2_USBHOST_MOD,
PM_WKST);
while (prm_read_mod_reg(OMAP3430ES2_USBHOST_MOD,
PM_WKST))
cpu_relax();
cm_write_mod_reg(iclk, OMAP3430ES2_USBHOST_MOD,
CM_ICLKEN);
cm_write_mod_reg(fclk, OMAP3430ES2_USBHOST_MOD,
CM_FCLKEN);
} }
}
irqstatus_mpu = prm_read_mod_reg(OCP_MOD, prm_write_mod_reg(irqstatus_mpu, OCP_MOD,
OMAP3_PRM_IRQSTATUS_MPU_OFFSET); OMAP3_PRM_IRQSTATUS_MPU_OFFSET);
prm_write_mod_reg(irqstatus_mpu, OCP_MOD,
OMAP3_PRM_IRQSTATUS_MPU_OFFSET);
while (prm_read_mod_reg(OCP_MOD, OMAP3_PRM_IRQSTATUS_MPU_OFFSET)) } while (prm_read_mod_reg(OCP_MOD, OMAP3_PRM_IRQSTATUS_MPU_OFFSET));
cpu_relax();
return IRQ_HANDLED; return IRQ_HANDLED;
} }
@ -624,6 +639,16 @@ static void __init prcm_setup_regs(void)
prm_write_mod_reg(OMAP3430_IO_EN | OMAP3430_WKUP_EN, prm_write_mod_reg(OMAP3430_IO_EN | OMAP3430_WKUP_EN,
OCP_MOD, OMAP3_PRM_IRQENABLE_MPU_OFFSET); OCP_MOD, OMAP3_PRM_IRQENABLE_MPU_OFFSET);
/* Enable GPIO wakeups in PER */
prm_write_mod_reg(OMAP3430_EN_GPIO2 | OMAP3430_EN_GPIO3 |
OMAP3430_EN_GPIO4 | OMAP3430_EN_GPIO5 |
OMAP3430_EN_GPIO6, OMAP3430_PER_MOD, PM_WKEN);
/* and allow them to wake up MPU */
prm_write_mod_reg(OMAP3430_GRPSEL_GPIO2 | OMAP3430_EN_GPIO3 |
OMAP3430_GRPSEL_GPIO4 | OMAP3430_EN_GPIO5 |
OMAP3430_GRPSEL_GPIO6,
OMAP3430_PER_MOD, OMAP3430_PM_MPUGRPSEL);
/* Don't attach IVA interrupts */ /* Don't attach IVA interrupts */
prm_write_mod_reg(0, WKUP_MOD, OMAP3430_PM_IVAGRPSEL); prm_write_mod_reg(0, WKUP_MOD, OMAP3430_PM_IVAGRPSEL);
prm_write_mod_reg(0, CORE_MOD, OMAP3430_PM_IVAGRPSEL1); prm_write_mod_reg(0, CORE_MOD, OMAP3430_PM_IVAGRPSEL1);

View File

@ -273,35 +273,50 @@ struct powerdomain *pwrdm_lookup(const char *name)
} }
/** /**
* pwrdm_for_each - call function on each registered clockdomain * pwrdm_for_each_nolock - call function on each registered clockdomain
* @fn: callback function * * @fn: callback function *
* *
* Call the supplied function for each registered powerdomain. The * Call the supplied function for each registered powerdomain. The
* callback function can return anything but 0 to bail out early from * callback function can return anything but 0 to bail out early from
* the iterator. The callback function is called with the pwrdm_rwlock * the iterator. Returns the last return value of the callback function, which
* held for reading, so no powerdomain structure manipulation * should be 0 for success or anything else to indicate failure; or -EINVAL if
* functions should be called from the callback, although hardware * the function pointer is null.
* powerdomain control functions are fine. Returns the last return
* value of the callback function, which should be 0 for success or
* anything else to indicate failure; or -EINVAL if the function
* pointer is null.
*/ */
int pwrdm_for_each(int (*fn)(struct powerdomain *pwrdm, void *user), int pwrdm_for_each_nolock(int (*fn)(struct powerdomain *pwrdm, void *user),
void *user) void *user)
{ {
struct powerdomain *temp_pwrdm; struct powerdomain *temp_pwrdm;
unsigned long flags;
int ret = 0; int ret = 0;
if (!fn) if (!fn)
return -EINVAL; return -EINVAL;
read_lock_irqsave(&pwrdm_rwlock, flags);
list_for_each_entry(temp_pwrdm, &pwrdm_list, node) { list_for_each_entry(temp_pwrdm, &pwrdm_list, node) {
ret = (*fn)(temp_pwrdm, user); ret = (*fn)(temp_pwrdm, user);
if (ret) if (ret)
break; break;
} }
return ret;
}
/**
* pwrdm_for_each - call function on each registered clockdomain
* @fn: callback function *
*
* This function is the same as 'pwrdm_for_each_nolock()', but keeps the
* &pwrdm_rwlock locked for reading, so no powerdomain structure manipulation
* functions should be called from the callback, although hardware powerdomain
* control functions are fine.
*/
int pwrdm_for_each(int (*fn)(struct powerdomain *pwrdm, void *user),
void *user)
{
unsigned long flags;
int ret;
read_lock_irqsave(&pwrdm_rwlock, flags);
ret = pwrdm_for_each_nolock(fn, user);
read_unlock_irqrestore(&pwrdm_rwlock, flags); read_unlock_irqrestore(&pwrdm_rwlock, flags);
return ret; return ret;

View File

@ -155,7 +155,7 @@ MODULE_PARM_DESC(pxa255_turbo_table, "Selects the frequency table (0 = run table
static pxa_freqs_t pxa27x_freqs[] = { static pxa_freqs_t pxa27x_freqs[] = {
{104000, 104000, PXA27x_CCCR(1, 8, 2), 0, CCLKCFG2(1, 0, 1), 900000, 1705000 }, {104000, 104000, PXA27x_CCCR(1, 8, 2), 0, CCLKCFG2(1, 0, 1), 900000, 1705000 },
{156000, 104000, PXA27x_CCCR(1, 8, 6), 0, CCLKCFG2(1, 1, 1), 1000000, 1705000 }, {156000, 104000, PXA27x_CCCR(1, 8, 3), 0, CCLKCFG2(1, 0, 1), 1000000, 1705000 },
{208000, 208000, PXA27x_CCCR(0, 16, 2), 1, CCLKCFG2(0, 0, 1), 1180000, 1705000 }, {208000, 208000, PXA27x_CCCR(0, 16, 2), 1, CCLKCFG2(0, 0, 1), 1180000, 1705000 },
{312000, 208000, PXA27x_CCCR(1, 16, 3), 1, CCLKCFG2(1, 0, 1), 1250000, 1705000 }, {312000, 208000, PXA27x_CCCR(1, 16, 3), 1, CCLKCFG2(1, 0, 1), 1250000, 1705000 },
{416000, 208000, PXA27x_CCCR(1, 16, 4), 1, CCLKCFG2(1, 0, 1), 1350000, 1705000 }, {416000, 208000, PXA27x_CCCR(1, 16, 4), 1, CCLKCFG2(1, 0, 1), 1350000, 1705000 },

View File

@ -238,7 +238,7 @@ static struct resource csb726_lan_resources[] = {
}; };
struct smsc911x_platform_config csb726_lan_config = { struct smsc911x_platform_config csb726_lan_config = {
.irq_type = SMSC911X_IRQ_POLARITY_ACTIVE_LOW, .irq_polarity = SMSC911X_IRQ_POLARITY_ACTIVE_LOW,
.irq_type = SMSC911X_IRQ_TYPE_PUSH_PULL, .irq_type = SMSC911X_IRQ_TYPE_PUSH_PULL,
.flags = SMSC911X_USE_32BIT, .flags = SMSC911X_USE_32BIT,
.phy_interface = PHY_INTERFACE_MODE_MII, .phy_interface = PHY_INTERFACE_MODE_MII,

View File

@ -303,32 +303,21 @@ IS_OMAP_TYPE(3430, 0x3430)
#define cpu_is_omap2430() 0 #define cpu_is_omap2430() 0
#define cpu_is_omap3430() 0 #define cpu_is_omap3430() 0
#if defined(MULTI_OMAP1)
# if defined(CONFIG_ARCH_OMAP730)
# undef cpu_is_omap730
# define cpu_is_omap730() is_omap730()
# endif
# if defined(CONFIG_ARCH_OMAP850)
# undef cpu_is_omap850
# define cpu_is_omap850() is_omap850()
# endif
#else
# if defined(CONFIG_ARCH_OMAP730)
# undef cpu_is_omap730
# define cpu_is_omap730() 1
# endif
#endif
#else
# if defined(CONFIG_ARCH_OMAP850)
# undef cpu_is_omap850
# define cpu_is_omap850() 1
# endif
#endif
/* /*
* Whether we have MULTI_OMAP1 or not, we still need to distinguish * Whether we have MULTI_OMAP1 or not, we still need to distinguish
* between 330 vs. 1510 and 1611B/5912 vs. 1710. * between 730 vs 850, 330 vs. 1510 and 1611B/5912 vs. 1710.
*/ */
#if defined(CONFIG_ARCH_OMAP730)
# undef cpu_is_omap730
# define cpu_is_omap730() is_omap730()
#endif
#if defined(CONFIG_ARCH_OMAP850)
# undef cpu_is_omap850
# define cpu_is_omap850() is_omap850()
#endif
#if defined(CONFIG_ARCH_OMAP15XX) #if defined(CONFIG_ARCH_OMAP15XX)
# undef cpu_is_omap310 # undef cpu_is_omap310
# undef cpu_is_omap1510 # undef cpu_is_omap1510
@ -433,3 +422,5 @@ IS_OMAP_TYPE(3430, 0x3430)
int omap_chip_is(struct omap_chip_id oci); int omap_chip_is(struct omap_chip_id oci);
void omap2_check_revision(void); void omap2_check_revision(void);
#endif

View File

@ -135,6 +135,8 @@ struct powerdomain *pwrdm_lookup(const char *name);
int pwrdm_for_each(int (*fn)(struct powerdomain *pwrdm, void *user), int pwrdm_for_each(int (*fn)(struct powerdomain *pwrdm, void *user),
void *user); void *user);
int pwrdm_for_each_nolock(int (*fn)(struct powerdomain *pwrdm, void *user),
void *user);
int pwrdm_add_clkdm(struct powerdomain *pwrdm, struct clockdomain *clkdm); int pwrdm_add_clkdm(struct powerdomain *pwrdm, struct clockdomain *clkdm);
int pwrdm_del_clkdm(struct powerdomain *pwrdm, struct clockdomain *clkdm); int pwrdm_del_clkdm(struct powerdomain *pwrdm, struct clockdomain *clkdm);

View File

@ -47,7 +47,7 @@
* 'va': mpu virtual address * 'va': mpu virtual address
* *
* 'c': contiguous memory area * 'c': contiguous memory area
* 'd': dicontiguous memory area * 'd': discontiguous memory area
* 'a': anonymous memory allocation * 'a': anonymous memory allocation
* '()': optional feature * '()': optional feature
* *
@ -363,8 +363,9 @@ void *da_to_va(struct iommu *obj, u32 da)
goto out; goto out;
} }
va = area->va; va = area->va;
mutex_unlock(&obj->mmap_lock);
out: out:
mutex_unlock(&obj->mmap_lock);
return va; return va;
} }
EXPORT_SYMBOL_GPL(da_to_va); EXPORT_SYMBOL_GPL(da_to_va);
@ -398,7 +399,7 @@ static inline void sgtable_drain_vmalloc(struct sg_table *sgt)
{ {
/* /*
* Actually this is not necessary at all, just exists for * Actually this is not necessary at all, just exists for
* consistency of the code readibility. * consistency of the code readability.
*/ */
BUG_ON(!sgt); BUG_ON(!sgt);
} }
@ -434,7 +435,7 @@ static inline void sgtable_drain_kmalloc(struct sg_table *sgt)
{ {
/* /*
* Actually this is not necessary at all, just exists for * Actually this is not necessary at all, just exists for
* consistency of the code readibility * consistency of the code readability
*/ */
BUG_ON(!sgt); BUG_ON(!sgt);
} }

View File

@ -270,7 +270,8 @@ void * omap_sram_push(void * start, unsigned long size)
omap_sram_ceil -= size; omap_sram_ceil -= size;
omap_sram_ceil = ROUND_DOWN(omap_sram_ceil, sizeof(void *)); omap_sram_ceil = ROUND_DOWN(omap_sram_ceil, sizeof(void *));
memcpy((void *)omap_sram_ceil, start, size); memcpy((void *)omap_sram_ceil, start, size);
flush_icache_range((unsigned long)start, (unsigned long)(start + size)); flush_icache_range((unsigned long)omap_sram_ceil,
(unsigned long)(omap_sram_ceil + size));
return (void *)omap_sram_ceil; return (void *)omap_sram_ceil;
} }

View File

@ -14,6 +14,7 @@
#include <linux/module.h> #include <linux/module.h>
#include <linux/kernel.h> #include <linux/kernel.h>
#include <linux/platform_device.h> #include <linux/platform_device.h>
#include <linux/sched.h>
#include <linux/list.h> #include <linux/list.h>
#include <linux/err.h> #include <linux/err.h>
#include <linux/clk.h> #include <linux/clk.h>

41
arch/blackfin/ADI_BSD.txt Normal file
View File

@ -0,0 +1,41 @@
This BSD-Style License applies to a few files in ./arch/blackfin directory,
and is included here, so people understand which code they can use outside
the Linux kernel, in non-GPL based projects.
Using the files released under the "ADI BSD" license, must comply with
these license terms.
--------------------------------------------------------------------------
Copyright Analog Devices, Inc.
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
- Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
- Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in
the documentation and/or other materials provided with the
distribution.
- Neither the name of Analog Devices, Inc. nor the names of its
contributors may be used to endorse or promote products derived
from this software without specific prior written permission.
- The use of this software may or may not infringe the patent rights
of one or more patent holders. This license does not release you
from the requirement that you obtain separate licenses from these
patent holders to use this software.
THIS SOFTWARE IS PROVIDED BY ANALOG DEVICES "AS IS" AND ANY EXPRESS OR
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, NON-INFRINGEMENT,
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
IN NO EVENT SHALL ANALOG DEVICES BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
BUT NOT LIMITED TO, INTELLECTUAL PROPERTY RIGHTS, PROCUREMENT OF
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
ADVISED OF THE POSSIBILITY OF SUCH DAMAGE

View File

@ -47,6 +47,9 @@ config GENERIC_HARDIRQS
config GENERIC_IRQ_PROBE config GENERIC_IRQ_PROBE
def_bool y def_bool y
config GENERIC_HARDIRQS_NO__DO_IRQ
def_bool y
config GENERIC_GPIO config GENERIC_GPIO
def_bool y def_bool y
@ -229,7 +232,7 @@ endchoice
config SMP config SMP
depends on BF561 depends on BF561
select GENERIC_TIME select GENERIC_CLOCKEVENTS
bool "Symmetric multi-processing support" bool "Symmetric multi-processing support"
---help--- ---help---
This enables support for systems with more than one CPU, This enables support for systems with more than one CPU,
@ -613,12 +616,10 @@ comment "Kernel Timer/Scheduler"
source kernel/Kconfig.hz source kernel/Kconfig.hz
config GENERIC_TIME config GENERIC_TIME
bool "Generic time" def_bool y
default y
config GENERIC_CLOCKEVENTS config GENERIC_CLOCKEVENTS
bool "Generic clock events" bool "Generic clock events"
depends on GENERIC_TIME
default y default y
choice choice
@ -653,6 +654,10 @@ config GPTMR0_CLOCKSOURCE
depends on GENERIC_CLOCKEVENTS depends on GENERIC_CLOCKEVENTS
depends on !TICKSOURCE_GPTMR0 depends on !TICKSOURCE_GPTMR0
config ARCH_USES_GETTIMEOFFSET
depends on !GENERIC_CLOCKEVENTS
def_bool y
source kernel/time/Kconfig source kernel/time/Kconfig
comment "Misc" comment "Misc"

View File

@ -1,3 +1,9 @@
/*
 * Copyright 2004-2009 Analog Devices Inc.
 *
 * Licensed under the GPL-2 or later.
 */
#ifndef __ARCH_BLACKFIN_ATOMIC__ #ifndef __ARCH_BLACKFIN_ATOMIC__
#define __ARCH_BLACKFIN_ATOMIC__ #define __ARCH_BLACKFIN_ATOMIC__

View File

@ -1,29 +1,9 @@
/* /*
* File: include/asm-blackfin/bfin-global.h * Global extern defines for blackfin
* Based on:
* Author: *
* Created:
* Description: Global extern defines for blackfin
* *
* Modified: * Copyright 2006-2009 Analog Devices Inc.
* Copyright 2004-2006 Analog Devices Inc.
* *
* Bugs: Enter bugs at http://blackfin.uclinux.org/ * Licensed under the GPL-2 or later.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, see the file COPYING, or write
* to the Free Software Foundation, Inc.,
* 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/ */
#ifndef _BFIN_GLOBAL_H_ #ifndef _BFIN_GLOBAL_H_

View File

@ -3,8 +3,6 @@
* *
* Copyright 2004-2008 Analog Devices Inc. * Copyright 2004-2008 Analog Devices Inc.
* *
* Enter bugs at http://blackfin.uclinux.org/
*
* Licensed under the GPL-2 or later. * Licensed under the GPL-2 or later.
*/ */

View File

@ -1,6 +1,10 @@
/* /*
* board initialization should put one of these structures into platform_data * board initialization should put one of these structures into platform_data
* and place the bfin-rotary onto platform_bus named "bfin-rotary". * and place the bfin-rotary onto platform_bus named "bfin-rotary".
*
* Copyright 2008 Analog Devices Inc.
*
* Licensed under the GPL-2 or later.
*/ */
#ifndef _BFIN_ROTARY_H #ifndef _BFIN_ROTARY_H

View File

@ -1,3 +1,9 @@
/*
* Copyright 2006-2008 Analog Devices Inc.
*
* Licensed under the GPL-2 or later.
*/
#ifndef _bfin_simple_timer_h_ #ifndef _bfin_simple_timer_h_
#define _bfin_simple_timer_h_ #define _bfin_simple_timer_h_

View File

@ -1,3 +1,9 @@
/*
* Copyright 2004-2009 Analog Devices Inc.
*
* Licensed under the GPL-2 or later.
*/
#ifndef _BLACKFIN_BITOPS_H #ifndef _BLACKFIN_BITOPS_H
#define _BLACKFIN_BITOPS_H #define _BLACKFIN_BITOPS_H

View File

@ -1,6 +1,9 @@
/* /*
* Common header file for blackfin family of processors. * Common header file for Blackfin family of processors.
* *
 * Copyright 2004-2009 Analog Devices Inc.
 *
 * Licensed under the GPL-2 or later.
*/ */
#ifndef _BLACKFIN_H_ #ifndef _BLACKFIN_H_

View File

@ -1,3 +1,9 @@
/*
* Copyright 2004-2009 Analog Devices Inc.
*
* Licensed under the GPL-2 or later.
*/
#ifndef _BLACKFIN_BUG_H #ifndef _BLACKFIN_BUG_H
#define _BLACKFIN_BUG_H #define _BLACKFIN_BUG_H

View File

@ -1,6 +1 @@
#ifndef _BLACKFIN_BYTEORDER_H
#define _BLACKFIN_BYTEORDER_H
#include <linux/byteorder/little_endian.h> #include <linux/byteorder/little_endian.h>
#endif /* _BLACKFIN_BYTEORDER_H */

View File

@ -1,6 +1,9 @@
/* /*
* include/asm-blackfin/cache.h * Copyright 2004-2009 Analog Devices Inc.
*
* Licensed under the GPL-2 or later.
*/ */
#ifndef __ARCH_BLACKFIN_CACHE_H #ifndef __ARCH_BLACKFIN_CACHE_H
#define __ARCH_BLACKFIN_CACHE_H #define __ARCH_BLACKFIN_CACHE_H
@ -35,10 +38,10 @@
#if defined(CONFIG_SMP) && \ #if defined(CONFIG_SMP) && \
!defined(CONFIG_BFIN_CACHE_COHERENT) !defined(CONFIG_BFIN_CACHE_COHERENT)
# if defined(CONFIG_BFIN_ICACHEABLE) || defined(CONFIG_BFIN_L2_ICACHEABLE) # if defined(CONFIG_BFIN_EXTMEM_ICACHEABLE) || defined(CONFIG_BFIN_L2_ICACHEABLE)
# define __ARCH_SYNC_CORE_ICACHE # define __ARCH_SYNC_CORE_ICACHE
# endif # endif
# if defined(CONFIG_BFIN_DCACHEABLE) || defined(CONFIG_BFIN_L2_DCACHEABLE) # if defined(CONFIG_BFIN_EXTMEM_DCACHEABLE) || defined(CONFIG_BFIN_L2_DCACHEABLE)
# define __ARCH_SYNC_CORE_DCACHE # define __ARCH_SYNC_CORE_DCACHE
# endif # endif
#ifndef __ASSEMBLY__ #ifndef __ASSEMBLY__

View File

@ -1,30 +1,9 @@
/* /*
* File: include/asm-blackfin/cacheflush.h * Blackfin low-level cache routines
* Based on: include/asm-m68knommu/cacheflush.h
* Author: LG Soft India
* Copyright (C) 2004 Analog Devices Inc.
* Created: Tue Sep 21 2004
* Description: Blackfin low-level cache routines adapted from the i386
* and PPC versions by Greg Ungerer (gerg@snapgear.com)
* *
* Modified: * Copyright 2004-2009 Analog Devices Inc.
* *
* Bugs: Enter bugs at http://blackfin.uclinux.org/ * Licensed under the GPL-2 or later.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2, or (at your option)
* any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; see the file COPYING.
* If not, write to the Free Software Foundation,
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/ */
#ifndef _BLACKFIN_CACHEFLUSH_H #ifndef _BLACKFIN_CACHEFLUSH_H

View File

@ -1,30 +1,8 @@
/* /*
* File: include/asm-blackfin/mach-common/cdef_LPBlackfin.h * Copyright 2005-2008 Analog Devices Inc.
* Based on: *
* Author: unknown * Licensed under the GPL-2 or later.
* COPYRIGHT 2005 Analog Devices */
* Created: ?
* Description:
*
* Modified:
*
* Bugs: Enter bugs at http://blackfin.uclinux.org/
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2, or (at your option)
* any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; see the file COPYING.
* If not, write to the Free Software Foundation,
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
#ifndef _CDEF_LPBLACKFIN_H #ifndef _CDEF_LPBLACKFIN_H
#define _CDEF_LPBLACKFIN_H #define _CDEF_LPBLACKFIN_H

View File

@ -1,9 +1,14 @@
/*
* Copyright 2004-2009 Analog Devices Inc.
* akbar.hussain@lineo.com
*
* Licensed under the GPL-2 or later.
*/
#ifndef _BFIN_CHECKSUM_H #ifndef _BFIN_CHECKSUM_H
#define _BFIN_CHECKSUM_H #define _BFIN_CHECKSUM_H
/* /*
* MODIFIED FOR BFIN April 30, 2001 akbar.hussain@lineo.com
*
* computes the checksum of a memory block at buff, length len, * computes the checksum of a memory block at buff, length len,
* and adds in "sum" (32-bit) * and adds in "sum" (32-bit)
* *

View File

@ -1,30 +1,9 @@
/* /*
* File: include/asm-blackfin/mach-common/clocks.h * Common Clock definitions for various kernel files
* Based on: include/asm-blackfin/mach-bf537/bf537.h
* Author: Robin Getz <rgetz@blackfin.uclinux.org>
* *
* Created: 25Jul07 * Copyright 2007-2008 Analog Devices Inc.
* Description: Common Clock definitions for various kernel files
* *
* Modified: * Licensed under the GPL-2 or later.
* Copyright 2004-2007 Analog Devices Inc.
*
* Bugs: Enter bugs at http://blackfin.uclinux.org/
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, see the file COPYING, or write
* to the Free Software Foundation, Inc.,
* 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/ */
#ifndef _BFIN_CLOCKS_H #ifndef _BFIN_CLOCKS_H

View File

@ -1,30 +1,7 @@
/* /*
* File: arch/blackfin/kernel/context.S * Copyright 2007-2009 Analog Devices Inc.
* Based on:
* Author:
* *
* Created: * Licensed under the GPL-2 or later.
* Description:
*
* Modified:
* Copyright 2004-2007 Analog Devices Inc.
*
* Bugs: Enter bugs at http://blackfin.uclinux.org/
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, see the file COPYING, or write
* to the Free Software Foundation, Inc.,
* 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/ */
/* /*

View File

@ -1,30 +1,7 @@
/* /*
* File: include/asm-blackfin/cplb.h * Copyright 2004-2009 Analog Devices Inc.
* Based on: include/asm-blackfin/mach-bf537/bf537.h
* Author: Robin Getz <rgetz@blackfin.uclinux.org>
* *
* Created: 2000 * Licensed under the GPL-2 or later.
* Description: Common CPLB definitions for CPLB init
*
* Modified:
* Copyright 2004-2007 Analog Devices Inc.
*
* Bugs: Enter bugs at http://blackfin.uclinux.org/
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, see the file COPYING, or write
* to the Free Software Foundation, Inc.,
* 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/ */
#ifndef _CPLB_H #ifndef _CPLB_H

View File

@ -1,30 +1,9 @@
/* /*
* File: include/asm-blackfin/cplbinit.h * Common CPLB definitions for CPLB init
* Based on:
* Author:
* *
* Created: * Copyright 2006-2008 Analog Devices Inc.
* Description:
* *
* Modified: * Licensed under the GPL-2 or later.
* Copyright 2004-2006 Analog Devices Inc.
*
* Bugs: Enter bugs at http://blackfin.uclinux.org/
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, see the file COPYING, or write
* to the Free Software Foundation, Inc.,
* 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/ */
#ifndef __ASM_CPLBINIT_H__ #ifndef __ASM_CPLBINIT_H__

View File

@ -1,23 +1,8 @@
/* /*
* File: arch/blackfin/include/asm/cpu.h. * Copyright 2007-2009 Analog Devices Inc.
* Author: Philippe Gerum <rpm@xenomai.org> * Philippe Gerum <rpm@xenomai.org>
* *
* Copyright 2007 Analog Devices Inc. * Licensed under the GPL-2 or later.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, see the file COPYING, or write
* to the Free Software Foundation, Inc.,
* 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/ */
#ifndef __ASM_BLACKFIN_CPU_H #ifndef __ASM_BLACKFIN_CPU_H

View File

@ -1,32 +1,10 @@
/* /*
* File: include/asm-blackfin/mach-common/def_LPBlackfin.h * Blackfin core register bit & address definitions
* Based on: *
* Author: unknown * Copyright 2005-2008 Analog Devices Inc.
* COPYRIGHT 2005 Analog Devices *
* Created: ? * Licensed under the ADI BSD license or GPL-2 (or later).
* Description: */
*
* Modified:
*
* Bugs: Enter bugs at http://blackfin.uclinux.org/
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2, or (at your option)
* any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; see the file COPYING.
* If not, write to the Free Software Foundation,
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
/* LP Blackfin CORE REGISTER BIT & ADDRESS DEFINITIONS FOR ADSP-BF532/33 */
#ifndef _DEF_LPBLACKFIN_H #ifndef _DEF_LPBLACKFIN_H
#define _DEF_LPBLACKFIN_H #define _DEF_LPBLACKFIN_H

View File

@ -1,3 +1,9 @@
/*
* Copyright 2004-2009 Analog Devices Inc.
*
* Licensed under the GPL-2 or later.
*/
#ifndef _BLACKFIN_DMA_MAPPING_H #ifndef _BLACKFIN_DMA_MAPPING_H
#define _BLACKFIN_DMA_MAPPING_H #define _BLACKFIN_DMA_MAPPING_H

View File

@ -1,9 +1,11 @@
/* /*
* include/asm-blackfin/dpmc.h - Miscellaneous IOCTL commands for Dynamic Power * Miscellaneous IOCTL commands for Dynamic Power Management Controller Driver
* Management Controller Driver. *
* Copyright (C) 2004-2008 Analog Device Inc. * Copyright (C) 2004-2008 Analog Device Inc.
* *
* Licensed under the GPL-2
*/ */
#ifndef _BLACKFIN_DPMC_H_ #ifndef _BLACKFIN_DPMC_H_
#define _BLACKFIN_DPMC_H_ #define _BLACKFIN_DPMC_H_

View File

@ -1,27 +1,11 @@
/* /*
* File: include/asm-blackfin/early_printk.h * function prototpyes for early printk
* Author: Robin Getz <rgetz@blackfin.uclinux.org
* *
* Created: 14Aug2007 * Copyright 2007-2009 Analog Devices Inc.
* Description: function prototpyes for early printk
* *
* Modified: * Licensed under the GPL-2 or later.
* Copyright 2004-2007 Analog Devices Inc.
*
* Bugs: Enter bugs at http://blackfin.uclinux.org/
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/ */
#ifndef __ASM_EARLY_PRINTK_H__ #ifndef __ASM_EARLY_PRINTK_H__
#define __ASM_EARLY_PRINTK_H__ #define __ASM_EARLY_PRINTK_H__

View File

@ -1,4 +1,8 @@
/* Changes made by LG Soft Oct 2004*/ /*
* Copyright 2004-2009 Analog Devices Inc.
*
* Licensed under the GPL-2 or later.
*/
#ifndef __ASMBFIN_ELF_H #ifndef __ASMBFIN_ELF_H
#define __ASMBFIN_ELF_H #define __ASMBFIN_ELF_H

View File

@ -1,3 +1,9 @@
/*
* Copyright 2004-2009 Analog Devices Inc.
*
* Licensed under the GPL-2 or later.
*/
#ifndef __BFIN_ENTRY_H #ifndef __BFIN_ENTRY_H
#define __BFIN_ENTRY_H #define __BFIN_ENTRY_H

View File

@ -1,3 +1,9 @@
/*
* Copyright 2004-2008 Analog Devices Inc.
*
* Licensed under the GPL-2 or later.
*/
#ifndef _BFIN_FCNTL_H #ifndef _BFIN_FCNTL_H
#define _BFIN_FCNTL_H #define _BFIN_FCNTL_H

View File

@ -1,5 +1,11 @@
/* This file defines the fixed addresses where userspace programs can find /*
atomic code sequences. */ * This file defines the fixed addresses where userspace programs
* can find atomic code sequences.
*
* Copyright 2007-2008 Analog Devices Inc.
*
* Licensed under the GPL-2 or later.
*/
#ifndef __BFIN_ASM_FIXED_CODE_H__ #ifndef __BFIN_ASM_FIXED_CODE_H__
#define __BFIN_ASM_FIXED_CODE_H__ #define __BFIN_ASM_FIXED_CODE_H__

View File

@ -1,8 +1,9 @@
/* /*
* include/asm-blackfin/flat.h -- uClinux flat-format executables * uClinux flat-format executables
* *
* Copyright (C) 2003, * Copyright 2003-2009 Analog Devices Inc.
* *
* Licensed under the GPL-2
*/ */
#ifndef __BLACKFIN_FLAT_H__ #ifndef __BLACKFIN_FLAT_H__

View File

@ -1,30 +1,7 @@
/* /*
* File: arch/blackfin/kernel/bfin_gpio.h * Copyright 2006-2009 Analog Devices Inc.
* Based on:
* Author: Michael Hennerich (hennerich@blackfin.uclinux.org)
* *
* Created: * Licensed under the GPL-2 or later.
* Description:
*
* Modified:
* Copyright 2004-2008 Analog Devices Inc.
*
* Bugs: Enter bugs at http://blackfin.uclinux.org/
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, see the file COPYING, or write
* to the Free Software Foundation, Inc.,
* 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/ */
#ifndef __ARCH_BLACKFIN_GPIO_H__ #ifndef __ARCH_BLACKFIN_GPIO_H__

View File

@ -1,3 +1,9 @@
/*
* Copyright 2004-2009 Analog Devices Inc.
*
* Licensed under the GPL-2 or later.
*/
#ifndef __BFIN_HARDIRQ_H #ifndef __BFIN_HARDIRQ_H
#define __BFIN_HARDIRQ_H #define __BFIN_HARDIRQ_H

View File

@ -1,3 +1,9 @@
/*
* Copyright 2004-2009 Analog Devices Inc.
*
* Licensed under the GPL-2 or later.
*/
#ifndef _BFIN_IO_H #ifndef _BFIN_IO_H
#define _BFIN_IO_H #define _BFIN_IO_H

View File

@ -1,17 +1,10 @@
/* /*
* This file is subject to the terms and conditions of the GNU General Public * Copyright 2004-2009 Analog Devices Inc.
* License. See the file COPYING in the main directory of this archive * 2003 HuTao
* for more details. * 2002 Arcturus Networks Inc. (www.arcturusnetworks.com
* Ted Ma <mated@sympatico.ca>
* *
* Changed by HuTao Apr18, 2003 * Licensed under the GPL-2
*
* Copyright was missing when I got the code so took from MIPS arch ...MaTed---
* Copyright (C) 1994 by Waldorf GMBH, written by Ralf Baechle
* Copyright (C) 1995, 96, 97, 98, 99, 2000, 2001 by Ralf Baechle
*
* Adapted for BlackFin (ADI) by Ted Ma <mated@sympatico.ca>
* Copyright (c) 2002 Arcturus Networks Inc. (www.arcturusnetworks.com)
* Copyright (c) 2002 Lineo, Inc. <mattw@lineo.com>
*/ */
#ifndef _BFIN_IRQ_H_ #ifndef _BFIN_IRQ_H_
@ -19,6 +12,8 @@
#include <linux/irqflags.h> #include <linux/irqflags.h>
#include <mach/anomaly.h>
/* SYS_IRQS and NR_IRQS are defined in <mach-bf5xx/irq.h> */ /* SYS_IRQS and NR_IRQS are defined in <mach-bf5xx/irq.h> */
#include <mach/irq.h> #include <mach/irq.h>

View File

@ -1,3 +1,9 @@
/*
* Copyright 2007-2009 Analog Devices Inc.
*
* Licensed under the GPL-2 or later.
*/
#ifndef _IRQ_HANDLER_H #ifndef _IRQ_HANDLER_H
#define _IRQ_HANDLER_H #define _IRQ_HANDLER_H

View File

@ -1,6 +1,9 @@
/* /*
* l1layout.h
* Defines a layout of L1 scratchpad memory that userspace can rely on. * Defines a layout of L1 scratchpad memory that userspace can rely on.
*
* Copyright 2006-2008 Analog Devices Inc.
*
* Licensed under the GPL-2 or later.
*/ */
#ifndef _L1LAYOUT_H_ #ifndef _L1LAYOUT_H_

View File

@ -1,3 +1,9 @@
/*
* Copyright 2004-2009 Analog Devices Inc.
*
* Licensed under the GPL-2 or later.
*/
#ifndef __ASM_LINKAGE_H #ifndef __ASM_LINKAGE_H
#define __ASM_LINKAGE_H #define __ASM_LINKAGE_H

View File

@ -1,8 +1,13 @@
/*
* Copyright 2004-2009 Analog Devices Inc.
* 2002 David McCullough <davidm@snapgear.com>
*
* Licensed under the GPL-2.
*/
#ifndef __MMU_H #ifndef __MMU_H
#define __MMU_H #define __MMU_H
/* Copyright (C) 2002, David McCullough <davidm@snapgear.com> */
struct sram_list_struct { struct sram_list_struct {
struct sram_list_struct *next; struct sram_list_struct *next;
void *addr; void *addr;

View File

@ -1,30 +1,7 @@
/* /*
* File: include/asm-blackfin/mmu_context.h * Copyright 2004-2009 Analog Devices Inc.
* Based on:
* Author:
* *
* Created: * Licensed under the GPL-2 or later.
* Description:
*
* Modified:
* Copyright 2004-2006 Analog Devices Inc.
*
* Bugs: Enter bugs at http://blackfin.uclinux.org/
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, see the file COPYING, or write
* to the Free Software Foundation, Inc.,
* 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/ */
#ifndef __BLACKFIN_MMU_CONTEXT_H__ #ifndef __BLACKFIN_MMU_CONTEXT_H__

View File

@ -1,3 +1,9 @@
/*
 * Copyright 2004-2008 Analog Devices Inc.
 *
 * Licensed under the GPL-2 or later.
 */
#ifndef _ASM_BFIN_MODULE_H #ifndef _ASM_BFIN_MODULE_H
#define _ASM_BFIN_MODULE_H #define _ASM_BFIN_MODULE_H

View File

@ -4,6 +4,10 @@
* TODO: implement optimized primitives instead, or leave the generic * TODO: implement optimized primitives instead, or leave the generic
* implementation in place, or pick the atomic_xchg() based generic * implementation in place, or pick the atomic_xchg() based generic
* implementation. (see asm-generic/mutex-xchg.h for details) * implementation. (see asm-generic/mutex-xchg.h for details)
*
* Copyright 2006-2009 Analog Devices Inc.
*
* Licensed under the GPL-2 or later.
*/ */
#ifndef _ASM_MUTEX_H #ifndef _ASM_MUTEX_H

View File

@ -1,13 +1,9 @@
/* linux/include/asm-blackfin/nand.h /*
*
* Copyright (c) 2007 Analog Devices, Inc.
* Bryan Wu <bryan.wu@analog.com>
*
* BF5XX - NAND flash controller platfrom_device info * BF5XX - NAND flash controller platfrom_device info
* *
* This program is free software; you can redistribute it and/or modify * Copyright 2007-2008 Analog Devices, Inc.
* it under the terms of the GNU General Public License version 2 as *
* published by the Free Software Foundation. * Licensed under the GPL-2
*/ */
/* struct bf5xx_nand_platform /* struct bf5xx_nand_platform

View File

@ -1,3 +1,9 @@
/*
 * Copyright 2004-2009 Analog Devices Inc.
 *
 * Licensed under the GPL-2 or later.
 */
#ifndef _BLACKFIN_PAGE_H #ifndef _BLACKFIN_PAGE_H
#define _BLACKFIN_PAGE_H #define _BLACKFIN_PAGE_H

View File

@ -1,5 +1,10 @@
/*
/* This handles the memory map.. */ * This handles the memory map
*
* Copyright 2004-2008 Analog Devices Inc.
*
* Licensed under the GPL-2 or later.
*/
#ifdef CONFIG_BLACKFIN #ifdef CONFIG_BLACKFIN
#define PAGE_OFFSET_RAW 0x00000000 #define PAGE_OFFSET_RAW 0x00000000

View File

@ -1,23 +1,8 @@
/* /*
* File: arch/blackfin/include/asm/pda.h * Copyright 2007-2009 Analog Devices Inc.
* Author: Philippe Gerum <rpm@xenomai.org> * Philippe Gerum <rpm@xenomai.org>
* *
* Copyright 2007 Analog Devices Inc. * Licensed under the GPL-2 or later.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, see the file COPYING, or write
* to the Free Software Foundation, Inc.,
* 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/ */
#ifndef _ASM_BLACKFIN_PDA_H #ifndef _ASM_BLACKFIN_PDA_H

View File

@ -1,3 +1,9 @@
/*
* Copyright 2004-2009 Analog Devices Inc.
*
* Licensed under the GPL-2 or later.
*/
#ifndef _BLACKFIN_PGTABLE_H #ifndef _BLACKFIN_PGTABLE_H
#define _BLACKFIN_PGTABLE_H #define _BLACKFIN_PGTABLE_H
@ -92,6 +98,12 @@ extern unsigned int kobjsize(const void *objp);
#define VMALLOC_START 0 #define VMALLOC_START 0
#define VMALLOC_END 0xffffffff #define VMALLOC_END 0xffffffff
/* provide a special get_unmapped_area for framebuffer mmaps of nommu */
extern unsigned long get_fb_unmapped_area(struct file *filp, unsigned long,
unsigned long, unsigned long,
unsigned long);
#define HAVE_ARCH_FB_UNMAPPED_AREA
#include <asm-generic/pgtable.h> #include <asm-generic/pgtable.h>
#endif /* _BLACKFIN_PGTABLE_H */ #endif /* _BLACKFIN_PGTABLE_H */

View File

@ -1,3 +1,10 @@
/*
* Copyright 2004-2009 Analog Devices Inc.
*
* Licensed under the GPL-2 or later.
*
*/
#ifndef __BFIN_POLL_H #ifndef __BFIN_POLL_H
#define __BFIN_POLL_H #define __BFIN_POLL_H

View File

@ -1,6 +1,9 @@
/* /*
* Common header file for blackfin family of processors. * Common header file for Blackfin family of processors
* *
 * Copyright 2007-2008 Analog Devices Inc.
 *
 * Licensed under the GPL-2 or later.
*/ */
#ifndef _PORTMUX_H_ #ifndef _PORTMUX_H_

View File

@ -1,3 +1,9 @@
/*
* Copyright 2004-2009 Analog Devices Inc.
*
* Licensed under the GPL-2 or later.
*/
#ifndef __ARCH_BFIN_POSIX_TYPES_H #ifndef __ARCH_BFIN_POSIX_TYPES_H
#define __ARCH_BFIN_POSIX_TYPES_H #define __ARCH_BFIN_POSIX_TYPES_H

View File

@ -1,3 +1,9 @@
/*
* Copyright 2004-2009 Analog Devices Inc.
*
* Licensed under the GPL-2 or later.
*/
#ifndef __ASM_BFIN_PROCESSOR_H #ifndef __ASM_BFIN_PROCESSOR_H
#define __ASM_BFIN_PROCESSOR_H #define __ASM_BFIN_PROCESSOR_H

View File

@ -1,3 +1,9 @@
/*
* Copyright 2004-2008 Analog Devices Inc.
*
* Licensed under the GPL-2 or later.
*/
#ifndef _BFIN_PTRACE_H #ifndef _BFIN_PTRACE_H
#define _BFIN_PTRACE_H #define _BFIN_PTRACE_H

View File

@ -1,3 +1,9 @@
/*
 * Copyright 2004-2009 Analog Devices Inc.
 *
 * Licensed under the GPL-2 or later.
 */
#ifndef _BLACKFIN_SECTIONS_H #ifndef _BLACKFIN_SECTIONS_H
#define _BLACKFIN_SECTIONS_H #define _BLACKFIN_SECTIONS_H

View File

@ -1,3 +1,9 @@
/*
* Copyright 2004-2008 Analog Devices Inc.
*
* Licensed under the GPL-2 or later.
*/
#ifndef _BFIN_SEGMENT_H #ifndef _BFIN_SEGMENT_H
#define _BFIN_SEGMENT_H #define _BFIN_SEGMENT_H

View File

@ -1,3 +1,9 @@
/*
 * Copyright 2004-2008 Analog Devices Inc.
 *
 * Licensed under the GPL-2 or later.
 */
#ifndef _ASM_BLACKFIN_SIGCONTEXT_H #ifndef _ASM_BLACKFIN_SIGCONTEXT_H
#define _ASM_BLACKFIN_SIGCONTEXT_H #define _ASM_BLACKFIN_SIGCONTEXT_H

View File

@ -1,3 +1,9 @@
/*
* Copyright 2004-2008 Analog Devices Inc.
*
* Licensed under the GPL-2 or later.
*/
#ifndef _BFIN_SIGINFO_H #ifndef _BFIN_SIGINFO_H
#define _BFIN_SIGINFO_H #define _BFIN_SIGINFO_H

View File

@ -1,23 +1,8 @@
/* /*
* File: arch/blackfin/include/asm/smp.h * Copyright 2007-2009 Analog Devices Inc.
* Author: Philippe Gerum <rpm@xenomai.org> * Philippe Gerum <rpm@xenomai.org>
* *
* Copyright 2007 Analog Devices Inc. * Licensed under the GPL-2 or later.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, see the file COPYING, or write
* to the Free Software Foundation, Inc.,
* 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/ */
#ifndef __ASM_BLACKFIN_SMP_H #ifndef __ASM_BLACKFIN_SMP_H

View File

@ -1,3 +1,9 @@
/*
 * Copyright 2004-2009 Analog Devices Inc.
 *
 * Licensed under the GPL-2 or later.
 */
#ifndef __BFIN_SPINLOCK_H #ifndef __BFIN_SPINLOCK_H
#define __BFIN_SPINLOCK_H #define __BFIN_SPINLOCK_H

View File

@ -1,3 +1,9 @@
/*
* Copyright 2008 Analog Devices Inc.
*
* Licensed under the GPL-2 or later.
*/
#ifndef __ASM_SPINLOCK_TYPES_H #ifndef __ASM_SPINLOCK_TYPES_H
#define __ASM_SPINLOCK_TYPES_H #define __ASM_SPINLOCK_TYPES_H

View File

@ -1,3 +1,9 @@
/*
* Copyright 2004-2006 Analog Devices Inc.
*
* Licensed under the GPL-2.
*/
#ifndef _BFIN_STAT_H #ifndef _BFIN_STAT_H
#define _BFIN_STAT_H #define _BFIN_STAT_H

View File

@ -1,3 +1,9 @@
/*
* Copyright 2004-2008 Analog Devices Inc.
*
* Licensed under the GPL-2 or later.
*/
#ifndef _BLACKFIN_STRING_H_ #ifndef _BLACKFIN_STRING_H_
#define _BLACKFIN_STRING_H_ #define _BLACKFIN_STRING_H_

View File

@ -1,3 +1,9 @@
/*
* Copyright 2009 Analog Devices Inc.
*
* Licensed under the GPL-2 or later.
*/
#ifndef _BLACKFIN_SWAB_H #ifndef _BLACKFIN_SWAB_H
#define _BLACKFIN_SWAB_H #define _BLACKFIN_SWAB_H

View File

@ -1,34 +1,8 @@
/* /*
* File: include/asm/system.h * Copyright 2004-2009 Analog Devices Inc.
* Based on: * Tony Kou (tonyko@lineo.ca)
* Author: Tony Kou (tonyko@lineo.ca)
* Copyright (c) 2002 Arcturus Networks Inc.
* (www.arcturusnetworks.com)
* Copyright (c) 2003 Metrowerks (www.metrowerks.com)
* Copyright (c) 2004 Analog Device Inc.
* Created: 25Jan2001 - Tony Kou
* Description: system.h include file
* *
* Modified: 22Sep2006 - Robin Getz * Licensed under the GPL-2 or later
* - move include blackfin.h down, so I can get access to
* irq functions in other include files.
*
* Bugs: Enter bugs at http://blackfin.uclinux.org/
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2, or (at your option)
* any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; see the file COPYING.
* If not, write to the Free Software Foundation,
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/ */
#ifndef _BLACKFIN_SYSTEM_H #ifndef _BLACKFIN_SYSTEM_H

View File

@ -1,27 +1,7 @@
/* /*
* File: include/asm-blackfin/thread_info.h * Copyright 2004-2009 Analog Devices Inc.
* Based on: include/asm-m68knommu/thread_info.h
* Author: LG Soft India
* Copyright (C) 2004-2005 Analog Devices Inc.
* Created: Tue Sep 21 2004
* Description: Blackfin low-level thread information
* Modified:
* Bugs: Enter bugs at http://blackfin.uclinux.org/
* *
* This program is free software; you can redistribute it and/or modify * Licensed under the GPL-2 or later.
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2, or (at your option)
* any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; see the file COPYING.
* If not, write to the Free Software Foundation,
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/ */
#ifndef _ASM_THREAD_INFO_H #ifndef _ASM_THREAD_INFO_H

View File

@ -1,3 +1,9 @@
/*
* Copyright 2004-2008 Analog Devices Inc.
*
* Licensed under the GPL-2 or later.
*/
#ifndef _BLACKFIN_TLB_H #ifndef _BLACKFIN_TLB_H
#define _BLACKFIN_TLB_H #define _BLACKFIN_TLB_H

View File

@ -1,6 +1,9 @@
/* /*
* Common header file for blackfin family of processors. * header file for hardware trace functions
* *
* Copyright 2007-2008 Analog Devices Inc.
*
* Licensed under the GPL-2 or later.
*/ */
#ifndef _BLACKFIN_TRACE_ #ifndef _BLACKFIN_TRACE_

View File

@ -1,13 +1,10 @@
/* /*
* linux/include/asm/traps.h * Copyright 2004-2009 Analog Devices Inc.
* 2001 Lineo, Inc
* Tony Kou
* 1993 Hamish Macdonald
* *
* Copyright (C) 1993 Hamish Macdonald * Licensed under the GPL-2
*
* Lineo, Inc Jul 2001 Tony Kou
*
* This file is subject to the terms and conditions of the GNU General Public
* License. See the file COPYING in the main directory of this archive
* for more details.
*/ */
#ifndef _BFIN_TRAPS_H #ifndef _BFIN_TRAPS_H

View File

@ -1,4 +1,7 @@
/* Changes made by Lineo Inc. May 2001 /*
* Copyright 2004-2009 Analog Devices Inc.
*
* Licensed under the GPL-2 or later.
* *
* Based on: include/asm-m68knommu/uaccess.h * Based on: include/asm-m68knommu/uaccess.h
*/ */

View File

@ -1,3 +1,9 @@
/*
* Copyright 2004-2009 Analog Devices Inc.
*
* Licensed under the GPL-2 or later.
*/
#ifndef __ASM_BFIN_UNISTD_H #ifndef __ASM_BFIN_UNISTD_H
#define __ASM_BFIN_UNISTD_H #define __ASM_BFIN_UNISTD_H
/* /*

View File

@ -1,30 +1,9 @@
/* /*
* File: arch/blackfin/kernel/asm-offsets.c * generate definitions needed by assembly language modules
* Based on:
* Author:
* *
* Created: * Copyright 2004-2009 Analog Devices Inc.
* Description: generate definitions needed by assembly language modules.
* *
* Modified: * Licensed under the GPL-2 or later
* Copyright 2004-2006 Analog Devices Inc.
*
* Bugs: Enter bugs at http://blackfin.uclinux.org/
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, see the file COPYING, or write
* to the Free Software Foundation, Inc.,
* 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/ */
#include <linux/stddef.h> #include <linux/stddef.h>

View File

@ -2,6 +2,7 @@
* bfin_dma_5xx.c - Blackfin DMA implementation * bfin_dma_5xx.c - Blackfin DMA implementation
* *
* Copyright 2004-2008 Analog Devices Inc. * Copyright 2004-2008 Analog Devices Inc.
*
* Licensed under the GPL-2 or later. * Licensed under the GPL-2 or later.
*/ */

View File

@ -1,30 +1,9 @@
/* /*
* File: arch/blackfin/kernel/bfin_gpio.c * GPIO Abstraction Layer
* Based on:
* Author: Michael Hennerich (hennerich@blackfin.uclinux.org)
* *
* Created: * Copyright 2006-2009 Analog Devices Inc.
* Description: GPIO Abstraction Layer
* *
* Modified: * Licensed under the GPL-2 or later
* Copyright 2008 Analog Devices Inc.
*
* Bugs: Enter bugs at http://blackfin.uclinux.org/
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, see the file COPYING, or write
* to the Free Software Foundation, Inc.,
* 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/ */
#include <linux/delay.h> #include <linux/delay.h>

View File

@ -1,25 +1,11 @@
/* /*
* Blackfin CPLB initialization * Blackfin CPLB initialization
* *
* Copyright 2004-2007 Analog Devices Inc. * Copyright 2008-2009 Analog Devices Inc.
* *
* Bugs: Enter bugs at http://blackfin.uclinux.org/ * Licensed under the GPL-2 or later.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, see the file COPYING, or write
* to the Free Software Foundation, Inc.,
* 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/ */
#include <linux/module.h> #include <linux/module.h>
#include <asm/blackfin.h> #include <asm/blackfin.h>

View File

@ -1,22 +1,11 @@
/* /*
* Blackfin CPLB exception handling. * Blackfin CPLB exception handling for when MPU in on
* Copyright 2004-2007 Analog Devices Inc.
* *
* This program is free software; you can redistribute it and/or modify * Copyright 2008-2009 Analog Devices Inc.
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * Licensed under the GPL-2 or later.
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, see the file COPYING, or write
* to the Free Software Foundation, Inc.,
* 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/ */
#include <linux/module.h> #include <linux/module.h>
#include <linux/mm.h> #include <linux/mm.h>

View File

@ -1,24 +1,9 @@
/* /*
* Blackfin CPLB initialization * Blackfin CPLB initialization
* *
* Copyright 2004-2007 Analog Devices Inc. * Copyright 2007-2009 Analog Devices Inc.
* *
* Bugs: Enter bugs at http://blackfin.uclinux.org/ * Licensed under the GPL-2 or later.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, see the file COPYING, or write
* to the Free Software Foundation, Inc.,
* 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/ */
#include <linux/module.h> #include <linux/module.h>

View File

@ -1,26 +1,14 @@
/* /*
* File: arch/blackfin/kernel/cplb-nompu-c/cplbmgr.c
* Based on: arch/blackfin/kernel/cplb-mpu/cplbmgr.c * Based on: arch/blackfin/kernel/cplb-mpu/cplbmgr.c
* Author: Michael McTernan <mmcternan@airvana.com> * Author: Michael McTernan <mmcternan@airvana.com>
* *
* Created: 01Nov2008
* Description: CPLB miss handler. * Description: CPLB miss handler.
* *
* Modified: * Modified:
* Copyright 2008 Airvana Inc. * Copyright 2008 Airvana Inc.
* Copyright 2004-2007 Analog Devices Inc. * Copyright 2008-2009 Analog Devices Inc.
* *
* Bugs: Enter bugs at http://blackfin.uclinux.org/ * Licensed under the GPL-2 or later
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/ */
#include <linux/kernel.h> #include <linux/kernel.h>

Some files were not shown because too many files have changed in this diff Show More